From 50f6b85d83989295a0c6268c64ee27232c5a117d Mon Sep 17 00:00:00 2001 From: Uzi <47419405+UziQidwai@users.noreply.github.com> Date: Sun, 7 Jul 2024 23:34:16 -0400 Subject: [PATCH] Delete cent.webflow directory --- cent.webflow/401.html | 43 - cent.webflow/404.html | 36 - cent.webflow/css/normalize.css | 355 - cent.webflow/css/telosspark.webflow.css | 3229 ---- cent.webflow/css/webflow.css | 1827 -- cent.webflow/detail_post.html | 85 - cent.webflow/faqs.html | 134 - cent.webflow/images/App-Icon-256-01.png | Bin 7691 -> 0 bytes .../images/Cent-black-on-white-p-500.png | Bin 4591 -> 0 bytes .../images/Cent-black-on-white-p-800.png | Bin 7524 -> 0 bytes cent.webflow/images/Cent-black-on-white.png | Bin 21993 -> 0 bytes cent.webflow/images/Untitled-15-p-1080.png | Bin 35163 -> 0 bytes cent.webflow/images/Untitled-15-p-500.png | Bin 15520 -> 0 bytes cent.webflow/images/Untitled-15-p-800.png | Bin 24840 -> 0 bytes cent.webflow/images/Untitled-15.png | Bin 96555 -> 0 bytes cent.webflow/images/Untitled-32-p-500.png | Bin 14279 -> 0 bytes cent.webflow/images/Untitled-32-p-800.png | Bin 23508 -> 0 bytes cent.webflow/images/Untitled-32.png | Bin 64679 -> 0 bytes cent.webflow/images/centicon.jpg | Bin 2399 -> 0 bytes cent.webflow/images/favicon.png | Bin 1166 -> 0 bytes cent.webflow/images/menu-icon_1menu-icon.png | Bin 178 -> 0 bytes cent.webflow/images/portfolio-1---wide.svg | 33 - cent.webflow/images/portfolio-2---wide.svg | 34 - cent.webflow/images/portfolio-3---wide.svg | 34 - cent.webflow/images/webclip.png | Bin 10787 -> 0 bytes cent.webflow/index.html | 98 - cent.webflow/js/webflow.js | 13717 ---------------- cent.webflow/privacy-policy.html | 98 - 28 files changed, 19723 deletions(-) delete mode 100644 cent.webflow/401.html delete mode 100644 cent.webflow/404.html delete mode 100644 cent.webflow/css/normalize.css delete mode 100644 cent.webflow/css/telosspark.webflow.css delete mode 100644 cent.webflow/css/webflow.css delete mode 100644 cent.webflow/detail_post.html delete mode 100644 cent.webflow/faqs.html delete mode 100644 cent.webflow/images/App-Icon-256-01.png delete mode 100644 cent.webflow/images/Cent-black-on-white-p-500.png delete mode 100644 cent.webflow/images/Cent-black-on-white-p-800.png delete mode 100644 cent.webflow/images/Cent-black-on-white.png delete mode 100644 cent.webflow/images/Untitled-15-p-1080.png delete mode 100644 cent.webflow/images/Untitled-15-p-500.png delete mode 100644 cent.webflow/images/Untitled-15-p-800.png delete mode 100644 cent.webflow/images/Untitled-15.png delete mode 100644 cent.webflow/images/Untitled-32-p-500.png delete mode 100644 cent.webflow/images/Untitled-32-p-800.png delete mode 100644 cent.webflow/images/Untitled-32.png delete mode 100644 cent.webflow/images/centicon.jpg delete mode 100644 cent.webflow/images/favicon.png delete mode 100644 cent.webflow/images/menu-icon_1menu-icon.png delete mode 100644 cent.webflow/images/portfolio-1---wide.svg delete mode 100644 cent.webflow/images/portfolio-2---wide.svg delete mode 100644 cent.webflow/images/portfolio-3---wide.svg delete mode 100644 cent.webflow/images/webclip.png delete mode 100644 cent.webflow/index.html delete mode 100644 cent.webflow/js/webflow.js delete mode 100644 cent.webflow/privacy-policy.html diff --git a/cent.webflow/401.html b/cent.webflow/401.html deleted file mode 100644 index 1fa365b..0000000 --- a/cent.webflow/401.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - Protected page - - - - - - - - - - - - - - - - -
-
-
-

Protected Page

-
-
Incorrect password. Please try again.
-
- - -
-
-
- - - - \ No newline at end of file diff --git a/cent.webflow/404.html b/cent.webflow/404.html deleted file mode 100644 index becdaea..0000000 --- a/cent.webflow/404.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - Not Found - - - - - - - - - - - - - - - - -
-
-
-
Page Not Found
-
The page you are looking for doesn't exist or has been moved.
-
- -
Go Back to HOME PAGE
-
-
-
- - - - \ No newline at end of file diff --git a/cent.webflow/css/normalize.css b/cent.webflow/css/normalize.css deleted file mode 100644 index 411d0b2..0000000 --- a/cent.webflow/css/normalize.css +++ /dev/null @@ -1,355 +0,0 @@ -/*! 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/cent.webflow/css/telosspark.webflow.css b/cent.webflow/css/telosspark.webflow.css deleted file mode 100644 index fb3ce7c..0000000 --- a/cent.webflow/css/telosspark.webflow.css +++ /dev/null @@ -1,3229 +0,0 @@ -:root { - --white: white; - --black: black; -} - -.w-layout-grid { - grid-row-gap: 16px; - grid-column-gap: 16px; - grid-template-rows: auto auto; - grid-template-columns: 1fr 1fr; - grid-auto-columns: 1fr; - display: grid; -} - -body { - color: #1a1b1f; - font-family: Montserrat, sans-serif; - font-size: 16px; - font-weight: 400; - line-height: 28px; -} - -h1 { - margin-top: 20px; - margin-bottom: 15px; - font-size: 44px; - font-weight: 400; - line-height: 62px; -} - -h2 { - margin-top: 10px; - margin-bottom: 10px; - font-size: 36px; - font-weight: 400; - line-height: 50px; -} - -h3 { - margin-top: 10px; - margin-bottom: 10px; - font-size: 30px; - font-weight: 400; - line-height: 46px; -} - -h4 { - margin-top: 10px; - margin-bottom: 10px; - font-size: 24px; - font-weight: 400; - line-height: 38px; -} - -h5 { - margin-top: 10px; - margin-bottom: 10px; - font-size: 20px; - font-weight: 500; - line-height: 34px; -} - -h6 { - margin-top: 10px; - margin-bottom: 10px; - font-size: 16px; - font-weight: 500; - line-height: 28px; -} - -p { - margin-bottom: 10px; -} - -a { - color: #1a1b1f; - text-decoration: underline; - transition: opacity .2s; - display: block; -} - -a:hover { - color: #32343a; -} - -a:active { - color: #43464d; -} - -ul { - margin-top: 20px; - margin-bottom: 10px; - padding-left: 40px; - list-style-type: disc; -} - -li { - margin-bottom: 10px; -} - -img { - margin-right: 80px; - display: block; -} - -label { - letter-spacing: 1px; - text-transform: uppercase; - margin-bottom: 10px; - font-size: 12px; - font-weight: 500; - line-height: 20px; -} - -blockquote { - border-left: 5px solid #e2e2e2; - margin-top: 25px; - margin-bottom: 25px; - padding: 15px 30px; - font-size: 20px; - line-height: 34px; -} - -figure { - margin-top: 25px; - padding-bottom: 20px; -} - -figcaption { - opacity: .6; - text-align: center; - margin-top: 5px; - font-size: 14px; - line-height: 26px; -} - -.divider { - background-color: #eee; - height: 1px; -} - -.styleguide-content-wrap { - text-align: center; -} - -.section { - margin-bottom: 40px; - margin-left: 0; - margin-right: 0; - display: block; - position: relative; -} - -.section.cc-cta { - background-color: #f4f4f4; - margin-left: 0; - margin-right: 0; - padding-left: 80px; - padding-right: 80px; - display: none; -} - -.section.cc-store-home-wrap { - background-color: var(--white); -} - -.styleguide-block { - text-align: left; - flex-direction: column; - align-items: center; - margin-top: 80px; - margin-bottom: 80px; - display: block; -} - -.container { - width: 100%; - max-width: 1140px; - margin-left: auto; - margin-right: auto; -} - -.paragraph-tiny { - font-size: 12px; - line-height: 20px; -} - -.paragraph-bigger { - opacity: 1; - text-align: center; - margin-bottom: 10px; - margin-left: auto; - margin-right: auto; - padding-left: 20px; - font-size: 20px; - font-weight: 400; - line-height: 34px; -} - -.paragraph-bigger.cc-bigger-light { - opacity: .6; - color: var(--black); -} - -.paragraph-bigger.cc-bigger-white-light { - border: 1px none var(--black); - opacity: .6; - color: var(--black); - margin-bottom: 0; - font-style: normal; -} - -.button { - border: 1px none var(--black); - color: var(--black); - letter-spacing: 2px; - text-transform: uppercase; - background-color: #7648ca; - border-radius: 10px; - padding: 12px 25px; - font-size: 12px; - line-height: 20px; - text-decoration: none; - transition: background-color .4s, opacity .4s, color .4s; -} - -.button:hover { - background-color: var(--white); - outline-color: var(--black); - outline-offset: 0px; - color: var(--white); - border: 1px solid #000; - outline-width: 3px; - outline-style: solid; - transform: scale(1.1); -} - -.button:active { - background-color: #43464d; -} - -.button.cc-jumbo-button { - border-radius: 10px; - padding: 16px 35px; - font-size: 14px; - line-height: 26px; -} - -.button.cc-jumbo-button.cc-jumbo-white { - border: 1px none var(--black); - color: #000; - background-color: #9c9c9c; - border-radius: 10px; - margin-left: auto; - margin-right: auto; -} - -.button.cc-jumbo-button.cc-jumbo-white:hover { - outline-offset: 0px; - background-color: #f1f1f1; - border: 1px solid #000; - outline: 3px solid #000; - transform: scale(1.1); -} - -.button.cc-jumbo-button.cc-jumbo-white:active { - outline-offset: 0px; - background-color: #e1e1e1; - outline: 3px solid #000; -} - -.button.cc-contact-us { - z-index: 5; - border: 1px none var(--black); - background-color: #fe5f03; - border-radius: 10px; - position: relative; -} - -.button.cc-contact-us:hover { - background-color: var(--white); - outline-color: var(--black); - outline-offset: 0px; - outline-width: 3px; - outline-style: solid; - transform: scale(1.1); -} - -.button.cc-contact-us:active { - background-color: #fd5e01; -} - -.button.cc-white-button { - color: #202020; - background-color: #f56508; - padding: 16px 35px; - font-size: 14px; - line-height: 26px; -} - -.button.cc-white-button:hover { - background-color: rgba(255, 255, 255, .8); -} - -.button.cc-white-button:active { - background-color: rgba(255, 255, 255, .9); -} - -.button.cc-white-button.w--current { - background-color: #784acf; -} - -.label { - letter-spacing: 1px; - text-transform: uppercase; - margin-bottom: 10px; - font-size: 12px; - font-weight: 700; - line-height: 20px; -} - -.label.cc-styleguide-label { - margin-bottom: 25px; -} - -.label.cc-light { - opacity: .6; -} - -.label.cc-blog-date { - opacity: .6; - margin-top: 20px; -} - -.heading-jumbo-tiny { - text-transform: uppercase; - margin-top: 10px; - margin-bottom: 10px; - font-size: 18px; - font-weight: 500; - line-height: 32px; -} - -.rich-text { - width: 70%; - margin-bottom: 100px; - margin-left: auto; - margin-right: auto; -} - -.rich-text p { - opacity: .6; - margin-top: 15px; - margin-bottom: 25px; -} - -.paragraph-light { - opacity: .6; - text-align: left; - padding-left: 0; - padding-right: 20px; -} - -.heading-jumbo { - color: var(--black); - text-transform: none; - margin-top: 10px; - margin-bottom: 10px; - font-size: 36px; - line-height: 80px; -} - -.heading-jumbo-small { - color: var(--black); - text-align: center; - text-transform: none; - margin: 0 auto; - font-size: 36px; - font-weight: 400; - line-height: 50px; -} - -.styleguide-button-wrap { - margin-top: 10px; - margin-bottom: 10px; -} - -.styleguide-header-wrap { - border: 1px solid var(--white); - background-color: var(--white); - color: #fff; - text-align: center; - flex-direction: column; - justify-content: center; - align-items: center; - height: 460px; - padding: 30px; - display: flex; -} - -.paragraph-small { - font-size: 14px; - line-height: 26px; -} - -.logo-link { - z-index: 1; -} - -.logo-link:hover { - opacity: .8; -} - -.logo-link:active { - opacity: .7; -} - -.menu { - z-index: 0; - justify-content: center; - align-items: center; - margin-bottom: 30px; - padding-top: 30px; - padding-bottom: 30px; - display: flex; - position: absolute; - top: 0%; - bottom: 0%; - left: 0%; - right: 0%; -} - -.navigation-wrap { - flex: 1; - justify-content: space-between; - align-items: center; - display: flex; - position: relative; -} - -.navigation { - background-color: rgba(0, 0, 0, 0); - align-items: center; - padding: 30px 50px 0; - display: flex; -} - -.navigation-item { - opacity: .6; - letter-spacing: 1px; - text-transform: uppercase; - margin-right: 0; - padding: 9px 20px; - font-size: 12px; - font-weight: 500; - line-height: 20px; - text-decoration: none; -} - -.navigation-item:hover { - opacity: .9; - outline-offset: 0px; - border: 1px solid #000; - outline: 3px #32343a; -} - -.navigation-item:active { - opacity: .8; -} - -.navigation-item.w--current { - opacity: 1; - color: #1a1b1f; - font-weight: 600; -} - -.navigation-item.w--current:hover { - opacity: .8; - color: #32343a; -} - -.navigation-item.w--current:active { - opacity: .7; - color: #32343a; -} - -.logo-image { - margin-left: auto; - margin-right: auto; - display: block; -} - -.navigation-items { - flex: none; - justify-content: center; - align-items: center; - display: flex; -} - -.footer-wrap { - justify-content: center; - align-items: center; - padding-top: 70px; - padding-bottom: 70px; - display: flex; -} - -.webflow-link { - opacity: .5; - align-items: center; - text-decoration: none; - transition: opacity .4s; - display: flex; -} - -.webflow-link:hover { - opacity: 1; -} - -.webflow-link:active { - opacity: .8; -} - -.webflow-logo-tiny { - margin-top: -2px; - margin-right: 8px; -} - -.cta-text { - width: 70%; - margin-bottom: 35px; - margin-left: auto; - margin-right: auto; -} - -.cta-wrap { - text-align: center; - justify-content: center; - padding-top: 110px; - padding-bottom: 120px; - display: flex; -} - -.intro-header { - background-color: var(--white); - color: #fff; - text-align: right; - justify-content: center; - align-items: center; - height: 620px; - margin-bottom: 10px; - display: flex; -} - -.intro-header.cc-subpage { - background-color: var(--white); - color: #fff; - object-fit: scale-down; - background-image: none; - height: 200px; -} - -.intro-content { - text-align: center; - width: 70%; - max-width: 1140px; -} - -.intro-content.cc-homepage { - margin-bottom: 10px; -} - -.motto-wrap { - text-align: center; - width: 80%; - margin-bottom: 40px; - margin-left: auto; - margin-right: auto; -} - -.about-story-wrap { - text-align: center; - width: 80%; - margin: 80px auto; -} - -.our-services-grid { - grid-auto-rows: 0; - grid-auto-columns: .25fr; - grid-auto-flow: column; - justify-content: stretch; - margin-bottom: 120px; - display: grid; -} - -.section-heading-wrap { - text-align: center; - margin-top: 80px; - margin-bottom: 80px; -} - -.service-icon { - text-align: left; - margin-bottom: 30px; - margin-left: auto; - margin-right: auto; - display: block; -} - -.status-message { - color: #fff; - text-align: center; - background-color: #202020; - padding: 9px 30px; - font-size: 14px; - line-height: 26px; -} - -.status-message.cc-success-message { - background-color: #12b878; -} - -.status-message.cc-error-message { - background-color: #db4b68; -} - -.status-message.cc-no-data { - width: 70%; - margin: 100px auto; - display: block; -} - -.contact-form-wrap { - border: 1px solid #eee; - padding: 45px 50px 50px; -} - -.contact-form-grid { - grid-column-gap: 80px; - grid-row-gap: 30px; - grid-template: ". ." - / 2.5fr 1fr; - align-items: start; - margin-top: 100px; - margin-bottom: 100px; -} - -.details-wrap { - margin-bottom: 30px; -} - -.get-in-touch-form { - flex-direction: column; - display: flex; -} - -.text-field { - border: 1px solid #e4e4e4; - border-radius: 0; - margin-bottom: 18px; - padding: 21px 20px; - font-size: 14px; - line-height: 26px; - transition: border-color .4s; -} - -.text-field:hover { - border-color: #e3e6eb; -} - -.text-field:active, .text-field:focus { - border-color: #43464d; -} - -.text-field::placeholder { - color: rgba(50, 52, 58, .4); -} - -.text-field.cc-contact-field { - margin-bottom: 25px; -} - -.text-field.cc-textarea { - height: 200px; - padding-top: 12px; -} - -.contact-form { - flex-direction: column; - align-items: stretch; - width: 100%; - margin-bottom: 0; - margin-left: auto; - margin-right: auto; - display: flex; -} - -.contact-form-heading-wrap { - margin-bottom: 40px; -} - -.contact-heading { - margin-top: 0; - margin-bottom: 15px; - font-weight: 400; -} - -.map { - height: 460px; - margin-bottom: 100px; - line-height: 20px; -} - -.contact-team-name-wrap { - margin-bottom: 30px; -} - -.our-contacts { - grid-column-gap: 80px; - grid-row-gap: 60px; - text-align: center; - grid-template: ". . ." - / 1fr 1fr 1fr; - margin-bottom: 120px; -} - -.contact-team-details-wrap { - margin-top: 30px; -} - -.contact-team-pic { - background-color: #f4f4f4; - height: 150px; - margin-bottom: 30px; -} - -.team-pic { - background-color: #f4f4f4; - width: 100%; - height: 420px; - margin-bottom: 40px; -} - -.team-members { - grid-column-gap: 30px; - grid-row-gap: 30px; - grid-template-columns: 1fr 1fr 1fr; - grid-template-areas: ". . ." - ". . ."; - margin-bottom: 60px; -} - -.team-member-title-wrap { - flex-direction: column; - justify-content: center; - align-items: center; - width: 100%; - margin-bottom: 60px; - display: flex; -} - -.team-member-name { - opacity: 1; - margin-bottom: 5px; - font-size: 20px; - font-weight: 400; - line-height: 34px; -} - -.projects-grid { - grid-column-gap: 30px; - grid-row-gap: 30px; - grid-template: "." - "." - "." - / 1fr; - margin-bottom: 60px; -} - -.project-name-wrap { - text-align: center; - flex-direction: column; - justify-content: center; - align-items: center; - width: 100%; - margin-bottom: 60px; - display: flex; -} - -.project-name-link { - margin-bottom: 5px; - font-size: 20px; - font-weight: 400; - line-height: 34px; - text-decoration: none; -} - -.project-name-link:hover { - opacity: .8; -} - -.project-name-link:active { - opacity: .7; -} - -.project-cover-link { - margin-bottom: 40px; -} - -.project-cover-link:hover { - opacity: .8; -} - -.project-cover-link:active { - opacity: .7; -} - -.project-overview-header { - color: #fff; - background-color: #f4f4f4; - background-image: url('../images/portfolio-1---wide.svg'); - background-position: 50%; - background-size: cover; - justify-content: center; - align-items: center; - height: 620px; - margin-bottom: 100px; - display: flex; -} - -.project-overview-header.cc-project-2-header { - background-image: url('../images/portfolio-2---wide.svg'); - background-position: 50%; -} - -.project-overview-header.cc-project-3-header { - background-image: url('../images/portfolio-3---wide.svg'); - background-size: cover; -} - -.project-details-grid { - grid-column-gap: 80px; - grid-row-gap: 30px; - grid-template: ". ." - / 1fr 2fr; - align-items: start; - margin-top: 100px; - margin-bottom: 100px; -} - -.project-pics { - margin-bottom: 120px; -} - -.detail-image { - width: 100%; - margin-bottom: 30px; -} - -.blog-detail-header-wrap { - width: 70%; - margin: 60px auto; -} - -.detail-header-image { - background-image: url('https://d3e54v103j8qbb.cloudfront.net/img/background-image.svg'); - background-position: 0 0; - background-size: cover; - width: 100%; - height: 620px; - margin-bottom: 60px; - display: block; -} - -.detail-header-image.w--current { - margin-bottom: 60px; -} - -.blog-list-wrap { - margin-bottom: 100px; -} - -.blog-item { - text-align: center; - flex-direction: column; - justify-content: center; - margin-bottom: 80px; - margin-left: auto; - margin-right: auto; - display: block; -} - -.blog-preview-image { - background-image: url('https://d3e54v103j8qbb.cloudfront.net/img/background-image.svg'); - background-position: 0 0; - background-size: cover; - width: 100%; - height: 620px; - margin-bottom: 45px; - transition: opacity .6s; - display: block; -} - -.blog-preview-image:hover { - opacity: .8; -} - -.blog-preview-image:active { - opacity: .7; -} - -.blog-summary-wrap { - text-align: left; - width: 70%; - margin-bottom: 20px; - margin-left: auto; - margin-right: auto; -} - -.blog-heading-link { - margin-bottom: 10px; - font-size: 30px; - font-weight: 400; - line-height: 46px; - text-decoration: none; -} - -.blog-heading-link:hover { - opacity: .8; -} - -.blog-heading-link:active { - opacity: .7; -} - -.contact-email-link { - opacity: .6; - margin-bottom: 5px; -} - -.contact-email-link:hover { - opacity: 1; -} - -.contact-email-link:active { - opacity: .8; -} - -.protected-form { - flex-direction: column; - display: flex; -} - -.protected-wrap { - justify-content: center; - padding-top: 90px; - padding-bottom: 100px; - display: flex; -} - -.protected-heading { - margin-bottom: 30px; -} - -.utility-page-wrap { - color: #fff; - text-align: center; - justify-content: center; - align-items: center; - width: 100vw; - max-width: 100%; - height: 100vh; - max-height: 100%; - padding: 30px; - display: flex; -} - -._404-wrap { - background-color: var(--white); - flex-direction: column; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; - padding: 30px; - display: flex; -} - -._404-content-wrap { - margin-bottom: 20px; -} - -.home-content-wrap { - margin-top: 80px; - margin-bottom: 120px; -} - -.home-section-wrap { - margin-bottom: 30px; -} - -.section-heading { - margin-top: 10px; - margin-bottom: 20px; - font-weight: 400; -} - -.about-grid { - grid-column-gap: 80px; - grid-row-gap: 30px; - grid-template: ". ." - / 1.25fr 1.75fr; - align-items: center; - margin-bottom: 0; - padding-left: 30px; - padding-right: 30px; -} - -.about-grid.cc-about-2 { - grid-template-columns: 1.75fr 1.25fr; - grid-template-areas: ". ."; -} - -.intro-text { - width: 80%; - margin-bottom: 20px; - margin-left: auto; - margin-right: auto; -} - -.collection-wrap { - flex-wrap: wrap; - align-content: flex-start; - justify-content: center; - align-items: flex-start; - margin-left: -15px; - margin-right: -15px; - display: flex; -} - -.work-heading { - margin-top: 10px; - margin-bottom: 20px; - font-weight: 400; -} - -.blog-heading { - text-align: center; - margin-bottom: 60px; -} - -.blog-preview-wrap { - width: 33.33%; - padding-bottom: 30px; - padding-left: 15px; - padding-right: 45px; -} - -.collection-list-wrapper { - margin-bottom: 120px; -} - -.business-article-heading { - margin-top: 10px; - margin-bottom: 10px; - font-size: 24px; - font-weight: 500; - line-height: 38px; - text-decoration: none; -} - -.business-article-heading:hover { - opacity: .8; -} - -.business-article-heading:active { - opacity: .7; -} - -.image { - margin-top: 0; - margin-left: auto; - margin-right: auto; - padding-top: 0; - display: inline-block; -} - -.image:hover { - height: 110%; -} - -.text-span, .text-block { - color: var(--black); -} - -.image-2 { - border: 1px #000; - border-radius: 10px; -} - -.footer-dark { - background-color: var(--white); - border-bottom: 1px solid #e4ebf3; - padding: 50px 30px 15px; - position: relative; -} - -.container-2 { - width: 100%; - max-width: 940px; - margin-left: auto; - margin-right: auto; -} - -.footer-wrapper { - justify-content: space-between; - align-items: flex-start; - max-width: 900px; - margin-left: auto; - margin-right: auto; - display: flex; -} - -.footer-content { - grid-column-gap: 70px; - grid-row-gap: 40px; - grid-template-rows: auto; - grid-template-columns: auto auto 1fr; - grid-auto-columns: 1fr; - align-items: stretch; - justify-items: stretch; - display: grid; -} - -.footer-block { - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; - display: flex; -} - -.title-small { - letter-spacing: 1px; - text-transform: uppercase; - margin-bottom: 12px; - font-size: 14px; - font-weight: 700; - line-height: 16px; -} - -.footer-link { - color: #1a1b1f; - margin-top: 12px; - margin-bottom: 6px; - font-size: 14px; - line-height: 16px; - text-decoration: none; -} - -.footer-link:hover { - color: rgba(26, 27, 31, .75); -} - -.footer-social-block { - justify-content: flex-start; - align-items: center; - margin-top: 12px; - margin-left: -12px; - display: flex; -} - -.footer-social-link { - margin-left: 12px; - display: none; -} - -.footer-divider { - background-color: #e4ebf3; - width: 100%; - height: 1px; - margin-top: 70px; - margin-bottom: 15px; -} - -.footer-copyright-center { - text-align: center; - font-size: 14px; - line-height: 16px; -} - -.logos-title-large { - border-bottom: 1px solid #e4ebf3; - padding: 60px 30px; - position: relative; -} - -.clients-title { - text-align: center; - font-size: 24px; - line-height: 32px; -} - -.clients-wrapper { - justify-content: space-between; - align-items: center; - max-width: 750px; - margin-top: 40px; - margin-left: auto; - margin-right: auto; - display: flex; -} - -.clients-image { - min-width: 200px; - margin-left: auto; - margin-right: auto; -} - -.gallery-slider { - object-fit: contain; - border: 1px #000; - padding: 80px 30px; - display: block; - position: relative; -} - -.gallery-wrapper { - grid-column-gap: 40px; - grid-row-gap: 40px; - object-fit: contain; - grid-template-rows: auto; - grid-template-columns: 1fr 1fr 1fr; - grid-auto-columns: 1fr; - align-items: start; - text-decoration: none; - display: grid; - overflow: visible; -} - -.gallery-block { - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; - display: flex; -} - -.gallery-slide { - background-color: rgba(0, 0, 0, 0); - height: auto; -} - -.gallery-slide-wrapper { - max-width: 47%; - margin-right: 6%; -} - -.gallery-slide-image { - object-fit: contain; - position: relative; -} - -.gallery-image { - opacity: 1; - outline-offset: 0px; - object-fit: contain; - border: 1px #000; - border-radius: 20px; - outline: 2px #1a1b1f; - width: 100%; - height: 100%; - margin: auto; - display: inline-block; - overflow: visible; - transform: translate(0); -} - -.gallery-image:hover { - width: 110%; - height: 110%; - margin-right: auto; - overflow: visible; - transform: none; -} - -.gallery-slide-text { - color: #f5f7fa; - text-align: center; - margin-bottom: 0; - line-height: 32px; - position: absolute; - top: 0%; - bottom: auto; - left: 0%; - right: 0%; -} - -.gallery-slider-left { - justify-content: center; - align-items: center; - width: 40px; - display: flex; - left: -50px; -} - -.gallery-slider-left:focus-visible { - outline-offset: 0px; - border-radius: 5px; - outline: 2px solid #0050bd; -} - -.gallery-slider-left[data-wf-focus-visible] { - outline-offset: 0px; - border-radius: 5px; - outline: 2px solid #0050bd; -} - -.slider-arrow-embed { - color: #1a1b1f; - margin-left: auto; - margin-right: auto; -} - -.gallery-slider-right { - justify-content: center; - align-items: center; - width: 40px; - display: flex; - right: -50px; -} - -.gallery-slider-right:focus-visible { - outline-offset: 0px; - border-radius: 5px; - outline: 2px solid #0050bd; -} - -.gallery-slider-right[data-wf-focus-visible] { - outline-offset: 0px; - border-radius: 5px; - outline: 2px solid #0050bd; -} - -.gallery-slide-nav { - display: none; -} - -.features-metrics { - background-color: var(--white); - border-bottom: 1px solid #e4ebf3; - padding: 60px 30px; - position: relative; -} - -.features-wrapper { - justify-content: space-around; - align-items: center; - display: flex; -} - -.features-block { - text-align: center; - flex-direction: column; - justify-content: flex-start; - align-items: center; - display: flex; -} - -.features-block:hover { - transform: scale(1.1); -} - -.features-title { - text-align: center; - margin-bottom: 8px; - font-size: 40px; - font-weight: 600; - line-height: 48px; - display: inline-block; -} - -.features-title-small { - font-size: 24px; - line-height: 32px; -} - -.features-list { - border-bottom: 1px solid #e4ebf3; - padding: 80px 30px; - display: block; - position: relative; -} - -.features-wrapper-two { - justify-content: space-between; - align-items: flex-start; - display: flex; -} - -.features-left { - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; - max-width: 40%; - display: flex; -} - -.features-paragraph { - margin-bottom: 24px; -} - -.text-link-arrow { - color: #1a1b1f; - justify-content: flex-start; - align-items: center; - font-size: 14px; - line-height: 20px; - text-decoration: none; - display: flex; -} - -.arrow-embed { - margin-left: 2px; - display: flex; -} - -.features-right { - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; - max-width: 46%; - margin-bottom: -16px; - display: flex; -} - -.features-block-two { - justify-content: flex-start; - align-items: center; - margin-bottom: 16px; - display: flex; -} - -.features-image { - outline-offset: 0px; - object-fit: cover; - border: 1px #000; - border-radius: 9px; - outline: 2px #1a1b1f; - width: 80px; - height: 80px; - margin-right: 16px; -} - -.features-image:hover { - width: 88px; - height: 88px; -} - -.text-span-3 { - color: var(--black); -} - -.section-2 { - padding-left: 30px; - padding-right: 30px; - overflow: visible; -} - -.navigation-home-page { - background-color: rgba(0, 0, 0, 0); - align-items: center; - padding: 30px 50px; - display: flex; -} - -.image-3 { - outline-offset: 0px; - transform: scale3d(1none, 1none, 1none); - transform-style: preserve-3d; - border: 1px #000; - border-radius: 10px; - outline: 0 #1a1b1f; -} - -.image-3:hover { - transform: none; -} - -.about-grid-copy { - grid-column-gap: 80px; - grid-row-gap: 30px; - object-fit: fill; - grid-template: ". ." - / 1.25fr 1.75fr; - align-items: center; - margin-bottom: 100px; - padding-left: 30px; - padding-right: 30px; - overflow: auto; -} - -.about-grid-copy.cc-about-2 { - grid-template-columns: 1.75fr 1.25fr; - grid-template-areas: ". ."; -} - -.project-overview-header-copy { - color: #fff; - background-color: #f4f4f4; - background-image: url('../images/portfolio-1---wide.svg'); - background-position: 50%; - background-size: cover; - justify-content: center; - align-items: center; - height: 620px; - margin-bottom: 100px; - display: flex; -} - -.project-overview-header-copy.cc-project-2-header { - background-image: url('../images/portfolio-2---wide.svg'); - background-position: 50%; -} - -.project-overview-header-copy.cc-project-3-header { - background-color: #fff; - background-image: none; - align-items: center; - height: auto; - margin-bottom: 0; -} - -.text-block-4 { - color: var(--black); -} - -.image-4 { - margin: auto; - padding-top: 20px; - padding-bottom: 20px; - display: inline-block; -} - -.section-copy { - margin-left: 0; - margin-right: 0; - display: none; -} - -.section-copy.cc-cta { - background-color: #f4f4f4; - margin-left: 0; - margin-right: 0; - padding-left: 80px; - padding-right: 80px; -} - -.our-services-grid-copy { - text-align: left; - grid-auto-rows: 0; - grid-auto-columns: .25fr; - grid-auto-flow: row; - justify-content: stretch; - margin-bottom: 120px; - display: grid; -} - -.div-block { - text-align: left; -} - -.grid { - grid-column-gap: 16px; - grid-row-gap: 16px; - grid-template-rows: auto auto; - grid-template-columns: 1fr 1fr; - grid-auto-columns: 1fr; - display: grid; -} - -.grid-2 { - justify-content: space-between; -} - -.grid-3 { - grid-template-areas: "Area Area-2"; -} - -.logos-title-large-copy, .logos-title-large-2 { - border-bottom: 1px solid #e4ebf3; - padding: 60px 30px; - position: relative; -} - -.clients-image-2 { - margin-left: auto; - margin-right: auto; -} - -.navigation-item-copy { - opacity: .6; - letter-spacing: 1px; - text-transform: uppercase; - margin-right: 0; - padding-top: 9px; - padding-bottom: 9px; - font-size: 12px; - font-weight: 500; - line-height: 20px; -} - -.navbar-logo-center-container { - z-index: 5; - background-color: rgba(0, 0, 0, 0); - width: 1030px; - max-width: 100%; - margin-left: auto; - margin-right: auto; - padding: 20px; -} - -.navbar-logo-center-container.shadow-three { - width: 100%; - max-width: 1140px; -} - -.navbar-wrapper-three { - justify-content: center; - align-items: center; - display: flex; - position: relative; -} - -.navbar-brand-three { - z-index: 5; - position: absolute; -} - -.nav-menu-wrapper-three { - width: 100%; -} - -.nav-menu-three { - justify-content: space-between; - align-items: center; - margin-bottom: 0; - display: flex; -} - -.nav-menu-block { - justify-content: center; - align-items: center; - margin-bottom: 0; - display: flex; -} - -.nav-link { - color: #1a1b1f; - letter-spacing: .25px; - margin-left: 5px; - margin-right: 5px; - padding: 5px 10px; - font-size: 14px; - line-height: 20px; - text-decoration: none; -} - -.nav-link:hover { - color: rgba(26, 27, 31, .75); -} - -.nav-link:focus-visible { - outline-offset: 0px; - color: #0050bd; - border-radius: 4px; - outline: 2px solid #0050bd; -} - -.nav-link[data-wf-focus-visible] { - outline-offset: 0px; - color: #0050bd; - border-radius: 4px; - outline: 2px solid #0050bd; -} - -.nav-dropdown { - margin-left: 5px; - margin-right: 5px; -} - -.nav-dropdown-toggle { - letter-spacing: .25px; - padding: 5px 30px 5px 10px; - font-size: 14px; - line-height: 20px; -} - -.nav-dropdown-toggle:hover { - color: rgba(26, 27, 31, .75); -} - -.nav-dropdown-toggle:focus-visible { - outline-offset: 0px; - color: #0050bd; - border-radius: 5px; - outline: 2px solid #0050bd; -} - -.nav-dropdown-toggle[data-wf-focus-visible] { - outline-offset: 0px; - color: #0050bd; - border-radius: 5px; - outline: 2px solid #0050bd; -} - -.nav-dropdown-icon { - margin-right: 10px; -} - -.nav-dropdown-list { - background-color: #fff; - border-radius: 12px; -} - -.nav-dropdown-list.w--open { - padding-top: 10px; - padding-bottom: 10px; -} - -.nav-dropdown-link { - padding-top: 5px; - padding-bottom: 5px; - font-size: 14px; -} - -.nav-dropdown-link:focus-visible { - outline-offset: 0px; - color: #0050bd; - border-radius: 5px; - outline: 2px solid #0050bd; -} - -.nav-dropdown-link[data-wf-focus-visible] { - outline-offset: 0px; - color: #0050bd; - border-radius: 5px; - outline: 2px solid #0050bd; -} - -.nav-link-accent { - color: #1a1b1f; - letter-spacing: .25px; - margin-left: 5px; - margin-right: 20px; - padding: 5px 10px; - font-size: 14px; - font-weight: 700; - line-height: 20px; - text-decoration: none; -} - -.nav-link-accent:hover { - color: rgba(26, 27, 31, .75); -} - -.button-primary { - color: #fff; - letter-spacing: 2px; - text-transform: uppercase; - background-color: #1a1b1f; - padding: 12px 25px; - font-size: 12px; - line-height: 20px; - transition: all .2s; -} - -.button-primary:hover { - color: #fff; - background-color: #32343a; -} - -.button-primary:active { - background-color: #43464d; -} - -.navbar-no-shadow-container { - z-index: 5; - background-color: rgba(0, 0, 0, 0); - width: 100%; - max-width: 1140px; - margin-left: auto; - margin-right: auto; - padding: 20px; -} - -.container-regular { - width: 100%; - max-width: 1260px; - min-height: 30px; - margin-left: auto; - margin-right: auto; -} - -.navbar-wrapper { - justify-content: space-between; - align-items: center; - display: flex; -} - -.navbar-brand { - text-align: left; - flex: 0 auto; -} - -.nav-menu { - justify-content: space-between; - align-items: center; - margin-bottom: 0; - padding-bottom: 0; - padding-left: 0; - display: flex; -} - -.nav-button-wrapper { - margin-left: 120px; -} - -.navbar-logo-left-container { - z-index: 5; - background-color: rgba(0, 0, 0, 0); - width: 1030px; - max-width: 100%; - margin-left: auto; - margin-right: auto; - padding: 15px 20px; -} - -.navbar-logo-left-container.shadow-three { - width: 100%; - max-width: 1140px; - margin-bottom: 0; - padding-top: 20px; - padding-bottom: 20px; -} - -.nav-menu-two { - justify-content: space-between; - align-items: center; - margin-bottom: 0; - display: flex; -} - -.nav-divider { - background-color: #e4ebf3; - width: 1px; - height: 22px; - margin-left: 15px; - margin-right: 15px; -} - -.text-span-4 { - color: var(--black); -} - -.list-item { - display: block; -} - -.clients-image-copy { - margin-left: auto; - margin-right: auto; - display: block; -} - -.paragraph-light-copy { - opacity: .6; - text-align: center; - padding-left: 20px; - padding-right: 20px; -} - -.image-5 { - margin: auto; -} - -.accordion-toggle { - align-items: center; - min-width: 100%; - height: 80px; - min-height: 0; - display: inline-block; - position: absolute; - overflow: visible; -} - -.accordion-toggle.w--open { - display: block; - position: absolute; -} - -.accordion-1 { - text-align: left; - object-fit: cover; - align-items: center; - min-width: 100%; - margin-left: auto; - margin-right: auto; - display: block; - position: relative; -} - -.text-block-5 { - text-align: left; - margin-left: auto; - margin-right: auto; - padding-left: 20px; - padding-right: 20px; -} - -.text-block-6 { - text-align: left; - margin: 20px auto; - padding-left: 20px; - padding-right: 20px; - display: inline-block; - position: relative; -} - -.text-block-7, .text-block-8 { - display: inline-block; -} - -.dropdown-list { - display: block; - position: absolute; - overflow: visible; -} - -.dropdown-list.w--open { - display: block; -} - -.text-block-9 { - display: flex; - position: relative; -} - -.dropdown, .dropdown-toggle { - display: block; -} - -.text-block-10 { - padding: 20px; -} - -.accordion-1-copy { - text-align: left; - object-fit: cover; - align-items: center; - min-width: 100%; - margin-left: auto; - margin-right: auto; - display: block; - position: relative; -} - -.ticker-list { - grid-column-gap: 16px; - grid-row-gap: 16px; - grid-template-rows: auto; - grid-template-columns: 1fr 1fr 1fr 1fr; - grid-auto-columns: 1fr; - width: 100%; - height: 100%; - padding-left: 0; - list-style-type: none; - display: grid; - overflow: auto; -} - -.container-ticker { - max-width: 100%; - display: block; -} - -.section-ticker { - width: 100%; -} - -.ticker-item, .list-item-3, .list-item-4, .list-item-5 { - text-align: center; -} - -.ticker-title { - text-align: center; - margin-bottom: 8px; - font-size: 40px; - font-weight: 600; - line-height: 48px; - display: inline-block; -} - -.clients-image-copy { - margin-left: auto; - margin-right: auto; -} - -.navigation-item-copy { - opacity: .6; - letter-spacing: 1px; - text-transform: uppercase; - margin-right: 0; - padding: 9px 20px; - font-size: 12px; - font-weight: 500; - line-height: 20px; - text-decoration: none; - display: none; -} - -.navigation-item-copy:hover { - opacity: .9; - outline-offset: 0px; - border-bottom: 1px solid #fe5f03; - outline: 3px #32343a; -} - -.navigation-item-copy:active { - opacity: .8; -} - -.navigation-item-copy.w--current { - opacity: 1; - color: #1a1b1f; - font-weight: 600; -} - -.navigation-item-copy.w--current:hover { - opacity: .8; - color: #32343a; -} - -.navigation-item-copy.w--current:active { - opacity: .7; - color: #32343a; -} - -.footer-link-copy { - color: #1a1b1f; - margin-top: 12px; - margin-bottom: 6px; - font-size: 14px; - line-height: 16px; - text-decoration: none; - display: none; -} - -.footer-link-copy:hover { - color: rgba(26, 27, 31, .75); -} - -.clients-image-copy { - min-width: 200px; - margin-left: auto; - margin-right: auto; - display: block; -} - -.image-6 { - margin-right: 0; - padding-top: 20px; -} - -.accordion-2-copy, .accordion-3-copy, .accordion-4-copy, .accordion-5-copy { - text-align: left; - object-fit: cover; - align-items: center; - min-width: 100%; - margin-left: auto; - margin-right: auto; - display: block; - position: relative; -} - -.section-copy { - margin-bottom: 40px; - margin-left: 0; - margin-right: 0; - display: block; - position: relative; -} - -.section-copy.cc-cta { - background-color: #f4f4f4; - margin-left: 0; - margin-right: 0; - padding-left: 80px; - padding-right: 80px; - display: none; -} - -.section-copy.cc-store-home-wrap { - background-color: var(--white); -} - -.link-block { - display: none; -} - -.section-3 { - background-color: #000; - border: 2px solid #000; - margin-top: auto; - margin-bottom: auto; -} - -@media screen and (min-width: 1280px) { - .button.cc-jumbo-button.cc-jumbo-white { - margin-bottom: 40px; - } - - .heading-jumbo-small { - color: var(--black); - } - - .motto-wrap { - background-image: none; - } - - .project-overview-header.cc-project-3-header { - background-color: #fff; - background-image: none; - } - - .home-content-wrap { - margin-bottom: 80px; - } - - .about-grid.cc-about-2 { - margin-bottom: 40px; - } - - .footer-social-block { - display: none; - } - - .logos-title-large { - margin-bottom: 40px; - } - - .clients-image { - flex: 0 auto; - min-width: 180px; - margin-top: 0; - margin-left: 20px; - margin-right: 20px; - padding-top: 0; - padding-bottom: 0; - } - - .text-block-2 { - color: var(--black); - } - - .gallery-slide-text { - color: var(--white); - text-align: center; - top: 0%; - bottom: auto; - left: 0%; - right: 0%; - } - - .text-span-2 { - color: var(--black); - } - - .about-grid-copy { - display: none; - } - - .about-grid-copy.cc-about-2 { - margin-bottom: 40px; - } - - .clients-image-kava { - flex: 0 auto; - margin-left: 20px; - margin-right: 20px; - display: none; - } - - .project-overview-header-copy.cc-project-3-header { - background-color: #fff; - background-image: none; - } - - .logos-title-large-copy { - margin-bottom: 40px; - } - - .div-block-2 { - margin-left: auto; - margin-right: auto; - } - - .text-block-6 { - padding-left: 20px; - padding-right: 20px; - } - - .clients-image-copy { - flex: 0 auto; - min-width: 180px; - margin-top: 0; - margin-left: 20px; - margin-right: 20px; - padding-top: 0; - padding-bottom: 0; - } - - .image-7 { - object-fit: contain; - } -} - -@media screen and (min-width: 1920px) { - .section { - display: none; - } - - .section.cc-store-home-wrap { - width: 100%; - display: block; - } - - .image-7 { - object-fit: cover; - } - - .section-copy { - display: none; - } - - .section-copy.cc-home-wrap { - display: block; - } - - .body { - grid-column-gap: 16px; - grid-row-gap: 16px; - aspect-ratio: 16 / 9; - object-fit: cover; - grid-template-rows: auto auto; - grid-template-columns: 1fr; - grid-auto-columns: 1fr; - grid-auto-flow: row; - justify-content: space-around; - min-width: 100%; - max-width: 100%; - height: 100%; - min-height: 100px; - max-height: 336.13%; - display: block; - overflow: visible; - } -} - -@media screen and (max-width: 991px) { - .section.cc-cta { - padding-left: 0; - padding-right: 0; - } - - .styleguide-block { - text-align: center; - } - - .button { - justify-content: center; - } - - .button.cc-contact-us { - display: none; - } - - .paragraph-light { - text-align: center; - } - - .heading-jumbo { - font-size: 56px; - line-height: 70px; - } - - .logo-link.w--current { - flex: 1; - } - - .menu-icon { - display: block; - } - - .menu { - margin-left: 0; - position: static; - } - - .navigation-wrap { - background-color: #fff; - } - - .navigation { - padding: 25px 30px; - } - - .navigation-item { - text-align: center; - padding: 15px 30px; - transition: background-color .4s, opacity .4s, color .4s; - } - - .navigation-item:hover { - background-color: #f7f8f9; - } - - .navigation-item:active { - background-color: #eef0f3; - } - - .menu-button { - padding: 0; - } - - .menu-button.w--open { - background-color: rgba(0, 0, 0, 0); - } - - .navigation-items { - background-color: #fff; - } - - .cta-text { - width: auto; - } - - .cta-wrap { - width: auto; - padding: 80px 50px 90px; - } - - .intro-header { - background-position: 50%; - background-size: contain; - } - - .our-services-grid { - text-align: center; - grid-template: ". ." - ". ." - ". ." - / 1fr 1fr; - width: 80%; - margin-left: auto; - margin-right: auto; - } - - .service-icon { - text-align: center; - display: block; - } - - .contact-form-grid { - grid-row-gap: 50px; - text-align: center; - grid-template: "." - "." - / 1fr; - width: 80%; - margin-left: auto; - margin-right: auto; - } - - .get-in-touch-form { - text-align: left; - } - - .our-contacts { - grid-template: "." - "." - "." - / 1fr; - width: 80%; - margin-left: auto; - margin-right: auto; - } - - .team-members { - grid-template: ". ." - ". ." - ". ." - / 1fr 1fr; - } - - .team-member-title-wrap { - margin-bottom: 30px; - } - - .project-details-grid { - grid-row-gap: 50px; - text-align: center; - grid-template: "." - "." - / 1fr; - width: 80%; - margin-left: auto; - margin-right: auto; - } - - .blog-detail-header-wrap { - width: 70%; - } - - .detail-header-image { - height: 460px; - } - - .blog-item { - width: 80%; - } - - .blog-preview-image { - height: 460px; - } - - .blog-summary-wrap { - width: 100%; - } - - .about-grid { - grid-row-gap: 50px; - text-align: center; - grid-template: "." - "." - / 1fr; - } - - .about-grid.cc-about-2 { - grid-template-columns: 1fr; - grid-template-areas: "." - "."; - } - - .intro-text { - width: auto; - } - - .collection-wrap { - flex-flow: column; - align-items: center; - margin-left: 0; - margin-right: 0; - } - - .blog-preview-wrap { - text-align: center; - width: 80%; - padding-right: 15px; - } - - .container-2 { - max-width: 728px; - } - - .footer-content { - grid-column-gap: 60px; - } - - .clients-title { - margin-bottom: 32px; - } - - .gallery-wrapper { - grid-template-columns: 1fr 1fr; - } - - .gallery-slider-left { - left: -20px; - } - - .gallery-slider-right { - right: -20px; - } - - .features-wrapper { - justify-content: space-between; - } - - .features-wrapper-two { - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; - } - - .features-left { - max-width: 100%; - margin-bottom: 40px; - } - - .features-right { - max-width: 100%; - } - - .navigation-home-page { - padding: 25px 30px; - } - - .about-grid-copy { - grid-row-gap: 50px; - text-align: center; - grid-template: "." - "." - / 1fr; - } - - .about-grid-copy.cc-about-2 { - grid-template-columns: 1fr; - grid-template-areas: "." - "."; - } - - .our-services-grid-copy { - text-align: center; - grid-template: ". ." - ". ." - ". ." - / 1fr 1fr; - width: 80%; - margin-left: auto; - margin-right: auto; - } - - .navbar-wrapper-three { - justify-content: space-between; - } - - .navbar-brand-three { - position: relative; - } - - .nav-menu-wrapper-three { - background-color: rgba(0, 0, 0, 0); - top: 70px; - } - - .nav-menu-three { - background-color: #fff; - border-radius: 50px; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - margin-top: 10px; - padding: 20px; - display: flex; - box-shadow: 0 8px 50px rgba(0, 0, 0, .05); - } - - .nav-link { - padding-left: 5px; - padding-right: 5px; - } - - .nav-dropdown-list.shadow-three.w--open { - position: absolute; - } - - .menu-button-2 { - padding: 12px; - } - - .menu-button-2.w--open { - color: #fff; - background-color: #a6b1bf; - } - - .nav-menu-wrapper { - background-color: rgba(0, 0, 0, 0); - } - - .nav-menu { - background-color: #fff; - flex-wrap: wrap; - justify-content: space-around; - align-items: center; - padding-left: 0; - display: flex; - } - - .nav-button-wrapper { - width: 100%; - margin-left: 0; - } - - .nav-menu-two { - background-color: #fff; - border-radius: 50px; - flex-wrap: wrap; - justify-content: space-around; - align-items: center; - margin-top: 10px; - padding: 20px; - display: flex; - box-shadow: 0 8px 50px rgba(0, 0, 0, .05); - } - - .navigation-item-copy { - text-align: center; - padding: 15px 30px; - transition: background-color .4s, opacity .4s, color .4s; - } - - .navigation-item-copy:hover { - background-color: #f7f8f9; - } - - .navigation-item-copy:active { - background-color: #eef0f3; - } - - .section-copy.cc-cta { - padding-left: 0; - padding-right: 0; - } -} - -@media screen and (max-width: 767px) { - .section { - margin-left: 15px; - margin-right: 15px; - } - - .section.cc-cta { - padding: 15px; - } - - .section.cc-home-wrap, .section.cc-store-home-wrap { - margin-left: 15px; - margin-right: 15px; - } - - .container { - text-align: center; - } - - .paragraph-bigger { - font-size: 16px; - line-height: 28px; - } - - .rich-text { - text-align: left; - width: 90%; - max-width: 470px; - } - - .heading-jumbo { - font-size: 50px; - line-height: 64px; - } - - .heading-jumbo-small { - font-size: 30px; - line-height: 52px; - } - - .logo-link { - padding-left: 0; - } - - .navigation { - padding: 20px 30px; - } - - .cta-wrap { - padding-left: 30px; - padding-right: 30px; - } - - .intro-header { - background-position: 50%; - background-size: contain; - } - - .intro-content { - width: 80%; - } - - .our-services-grid { - grid-row-gap: 60px; - grid-template: "." - "." - "." - "." - "." - "." - / 1fr; - } - - .status-message.cc-no-data { - width: 80%; - max-width: 470px; - } - - .contact-form-wrap { - padding: 30px; - } - - .text-field.cc-contact-field, .text-field.cc-textarea { - text-align: left; - } - - .team-pic { - height: 300px; - margin-bottom: 30px; - } - - .team-member-name { - font-size: 16px; - line-height: 28px; - } - - .project-name-wrap { - margin-bottom: 30px; - } - - .project-name-link { - font-size: 16px; - line-height: 28px; - } - - .detail-image { - margin-bottom: 15px; - } - - .blog-detail-header-wrap { - text-align: left; - width: 90%; - max-width: 470px; - } - - .blog-item { - width: 90%; - max-width: 470px; - } - - .blog-summary-wrap { - text-align: center; - } - - .utility-page-wrap { - padding: 15px; - } - - ._404-wrap { - padding: 30px; - } - - .footer-dark { - padding-left: 15px; - padding-right: 15px; - } - - .footer-wrapper { - flex-direction: column; - align-items: center; - } - - .footer-content { - grid-template-columns: 1fr; - margin-top: 40px; - } - - .footer-block { - align-items: center; - } - - .footer-link:hover { - color: rgba(26, 27, 31, .75); - } - - .footer-social-block { - margin-top: 20px; - margin-left: -20px; - } - - .footer-social-link { - margin-left: 20px; - } - - .footer-divider { - margin-top: 60px; - } - - .logos-title-large { - padding: 60px 15px; - } - - .clients-wrapper { - flex-wrap: wrap; - justify-content: space-around; - margin-bottom: -20px; - } - - .clients-image { - margin-bottom: 30px; - margin-left: 20px; - margin-right: 20px; - } - - .gallery-slider { - padding: 60px 15px; - } - - .gallery-slide { - margin-left: 10px; - margin-right: 10px; - } - - .gallery-slide-text { - line-height: 30px; - } - - .gallery-slider-left { - left: -20px; - } - - .gallery-slider-right { - right: -20px; - } - - .features-metrics { - padding: 60px 15px; - } - - .features-wrapper { - flex-wrap: wrap; - margin-bottom: -40px; - } - - .features-block { - width: 50%; - margin-bottom: 40px; - } - - .features-list { - padding: 60px 15px; - } - - .navigation-home-page { - padding: 20px 30px; - } - - .clients-image-kava { - margin-bottom: 30px; - margin-left: 20px; - margin-right: 20px; - } - - .project-overview-header-copy.cc-project-3-header { - margin-left: auto; - margin-right: auto; - } - - .section-copy.cc-home-wrap, .section-copy.cc-store-home-wrap { - margin-left: 15px; - margin-right: 15px; - } - - .our-services-grid-copy { - grid-row-gap: 60px; - grid-template: "." - "." - "." - "." - "." - "." - / 1fr; - } - - .logos-title-large-copy, .logos-title-large-2 { - padding: 60px 15px; - } - - .clients-image-2 { - margin-bottom: 30px; - margin-left: 20px; - margin-right: 20px; - } - - .navbar-brand-three { - padding-left: 0; - } - - .nav-menu-three { - border-radius: 20px; - flex-direction: column; - padding-bottom: 30px; - } - - .nav-menu-block { - flex-direction: column; - } - - .nav-link { - padding-top: 10px; - padding-bottom: 10px; - display: inline-block; - } - - .nav-dropdown { - flex-direction: column; - align-items: center; - display: flex; - } - - .nav-dropdown-toggle { - padding-top: 10px; - padding-bottom: 10px; - } - - .nav-dropdown-list.shadow-three { - box-shadow: 0 8px 50px rgba(0, 0, 0, .05); - } - - .nav-dropdown-list.shadow-three.w--open { - position: relative; - } - - .nav-dropdown-list.shadow-three.mobile-shadow-hide { - box-shadow: none; - } - - .nav-link-accent { - margin-right: 5px; - padding-top: 10px; - padding-bottom: 10px; - display: inline-block; - } - - .mobile-margin-top-10 { - margin-top: 10px; - } - - .navbar-brand { - padding-left: 0; - } - - .nav-menu { - flex-direction: column; - padding-bottom: 30px; - padding-left: 0; - } - - .navbar-logo-left-container { - max-width: 100%; - } - - .nav-menu-two { - border-radius: 20px; - flex-direction: column; - padding-bottom: 30px; - } - - .nav-divider { - width: 200px; - max-width: 100%; - height: 1px; - margin-top: 10px; - margin-bottom: 10px; - } - - .image-5 { - margin-left: auto; - margin-right: auto; - } - - .footer-link-copy:hover { - color: rgba(26, 27, 31, .75); - } - - .clients-image-copy { - margin-bottom: 30px; - margin-left: 20px; - margin-right: 20px; - } - - .section-copy { - margin-left: 15px; - margin-right: 15px; - } - - .section-copy.cc-cta { - padding: 15px; - } - - .section-copy.cc-home-wrap, .section-copy.cc-store-home-wrap { - margin-left: 15px; - margin-right: 15px; - } -} - -@media screen and (max-width: 479px) { - h1 { - font-size: 36px; - line-height: 52px; - } - - .section, .section.cc-home-wrap { - margin-left: auto; - margin-right: auto; - } - - .rich-text { - width: 100%; - max-width: none; - } - - .paragraph-light { - padding-right: 0; - } - - .heading-jumbo { - font-size: 36px; - line-height: 48px; - } - - .menu { - margin-left: 15px; - } - - .navigation { - padding-left: 20px; - padding-right: 20px; - } - - .menu-button, .menu-button.w--open { - flex: none; - } - - .cta-wrap { - padding-left: 15px; - padding-right: 15px; - } - - .intro-header { - background-position: 50%; - } - - .intro-content { - margin-left: auto; - margin-right: auto; - } - - .status-message.cc-no-data, .contact-form-grid { - width: 100%; - } - - .our-contacts { - width: 90%; - } - - .team-members { - grid-template: "." - "." - "." - "." - "." - "." - / 1fr; - } - - .project-details-grid { - width: 100%; - } - - .blog-detail-header-wrap, .blog-item { - width: 100%; - max-width: none; - } - - .container-2 { - max-width: none; - } - - .clients-image { - margin-left: 10px; - margin-right: 10px; - } - - .gallery-wrapper { - grid-template-columns: 1fr; - } - - .gallery-slide-wrapper { - max-width: 100%; - margin-right: 0%; - } - - .gallery-slider-left { - left: -20px; - } - - .gallery-slider-right { - right: -20px; - } - - .features-right { - margin-bottom: -30px; - } - - .features-block-two { - flex-direction: column; - justify-content: flex-start; - align-items: flex-start; - margin-bottom: 30px; - } - - .features-image { - margin-bottom: 10px; - } - - .navigation-home-page { - padding-left: 20px; - padding-right: 20px; - } - - .clients-image-kava { - margin-left: 10px; - margin-right: 10px; - } - - .project-overview-header-copy.cc-project-3-header { - margin-left: auto; - margin-right: auto; - } - - .clients-image-2 { - margin-left: 10px; - margin-right: 10px; - } - - .nav-menu-three, .nav-menu { - flex-direction: column; - } - - .nav-button-wrapper { - width: auto; - } - - .nav-menu-two { - flex-direction: column; - } - - .ticker-list { - text-align: left; - align-content: center; - justify-content: center; - align-items: start; - justify-items: center; - text-decoration: none; - } - - .clients-image-copy { - margin-left: 10px; - margin-right: 10px; - } - - .section-copy, .section-copy.cc-home-wrap { - margin-left: auto; - margin-right: auto; - } -} - -#w-node-a101090e-e4c6-0041-136e-760e5bdc10c6-a0447e95 { - grid-area: 1 / 1 / 2 / 2; -} - -#w-node-a101090e-e4c6-0041-136e-760e5bdc10d1-a0447e95, #w-node-a101090e-e4c6-0041-136e-760e5bdc10d3-a0447e95 { - grid-area: 1 / 2 / 2 / 3; -} - -#w-node-a101090e-e4c6-0041-136e-760e5bdc10de-a0447e95, #w-node-_06743181-4112-4a4e-bafd-08cc47f4acbd-a0447e95 { - grid-area: 1 / 1 / 2 / 2; -} - -#w-node-_06743181-4112-4a4e-bafd-08cc47f4acca-a0447e95 { - grid-area: 1 / 2 / 2 / 3; -} - -#w-node-ab5c6393-74d9-dbcf-c131-45692eb19df6-51e627e8, #w-node-ab5c6393-74d9-dbcf-c131-45692eb19dff-51e627e8, #w-node-ab5c6393-74d9-dbcf-c131-45692eb19e11-51e627e8 { - grid-area: span 1 / span 1 / span 1 / span 1; -} - -@media screen and (max-width: 991px) { - #w-node-a101090e-e4c6-0041-136e-760e5bdc10c6-a0447e95 { - grid-area: 2 / 1 / 3 / 2; - } - - #w-node-a101090e-e4c6-0041-136e-760e5bdc10d1-a0447e95 { - grid-area: 1 / 1 / 2 / 2; - } - - #w-node-a101090e-e4c6-0041-136e-760e5bdc10d3-a0447e95 { - grid-area: 2 / 1 / 3 / 2; - } - - #w-node-a101090e-e4c6-0041-136e-760e5bdc10de-a0447e95 { - grid-area: 1 / 1 / 2 / 2; - } - - #w-node-_06743181-4112-4a4e-bafd-08cc47f4acbd-a0447e95 { - grid-area: 2 / 1 / 3 / 2; - } - - #w-node-_06743181-4112-4a4e-bafd-08cc47f4acca-a0447e95 { - grid-area: 1 / 1 / 2 / 2; - } -} - - diff --git a/cent.webflow/css/webflow.css b/cent.webflow/css/webflow.css deleted file mode 100644 index f39765c..0000000 --- a/cent.webflow/css/webflow.css +++ /dev/null @@ -1,1827 +0,0 @@ -@font-face { - font-family: 'webflow-icons'; - src: url("data:application/x-font-ttf;charset=utf-8;base64,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") 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-code-block { - margin: unset; -} -pre.w-code-block code { - all: inherit; -} -.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 !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::-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; - 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 { - cursor: auto; - font-style: normal; - letter-spacing: normal; - list-style: disc; - 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; - -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%); - transform: translate(0, -50%); -} -.w-lightbox-thumbnail .w-lightbox-wide { - left: 50%; - height: 100%; - -webkit-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; -} -.wf-layout-layout { - display: grid; -} -.w-code-component > * { - height: 100%; - width: 100%; - position: absolute; - top: 0; - left: 0; -} diff --git a/cent.webflow/detail_post.html b/cent.webflow/detail_post.html deleted file mode 100644 index 3b5b867..0000000 --- a/cent.webflow/detail_post.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - telos spark - - - - - - - - - - - - - - - -
-
-
-

-
-
-
-
-
-
-
-
-
-
-
-
Start Earning Now
-
Simply deposit crypto into incentivized pools of your choice and start earning today!
-
- -
Start Now
-
-
-
-
-
-
-
- -
-
- - - - \ No newline at end of file diff --git a/cent.webflow/faqs.html b/cent.webflow/faqs.html deleted file mode 100644 index 3822e2e..0000000 --- a/cent.webflow/faqs.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - FAQs - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
FAQs
-
Frequently Asked Questions
-
-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
- -
-
- - - - \ No newline at end of file diff --git a/cent.webflow/images/App-Icon-256-01.png b/cent.webflow/images/App-Icon-256-01.png deleted file mode 100644 index 14ba8d1fd81265a78ae361e77fc1f07641abe10a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7691 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 diff --git a/cent.webflow/images/Cent-black-on-white-p-500.png b/cent.webflow/images/Cent-black-on-white-p-500.png deleted file mode 100644 index 641d19fa089ea3420b8de330f81345d00e99ef72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4591 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 diff --git a/cent.webflow/images/Cent-black-on-white-p-800.png b/cent.webflow/images/Cent-black-on-white-p-800.png deleted file mode 100644 index d872faa3e5a2789255a018f41daac39545d8b2da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7524 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 diff --git a/cent.webflow/images/Cent-black-on-white.png b/cent.webflow/images/Cent-black-on-white.png deleted file mode 100644 index 5e1cbb87d0170d405f83d1e961fd2cd886c5f992..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21993 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≻K%4n64 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 diff --git a/cent.webflow/images/Untitled-15-p-1080.png b/cent.webflow/images/Untitled-15-p-1080.png deleted file mode 100644 index 54aa678de7fe4accb535a6f7ee37dac350f45162..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35163 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 Sv%YQz`M}fF&t;ucLK6T%=w6Nh diff --git a/cent.webflow/images/Untitled-15-p-500.png b/cent.webflow/images/Untitled-15-p-500.png deleted file mode 100644 index 3008c6db4f6fb699172fddbff8f04257166777b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15520 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 diff --git a/cent.webflow/images/Untitled-15-p-800.png b/cent.webflow/images/Untitled-15-p-800.png deleted file mode 100644 index a42063517b2ff01ea825261bf05ea9e3894f5c60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24840 zcmd>lWm6nq@GdM8G`Iy@2ol`g771>_CAbE6x5XuRa0~9i-GaM&aCdiG?*8h3U)`#E zzrdZ^nW{b2bGm0vpFYoYKPN(2Q3@U96ABCr47!Z8gbEA{91sQukbwjTZQ-9I(}Fg@ zD9fvTeSd$4g@uKKgOiYue0zI)eSHN008klGQE>?5{pIE5O%EP=h>L#}6O-WOM3J;NUtrIeCA5(bfIFv$K<#nHdog@%;QuK|vuPAoK=#=i}oO z5fLRIAjr=zh>VQd+}w;3P4n{deltY6yu75Oq`bSkdw+*KJUqNZ-f(bmo}QkNk&)Ti zIR*y@L*%p3(9kwEHvazo>+I}eU|`6?!otPH9W9h9LFh4(!h=@2jIjN+ijDdkMIy&m(<7;X8BT_guIy(AI9p>QR;7uR# zO$#tPJKNXS_x1|0=}LDtE_dpS*LH7RSy_z|PxsO-4phl~Q-smf)N<*MqM@O&x3`a! z%9I25eDmufB_-Y4+q3M*4pRF46O_uIJJ{adURzsxety2Rv}E6%FX+f7XxA-tR6TbrI9kGlKEMZ??d#tt~%^ z^!K&V_nFqQgEh!6-EU=W@x4n8b@N*b2j$?F^~oJbdumVqh@Do^(bhR6%lz#fqFI}7 z)SBq7_*=!k@!C%M`empiIiL0n+#0KcxPZ>&}hx<^BW{6 z>~DGZ>csrM-|sQHh>@7_B8Sd`nwT!@hUs|!7WbdsyuLlkQT+)jxn}uOfBtpo5a3$hHL$qUz2ec6wHuFhCd?2~jnV%(D(pAGP_n_xDbYgLMvz%rwhXL+qb$M)A~C6w2Wg zfN?QxF$p)DLKFnul98DZ45lR=ENj#}>2f3uTs4P96}+#N4Q}6FO6Oba-OjMYGhamyeX47#p z744DmVwfF3FlI0Uw7EI}`VT)2gwzATMiSKm0Vt4ArGb4gz3fQ5Z~t4!*s#=EvF?g0 z(~mnCUJQ*2FaU3z7*Epu_yklG2#EuQgC+jfTiPaAo@oD%q95JLW5J9_qK1H6I(*SD z|8HIJMzF}iK*s;OP&gPn+)#ThS8ySiP>m>r@+DGfl9I6Rh!V4?uG4?U_1hT0$d^UQ zqs1`q5rJ~|1qY_b!oGy8PMrO0E|hv_uVxQb12+dGaa?b{9H+&C>d(isZ2F zbNgq*unPcNKSirRlm6m5K4VHp?lxY7Eh$s%&vYS8h`?-=0#H66pcO9b#oVPKWQ>8C z0mDu0&0}uD3KQrgPv`ilu9kp5a|9pBgu(Iqc!gDRh1TK>zI|m0dVk*VzVftIiQxLD z3rjx#k%a2kxG&A1zRUHL-9?v#Bedgki^&Rlds~IM(7a)Wm;tedtA*P8WTW}JC6`1( z64unLa5L>VK@3`h z&K~$V`&Pw9Wi*8R=}v;oFANL|yIgH8|4d^`?72Xinx}_#Hk- zJO7_9gIISQb+^{nc9Rtk3rQ+_Fj~sCrN?$9f&bm&3gospN7j$3<$mM+W#xi2%aVB_ zP?PZRLzxbPaS1OwWrTYD#3`ca#Pdw}D?+eIm4&-)IO5}Mu*7tNar*k(!?oY>kx^?GO zG>iY<#(S40jSR=OZ7dDi%Am%Qfg>ZK{2cQqjJdtHda1CtTrJMzuNSnXK*A=xaKq{? z!>^Ry*miv8c@d94nVbL{IRK)MfNYPeY=igb#V*LdHFuH6%^(@D&+~t3_MvL7lUV$B zh+{<{VfOYZ*su?*mUi}M&Zu}2;+0J0rv~hOF!{ZZe{sERnP02t6@iRsnjQp@ki@@tw|Z)=KF-6NKeB6+EP%=SsYY%(P|_=5LAX3_5fXzXr)`vfMrJ!wEm) zY&^fE$QOv!!aEI9r+lYm3dbGN?0TNZ5QbcjzP}|{YX)~$dt7)EMM;V`IIWdcROAWb zp6oP!z-bs93jI|Cav}6L68z^aIK=bAmQt9Lc~I_T%EQxkLRN`Wi@WZhBn24)Whko0 z_CwCwjD^UHwiX8xb zTw(ipkCgGT)pC&GLX@WO{Qxl@K&AyK19#nx;dkzw({|e+*JW^FOdj4{BVi89N;Phz zt-Uy3cQCeL195&UGZAQ-2p>87T`@@&=sX;nxo}u*VE5HDv7-S`ZAxR|$CaV$(v%9; zX`Pkof-9s%UFw9L9J{XZBGq>*{o3OqO^S88X7#%ASO(Y|rsVUYo6~VjZw>b0lLMyc zdmR<)zigzCcvAv2Tur0j3@h?>HhbxJ$IoXt^0Blw;W)M}D=y57Y>X{j@ znr*gus;_x(YjRXyO`pttSrnNkaLh*Z4{970R|?=8p&%6^L*BR zd2z&WF;G*c(ZT*LIy?C?s(*$;vtUzA$Uz3xum4_^Vc)4OyDO`A;Q+7wB#XcsHVJvS5GHZlNwMr z?s!=DUa?gnCzm_J@uQ}W`-N(Jyi+@x{kEYUV=1`uKU z+mpZrC!UkF3I&hfK8KP>7WR;o$o-Mh`=M0IckeSzdGfcY4)h^2&F}Z8O8PYhKa8u{ zNW1Y-5Jo4`EU|EaJz|0j90<`gZVAXl5{DfK+x(0X-QdX6hD?ta+?65q+}?!@(UUvYI-SN)Ei8tNu4?4`Fg7>G{_lH>Md?kOsXjs(0iMIFoY#o}!4%Gba*k7mV zv$!BP)M}k;`Kpi+00Vnk;qlK@atGDy8tL07fKhe+qOoHC7&>NSRv)U~oXu#YY(#R^ z@}Ezf%n0lxolh*#_)kg~vg&nGsVT(h`Fzy&{<>)Jb{(;3KyIL^s>%boTg-X9_kVvO z=(_T-2SZi9tUq*Oe819btAjxH@tI1(!<4vxq>t3)8*e$~B|AI;CX3ny&_Fe1Xc5le#a4bEef20ks zcPt4+=yTI#Fr+>t#L}s^0sQQp7!fR103ndC@W1F1d2}*Bz3zN?-@}s&k#;R+7SLE% zx!80H5&nEOH#oA$`-J!n9$=)rrk>3P?0#(JKY$cZ8CjbflSL*oRdm~i6NAyhuDafO z2s#Z>sPf~&?0v6XpX`UG$IE^9>~p;NsN)zC08f8k$lit-bno z_U90jZe;S7;GMh|uI0ZbotX*}cW)kN-&I*IOTLbtGY;7cL#|>iaIY)veNS{BR-a#J zP02c~08LKR;VF>IQaKidPjLkxVTY&ujT(~Pt>k*4@MOO0FJt3*wy9<7P0f3Q8 z&X+@Dlih6{4t&^`*0Yx}BB*sPEA)8)SnpT8Q7jW*b|(b7?kc^{JyChcv<=xdly}+Bj0j< z>HmrhF{UN8>$s>;_|Vw@5C@VK1v*9W)Ois7G&u7!W-?TgH0pj_5<~#pbv-G^iV3sW z4n-MRph}_*_#ZU(BP*4F zvR_h5Gs%qN7TH)(l4Bta> zp~MOS$hmQsDAMCfU5Xjo5r}$2vlfp-F6%{)+JWXcej!o-8?4 za%#jAYYfxS$cB#uJ(Y{D1hm$m7aGiDPM{Fr>Fh)wf4-B!H*QoFz<1G(!I11#S0$v=$Sg1HezmO)1WcSR!_z%{ zpOg$kos~11j!fHe4og=h@8bmi;Cb7Q^`DgkZOT4E>SVxFcUP_<1eAu}>gG`#I*x4> zQ*yYpo{vC|I&-b;-U}D4U(-abl)KVE0Jjg7E>PsPDRWAX773~A=5&t;YWlSQM2`sJ z#C4ZgZmlByx_-R}UU)zq$M9)QAOGYDJ78aOb`V)Hd*>U_34R_VLXm3_`7_lY(# z%kbBVdeDUT?MoR<&65yONR8HZ&3J7xGLs@6g+6phznaJMER``I8HNRD+Y*8M;{VYp z!c+cc=IfPxf*OKxK}4|O$!Q|`=k;=N;|YB1%;9xyXk4>UrjS@o6CyE;BC&uc-zA=Z z<%92ZEHJ{6Y?;eLE3}s<_i~l1w*XEi zF-l0_UIdqJ`N@nBp$tubkULl~VVKD2Q*42ujd{sD;)#=FBM$f#2sP$pC+vOe%|(Mo zL0T55>8FP`SKgb}Vb#({Ke9a-#zpJPw$bp;aYEOPFhlyyF@7mvQUZO zce?pS@&tUgPuTxV7Z)Yu1x!e~^k4UXdQkv>_uNa;)W3}pvjUip%ioqE;-hKE$Ec4B zI`@C9%cMF>O=$)VG!+=Ub}#t!G!c!R4>wp7Uwj3M1Y8MSKlb$#ywkAQ^SvfM&@v4{ zJM!#CcrVq-F<~t#*X)>A{(_ID{wt|}lt6f4+1Kq_+*DRp4d_HJ)DeSYBZQRbQZ@It zNM7E-)**=i8jJQq{;@OJ`nw+hO1XbhqdQlI zFRdBrJT~S+LOT)IIMN!wy*yvCYt}uT%_k%25;*rjKs3l%*bmPky&l?YtRdM)yP3dL z#NEIu27Ir?_+;x)<2B^`>5@}y>{#{a>@}N-rUWyuh#9Q#k847OJZ8=o7r)F%kxKaw zm4QXP^1iQ^8=w~M6ByVX|7%N0peFrJ%~(eDn<3?NsOuL_1(^y#G7R-`!bU3&q;#94 zbWl2nXsEeGq2M8r!E~)H-}=uEkRMEdHqvA6@d~CWy4HeXd6~1_&9UVbuufr00_fvy7-*y&DY%=*KNWYdpFG8} zT}Z)Oum;=D@0&T+3H0u3lyPzb)>2O!M*VNuwkR*y6-ilJO^H}UKDddX0zv3Hwz0pg z5Bkecs;*xei`r?YT9R^vW>qG|bowPKLxIpy&X}9k=Ar_wgQBbMGm3l-((cZW&P&~t zjydPjCpr45UBFS{JGpL3=h+Q9F}B;%DI-R>dF9A*4EVKieJM=czGELpKg)y3sH3u!UUZj@5$ zsoVLE=)lsRL*H+Gw4ZQ}f}1hJspfGD&Cg404>Bre7@qHCQm{*HJEmHXS-u62w%1(e zR(4{FI2C;WBR#%gByL~I08g`Qz*@fskDbXF=ga>1{Y#A=w9rVxsEo6Z(GR8i^fPC# zXt{n;{`QxY#*7EPw1$RT|Jbsw)KkyG6PcI-{Og;+?Db=c|CKtBpan}BJ06V@i`7r@ z;K~p>nk7nbPYceLY~{FO3dvHlZ}x$e`f}X7-NU#HbaDP{SE9gYrCNk-hsdOm6ptmsoD-WhAd_(O3BCYcrk)q%hSM`RJ}pkHQ`ELm8cgix28UdrOxI*z z)J346mUY<07sLTh{TIh1dfvQq}ZpSqOX>Wj`GXhht*&cV8m1J$lc6x? z#O&bUWMf1LxWQwgB?H#NwRJ!ZD(47Ez-D@DuE;f{TxCB8J4RguMVN}A%tC(isZOGd z!n-)42zl6cb3-OhF4`f_CknnkC)ux!D70@>wxR_%d5kYRpAbK=(=7hDu@w0c5Oy!@ zFfh|!kE2q8$UoaUgCVHHonO?o9v%aa4SBtzJ8ywxd!G;2IegavI%Qmv?n(!mIn3^$ zo8RGTpG~@oAS5|#96MV4)Kw6mK(Ovkelq`}v3~XxJ)}4>S>3OT+PHQ3P{4oAcIRkK zX4l#hdgoVH{{mek3YdkCLmZ0kEb8+%D@ACz|N2IyWY@SX8|e(vtKm#8rv(a4KZ?e( z*uu(cg z$J|zYXW_Tk*->SbMIWoqj_(y-R>o9-)#=8m9hkv9xN zt;@1reT;gl@DTvtY+q~okxYrkl$!B}(gz_)hB9t%n{I9r{a*lRzq*MYcVY=Z$u66!=f;T8+0qIVK3DP&@t%#gsvAaBnv`q+}hyrV5boCKbU3&e~)M|G^wVw^~^pW2|fA$M?c3$3ACA59g$S_6;DtFKntZ zZXiAHsn&J_uN%ISAhoH5PZ`N*84 z9pC{4vzJo~H;yTXZ+;Y5KSiG)Hbl&`fy8OD57A>sSp^7HfI`a85wt2kwRKgY=v(Q$ zD(r%obyYDk&rp3KfD<0@yaA0x^Swo4*^oDu)lcG1nAr!qEL}wK>av zelYr{Fx85!OLtW=9(~uHXrA>ic-NE_E?kHqB~KG|Gl4^9>jlW3$fW%YM%GHBIZK?y zpY_6~f9UExYE{TSuIJW+l9`KK84r+3COlxLd22C@kb|bvJQ9`b^L&3YW_O~{rU94&<)iw%T6q>RD-g|K^!XlU3!_S2N1mqKn z(8R#HV)@Phv551|tdhvvEemm|fc~gX%k>9;?|WYvaH`@^7>mlhYs%TdjJS{nvCE;| zNi`P-X=QXa<0;w+ezUdX44h2sk!to>FXuI=9{|Aw@LD~D01 z{6%NIQ-W>F-AXjHH!7#&3aasCdD8EmgU3%2W%t}5(4izQiB;w}UkXSLscr=(f3z^i zL$G$NzqM%G9cd45MalT4h5R6rsM9N3`+% z1_2>?duCDWu2xAKMu6l=o3m15OcX^w`MXc}4lx|yAsG!7G6PvusMhyqezYd_aLmh* zcVX{kyo*tdp?sFo#Rvq!ggq~G-^KI5LXvfobeXLxbUV6C5IqBNf$$8Omn=p3g*Vx! z-wEvEr&!8792`9+d)CR#YT+N9SFF5ou~7#s6xnpIOZ}8I!UVj$8RPZn%1$4t=E;Od z^*O|zODxz(^j{Nx4W@Md!XL^Zf4$M=uc%+e(r&@-5qaOmOVNvGiW?lpeEei!`LH3XiD#XGpNf85d04>o}(I?{rG2=qGyC6al8YkLLP}%F(z|1%3o?} zEyshDgcsjr)Spfkg~MRaAZ^yaJ5}X#{KqWJ>xrB$gi){EV_9!5yFoF4{oQpyn8MhZ6!v($|yy^*OSt@jn{G^7U0JT`I0x@ui>1 zqhmv5@b?XQ1szRf$#b6mEy{ye?+-q_zlu~<1t&2$pM^g)B~`tisaE-3*N&>-_pKte zyiU7UWZ(`(m`$RHe@QLzb&s-J*d2G18vE3Nwp1oHGFtaqUpoQGHk4^oUWP%(5PBHc z5)T`Q9-SW~vS1|Tv0FXv2)pq5VkTwTYIap`e_ZpPYxz~Gn2$e!I(5FKTIjHvBij~B zZ2DhhZ5anob{5Cbv4)MF7MarRF%wSZVeN>>xLtkRPhZ*W_!)E=B1~0a)0*4LeR{jklG;D&ONoApo1gP`C>OtWcIxwmR1 zvtwH-VnvOt7ORLTNprC1|)$wwQT*XnNV2#0FU0-;o|17VGeY-X3dfq#!Z7Gh^_-w0S-f?{<;&a|0 z$1;vDJrlT;LOgHeHd#SOMJzmMt-CI$p_er;=Az+xSHq)gwKH9TfrxVkk*{W4e?-Sv zd+)GVUut`vYIfAPmQIUzEXN=fem#Dh6q3mZqbEE)y%IC!=z!M0*tpyF2CJhNFp|0> zEx%p}6V@0?bL%7sy~tZJ?7o+u&AQUzXSSc0+*zXaE@eOY)wiEA-u&dpOaJuI{_R<= zNVwDOV(noa`tB9LKG5P6WSZI^TGrVZWn5e6csR3v-`Pts=)9eg6PcF+PIgYp@ae@=SJ4nUN;iGsPNdGkR29{9cYH>Qu8wv_(dm|Tr;2B!rH^+Z@Tgk(obcQCC9o#9Eu>n1CLUQYg+*?ISD_%yZ4u6)Q4$&0Z8?hg!+9j1xM>_OSM^Jgecm8$U^!WVlQls zWqYM6q!m4peNS~}hm}y};_EwL{due^@ws_rPD&EEsPBEowdf;${kRkBe^*ZDn+kX` zl>|;g`hW1bBl0wupShan=wn`N6aB0zz3=yv57x!iCM`l}v2Wm{;GQjKM6LbF7=BhK z+(46iu0w3oG2y4e9C~qDrhEsI3`ewPFt>rVei!j{%JQ8fMoH3@h<*dC`#ml`(A-UH z0vG-E7!0092)Z8oS!8{IfR^p$9Ns_s6E24pZR5pyGYl&*!87v zVt=9UlLb08JXCdc3UKrun~4^HIvMY#^W%PjLwm?0pPhqfb8aUA>zVA3no$5@np)I;}DD)w9$D#7AjYcuRVwWk#%^ zB^y?AuQ%AkebKOf`DwN(xhEfNCWmZ{9hjpyQ9T2Y zQLGV8O*byw*P4V}xUX^l#slofREE^(}2l zwELqQ&z;$w%KNOfGWBnFB#{=JDilX++tMnu{zyh>H&}%uA8ub5?t?*d{L~&rg}yNMb|I-}8O$(7WT? z)1qbnRLstr>)+Lo%cWZtXO-eLN_=a!e&d!fWI|_e@Ae8tibdmuhG`Xqnaq@?c&4X; zN#Wvrv2$=L!+^|gUd$?LsdNQLTW*_ohU|NhV0MWD`Gj!37+P49|6TD1XudN=3wgI; z(eEKrK`s9{EI8mS%VgZTyq~%G^|i8iE>~yW!}Y4!ER1vyVSBng?4#U^xPF+N>CQIJ zjXR4?Ri!0qIx~{h0=#QHEv2bpWT)?FW1UW`70y*|OIrE4v9Mmw^~iV7~P3@6T4g5O;a<*|^t2$25EuDkxsT1M;`0&2+y>)tVuy6yGA zUFT+bvDzZ7$o6L?X5Y=9j*7%ic~3y}Ul`jFyG3gW(HZ>qA{I)aL4#5)D6yEsTda;! zH$}_6c3!*VLiWN=vyBr9AMO`NdkY}*XKBNr!Tsfx2~XAR>5y1Hq!28C)%wf)px^T> z3AvCQ@W1NrqVQc?ir?nAPl3OTenP$zZ~2$9Ej75^^U3D|TY zvDYo=*SEvZ?D(utT@u{PvBr|8h0%(W591=^ct-?@v3${?GZh+(TSM z|7F6jM^hkMFI7XC@vn$AL#?$Hv!e%r>YQpl#O4tRW*B@5o@K#d$!2`OUy0eYfu%Uv zt7NoXg28CHlP{^~#pW}N@?IDIey+o@ez(wgYNA+^KpX<)2t1CmbiKBS_`I}nnNL)* zRA)=T@6JVU4`i*QssQex_G#{ae8%}X;y#eX;fwO$JWT zlh;ARcG?B&$khQRCCB))~)KuQd8lgHgw?}qoGjIMhJyDCwX)eW{R z`;$tL9Fd`Uw^`g9qs#04jdi-)%AQ)#Uvef; z+15Qz`bSBHO`MylHoKtvk#U`H-fMXfi)N3nlXraUDt5no;rFu+io#f)gfxaE56I zJaEwTphk^9Rzd_g0(nVGevy74UwX-GtI zsDVA#J@pdFH=H3E{oC@cn>wUi0JMlTL63eu|BJ4YLC5}Xm ziszzU6|-)K&GL-=bibnoqrRKv9jg1*Z9w>*W$dPE2)5T+b&6)0`on3j&DhVQ4Q@9{a&zstE)|VgjTcP4R6CN-aTxm#3 zWHepDUw(Yr?Cg)iqu%?p>DRO;i=5Y7@(b|IG#lzbBHj&`#S)ms80eQ!OlfX$*!d3B zdwltL<~w85MH=`;66()#Df{NQ+-e$PaH|bot8h*+^PpMAJhdMIZP_DPMhd~SjK-cK)8ar>ozeMxcrz%)H|LIDe2$%K~K#ey;n9AFF#mcEj04DVvVS*jE6>llUHxpB%|TzifWV zVM>tOu|0@NlfZ*#U@$x_(?OWjJrX4a$~b|_Y*^Vo>gNR5P!?ja^%u0L|ATu;$cQxH zBD9LCXJPYODGI3g0Un3>9SoF(%MI)0hncfkuQu_#0heotW$u>pnphJ0E4a3{eQ0V&BUOT>$*CuDNE|-s(CzM~@*zj>XN&&At~dQqYduhe7F1&t`7d zx9}Uyp%kU1qYf@3hi#<$x|>J4%S~?9r67Y~x3ST!NI;h8oi=K75d!Ya;T=un z5t4|~{5d{0d$8@pt3`hdWY-+N#j{!Gr7&|1>q9(Xj4(ulTO6~QxvQ0~c zUFwsW94o()V0=#RPL5xi2DIm^b>QHKYTKW0>-0qkjtP(>IWVpBA(M2>cc4)5IRIdP z)IC1`;p0!$SIJ&PA*L~m?OKezo({nef2#WdS6SIry%G|Fh-mRbA9r$T&8p$i&JaXO z@w+A2y37+VCKJzvF=gXS6HLX1u3KQO+L6Ce$Cq|q>SlqnIqhYCG13m7&=W^sT|b@% zuNWO(1u&Xg4PN^VV^8<(1q(ls?8kOYrPL=T?5*hhfFlIV@L$qYf1?j^4Y{6#s7cK; zwi|mkPl`RgwVx?4Z;a8&O3&P^*nIKAKavUtX5!cjYNsOxi@JKwR5~aG5Hr!9l7qLw120MvvQ!-do6e#AcyR%I7V;g z-D>8ZHxP3x@!;Pds%L6UI|+c#GwhJPcuK=c3($#k?7mj`I3G0TYS-zP_+6N;0wIkP zATk$UC+8H37n-Gd_TlHJpd9bN=M;}Lm`}!g|6E-?Q@vnm7yjkQ2eW)KL^am82~g^Y z;3G^HMv(~nc6f$-xgs|c5NtFHuo*adrI36K#N)QtB}bst{O7TVcrh8-{c4&TKn>gJ zu$g(wNQt$sZ{c49C2N877~EhHV`Evq!sYd5dOpRh!I0N>KPR0RgT}}+t4He4Yc`}( z2-{az^jjwZTRH*mOF0q#Q05Vmkbm?f^H(_RP&(C{T5=jJ;g)~b=TD57Og*%W56{g# zmw$qY3J0Xl9|}af5PBMrF8Gby={u1n{wC-(hpp?gv*l|eX|eN>zvmy^H)wb6`QS^B zgnFokf8@xD-c(c)*=z&x@>po+u>z)zc-%;$S$LtNV`>Ds|NMkDsMA8xi5e{Bab_Ot zSmxTGC|TY8;Gr{c`~iH4Br>}H{S_N2=q=hKZdlAd$}5Pt#c(U=jdg=HeI9q-AAA|U zx^VX!6H#D6pyd#$DlmOk0{Dq%qCVU7i5e4DeQDX+r@J2eb}EE~!LPD&q|)LW2z&|C zH5@ga@^YvMt&6uWs2b|~BL!Qx|A;IU^MUHZQ&_r?dUU034r7L|7w}9@@4Hu>iBkPo z0>KO)AU^Q+u;S0$vDEl+*}yI5jDU-TahaPO(<%a`xyaS@wYkY4Lq`#Aq#grjoK^Mn z*gKK5xuuqGYPmDQvp7(2`-hqSUok1TrOoICma{;VV5vtFjn8Z3;9w(MuXEVWHh3XS z*qvA{g@FcXD`_4@UU%P-%TGsL6oi5r`Jbxr0n@k+-juKM7>SJE&c`lh9))ud5(W#M zqFJhE%2@zd%3(1`K}tF5fn?HzZo2Kq02P#jiPe9rYra;)3Fzhb?n*=rm*4s5lk(++ ze^$$Zhr$K>r&Y8=l7q}EPY!{w8MM3{=CH!En&c9y8_lPgVt81c1I8sUlyR(#VksV6 zcEoaO!AOK6dQ6xKJJyq*xQixv+-!7tMc;nI`ABH76)-YN&#GkxtW~r7U-367#dPCx zF2c4TyoMh;3F=_3$Tj#8bLyN*JW^mH&RbGy2Q={^e_-HtSt^EM`)?{o@OKp5spI)0(Ps47x67d|q$t)m~H)_W0*hkDFa~<{8_}2XpF(BfG8L4XFQte%HCeZOmke7H$fJhDS&9@ z^2NULMZ$@Wz)|ck)f0YHxGeH_cu|5<4rug4RBO zgRd}2f~p?K2>HXOlghI`6}CGIX)lJBes?^49=qTRa{qDPbjSzqHL1@Rr)BQoy0_Wx9_Y#?k8T3(RAL9oUD6s9~(xZFf;aFLJ-M@=tt7s|zb|Fm^-S&$G3`U$&P zl5J+JN@?xVVYW=TB^u{T?%b%kx?kgk%h&a7fShHg#Z$gzgtDXd45OP>D{k#f4%k_C z0$@oSPgMj(P4aJ~z8Jm?W#U9!-ZPb~3gOueX##;gtl}+xwF-`6o+uK3BQ#!5B2+RB zhOZixj6gI3btPy;x!QQJe!}-Ns6;j6+yl_#w3elFhB^wt*L5|o`!wU~%I zipYVxm|hHWncp9u!(RLRD=m0Qj()qjJ}Sn-?SltFqeNyG2*&E4a>x+6`C!N{A<5s+ zZYX?+{WE;7>2OVe6uc!i&+e5$DZ?lNX4NY6SQ}^T{<2;mhd;PMsIc}CA+R$l3AIBQ zi3%-4Ss~+YEHhF*Y?|R~KA7QYb0I0~TalJc?eIN@ zB06-8n^P1_!n;wpsB*K98U(qv`PHN$Nd8U!j7WzLr2OG}%`<2*`!s@t?c!nMQkUO+ zr|xijF~F=zhHzzBaX#>r@b#M;>NYRBdYZ(9gpn~W<4#8C{E*;#Sn(Txh!}Uhk`yN@j91A;Ps+tvpZ*+A zA0OJa4uk=T-JwFe@-XCHjIpJKMOV?R$e~*Y2f_*S1Yp*$vE<@hmN%H;#<5eBZN-OJ ztf<}u)}P4tjCq5n8@@$XiA*a2;*Dev`y3YO!&(PWxKp{{dLI{pidr6Ke4%Vy8L3NR z?&S+#Ojs|ZrtC86y=|$#5vJt_nYrv6{SJl>Ft+0LhUy~7!QGNyPwEvEF#;>v3uXTS zDZcD~@iYZ7A_X9ASKT>ZT_dj}P~IR-`@Rf;vG1nF&4j4-S8VS-!wRsbIl@J(U&#PX zCi)3XNcj^1+`HK|-7DiiPuz0uXP_V{k2ii`k>yGgO66mSRM$*0jx)watgA7?-*n`O zW@V6TMd)@3Y`>tq=`2Q+zL%l(`@BE-!N&vqjHByh`~ed-l;L5XVBZ%Fa!z z-bdUn_*$$BYtAYnA#y0tECVL$S^g7?_-jZZywymru+JGt`&Vk0rVNVjIE$u^>_T9Y zLGbJ<6AVO*q90PxOi7Tytf`^Tx}QX5mB6W_(^zQsA>C2%uw}j`?zVncp56f%l??UJ ziJks|Z7EwIT%|BF*r~~;X!J+1JwP<7`G-$aEZ`f{)u&f!8JfIeOl1)O!H}3H6loSg z0n03p03V7@lQ?2Jt80N~0PS~tyF+`h;C4R9Whuh^uq|SkK@715L^do1L^HScofO-V zbaGbnI(o|40^%UCa^~d~qw^U5W7#)fpkm{6l~iyxJBAfwZRXj6UZZH88@C+)CG;+0y}sS zC=KP#J8Qai$82+NrErNl?8-vWQNV|n%-M!Mc67yHQwm%r9YDMI?I`Id5Aflm@N=4W zZ&>$dkFC&a$`u)cYT0S5j$b!OFXv!}g_>vDDbGy=?9lQW6rAO?Qnl%g*Y7;p%Ro$N z!YaDmMiU3Dd~pta?7w?H-pa_P3g?s>wT9x8TS~@U^IYqk8}l;R=TN6Kqw=#UUQ3K5 zgLSP$!C~J$g?L1uHG_f!R!^;?t0o)K0moAvF43`W>JHZ~lQIPS|H?-r`Q?A58gU^{}ey&X@lyMw4c;S?1V+x=1wm-OPzc`ZdZvv)s`I`Pz#p78f zyiQSm#Vr0<90Bq$RLq6~c;Q@m30e#)=al4pg{EE7as4H_PvF#sYbO+L3Ag*_?CmwH zAx~NXCiuK71l{Y3iXp?MJkJ^Yf1k&IzdP|a=;t1XYz7;&-~-PbQ@hhT5S*}e+YTEx zgr@+@Nfx&Hu(VU$64W{2F`Tl4l(7kIrC!s>@VBe?h_HSI4-fDp>bDAM&i{~1eY2r~ z0Vv!pi&q7lc_`&8mQ;HtYDV)SM}yi(#;`O+8>A8tBS|=9S5?6aT~J#n6&pm%7lH_3 zjp`3gYmGuL*8lxQHMQ##E&32N{kUl-ppfjzCF~@g4G?`mLMOW@W}O#}GG5{3bC|gD zE_MHnkoRS2>Y=i<7q$Yo*lGX2opeE{rnY**P!^37y&EdJEZk940RNn}9DgB$Ph%4t zOC0&(DgvxN5Ec-3=r?THg%aakZ1~W!h(9Px;FEhb*F|u(dPEN(NYAS%~JXe zw&7I7yI9W^Wvqc}#o7@3(&lF+FM{xZtJxc?KpiXA_C15+A}-fwOYv7L|EZ(-K*o`1 z*TKejc(on$+LzN73}s@=ASK>CJz%X3s#VfLvXh7ysu~ZM>&pHU;p$Ne$j#gOcMv*H z5YNO{cy?sH6^=)nVxC@d@aEGMteK24&x$*og_yN?AtrhLa$gBvcUH5iwp(az2(-1lSLSp@2!^UQMy+Qt0Hx?t9&a5I=6 z?WJjG;h&(>A**H#N1K({s_$s0fZ@Jny*}BIuq@8!)>9yEdf>9t_fyVsy<9jHTJnZr zxkgI~fRVrt!ST8`ySe|XoiG1~>V5xb8eh(GAKjQn__whJC&YAn%_qnfgUH5ajY}J!C7G>(c z|GE4PY@f>yGJT#+u4Jx|oFmMGDFv|ql66?pBbEQs*Fq00DEhy?gtpg}gkEWe}U{ zs)GMjZ-WOfXF#T$mFV)B@?xFun3kP>_1S%Pm>;(2lDtQL zuNz)2(H5LMTq!)s``qa%(Dlvfjw1 zJK*HD?;YQAG2fq`IKyRJ&roo_&!gmI5q6V&+cG53JfXa_(qC@LD83UK`;B_3>qm=! z*Q%v8gK$-4_l29ci^O%rpp&Le+4pq9*3gtA;>ARQb;fvjjJ+v8ZQy2MjZmwC3pd}& zBOcvi307jFANMxvm{~i-rYd?_AE`u5wp94SCN;=5ZwvwRB%}owD|vqr-fNnqCvN#M z8FDF|eiF(2kS3+V!iYYKYM;+FU5_d}aQ}}HD~~E@WA4!N*}pk_EZTqxA&pT5iBqXm zy4!AObZ_GR$-yhW^mE_PtawO8>Ao6Li#aH+r{cTwGcE%nLIUO>BDvc-lgdM12I&d3%5o21F>7| z!4w?ZPOx@g&YSFJ)+hD`7jB+_T_ZkmW(OBk+&Wq6+xzR&Ru%ai!%wnaPYQ9q>K?z& zTl)Cr3>v_Qs`Dn+E<=g27JI>C%scLCiu=a965?=$Hb%btK)HMoG=AFR{`=9brAHf; zq@A2*Vm9m8=7D%!w9*^80JzVGW1mc_ut4vX+jD0q1=i5ej{tOY9Ix~FbX?toQl2%z(zMVfP zRfN&e_zQ2TT&|rrsECLLu_?({YFm5$`S6MnUA|zU;NA~uriiKCk14pAC}JbbZZeHe z+Lv5#w1k!L$#7 zd3pQp3YL93f0~C;%*7z_1r9;mwh%|5U)>!H*fq0pn_>qZJC562u$Jjptu2-6PIR}O z={ORpJ*q**mR!X8g;#Lu>UC;wLN_x40p?1a{;_dWxXW!O(T|@_MY{e&nN31C`-2bh z_&+MqBWlZGampRvjtf^{>G5`i79*as57r$*Vpc$_y z-YtD#Am#?L*682H99O!&yF92gy`7TL)OuTRd{Jgz;RPw!`KpV)9xa_9Uk0i!ZW0+O z2l_(W`TTaG8kW2N+1f(Oja1og-R8>BA^^oK+s$pbbobL?iy6Yg&{we;ValpZzayW- zq*-}KIceqsk7H$p!~`pd0UUud&;HdSiPRa@76ScW z3HXPFd@RBV;ya}Lg3cy(@6%UjZL9>m@_1BFxagIgNd9hGC!hLnK^kX0)i2=V>PCqQ zr8((IKl9>AF=7yJIekaJPUCB3A~;Oy*dZ{P>V(Vq;cVF(r!|F$^@PMP9hRLLj;cR; zM1fS{Nx>RViynSUUL*8R!QNZ%Y@o{p z;KpIl%pR#aL(=~(V z!oL>-Xj984I3_+)YXpFonZQtwJ2&P*Rc0Umf5$kcBTi zyQf9ukH3~YlcLx4MqsrKQxAPVM!CyL4i{$MaqwI-*plb5?GG?-rp%gT=*1fI*>4s| zTJxJplS0$f+bQ^@BB@$ijb2}(JFWW6t=HPLwgDFmU7l7i?XHSOa|U30zDY8dRI3mShmZ9U~2D>9)AHRS3XC0=mW&$&=(2HbDUNW#^bXhhu zv-I-X9Zh;$?E9&Md^ho0LIZlT&AaHX7oGF|H)`^|g&d+xNT5o044K>U-aT!_i3UpPriEwYIuxbC;u?^;ydjh=FVfYM}2?`F=ebS(N4bPvfv>+@rh0~(bdpNt2AU%Sc)~sKHsAO z#lC_XmNkAwSLAV1m_2<)D&T8wMsOEzgn+14f9qx|(w=3*y|!IYVdU+$$F=g&O7V~( z94>PsuRf|DR9%tMcj5d#%=;4~c1`FWy~zz_MVa8B?T{QUrtOclLp}Ip_?H!y^SD- z7weAPL6w#fZ&*B{$?`$6CdPG&%jI6CUJ_}~AQ1x6JI2KHjJE2_XbrEBkA9cnz_#_v z=2D^C>$UXEB5ZbOKr?=5MlY7w95L^&Ez_~Dyd6Z+u$jMv5C0R2mC?##H2nnM85M=W zoWDvxK#%6MS}LIGOV@M9WClN!MwUwn#KUUFS4#G{Nu#*rP=NBusob1)O1i?0FhLMJ zdGDH<%#G3CLJyA@hQAtu6&^C5q3+|K={#+AvgkGxfhWt^UC~I`mC^mE9&xmF()zWI zHKC`q46ho0y2X>fS@JOf5AVGI1&Y|O^D%EBjgX7V^D9R){N9fXCIzP>^Ljgyo&iQI6ji_?Sm=LeSiH23GZS@ ziO}+!#SY@2!fqtf1kO_jsEE-SkvbkgeWTV+|B#M37Q>BZadCsYX_T*xRZ%$pwy-`u z`>`02wrHns^)=}Y@bzGLuv=rY8|Np}lBf5TL@;YX5pIFbq01^RNU)$G&0$V4FU&y0!{WYgpGPq|_Xa7!Kk{ZWT?o^cu|R=ytJ zV_r7+8r08ve5aYhN)%r@qS4rzh&lRR_^TBiB?ly0UW-cM#aYIhSB1bN3)EAf*u2K6 zUw=R|U-n#fB=2-Wv8L)d!zCTgyD-E%s!(btEhATQSD@%*$E-xPa)t+?pim3Y|l4dl8^^D4w1Eo78-d}ql`u1o@xWjJo z)K%51_kz)WSXDO+EMtsZOWx@*dI=tV!Qsr|wK{vzGu%fOmIa#sk&3}Iq}_`Te9AD$ zMSF~s^RKI-c+`wYIZ_7Zssq@lqbsvpV($D zsJsfnF<%k&S{hFKB}85B=>^BHM#$h(RRj+U&JT#YXmDN;c9GCl19>=G+wb%rqlY^K$7(TR$F>v17G`zxtUSzAbx_TZPR`ykVqhljK~-OPVw(gp!F#LTo=6*fiY z9tS`qHFmx`Sg>b^9juMx*@bS#-ex6W8c$}K9_xltoomAO0Z=>SItaJM(U?Wf-_5}^ zJ_)*Rz)wT`-sr`f#R?G!XtZFXQUu}FF$U8no1^TqpI0(4)LO4WU6tq+x}x&2T^LV( zXn{BwWTK2skK8HO!KMQ&33zH%i1rOxh30Y`!=87~4{~lXt0*wHGR8M`KJFG%r^0Y* z;f0*O7jZ|&w1`B>{B8m1%Bw7*L}(R^4CGACb!B~;|G+UPKUHM_+{WzvJZt!;^}p{k z9MU8*t1BA62Ut~=@0%g}Jpd+V`TP4znN@z}MvHvrAT~c|g@|IN=-re%c`nZh7_iyb z3umPM981mw3`W+aP+9U$>+7n~ydyy_s3njhh7Z=@IHw*a>AY9|*^t&|1ZJcjY1QCEXVR`-6PYIQ8I0zdj}Z~$R6@$RIj)OH2n zXv+1OJnU>upE@L_oOEdy`^msTMPUgq!~W6$;WgK#6z%e>^XgK~-birr>7yne%MchZ zFpG+gG^oaV;Y}Qq<&U8b)L2f2weC-d3vr)_fZq8vzS358Uq&47$KhaC;?Y@ayMhM> zI?)+aY;Un-u_>`K{G+1OB;Zwx~KHbCvl0X3_6YBj!?Duj<)mQ=|Z`iA5yp zs{R%KBnssFhVH4ja;SE~UH2Jfn?LUgKoqlELhVaEu{_>Ic$U1nXFn9_^MHWoa^6o5 zG@!;p%X=(4?K73qwc-PPBLb}&(m(<>ybBG{9SiU3s5%m;)w%E+1EeocrCD3 z4$*4p(FwY2IzM?T{Taz6BWM&EDcsNR5=f(J48Z- z+Y8F9kK8pmY=Wy!|I!t=Us|27Ii0F4<}OH7VbWrlA)gzD7UTvEbh7HocEu%uyC3y4 ziDz$fDucFlSB(9CGl=!*wbYa-3;>cP2Qmu3gct(xwH^>j4dL9qK(&$=n$tKj`TKK$ z=#$NWedv4YAXb=(YxOtvG)87_RJs7OzXDHAJw8pl%YGmO7o!NKYs(F{oB3-lMou=}{EoySZ@{vO^>5D@Ip-D1+8_5Y>F;Lzp-5S61 zQwyAH(&x)!@9d_1zrf}SMPW9HylH9z3s7t9MED`2g2m{9w!S=Gjb(O9*;{?Tt0yF1#M3==nVm&D*ls#Uw5x3&-q{T(=$LC6Dh^QYdj?|i zbEyqd(~8km0(3F`!~6e$#(ifM9q`J=*E){~t(JX?5?y7!6|{V*#Z=-CJ5SSTvvKRv zG|)AowCbhy8>vG4_Nnwa(%bJPGVi;oQS(8xrMNbReXLKWd%DooW6tNyf;Px{5Fswu zz9ea9@ITjx7YtiIsp7{@`!;>%&ud~xCT}uDnd%pl7<%^>|8KI^P#pWu&4oczl z8rTdi$x7+u+;Fl$LK-mOs_tJ}it24gw+CFOoxK%89{miToE^#aUuwK-cJr-mv)^dY zw+b7J_UUGY{1QA+bIr#0wWd-#J{CUbU=5-&-6s<6%L#WCCov7JqEXww?`Nk=NU8*D z9%g!^Cps0flA0uZohaa#gfF^bR{VP!kcHV*(jJ@3u)8176UnZ=rOBGMy!SSg2Kh** zV>bx_C@#e632ac@BOwpl4e|foThx;TWEdxV{&mk-ua}QyTN;@NbeBH80};s+v0(-( zmq)h9MT43dG^6D7n@f50&yf1aYW5#k867OB7+CmUOwU?pt0 za}VESIT8fwv)8%wksw!8o~E7UxmJozsBFk@w$3&I8K@;82T(N*0$Wo4MPWJGB*FoZ z_;i^E>L?ovMwOCzw&FMj0v^K9C3uDpfcl0Vn&I6QFy1`A_z@tPw7lW#f5 z4OMjFCRkI<$uImOxu_xd-39 zZbp2mvCf15@0Q`NDJr|aMqf%6zt8Q^?4;%M4w(gd!OIanh5n3@D2UUC=9QQ6st{~&UAZs12Q}wDrpIz%fuIQvWnP%Zc|0v)#l0Y=O2pm+EbP8zO6O-cUVG{;sPn z{NQ3@i)K9iv1DWx;%XJ7wBdlj^$08&_0$Z`u36m%UlqN_bsiSRs(h8eMW)Zt-xRE{b zo4jm03v#U(Xt~;!_cHYvMv%xW81;579%fWc+poOw?{=)!ncvr9&jVPqL}*fQ?#CW= z>)igK{&uN~uT(;4QR&jlqJuZ~ ze=-N6g1JNlO<=1HCH0T1t!nN3mfsh8#ZWWbSQQYCulQC&-daPBZj#;bU(p$N$!E~$ znAz}8e-R)lS|5iG))U?qPtBYKB4DE58CVop znr@Z~eZok%l)UwE`Kz~nFTOA6YnYHOnm>X4=D-!XkninefRyh)Ye&fxmky??TIoK$ zr55sJ(8(t6BNzGFFWr!l!?i9@=699pU(_;7@2)DXrHVx*PohJpBsyj!)ZtHu9j70DdY9i2?JS~3*(TnDXfIW)dl*@| z{hMDXK!``@)lH`!trhxDpN1m3`_iM{Q|Q8-NgUQUO(%AIUOb$zUtoz5w*ePh(QE#% mqxJv4{@<@a7jpeS`c9AQ3KfMy$9^Qcf diff --git a/cent.webflow/images/Untitled-15.png b/cent.webflow/images/Untitled-15.png deleted file mode 100644 index bcd5775421a86a706f96781119bdb8380ed1c9b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96555 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⁡?}Ut8z>6xVi)W(T1K#1Ih2=*@A!>@RLBcaPV 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 diff --git a/cent.webflow/images/Untitled-32-p-800.png b/cent.webflow/images/Untitled-32-p-800.png deleted file mode 100644 index 4d7c61c4c0b0b2f78af36086f36985a50e79eac9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23508 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 diff --git a/cent.webflow/images/Untitled-32.png b/cent.webflow/images/Untitled-32.png deleted file mode 100644 index a9ec6c1b35ff8d084266aeda443a6ccd3d43bcd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64679 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 >lFW`+c2I+xC|rxS^Ep9ET-RT>nbjSijicst0~ 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 SQ_>GLNZG+Gr0mfAo__;ksvnI2 diff --git a/cent.webflow/images/favicon.png b/cent.webflow/images/favicon.png deleted file mode 100644 index 3327d0ce01a5cba199945a69fb296a0750f7b66f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmV;91abR`P)Px(NJ&INR9HvtmRU%nR}{zpNfiyEl)BUf8n@ss%3xhUDn7)3Q!H*(=!=3dDpUj^ z7JN{s-~tMY6)bL;8byRE#igh(GA`JvPm>64V+9vVv16i9Yf{dMpJOH&6J~K<=0Zrm zn|sgs-E;ou+)rdOnN0YALv$B_SVSVxgW^~KJgDazXAJQ6CpX@h6Pv#&sSXCxZUh{G zv$e*NeZ*=P;J&mt>f}BfZwz2C7;t%c2@eksoAw>e!o2|N>+5XX+uIuf0Rh6;IBz7zH9j!T8##jo{5PGR8>{kfFRMD1$!^R#>NIO z3JVKEPEHO+M@RXY3`a*tGr%8`Lp+Ik%>ASFn_g7@T7=ftR>*Mdl#6|@}HjT)-3}5EfW{LiH0XVr>MC6Uj(5}2~EVy1! z<#u*<#^yXdJ>li$#lHoCQc2RFeZrtB2@MV9 zIjJ-V5{U~oH#d3i)nNrtTwIL&{CqStG@!q~9|Z*kaB*=#b#*n$%geE~wPh}!n_E-3 z&FOi3d>qcs&L}D>!ok4-uUTAN#HHZ^azzHHd07D%jYgATjG7FUkW#5+08;tV(h>p# z1EE%{d5%D6L_|dJ{N&{1EfDnxS65etAn|5qW@2Gsfx#*&D&XtuYd-=$K0Y`;KE7R; zoSbY0P+MDz;o)JPZ)$2nOiT=)Rse8!cgOPbGNPiQ_yBcvbqqnNv73UtygW=#Ph)j; zm2;Mql*Apdq@)BjH8p&q($Z1{2M1$rZjS9y6bPWby`7!x?ChYivGF!dltzl6t;(>{ z!1eVt_V@Q8lgYU6Qv_C4R@hNxWhI)Mn;D?9vy=a)9w7kC&d#E~zMgfmySvK(beP`W zUIwr=EC9N@yAcu+g0!?W6c!dDH8m9j0|Sssr5G9-;{8`wSKNp)GBWsiZEX#7XS|w% z`T2Ro$H%h>+uGXD($Zp~0U;U|04kM=PftQ4fRmFG{@ev1C6i9v+}s%8@bHi?DiS6A zM-@XbbYikW0JJ7MI~zu$@aFU~7FH>Ui;H7plxv|U2vtDa$VpF656a5Q*a}_K6nfet zh)^sRV{mZr7J#m7T1OQ|P{fwIrM$<<2fYjIR>6Bb=xa@X gjKIeTeDDbT5BI89yQ)B;7XSbN07*qoM6N<$f)8&QI{*Lx diff --git a/cent.webflow/images/menu-icon_1menu-icon.png b/cent.webflow/images/menu-icon_1menu-icon.png deleted file mode 100644 index 73055968c0069efc1b1593713d1d3d07b84bee23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^IzX(#!3HEhUB8h7q!^2X+?^QKos)S9mPKEIo~HkHrXs5^X3=m)OSbRh+Y z1_nkZ7B|*;IZ<=l-Lqex6V~6YBh0>CcwR+$v>-&bP0l+XkK6$(Dc diff --git a/cent.webflow/images/portfolio-1---wide.svg b/cent.webflow/images/portfolio-1---wide.svg deleted file mode 100644 index b0d0d61..0000000 --- a/cent.webflow/images/portfolio-1---wide.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - portfolio 1 - wide - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/cent.webflow/images/portfolio-2---wide.svg b/cent.webflow/images/portfolio-2---wide.svg deleted file mode 100644 index 20a6bd7..0000000 --- a/cent.webflow/images/portfolio-2---wide.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - portfolio 2 - wide - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/cent.webflow/images/portfolio-3---wide.svg b/cent.webflow/images/portfolio-3---wide.svg deleted file mode 100644 index e0cf916..0000000 --- a/cent.webflow/images/portfolio-3---wide.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - portfolio 3 - wide - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/cent.webflow/images/webclip.png b/cent.webflow/images/webclip.png deleted file mode 100644 index c25dc29c634388e8e8f3555a6cdf4d390cd56b31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10787 zcmeHtshad8QSZ@w(LUa5#zSQ;!~Q7a5D z@W8*c3}nURhCTM~fFm<8?XnXIfBv9X473su9H-cco5LqMo4*v}T z^M8Z*f7HZPJw6_TRDFs4_4OMn{+teN=l-eMeAp_)W63Kfa;MmOuC~zo>`Y^E{k-g1 zuGH_5>_2I>ujE?uQKp5gW=;38skWeuhzXmgrFYn-M=2i<9M&uGs?MWK$`8hux5eZS zIXi(B@GTbhR2{GSuU-6wQZKciGRk7(hOuPSN2|Fc{&&0O)knjU zNSUFS7toVEcjvyR6scN)9JBa#r-iQ zodnTSi*=^h$9+G@@wIviDYM*4TLlvAhciPdEi*Z7$`&RoO({v)qZ1nm^Q^7F=$8%G z*;>1DRvC*%mk79oq|d?Aft1REeO+o^GciUC3=B0VF?__(lhvvxQD30?@r*Gnd^GZI zJRfeq79q1}V^~FLk<5G_qdbHxt~e-WWFI`mS#AF_zwt@1U)AYJ zz&%3+Z#(V?sFF3G&=6&OwW$Z1G%y@b*hT*?L_WcxU z&&+{KkCtnMX8cMMIpMBl7}6h=o!RKRV7<^N8-=I8eE&;DTSlBDijr|`MU7_tV~Y6$ zOvDf1@i!(vy^0*{jbGUGap)3FoDjwQW+oX@=J^Eq4I^rsURp-fAxNRuWgl81+kV`iCdKiTK zq93-_qy=>}W2%zNm-`;_K`>)d>C}HFqiCUWVace&Ke&4zt_eIye~(niCBW>4msf zdJz8G4ayq9cOX3_ID`OUCiUJ`bhE_gR#!$YL-rq3@WbE?qkj;%`(|fFnmJaIa%O}{ z{aL4&z#>zO*+{!Is=*G3p#z%IVmCj5OrPa9RMI!b%I1G4Kwh{_Cr5s+lQBX`8o{qM zRhD-ttn5dprDyvyhL1&(LMfan$7wdZfigHn#wGo%KvnnX=5IBlooaYMUx_=KP+^Sme{Me}`13apqAmQngbzFKaj5m!Z0J%h}?1-(e4srM_rkLG+URXFSAMzOv2zZK&b_ zz05l?-j=Fk+DXS1;_Xcmn}BKl&C)7fekW5T%V@$Dz|4a`jt?+wSNn> z>z$1$K|?729_pIT>^cl^H0Bgb>ijufxlggSeMQ4xMjQhnLjySYgnYV4^!UfKZx0`T z4=2`6;XhoyW2krjv$yxb(0T7iw>CFdmwePei#(hH zbOO&IowxY18x2#T!3ZIO_~gE>XaiAky^k+`-Qq}19Tavsbt+(+umrXKGneM$Ti8hq0VVkUn>o3RNZ#&WZ`(g6j(AsDI zySy!`s@)Di3>z_?VfcF_-~l<8Uc6^W^jI%rfLYgGS$UN}bP*b$Npybl7U#T=I98XB zDMXj}`&F!HADQ~_hi0Ux*7zm5ty5@5(8bn4*J}6O=K4ZS^I`kHJFa+El ze-b~%R|c>M_?y?%BFeSrX^5`#o6c6r>Y#?>>-?w&kGETgkm``BM?rJ$~|EppWD>lKIuwR}d4Yy_nCWH_-hV7T$elj#eh3H~p zOVT`9pZlL!*tCcV3165h(^1X6i@YD5_y$IW z9@cX*m{0%U-#6lkW!H>7gQ2oTl;8QTF_-#Ak0_JHo)kv)1!#m<#**fT{$bq1r_5QO z%u3lUCy9VO%fqrlw!BB)Lmih}H@7?Xo>(ZwIxpYa@2v!Enn^VaS{<(|7Wo@s05b>pmC=ND1>?SuH&c~fMC>ra3h#OmhE@L9eR{-fjQXbG=oXvf`! zX+$>4>zpR5EiJ{D^f=c0rLYYEOx=k$>#RWrTLtPR{tEv(LQHGgd!xZ3CV4+!YL(5k3XvO_9SY@67_Jq@%tVT@mSugj>!r; zd$ZnL2(KUtk^<#>I+osZl`+mgXK8>MUvv7tX_6N&&|*IVIatXIv+IHF3p@Xov>Yc( za7b=`-Xz3lWIT{aP-5RFW>s2myNs1li*En7^Usp3qWygN>OvIn-x=W@(MYTBQ!GG# zmPQ%(!mpb9m5cZ{MXrH+cQ%={Zzcg7VcRPF=@!w>Hw(zIZqL-LXH8knhu!j75?=f| zo{~rAK3+dird0o#8d$7i+Uq})H!Isf*#G`0&*@`J7rDn^fhD5C6V_+Z!jq-53V{Wg z1(@47a*C6Ap8VplzP&o;v|PU7H{!y6Nbhlbtbcx%$e)w@>3cAi^$^X*^@`I((Rz}u zR>I4GLda+b(#CP|Yl7b5@PxtYg85cFZ5*pCgR&M&uH}W?ALO52!u5bd=OB|Qk4cN~ z3g}dqgJv$~ud$88w4p`f0TSd?lXo*hQWpk>ur&qVW}I+ulN5qA4=PlZMPDk1AvFUL za+loo&NJ;lojQMgwY6+`iRpveuL&VDeuiw6h}I`0w)A_V{wpTn~ppJ4&1AU$$?E_@#i{AO`nQ@g;7=JEqBdXnLMYGtCK1-N z11H8FdT4~B^ehnqwl2E^Shhv){&t0BfOyV#Ij`3v@|-(sOTvg|h}f}5<*SiZnbg0&zNUKef@)Y6 z`R)PlW9mZ1Q_~uEWIG9x^8tudU{uQbd;?l89hmr<0R}M-ecCnCA zquhDs5s#j$(ZTWtp4MKF{yy^| z^;1#msjKyUJeslh5I21&TI zKYf?%`!Zy$q!}c+`1X}=yM_NWdz#CbeNO5$0IVb){*h=oM*E7 za!cr4g{YxW9Q9sco&Kd z2#L(Zw zMh#w6*J5z5Mx${TL-8fV6I0|%`2iit$3$xk1>C&@PadvwKY|j=lSok=DbWB2@U@h; zcnJ3)dAN(*?Lm6@2hVufH&G2!LA)iuP^e!|>m&In`RqMujfc=hn=C!XG3$h1#53%F zwYbkp|2XD+&!Q%eg2d}wi=SF?=2*`lkaC5V9UmyrYW-p`c)#|N>N^16E_}0aCeE7b z*KB*0Z~?7%{*|g;q%ar4cysZ`A5okJi=aanF8H*-__ZDD*{@BaxNXL(c6Y%{@!wJP zDm_3YYA_Rr8y3d>Gur3!?h9teMF;WJ&L)%NEOAwIS@3VrPzBeQz(kavc&=9<($U^p zForKNj{H>Jm?>4PcN_vWoOH@I7>hbg5IQr$&6!sm*Uw7@{_kgfbs?At(Yvm~7Z~Gt zC>HIpz-#sjgeZz^@txo^<1%1+jO$AQ$_=Y~`Vv^5yuX3#GE2a>5go|8L$Qr$L6-*? zOFk>A<_mU7I&yM>{;r1Ik)a$viv;)P>aa3Ie$lhM8dv35o3)Aas_=!gj$E$Lt~fqS z)X~x+DAOce1_76RlL?jmT+DjeEY*?e!!BS zVNN>&SshpB>;97+;8tpZsx)2Y)$K1I9WVym29j!teSdD2uQK^Hh0ii}fUje546e&o z#qwGk^hd<3b}Jr0Cotw(Ttu1O4GFf54CH7Vd`TnHjl?-T?%QT!P~Ivv++ z$yAK~SIkxICi?;yqTpGp3kppAthF1+JTs4|SBR;G_h~i53OgbXq?yu#zYBN5jH(K!*G(Cq&djx8l6?@@V_hQXR{IV+SOb1nlTqBQWQCCJtc5!Jyt3d zQ|j4416$f{z;B@py@_#{TF@TRlNbFojzOB=d(SADrFcjrA6#wc$9W71&wMqRGp@7G z)yxp-k{ZVWT!SCk)IILbXC4f&*}!N%rf}t=W|#B!A`^QD9VB0#O=$Nvd!4A;Eny-S zb|lwW^MwR(L4t>tzS(bDz9o>;{3}Ua30f{8ksQzrfu)c7;>MKsp(n_A!%=1X3&HFB zqdAA{H5ANAcx12SB7lj|)s`kdljb3{@Lj`Ld_5xFH_Y405mTghe|xIEqw^1!oC{I( zYw#&MfazK$goiHJs_QFEcE;?w7Ozoi3zC9okP;O}Nr|s%je~X8Gwe2i2uGRx?M95~ zX#4xO*7SDcB;v-Xkv}T647elr`a6w*KOBKJlsiFxVE~0ZwHe zWpI53E&to&-s7f@yCHsQV(@{0K9X7fgGy=`o?(R%vl$c?CBHX_7-gX>ufwe+j4v72 zLSsssaVpMYH=BL95KPj5&kdMLLVsB6I#m>KkI(O{2%-T$n>4TYPSQYFD;Y&o%B@L# zNt0g$AQ^f8@38mkc*ES8vmR~S5#}VF@OyBj05608gmMaaVt_gg40hi=pTQ1KnS0^V> z{$)jJkf}82FW1hN@kK>5-hkq1-~N1q?s=A*I~E|bY&b6FD#!pO&kJ!I-B;X7hK|;L zjCBMc>(LPNR1L!Ut06@xG{K=NPFMink4^bhH`!GNmVPnc8o5xktP5 z;ZRt;##z?`J|TLI+8giu51f98l3v^2gw)DkaS+J+%Z?JA{14VoYz?p^=Ag5Ut{LrX z1Dr(B*lKoc1@s_KUsvI+q~z3K=2C;Rp+>sUqkTXW_-i-gllN+t*R=7Yzw)d*haE^6 z3%?z<_qbD>6_yPiCpe5m5 zdxE_4lYbZcr}*IhW~SrCa_gH%f9re>E#AM5bgcL5L_nxSTs~F)PErMo8U+xLNqW~pJE>WaQq2r2Wn!3(q}}D z1uLAR0wxl*{V#oQc8ZVpn^uaVmrHb57vDJSE*K4%5F&ne#K80X#v$Cl_#H=?CKA2& zv`nw*fsjh`s|}?e?5f%I2B|itu79+;)g^&~x}j5?#J;|^52rK8!GBJO;(*oCP`q#u zuX!`sol?wck4c(AylS~T@)E6g|FwQxXkYTph%3hbu=wjD@2OthgMCEK%eZlDn5 zKRBJ-xBVM~RvQiB9ppM&!(4fDg#nZZ1uJp*CDjIo#bE3ZCPCnE{#eTyZxH?^-`Iq< zN!6Yj0`MoLPx@GkXbRq%6!Jh2G@r+)(S)dyUuK2Qo{+v0Km%#7K&>i=^#BR5c(X%HrMFdPpX*ff54HkB2_L z^U96{WQe-=JSxsy=LCai4W2yT7F=hvZm2OjQ3a;>(1m%% zK|F*8t@`wWi%0T!0=4_m_>afBDbY|^kKC`w(d%9Ka5L?9O)yH~P)F>Y?4(@>)mMyv zxR2tt1mv&Vuht)!!N(N)Pnt0hP0M}{P*=J28~>{{tlKTV0OAzGMl9H$XQT8XO5eGd zLNNw&0y#jAr#z84vu5#6G5SUHP83)$d*S4^Q`>Pd@0|0R#5QP7Iub?lCHlt~=@1Q} zFTy7@jlO#1YCKV!{R#oiy}8c|)r#yA-ZR+&n6mGLIk{3`l|_cso7!3ti?~%B5U&Eq z7jiX8!0|S$D(wHE3BqY|`oEYNV1Yz0ktn{`UzND_Gcf^usp2L7CycZoFuPq1k-Q(e zi6R27bro~In4pY^>7SnSa-~G)V=($2JugP2)?J`1!yJ75!tx9q%-6vt+Dp-Fifgpe<^H(u{*Qa@<$i$LISj?jNa* z;)Bs|x0NOh0z=Jm!I)PlrdF|=`(~-+$pArkMAeI?T0(hru+y(fC38NhtF|wXt{K7O zMLPeE4azZh*81X)IEd%Z`(8G_K86t!MakD#SegiOUT^FW5!4Z1+gj@{^PoUbufCyq za_wi)MGq*&W0QxIh-Gg>vsa*z@@0qP_lk(2UhE` z^as@P*Oi*+$_v>1nDoY3G#61;ab2!76&*N<+AaTBQzpXY)X?jS38BN zYEBR9w53S1fe_5myCF$uYa7!l|NFPi$FS#J;A%CPaJ0r+UjFq|9o2t0t$ueaLko(i zsuGl(HJB!}sNvQHD&sTT{L$k4#l1m(M!PNEw)t4m9Ko8rUAei`|m73jJ<-|gIqKqQSyPH zs4(WGy<9_T!DglqO)APQM1;n*3`nKU42O6y`R?+g_^h2n0DVrSc9KlCU}_>~?6E66owk#!^n9q2ob7epMsh1k)6 zyz-vJW$yP{{#@0OfFHj743AnsVRG8+-%<&&sdWv^$n6Yd?v;i!*!FXiAANp%Abz$p(JO+W^D{74EgFO(^m4y5nXo%kr0|-*l&IOT z1JU%76ofKYR{guu$lKEo9T6tcbHTZuDkT{phnmy`&4tXdBXlkeLZ*$5KZ)8jDj2Y?HI0hOy(wH7ii50;#F zeIxrV2?y)Z}sCWEekZX*;5`dH*miWu_W8403UmGqk+4AY7_c2QTY0!#V zouqwEOx0LClm=xE$osqF%|vaJ`=9k&*p#gQaDhNJM9E#a8Vx~km?JMGKUB$Z!a~e7 z8gRJXJ%IxAC_ACU{q85A&h<-iw!g%7JW)$v`>|7UfliKHWBuYZ4>~@8^Fp&mtjP8l zo;lAHa~)3*AZ%jAF|Mu$ey}qz!8XpD;@U*YAz#*;JpiaqNxp>@*QrMn2 zDR>&nbmvIdxyKWPIw`R$YWPO_Kj`dUGMpu8vpZSZ-<(FDo~AKa!Tc5<Q&n)627-L6pi@p*oKKfE#isKcc)%&>6XIt+TLFF zY>(yRpOVnq()?rq5sCx-4uhYpOBTNU`5c8>h7JE_-E}*Q2017<`0qG_^^jiia|K<& zBx3ptv6qvaKcrAyqP8q(6WKM@j4f^^b=m^^DyUI-4$|N}BO*kc6-28C!u{&bT4vrt zs3C~G+|Twad%vdD!k+Y*%{<)I_r(YHOX|dfdMng<`BU5Wmie?1oYhQFL~LpC#%@ek zH>IV^O-osIX5$DpC?TmgQ4?y;tl;r#aFoZ(!qQGP9A{5P;Z~~8A5BdjHtV{755g## zPi6xybF~=o!@xwjGihhcQ6?y?h?2?gT5LyosvZT!sMqwkZEX2A5Vhza?WW|VvNL3G z`c4o;lecZ9nDPhQzmtcy_&hDSdEPCP4}4FDL{U4-&dDcS3*(h-sG362b4miXHJ}m; zodlyH)4u62Lbjt=Pgj^*KUlfV17-!xWXEVxr*frgk%VmJS&He=U9Jjg(n&X&VED+mD+ z;lTu({J27PCQWYUKUO9nh}!uFN9aIBYOJ-%CAj$7Ki!TcDtzC&|pj`9O)t z$$m1%s|5>|{R*zwsw0L^IzjwIM5PhLlB*LO6`Fo~{=XOhr=I`coB~P6NUEu>9*){qLH$$} LwG^tJS_S - - - - Telos Spark - a Web3 Accelerator designed to propel the adoption of decentralized applications on the Telos blockchain. - - - - - - - - - - - - - - - - - - - - - - - -

-
-
-
-
-
-
Building solutions for Web 3
-
- -
connnect
-
-
-
-
-
-
-
-
-
-
-
Start Earning Now
-
Simply deposit crypto into incentivized pools of your choice and start earning today!
-
- -
Start Now
-
-
-
-
-
-
-
- -
-
- - - - \ No newline at end of file diff --git a/cent.webflow/js/webflow.js b/cent.webflow/js/webflow.js deleted file mode 100644 index e328704..0000000 --- a/cent.webflow/js/webflow.js +++ /dev/null @@ -1,13717 +0,0 @@ - -/*! - * Webflow: Front-end site library - * @license MIT - * Inline scripts may access the api using an async handler: - * var Webflow = Webflow || []; - * Webflow.push(readyFunction); - */ - -(() => { - var __create = Object.create; - var __defProp = Object.defineProperty; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __getProtoOf = Object.getPrototypeOf; - var __hasOwnProp = Object.prototype.hasOwnProperty; - var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; - }; - var __commonJS = (cb, mod) => function __require() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); - }; - var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; - }; - var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod - )); - var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - - // packages/shared/render/plugins/BaseSiteModules/tram-min.js - var require_tram_min = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/tram-min.js"() { - "use strict"; - window.tram = function(a) { - function b(a2, b2) { - var c2 = new M.Bare(); - return c2.init(a2, b2); - } - function c(a2) { - return a2.replace(/[A-Z]/g, function(a3) { - return "-" + a3.toLowerCase(); - }); - } - function d(a2) { - var b2 = parseInt(a2.slice(1), 16), c2 = b2 >> 16 & 255, d2 = b2 >> 8 & 255, e2 = 255 & b2; - return [c2, d2, e2]; - } - function e(a2, b2, c2) { - return "#" + (1 << 24 | a2 << 16 | b2 << 8 | c2).toString(16).slice(1); - } - function f() { - } - function g(a2, b2) { - j("Type warning: Expected: [" + a2 + "] Got: [" + typeof b2 + "] " + b2); - } - function h(a2, b2, c2) { - j("Units do not match [" + a2 + "]: " + b2 + ", " + c2); - } - function i(a2, b2, c2) { - if (void 0 !== b2 && (c2 = b2), void 0 === a2) - return c2; - var d2 = c2; - return $.test(a2) || !_.test(a2) ? d2 = parseInt(a2, 10) : _.test(a2) && (d2 = 1e3 * parseFloat(a2)), 0 > d2 && (d2 = 0), d2 === d2 ? d2 : c2; - } - function j(a2) { - U.debug && window && window.console.warn(a2); - } - function k(a2) { - for (var b2 = -1, c2 = a2 ? a2.length : 0, d2 = []; ++b2 < c2; ) { - var e2 = a2[b2]; - e2 && d2.push(e2); - } - return d2; - } - var l = function(a2, b2, c2) { - function d2(a3) { - return "object" == typeof a3; - } - function e2(a3) { - return "function" == typeof a3; - } - function f2() { - } - function g2(h2, i2) { - function j2() { - var a3 = new k2(); - return e2(a3.init) && a3.init.apply(a3, arguments), a3; - } - function k2() { - } - i2 === c2 && (i2 = h2, h2 = Object), j2.Bare = k2; - var l2, m2 = f2[a2] = h2[a2], n2 = k2[a2] = j2[a2] = new f2(); - return n2.constructor = j2, j2.mixin = function(b3) { - return k2[a2] = j2[a2] = g2(j2, b3)[a2], j2; - }, j2.open = function(a3) { - if (l2 = {}, e2(a3) ? l2 = a3.call(j2, n2, m2, j2, h2) : d2(a3) && (l2 = a3), d2(l2)) - for (var c3 in l2) - b2.call(l2, c3) && (n2[c3] = l2[c3]); - return e2(n2.init) || (n2.init = h2), j2; - }, j2.open(i2); - } - return g2; - }("prototype", {}.hasOwnProperty), m = { - ease: ["ease", function(a2, b2, c2, d2) { - var e2 = (a2 /= d2) * a2, f2 = e2 * a2; - return b2 + c2 * (-2.75 * f2 * e2 + 11 * e2 * e2 + -15.5 * f2 + 8 * e2 + 0.25 * a2); - }], - "ease-in": ["ease-in", function(a2, b2, c2, d2) { - var e2 = (a2 /= d2) * a2, f2 = e2 * a2; - return b2 + c2 * (-1 * f2 * e2 + 3 * e2 * e2 + -3 * f2 + 2 * e2); - }], - "ease-out": ["ease-out", function(a2, b2, c2, d2) { - var e2 = (a2 /= d2) * a2, f2 = e2 * a2; - return b2 + c2 * (0.3 * f2 * e2 + -1.6 * e2 * e2 + 2.2 * f2 + -1.8 * e2 + 1.9 * a2); - }], - "ease-in-out": ["ease-in-out", function(a2, b2, c2, d2) { - var e2 = (a2 /= d2) * a2, f2 = e2 * a2; - return b2 + c2 * (2 * f2 * e2 + -5 * e2 * e2 + 2 * f2 + 2 * e2); - }], - linear: ["linear", function(a2, b2, c2, d2) { - return c2 * a2 / d2 + b2; - }], - "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function(a2, b2, c2, d2) { - return c2 * (a2 /= d2) * a2 + b2; - }], - "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function(a2, b2, c2, d2) { - return -c2 * (a2 /= d2) * (a2 - 2) + b2; - }], - "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function(a2, b2, c2, d2) { - return (a2 /= d2 / 2) < 1 ? c2 / 2 * a2 * a2 + b2 : -c2 / 2 * (--a2 * (a2 - 2) - 1) + b2; - }], - "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function(a2, b2, c2, d2) { - return c2 * (a2 /= d2) * a2 * a2 + b2; - }], - "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function(a2, b2, c2, d2) { - return c2 * ((a2 = a2 / d2 - 1) * a2 * a2 + 1) + b2; - }], - "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function(a2, b2, c2, d2) { - return (a2 /= d2 / 2) < 1 ? c2 / 2 * a2 * a2 * a2 + b2 : c2 / 2 * ((a2 -= 2) * a2 * a2 + 2) + b2; - }], - "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function(a2, b2, c2, d2) { - return c2 * (a2 /= d2) * a2 * a2 * a2 + b2; - }], - "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function(a2, b2, c2, d2) { - return -c2 * ((a2 = a2 / d2 - 1) * a2 * a2 * a2 - 1) + b2; - }], - "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function(a2, b2, c2, d2) { - return (a2 /= d2 / 2) < 1 ? c2 / 2 * a2 * a2 * a2 * a2 + b2 : -c2 / 2 * ((a2 -= 2) * a2 * a2 * a2 - 2) + b2; - }], - "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function(a2, b2, c2, d2) { - return c2 * (a2 /= d2) * a2 * a2 * a2 * a2 + b2; - }], - "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function(a2, b2, c2, d2) { - return c2 * ((a2 = a2 / d2 - 1) * a2 * a2 * a2 * a2 + 1) + b2; - }], - "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function(a2, b2, c2, d2) { - return (a2 /= d2 / 2) < 1 ? c2 / 2 * a2 * a2 * a2 * a2 * a2 + b2 : c2 / 2 * ((a2 -= 2) * a2 * a2 * a2 * a2 + 2) + b2; - }], - "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function(a2, b2, c2, d2) { - return -c2 * Math.cos(a2 / d2 * (Math.PI / 2)) + c2 + b2; - }], - "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function(a2, b2, c2, d2) { - return c2 * Math.sin(a2 / d2 * (Math.PI / 2)) + b2; - }], - "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function(a2, b2, c2, d2) { - return -c2 / 2 * (Math.cos(Math.PI * a2 / d2) - 1) + b2; - }], - "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function(a2, b2, c2, d2) { - return 0 === a2 ? b2 : c2 * Math.pow(2, 10 * (a2 / d2 - 1)) + b2; - }], - "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function(a2, b2, c2, d2) { - return a2 === d2 ? b2 + c2 : c2 * (-Math.pow(2, -10 * a2 / d2) + 1) + b2; - }], - "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function(a2, b2, c2, d2) { - return 0 === a2 ? b2 : a2 === d2 ? b2 + c2 : (a2 /= d2 / 2) < 1 ? c2 / 2 * Math.pow(2, 10 * (a2 - 1)) + b2 : c2 / 2 * (-Math.pow(2, -10 * --a2) + 2) + b2; - }], - "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function(a2, b2, c2, d2) { - return -c2 * (Math.sqrt(1 - (a2 /= d2) * a2) - 1) + b2; - }], - "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function(a2, b2, c2, d2) { - return c2 * Math.sqrt(1 - (a2 = a2 / d2 - 1) * a2) + b2; - }], - "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function(a2, b2, c2, d2) { - return (a2 /= d2 / 2) < 1 ? -c2 / 2 * (Math.sqrt(1 - a2 * a2) - 1) + b2 : c2 / 2 * (Math.sqrt(1 - (a2 -= 2) * a2) + 1) + b2; - }], - "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function(a2, b2, c2, d2, e2) { - return void 0 === e2 && (e2 = 1.70158), c2 * (a2 /= d2) * a2 * ((e2 + 1) * a2 - e2) + b2; - }], - "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function(a2, b2, c2, d2, e2) { - return void 0 === e2 && (e2 = 1.70158), c2 * ((a2 = a2 / d2 - 1) * a2 * ((e2 + 1) * a2 + e2) + 1) + b2; - }], - "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function(a2, b2, c2, d2, e2) { - return void 0 === e2 && (e2 = 1.70158), (a2 /= d2 / 2) < 1 ? c2 / 2 * a2 * a2 * (((e2 *= 1.525) + 1) * a2 - e2) + b2 : c2 / 2 * ((a2 -= 2) * a2 * (((e2 *= 1.525) + 1) * a2 + e2) + 2) + b2; - }] - }, 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(a2) { - if (a2 in C.style) - return { - dom: a2, - css: a2 - }; - var b2, c2, d2 = "", e2 = a2.split("-"); - for (b2 = 0; b2 < e2.length; b2++) - d2 += e2[b2].charAt(0).toUpperCase() + e2[b2].slice(1); - for (b2 = 0; b2 < D.length; b2++) - if (c2 = D[b2] + d2, c2 in C.style) - return { - dom: c2, - css: E[b2] + a2 - }; - }, 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 a2 = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; - return a2 && G.bind ? a2.bind(p) : function(a3) { - p.setTimeout(a3, 16); - }; - }(), K = b.now = function() { - var a2 = p.performance, b2 = a2 && (a2.now || a2.webkitNow || a2.msNow || a2.mozNow); - return b2 && G.bind ? b2.bind(a2) : Date.now || function() { - return +/* @__PURE__ */ new Date(); - }; - }(), L = l(function(b2) { - function d2(a2, b3) { - var c2 = k(("" + a2).split(B)), d3 = c2[0]; - b3 = b3 || {}; - var e3 = Y[d3]; - if (!e3) - return j("Unsupported property: " + d3); - if (!b3.weak || !this.props[d3]) { - var f3 = e3[0], g3 = this.props[d3]; - return g3 || (g3 = this.props[d3] = new f3.Bare()), g3.init(this.$el, c2, e3, b3), g3; - } - } - function e2(a2, b3, c2) { - if (a2) { - var e3 = typeof a2; - if (b3 || (this.timer && this.timer.destroy(), this.queue = [], this.active = false), "number" == e3 && b3) - return this.timer = new S({ - duration: a2, - context: this, - complete: h2 - }), void (this.active = true); - if ("string" == e3 && b3) { - switch (a2) { - case "hide": - o2.call(this); - break; - case "stop": - l2.call(this); - break; - case "redraw": - p2.call(this); - break; - default: - d2.call(this, a2, c2 && c2[1]); - } - return h2.call(this); - } - if ("function" == e3) - return void a2.call(this, this); - if ("object" == e3) { - var f3 = 0; - u2.call(this, a2, function(a3, b4) { - a3.span > f3 && (f3 = a3.span), a3.stop(), a3.animate(b4); - }, function(a3) { - "wait" in a3 && (f3 = i(a3.wait, 0)); - }), t2.call(this), f3 > 0 && (this.timer = new S({ - duration: f3, - context: this - }), this.active = true, b3 && (this.timer.complete = h2)); - var g3 = this, j2 = false, k2 = {}; - J(function() { - u2.call(g3, a2, function(a3) { - a3.active && (j2 = true, k2[a3.name] = a3.nextStyle); - }), j2 && g3.$el.css(k2); - }); - } - } - } - function f2(a2) { - a2 = i(a2, 0), this.active ? this.queue.push({ - options: a2 - }) : (this.timer = new S({ - duration: a2, - context: this, - complete: h2 - }), this.active = true); - } - function g2(a2) { - return this.active ? (this.queue.push({ - options: a2, - args: arguments - }), void (this.timer.complete = h2)) : j("No active transition timer. Use start() or wait() before then()."); - } - function h2() { - if (this.timer && this.timer.destroy(), this.active = false, this.queue.length) { - var a2 = this.queue.shift(); - e2.call(this, a2.options, true, a2.args); - } - } - function l2(a2) { - this.timer && this.timer.destroy(), this.queue = [], this.active = false; - var b3; - "string" == typeof a2 ? (b3 = {}, b3[a2] = 1) : b3 = "object" == typeof a2 && null != a2 ? a2 : this.props, u2.call(this, b3, v2), t2.call(this); - } - function m2(a2) { - l2.call(this, a2), u2.call(this, a2, w2, x2); - } - function n2(a2) { - "string" != typeof a2 && (a2 = "block"), this.el.style.display = a2; - } - function o2() { - l2.call(this), this.el.style.display = "none"; - } - function p2() { - this.el.offsetHeight; - } - function r2() { - l2.call(this), a.removeData(this.el, q), this.$el = this.el = null; - } - function t2() { - var a2, b3, c2 = []; - this.upstream && c2.push(this.upstream); - for (a2 in this.props) - b3 = this.props[a2], b3.active && c2.push(b3.string); - c2 = c2.join(","), this.style !== c2 && (this.style = c2, this.el.style[G.transition.dom] = c2); - } - function u2(a2, b3, e3) { - var f3, g3, h3, i2, j2 = b3 !== v2, k2 = {}; - for (f3 in a2) - h3 = a2[f3], f3 in Z ? (k2.transform || (k2.transform = {}), k2.transform[f3] = h3) : (s.test(f3) && (f3 = c(f3)), f3 in Y ? k2[f3] = h3 : (i2 || (i2 = {}), i2[f3] = h3)); - for (f3 in k2) { - if (h3 = k2[f3], g3 = this.props[f3], !g3) { - if (!j2) - continue; - g3 = d2.call(this, f3); - } - b3.call(this, g3, h3); - } - e3 && i2 && e3.call(this, i2); - } - function v2(a2) { - a2.stop(); - } - function w2(a2, b3) { - a2.set(b3); - } - function x2(a2) { - this.$el.css(a2); - } - function y2(a2, c2) { - b2[a2] = function() { - return this.children ? A2.call(this, c2, arguments) : (this.el && c2.apply(this, arguments), this); - }; - } - function A2(a2, b3) { - var c2, d3 = this.children.length; - for (c2 = 0; d3 > c2; c2++) - a2.apply(this.children[c2], b3); - return this; - } - b2.init = function(b3) { - if (this.$el = a(b3), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = false, U.keepInherited && !U.fallback) { - var c2 = W(this.el, "transition"); - c2 && !z.test(c2) && (this.upstream = c2); - } - G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); - }, y2("add", d2), y2("start", e2), y2("wait", f2), y2("then", g2), y2("next", h2), y2("stop", l2), y2("set", m2), y2("show", n2), y2("hide", o2), y2("redraw", p2), y2("destroy", r2); - }), M = l(L, function(b2) { - function c2(b3, c3) { - var d2 = a.data(b3, q) || a.data(b3, q, new L.Bare()); - return d2.el || d2.init(b3), c3 ? d2.start(c3) : d2; - } - b2.init = function(b3, d2) { - var e2 = a(b3); - if (!e2.length) - return this; - if (1 === e2.length) - return c2(e2[0], d2); - var f2 = []; - return e2.each(function(a2, b4) { - f2.push(c2(b4, d2)); - }), this.children = f2, this; - }; - }), N = l(function(a2) { - function b2() { - var a3 = this.get(); - this.update("auto"); - var b3 = this.get(); - return this.update(a3), b3; - } - function c2(a3, b3, c3) { - return void 0 !== b3 && (c3 = b3), a3 in m ? a3 : c3; - } - function d2(a3) { - var b3 = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a3); - return (b3 ? e(b3[1], b3[2], b3[3]) : a3).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); - } - var f2 = { - duration: 500, - ease: "ease", - delay: 0 - }; - a2.init = function(a3, b3, d3, e2) { - this.$el = a3, this.el = a3[0]; - var g2 = b3[0]; - d3[2] && (g2 = d3[2]), X[g2] && (g2 = X[g2]), this.name = g2, this.type = d3[1], this.duration = i(b3[1], this.duration, f2.duration), this.ease = c2(b3[2], this.ease, f2.ease), this.delay = i(b3[3], this.delay, f2.delay), this.span = this.duration + this.delay, this.active = false, this.nextStyle = null, this.auto = A.test(this.name), this.unit = e2.unit || this.unit || U.defaultUnit, this.angle = e2.angle || this.angle || U.defaultAngle, U.fallback || e2.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" : "")); - }, a2.set = function(a3) { - a3 = this.convert(a3, this.type), this.update(a3), this.redraw(); - }, a2.transition = function(a3) { - this.active = true, a3 = this.convert(a3, this.type), this.auto && ("auto" == this.el.style[this.name] && (this.update(this.get()), this.redraw()), "auto" == a3 && (a3 = b2.call(this))), this.nextStyle = a3; - }, a2.fallback = function(a3) { - var c3 = this.el.style[this.name] || this.convert(this.get(), this.type); - a3 = this.convert(a3, this.type), this.auto && ("auto" == c3 && (c3 = this.convert(this.get(), this.type)), "auto" == a3 && (a3 = b2.call(this))), this.tween = new R({ - from: c3, - to: a3, - duration: this.duration, - delay: this.delay, - ease: this.ease, - update: this.update, - context: this - }); - }, a2.get = function() { - return W(this.el, this.name); - }, a2.update = function(a3) { - V(this.el, this.name, a3); - }, a2.stop = function() { - (this.active || this.nextStyle) && (this.active = false, this.nextStyle = null, V(this.el, this.name, this.get())); - var a3 = this.tween; - a3 && a3.context && a3.destroy(); - }, a2.convert = function(a3, b3) { - if ("auto" == a3 && this.auto) - return a3; - var c3, e2 = "number" == typeof a3, f3 = "string" == typeof a3; - switch (b3) { - case t: - if (e2) - return a3; - if (f3 && "" === a3.replace(r, "")) - return +a3; - c3 = "number(unitless)"; - break; - case u: - if (f3) { - if ("" === a3 && this.original) - return this.original; - if (b3.test(a3)) - return "#" == a3.charAt(0) && 7 == a3.length ? a3 : d2(a3); - } - c3 = "hex or rgb string"; - break; - case v: - if (e2) - return a3 + this.unit; - if (f3 && b3.test(a3)) - return a3; - c3 = "number(px) or string(unit)"; - break; - case w: - if (e2) - return a3 + this.unit; - if (f3 && b3.test(a3)) - return a3; - c3 = "number(px) or string(unit or %)"; - break; - case x: - if (e2) - return a3 + this.angle; - if (f3 && b3.test(a3)) - return a3; - c3 = "number(deg) or string(angle)"; - break; - case y: - if (e2) - return a3; - if (f3 && w.test(a3)) - return a3; - c3 = "number(unitless) or string(unit or %)"; - } - return g(c3, a3), a3; - }, a2.redraw = function() { - this.el.offsetHeight; - }; - }), O = l(N, function(a2, b2) { - a2.init = function() { - b2.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); - }; - }), P = l(N, function(a2, b2) { - a2.init = function() { - b2.init.apply(this, arguments), this.animate = this.fallback; - }, a2.get = function() { - return this.$el[this.name](); - }, a2.update = function(a3) { - this.$el[this.name](a3); - }; - }), Q = l(N, function(a2, b2) { - function c2(a3, b3) { - var c3, d2, e2, f2, g2; - for (c3 in a3) - f2 = Z[c3], e2 = f2[0], d2 = f2[1] || c3, g2 = this.convert(a3[c3], e2), b3.call(this, d2, g2, e2); - } - a2.init = function() { - b2.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())); - }, a2.set = function(a3) { - c2.call(this, a3, function(a4, b3) { - this.current[a4] = b3; - }), V(this.el, this.name, this.style(this.current)), this.redraw(); - }, a2.transition = function(a3) { - var b3 = this.values(a3); - this.tween = new T({ - current: this.current, - values: b3, - duration: this.duration, - delay: this.delay, - ease: this.ease - }); - var c3, d2 = {}; - for (c3 in this.current) - d2[c3] = c3 in b3 ? b3[c3] : this.current[c3]; - this.active = true, this.nextStyle = this.style(d2); - }, a2.fallback = function(a3) { - var b3 = this.values(a3); - this.tween = new T({ - current: this.current, - values: b3, - duration: this.duration, - delay: this.delay, - ease: this.ease, - update: this.update, - context: this - }); - }, a2.update = function() { - V(this.el, this.name, this.style(this.current)); - }, a2.style = function(a3) { - var b3, c3 = ""; - for (b3 in a3) - c3 += b3 + "(" + a3[b3] + ") "; - return c3; - }, a2.values = function(a3) { - var b3, d2 = {}; - return c2.call(this, a3, function(a4, c3, e2) { - d2[a4] = c3, void 0 === this.current[a4] && (b3 = 0, ~a4.indexOf("scale") && (b3 = 1), this.current[a4] = this.convert(b3, e2)); - }), d2; - }; - }), R = l(function(b2) { - function c2(a2) { - 1 === n2.push(a2) && J(g2); - } - function g2() { - var a2, b3, c3, d2 = n2.length; - if (d2) - for (J(g2), b3 = K(), a2 = d2; a2--; ) - c3 = n2[a2], c3 && c3.render(b3); - } - function i2(b3) { - var c3, d2 = a.inArray(b3, n2); - d2 >= 0 && (c3 = n2.slice(d2 + 1), n2.length = d2, c3.length && (n2 = n2.concat(c3))); - } - function j2(a2) { - return Math.round(a2 * o2) / o2; - } - function k2(a2, b3, c3) { - return e(a2[0] + c3 * (b3[0] - a2[0]), a2[1] + c3 * (b3[1] - a2[1]), a2[2] + c3 * (b3[2] - a2[2])); - } - var l2 = { - ease: m.ease[1], - from: 0, - to: 1 - }; - b2.init = function(a2) { - this.duration = a2.duration || 0, this.delay = a2.delay || 0; - var b3 = a2.ease || l2.ease; - m[b3] && (b3 = m[b3][1]), "function" != typeof b3 && (b3 = l2.ease), this.ease = b3, this.update = a2.update || f, this.complete = a2.complete || f, this.context = a2.context || this, this.name = a2.name; - var c3 = a2.from, d2 = a2.to; - void 0 === c3 && (c3 = l2.from), void 0 === d2 && (d2 = l2.to), this.unit = a2.unit || "", "number" == typeof c3 && "number" == typeof d2 ? (this.begin = c3, this.change = d2 - c3) : this.format(d2, c3), this.value = this.begin + this.unit, this.start = K(), a2.autoplay !== false && this.play(); - }, b2.play = function() { - this.active || (this.start || (this.start = K()), this.active = true, c2(this)); - }, b2.stop = function() { - this.active && (this.active = false, i2(this)); - }, b2.render = function(a2) { - var b3, c3 = a2 - this.start; - if (this.delay) { - if (c3 <= this.delay) - return; - c3 -= this.delay; - } - if (c3 < this.duration) { - var d2 = this.ease(c3, 0, 1, this.duration); - return b3 = this.startRGB ? k2(this.startRGB, this.endRGB, d2) : j2(this.begin + d2 * this.change), this.value = b3 + this.unit, void this.update.call(this.context, this.value); - } - b3 = this.endHex || this.begin + this.change, this.value = b3 + this.unit, this.update.call(this.context, this.value), this.complete.call(this.context), this.destroy(); - }, b2.format = function(a2, b3) { - if (b3 += "", a2 += "", "#" == a2.charAt(0)) - return this.startRGB = d(b3), this.endRGB = d(a2), this.endHex = a2, this.begin = 0, void (this.change = 1); - if (!this.unit) { - var c3 = b3.replace(r, ""), e2 = a2.replace(r, ""); - c3 !== e2 && h("tween", b3, a2), this.unit = c3; - } - b3 = parseFloat(b3), a2 = parseFloat(a2), this.begin = this.value = b3, this.change = a2 - b3; - }, b2.destroy = function() { - this.stop(), this.context = null, this.ease = this.update = this.complete = f; - }; - var n2 = [], o2 = 1e3; - }), S = l(R, function(a2) { - a2.init = function(a3) { - this.duration = a3.duration || 0, this.complete = a3.complete || f, this.context = a3.context, this.play(); - }, a2.render = function(a3) { - var b2 = a3 - this.start; - b2 < this.duration || (this.complete.call(this.context), this.destroy()); - }; - }), T = l(R, function(a2, b2) { - a2.init = function(a3) { - this.context = a3.context, this.update = a3.update, this.tweens = [], this.current = a3.current; - var b3, c2; - for (b3 in a3.values) - c2 = a3.values[b3], this.current[b3] !== c2 && this.tweens.push(new R({ - name: b3, - from: this.current[b3], - to: c2, - duration: a3.duration, - delay: a3.delay, - ease: a3.ease, - autoplay: false - })); - this.play(); - }, a2.render = function(a3) { - var b3, c2, d2 = this.tweens.length, e2 = false; - for (b3 = d2; b3--; ) - c2 = this.tweens[b3], c2.context && (c2.render(a3), this.current[c2.name] = c2.value, e2 = true); - return e2 ? void (this.update && this.update.call(this.context)) : this.destroy(); - }, a2.destroy = function() { - if (b2.destroy.call(this), this.tweens) { - var a3, c2 = this.tweens.length; - for (a3 = c2; a3--; ) - this.tweens[a3].destroy(); - this.tweens = null, this.current = null; - } - }; - }), U = b.config = { - debug: false, - defaultUnit: "px", - defaultAngle: "deg", - keepInherited: false, - hideBackface: false, - perspective: "", - fallback: !G.transition, - agentTests: [] - }; - b.fallback = function(a2) { - if (!G.transition) - return U.fallback = true; - U.agentTests.push("(" + a2 + ")"); - var b2 = new RegExp(U.agentTests.join("|"), "i"); - U.fallback = b2.test(navigator.userAgent); - }, b.fallback("6.0.[2-5] Safari"), b.tween = function(a2) { - return new R(a2); - }, b.delay = function(a2, b2, c2) { - return new S({ - complete: b2, - duration: a2, - context: c2 - }); - }, a.fn.tram = function(a2) { - return b.call(null, this, a2); - }; - 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); - } - }); - - // packages/shared/render/plugins/BaseSiteModules/underscore-custom.js - var require_underscore_custom = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/underscore-custom.js"(exports, module) { - "use strict"; - var $ = window.$; - var tram = require_tram_min() && $.tram; - module.exports = function() { - var _ = {}; - _.VERSION = "1.6.0-Webflow"; - var breaker = {}; - var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; - var push = ArrayProto.push, slice = ArrayProto.slice, concat = ArrayProto.concat, toString = ObjProto.toString, hasOwnProperty = ObjProto.hasOwnProperty; - 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; - var each = _.each = _.forEach = function(obj, iterator, context) { - if (obj == null) - return obj; - if (nativeForEach && obj.forEach === nativeForEach) { - obj.forEach(iterator, context); - } 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); - for (var i = 0, length = keys.length; i < length; i++) { - if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) - return; - } - } - return obj; - }; - _.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; - }; - _.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; - }; - _.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; - }; - 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; - }; - _.contains = _.include = function(obj, target) { - if (obj == null) - return false; - if (nativeIndexOf && obj.indexOf === nativeIndexOf) - return obj.indexOf(target) != -1; - return any(obj, function(value) { - return value === target; - }); - }; - _.delay = function(func, wait) { - var args = slice.call(arguments, 2); - return setTimeout(function() { - return func.apply(null, args); - }, wait); - }; - _.defer = function(func) { - return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); - }; - _.throttle = function(func) { - var wait, args, context; - return function() { - if (wait) - return; - wait = true; - args = arguments; - context = this; - tram.frame(function() { - wait = false; - func.apply(context, args); - }); - }; - }; - _.debounce = function(func, wait, immediate) { - var timeout, args, context, timestamp, result; - var later = function() { - 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; - }; - }; - _.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) { - if (obj[prop] === void 0) - obj[prop] = source[prop]; - } - } - return obj; - }; - _.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; - }; - _.has = function(obj, key) { - return hasOwnProperty.call(obj, key); - }; - _.isObject = function(obj) { - return obj === Object(obj); - }; - _.now = Date.now || function() { - return (/* @__PURE__ */ new Date()).getTime(); - }; - _.templateSettings = { - evaluate: /<%([\s\S]+?)%>/g, - interpolate: /<%=([\s\S]+?)%>/g, - escape: /<%-([\s\S]+?)%>/g - }; - var noMatch = /(.)^/; - var escapes = { - "'": "'", - "\\": "\\", - "\r": "r", - "\n": "n", - "\u2028": "u2028", - "\u2029": "u2029" - }; - var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; - var escapeChar = function(match) { - return "\\" + escapes[match]; - }; - var bareIdentifier = /^\s*(\w|\$)+\s*$/; - _.template = function(text, settings, oldSettings) { - if (!settings && oldSettings) - settings = oldSettings; - settings = _.defaults({}, settings, _.templateSettings); - var matcher = RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join("|") + "|$", "g"); - var index = 0; - var source = "__p+='"; - text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { - source += text.slice(index, offset).replace(escapeRegExp, 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+='"; - } - return match; - }); - source += "';\n"; - var argument = settings.variable; - if (argument) { - if (!bareIdentifier.test(argument)) - throw new Error("variable is not a bare identifier: " + argument); - } else { - source = "with(obj||{}){\n" + source + "}\n"; - argument = "obj"; - } - source = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + source + "return __p;\n"; - var render; - try { - render = new Function(settings.variable || "obj", "_", source); - } catch (e) { - e.source = source; - throw e; - } - var template = function(data) { - return render.call(this, data, _); - }; - template.source = "function(" + argument + "){\n" + source + "}"; - return template; - }; - return _; - }(); - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-lib.js - var require_webflow_lib = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-lib.js"(exports, module) { - "use strict"; - var Webflow = {}; - var modules = {}; - var primary = []; - var secondary = window.Webflow || []; - var $ = window.jQuery; - var $win = $(window); - var $doc = $(document); - var isFunction = $.isFunction; - var _ = Webflow._ = require_underscore_custom(); - var tram = Webflow.tram = require_tram_min() && $.tram; - var domready = false; - var destroyed = false; - tram.config.hideBackface = false; - tram.config.keepInherited = true; - Webflow.define = function(name, factory, options) { - if (modules[name]) { - unbindModule(modules[name]); - } - var instance = modules[name] = factory($, _, options) || {}; - bindModule(instance); - return instance; - }; - Webflow.require = function(name) { - return modules[name]; - }; - function bindModule(module2) { - if (Webflow.env()) { - isFunction(module2.design) && $win.on("__wf_design", module2.design); - isFunction(module2.preview) && $win.on("__wf_preview", module2.preview); - } - isFunction(module2.destroy) && $win.on("__wf_destroy", module2.destroy); - if (module2.ready && isFunction(module2.ready)) { - addReady(module2); - } - } - function addReady(module2) { - if (domready) { - module2.ready(); - return; - } - if (_.contains(primary, module2.ready)) { - return; - } - primary.push(module2.ready); - } - function unbindModule(module2) { - isFunction(module2.design) && $win.off("__wf_design", module2.design); - isFunction(module2.preview) && $win.off("__wf_preview", module2.preview); - isFunction(module2.destroy) && $win.off("__wf_destroy", module2.destroy); - if (module2.ready && isFunction(module2.ready)) { - removeReady(module2); - } - } - function removeReady(module2) { - primary = _.filter(primary, function(readyFn) { - return readyFn !== module2.ready; - }); - } - Webflow.push = function(ready) { - if (domready) { - isFunction(ready) && ready(); - return; - } - secondary.push(ready); - }; - 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 window.__wf_test; - } - if (mode === "frame") { - return window !== window.top; - } - }; - 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; - var touchTarget; - touch && $doc.on("touchstart mousedown", function(evt) { - touchTarget = evt.target; - }); - Webflow.validClick = touch ? function(clickTarget) { - return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); - } : function() { - return true; - }; - 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(); - function eventProxy(target, types) { - var handlers = []; - var proxy = {}; - proxy.up = _.throttle(function(evt) { - _.each(handlers, function(h) { - h(evt); - }); - }); - if (target && types) { - target.on(types, proxy.up); - } - proxy.on = function(handler) { - if (typeof handler !== "function") { - return; - } - if (_.contains(handlers, handler)) { - return; - } - handlers.push(handler); - }; - proxy.off = function(handler) { - if (!arguments.length) { - handlers = []; - return; - } - handlers = _.filter(handlers, function(h) { - return h !== handler; - }); - }; - return proxy; - } - Webflow.location = function(url) { - window.location = url; - }; - if (Webflow.env()) { - Webflow.location = function() { - }; - } - Webflow.ready = function() { - domready = true; - if (destroyed) { - restoreModules(); - } else { - _.each(primary, callReady); - } - _.each(secondary, callReady); - Webflow.resize.up(); - }; - function callReady(readyFn) { - isFunction(readyFn) && readyFn(); - } - function restoreModules() { - destroyed = false; - _.each(modules, bindModule); - } - var deferLoad; - Webflow.load = function(handler) { - deferLoad.then(handler); - }; - function bindLoad() { - if (deferLoad) { - deferLoad.reject(); - $win.off("load", deferLoad.resolve); - } - deferLoad = new $.Deferred(); - $win.on("load", deferLoad.resolve); - } - Webflow.destroy = function(options) { - options = options || {}; - destroyed = true; - $win.triggerHandler("__wf_destroy"); - if (options.domready != null) { - domready = options.domready; - } - _.each(modules, unbindModule); - Webflow.resize.off(); - Webflow.scroll.off(); - Webflow.redraw.off(); - primary = []; - secondary = []; - if (deferLoad.state() === "pending") { - bindLoad(); - } - }; - $(Webflow.ready); - bindLoad(); - module.exports = window.Webflow = Webflow; - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-brand.js - var require_webflow_brand = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-brand.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - 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; - 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-d2.89e12c322e.svg").attr("alt", "").css({ - marginRight: "4px", - width: "26px" - }); - var $logoText = $("").attr("src", "https://d3e54v103j8qbb.cloudfront.net/img/webflow-badge-text-d2.c82cec3b78.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) { - if (inEditor) { - found.remove(); - } - return; - } - if (found.length) { - found.remove(); - } - if (!inEditor) { - $body.append(brandElement); - } - } - return api; - }); - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-focus-visible.js - var require_webflow_focus_visible = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-focus-visible.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - Webflow.define("focus-visible", module.exports = function() { - 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 - }; - function isValidFocusTarget(el) { - if (el && el !== document && el.nodeName !== "HTML" && el.nodeName !== "BODY" && "classList" in el && "contains" in el.classList) { - return true; - } - return false; - } - 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"); - } - function onKeyDown(e) { - if (e.metaKey || e.altKey || e.ctrlKey) { - return; - } - if (isValidFocusTarget(scope.activeElement)) { - addFocusVisibleAttribute(scope.activeElement); - } - hadKeyboardEvent = true; - } - function onPointerDown() { - hadKeyboardEvent = false; - } - function onFocus(e) { - if (!isValidFocusTarget(e.target)) { - return; - } - if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) { - addFocusVisibleAttribute(e.target); - } - } - function onBlur(e) { - if (!isValidFocusTarget(e.target)) { - return; - } - if (e.target.hasAttribute("data-wf-focus-visible")) { - hadFocusVisibleRecently = true; - window.clearTimeout(hadFocusVisibleRecentlyTimeout); - hadFocusVisibleRecentlyTimeout = window.setTimeout(function() { - hadFocusVisibleRecently = false; - }, 100); - removeFocusVisibleAttribute(e.target); - } - } - function onVisibilityChange() { - if (document.visibilityState === "hidden") { - if (hadFocusVisibleRecently) { - hadKeyboardEvent = true; - } - addInitialPointerMoveListeners(); - } - } - 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); - } - function onInitialPointerMove(e) { - if (e.target.nodeName && e.target.nodeName.toLowerCase() === "html") { - return; - } - hadKeyboardEvent = false; - removeInitialPointerMoveListeners(); - } - 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(); - scope.addEventListener("focus", onFocus, true); - scope.addEventListener("blur", onBlur, true); - } - function ready() { - if (typeof document !== "undefined") { - try { - document.querySelector(":focus-visible"); - } catch (e) { - applyFocusVisiblePolyfill(document); - } - } - } - return { - ready - }; - }); - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-focus.js - var require_webflow_focus = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-focus.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - 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); - } - } - 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; - } - function handler(e) { - if (isPolyfilledFocusEvent(e)) { - capturing = true; - setTimeout(() => { - capturing = false; - e.target.focus(); - 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); - } - } - return { - ready - }; - }); - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-ix-events.js - var require_webflow_ix_events = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-ix-events.js"(exports, module) { - "use strict"; - var $ = window.jQuery; - var api = {}; - var eventQueue = []; - var namespace = ".w-ix"; - var eventTriggers = { - reset: function(i, el) { - el.__wf_intro = null; - }, - intro: function(i, el) { - if (el.__wf_intro) { - return; - } - el.__wf_intro = true; - $(el).triggerHandler(api.types.INTRO); - }, - outro: function(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 - }; - 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); - }; - api.async = function() { - for (var key in eventTriggers) { - var func = eventTriggers[key]; - if (!eventTriggers.hasOwnProperty(key)) { - continue; - } - api.triggers[key] = function(i, el) { - eventQueue.push([func, el]); - }; - } - }; - api.async(); - module.exports = api; - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-ix2-events.js - var require_webflow_ix2_events = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-ix2-events.js"(exports, module) { - "use strict"; - var IXEvents = require_webflow_ix_events(); - function dispatchCustomEvent2(element, eventName) { - var event = document.createEvent("CustomEvent"); - event.initCustomEvent(eventName, true, true, null); - element.dispatchEvent(event); - } - var $ = window.jQuery; - var api = {}; - var namespace = ".w-ix"; - var eventTriggers = { - reset: function(i, el) { - IXEvents.triggers.reset(i, el); - }, - intro: function(i, el) { - IXEvents.triggers.intro(i, el); - dispatchCustomEvent2(el, "COMPONENT_ACTIVE"); - }, - outro: function(i, el) { - IXEvents.triggers.outro(i, el); - dispatchCustomEvent2(el, "COMPONENT_INACTIVE"); - } - }; - api.triggers = {}; - api.types = { - INTRO: "w-ix-intro" + namespace, - OUTRO: "w-ix-outro" + namespace - }; - $.extend(api.triggers, eventTriggers); - module.exports = api; - } - }); - - // node_modules/@babel/runtime/helpers/typeof.js - var require_typeof = __commonJS({ - "node_modules/@babel/runtime/helpers/typeof.js"(exports, module) { - function _typeof(o) { - "@babel/helpers - typeof"; - return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { - return typeof o2; - } : function(o2) { - return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; - }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); - } - module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; - } - }); - - // node_modules/@babel/runtime/helpers/interopRequireWildcard.js - var require_interopRequireWildcard = __commonJS({ - "node_modules/@babel/runtime/helpers/interopRequireWildcard.js"(exports, module) { - var _typeof = require_typeof()["default"]; - function _getRequireWildcardCache(e) { - if ("function" != typeof WeakMap) - return null; - var r = /* @__PURE__ */ new WeakMap(), t = /* @__PURE__ */ new WeakMap(); - return (_getRequireWildcardCache = function _getRequireWildcardCache2(e2) { - return e2 ? t : r; - })(e); - } - function _interopRequireWildcard(e, r) { - if (!r && e && e.__esModule) - return e; - if (null === e || "object" != _typeof(e) && "function" != typeof e) - return { - "default": e - }; - var t = _getRequireWildcardCache(r); - if (t && t.has(e)) - return t.get(e); - var n = { - __proto__: null - }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; - for (var u in e) - if ("default" !== u && {}.hasOwnProperty.call(e, u)) { - var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; - i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; - } - return n["default"] = e, t && t.set(e, n), n; - } - module.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports["default"] = module.exports; - } - }); - - // node_modules/@babel/runtime/helpers/interopRequireDefault.js - var require_interopRequireDefault = __commonJS({ - "node_modules/@babel/runtime/helpers/interopRequireDefault.js"(exports, module) { - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - "default": obj - }; - } - module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; - } - }); - - // node_modules/core-js/internals/global.js - var require_global = __commonJS({ - "node_modules/core-js/internals/global.js"(exports, module) { - var check = function(it) { - return it && it.Math == Math && it; - }; - 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")(); - } - }); - - // node_modules/core-js/internals/fails.js - var require_fails = __commonJS({ - "node_modules/core-js/internals/fails.js"(exports, module) { - module.exports = function(exec) { - try { - return !!exec(); - } catch (error) { - return true; - } - }; - } - }); - - // node_modules/core-js/internals/descriptors.js - var require_descriptors = __commonJS({ - "node_modules/core-js/internals/descriptors.js"(exports, module) { - var fails = require_fails(); - module.exports = !fails(function() { - return Object.defineProperty({}, 1, { get: function() { - return 7; - } })[1] != 7; - }); - } - }); - - // node_modules/core-js/internals/function-call.js - var require_function_call = __commonJS({ - "node_modules/core-js/internals/function-call.js"(exports, module) { - var call = Function.prototype.call; - module.exports = call.bind ? call.bind(call) : function() { - return call.apply(call, arguments); - }; - } - }); - - // node_modules/core-js/internals/object-property-is-enumerable.js - var require_object_property_is_enumerable = __commonJS({ - "node_modules/core-js/internals/object-property-is-enumerable.js"(exports) { - "use strict"; - var $propertyIsEnumerable = {}.propertyIsEnumerable; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); - exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V); - return !!descriptor && descriptor.enumerable; - } : $propertyIsEnumerable; - } - }); - - // node_modules/core-js/internals/create-property-descriptor.js - var require_create_property_descriptor = __commonJS({ - "node_modules/core-js/internals/create-property-descriptor.js"(exports, module) { - module.exports = function(bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value - }; - }; - } - }); - - // node_modules/core-js/internals/function-uncurry-this.js - var require_function_uncurry_this = __commonJS({ - "node_modules/core-js/internals/function-uncurry-this.js"(exports, module) { - 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); - }; - }; - } - }); - - // node_modules/core-js/internals/classof-raw.js - var require_classof_raw = __commonJS({ - "node_modules/core-js/internals/classof-raw.js"(exports, module) { - var uncurryThis = require_function_uncurry_this(); - var toString = uncurryThis({}.toString); - var stringSlice = uncurryThis("".slice); - module.exports = function(it) { - return stringSlice(toString(it), 8, -1); - }; - } - }); - - // node_modules/core-js/internals/indexed-object.js - var require_indexed_object = __commonJS({ - "node_modules/core-js/internals/indexed-object.js"(exports, module) { - var global2 = require_global(); - var uncurryThis = require_function_uncurry_this(); - var fails = require_fails(); - var classof = require_classof_raw(); - var Object2 = global2.Object; - var split = uncurryThis("".split); - module.exports = fails(function() { - return !Object2("z").propertyIsEnumerable(0); - }) ? function(it) { - return classof(it) == "String" ? split(it, "") : Object2(it); - } : Object2; - } - }); - - // node_modules/core-js/internals/require-object-coercible.js - var require_require_object_coercible = __commonJS({ - "node_modules/core-js/internals/require-object-coercible.js"(exports, module) { - var global2 = require_global(); - var TypeError2 = global2.TypeError; - module.exports = function(it) { - if (it == void 0) - throw TypeError2("Can't call method on " + it); - return it; - }; - } - }); - - // node_modules/core-js/internals/to-indexed-object.js - var require_to_indexed_object = __commonJS({ - "node_modules/core-js/internals/to-indexed-object.js"(exports, module) { - var IndexedObject = require_indexed_object(); - var requireObjectCoercible = require_require_object_coercible(); - module.exports = function(it) { - return IndexedObject(requireObjectCoercible(it)); - }; - } - }); - - // node_modules/core-js/internals/is-callable.js - var require_is_callable = __commonJS({ - "node_modules/core-js/internals/is-callable.js"(exports, module) { - module.exports = function(argument) { - return typeof argument == "function"; - }; - } - }); - - // node_modules/core-js/internals/is-object.js - var require_is_object = __commonJS({ - "node_modules/core-js/internals/is-object.js"(exports, module) { - var isCallable = require_is_callable(); - module.exports = function(it) { - return typeof it == "object" ? it !== null : isCallable(it); - }; - } - }); - - // node_modules/core-js/internals/get-built-in.js - var require_get_built_in = __commonJS({ - "node_modules/core-js/internals/get-built-in.js"(exports, module) { - var global2 = require_global(); - var isCallable = require_is_callable(); - var aFunction = function(argument) { - return isCallable(argument) ? argument : void 0; - }; - module.exports = function(namespace, method) { - return arguments.length < 2 ? aFunction(global2[namespace]) : global2[namespace] && global2[namespace][method]; - }; - } - }); - - // node_modules/core-js/internals/object-is-prototype-of.js - var require_object_is_prototype_of = __commonJS({ - "node_modules/core-js/internals/object-is-prototype-of.js"(exports, module) { - var uncurryThis = require_function_uncurry_this(); - module.exports = uncurryThis({}.isPrototypeOf); - } - }); - - // node_modules/core-js/internals/engine-user-agent.js - var require_engine_user_agent = __commonJS({ - "node_modules/core-js/internals/engine-user-agent.js"(exports, module) { - var getBuiltIn = require_get_built_in(); - module.exports = getBuiltIn("navigator", "userAgent") || ""; - } - }); - - // node_modules/core-js/internals/engine-v8-version.js - var require_engine_v8_version = __commonJS({ - "node_modules/core-js/internals/engine-v8-version.js"(exports, module) { - var global2 = require_global(); - var userAgent = require_engine_user_agent(); - var process2 = global2.process; - var Deno = global2.Deno; - var versions = process2 && process2.versions || Deno && Deno.version; - var v8 = versions && versions.v8; - var match; - var version; - if (v8) { - match = v8.split("."); - version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); - } - 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; - } - }); - - // node_modules/core-js/internals/native-symbol.js - var require_native_symbol = __commonJS({ - "node_modules/core-js/internals/native-symbol.js"(exports, module) { - var V8_VERSION = require_engine_v8_version(); - var fails = require_fails(); - module.exports = !!Object.getOwnPropertySymbols && !fails(function() { - var symbol = Symbol(); - 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; - }); - } - }); - - // node_modules/core-js/internals/use-symbol-as-uid.js - var require_use_symbol_as_uid = __commonJS({ - "node_modules/core-js/internals/use-symbol-as-uid.js"(exports, module) { - var NATIVE_SYMBOL = require_native_symbol(); - module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == "symbol"; - } - }); - - // node_modules/core-js/internals/is-symbol.js - var require_is_symbol = __commonJS({ - "node_modules/core-js/internals/is-symbol.js"(exports, module) { - var global2 = require_global(); - var getBuiltIn = require_get_built_in(); - var isCallable = require_is_callable(); - var isPrototypeOf = require_object_is_prototype_of(); - var USE_SYMBOL_AS_UID = require_use_symbol_as_uid(); - var Object2 = global2.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, Object2(it)); - }; - } - }); - - // node_modules/core-js/internals/try-to-string.js - var require_try_to_string = __commonJS({ - "node_modules/core-js/internals/try-to-string.js"(exports, module) { - var global2 = require_global(); - var String2 = global2.String; - module.exports = function(argument) { - try { - return String2(argument); - } catch (error) { - return "Object"; - } - }; - } - }); - - // node_modules/core-js/internals/a-callable.js - var require_a_callable = __commonJS({ - "node_modules/core-js/internals/a-callable.js"(exports, module) { - var global2 = require_global(); - var isCallable = require_is_callable(); - var tryToString = require_try_to_string(); - var TypeError2 = global2.TypeError; - module.exports = function(argument) { - if (isCallable(argument)) - return argument; - throw TypeError2(tryToString(argument) + " is not a function"); - }; - } - }); - - // node_modules/core-js/internals/get-method.js - var require_get_method = __commonJS({ - "node_modules/core-js/internals/get-method.js"(exports, module) { - var aCallable = require_a_callable(); - module.exports = function(V, P) { - var func = V[P]; - return func == null ? void 0 : aCallable(func); - }; - } - }); - - // node_modules/core-js/internals/ordinary-to-primitive.js - var require_ordinary_to_primitive = __commonJS({ - "node_modules/core-js/internals/ordinary-to-primitive.js"(exports, module) { - var global2 = require_global(); - var call = require_function_call(); - var isCallable = require_is_callable(); - var isObject = require_is_object(); - var TypeError2 = global2.TypeError; - 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 TypeError2("Can't convert object to primitive value"); - }; - } - }); - - // node_modules/core-js/internals/is-pure.js - var require_is_pure = __commonJS({ - "node_modules/core-js/internals/is-pure.js"(exports, module) { - module.exports = false; - } - }); - - // node_modules/core-js/internals/set-global.js - var require_set_global = __commonJS({ - "node_modules/core-js/internals/set-global.js"(exports, module) { - var global2 = require_global(); - var defineProperty = Object.defineProperty; - module.exports = function(key, value) { - try { - defineProperty(global2, key, { value, configurable: true, writable: true }); - } catch (error) { - global2[key] = value; - } - return value; - }; - } - }); - - // node_modules/core-js/internals/shared-store.js - var require_shared_store = __commonJS({ - "node_modules/core-js/internals/shared-store.js"(exports, module) { - var global2 = require_global(); - var setGlobal = require_set_global(); - var SHARED = "__core-js_shared__"; - var store = global2[SHARED] || setGlobal(SHARED, {}); - module.exports = store; - } - }); - - // node_modules/core-js/internals/shared.js - var require_shared = __commonJS({ - "node_modules/core-js/internals/shared.js"(exports, module) { - var IS_PURE = require_is_pure(); - var store = require_shared_store(); - (module.exports = function(key, value) { - return store[key] || (store[key] = value !== void 0 ? value : {}); - })("versions", []).push({ - version: "3.19.0", - mode: IS_PURE ? "pure" : "global", - copyright: "\xA9 2021 Denis Pushkarev (zloirock.ru)" - }); - } - }); - - // node_modules/core-js/internals/to-object.js - var require_to_object = __commonJS({ - "node_modules/core-js/internals/to-object.js"(exports, module) { - var global2 = require_global(); - var requireObjectCoercible = require_require_object_coercible(); - var Object2 = global2.Object; - module.exports = function(argument) { - return Object2(requireObjectCoercible(argument)); - }; - } - }); - - // node_modules/core-js/internals/has-own-property.js - var require_has_own_property = __commonJS({ - "node_modules/core-js/internals/has-own-property.js"(exports, module) { - var uncurryThis = require_function_uncurry_this(); - var toObject = require_to_object(); - var hasOwnProperty = uncurryThis({}.hasOwnProperty); - module.exports = Object.hasOwn || function hasOwn(it, key) { - return hasOwnProperty(toObject(it), key); - }; - } - }); - - // node_modules/core-js/internals/uid.js - var require_uid = __commonJS({ - "node_modules/core-js/internals/uid.js"(exports, module) { - var uncurryThis = require_function_uncurry_this(); - var id = 0; - var postfix = Math.random(); - var toString = uncurryThis(1 .toString); - module.exports = function(key) { - return "Symbol(" + (key === void 0 ? "" : key) + ")_" + toString(++id + postfix, 36); - }; - } - }); - - // node_modules/core-js/internals/well-known-symbol.js - var require_well_known_symbol = __commonJS({ - "node_modules/core-js/internals/well-known-symbol.js"(exports, module) { - var global2 = require_global(); - var shared = require_shared(); - var hasOwn = require_has_own_property(); - var uid = require_uid(); - var NATIVE_SYMBOL = require_native_symbol(); - var USE_SYMBOL_AS_UID = require_use_symbol_as_uid(); - var WellKnownSymbolsStore = shared("wks"); - var Symbol2 = global2.Symbol; - var symbolFor = Symbol2 && Symbol2["for"]; - var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol2 : Symbol2 && Symbol2.withoutSetter || uid; - module.exports = function(name) { - if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == "string")) { - var description = "Symbol." + name; - if (NATIVE_SYMBOL && hasOwn(Symbol2, name)) { - WellKnownSymbolsStore[name] = Symbol2[name]; - } else if (USE_SYMBOL_AS_UID && symbolFor) { - WellKnownSymbolsStore[name] = symbolFor(description); - } else { - WellKnownSymbolsStore[name] = createWellKnownSymbol(description); - } - } - return WellKnownSymbolsStore[name]; - }; - } - }); - - // node_modules/core-js/internals/to-primitive.js - var require_to_primitive = __commonJS({ - "node_modules/core-js/internals/to-primitive.js"(exports, module) { - var global2 = require_global(); - var call = require_function_call(); - var isObject = require_is_object(); - var isSymbol = require_is_symbol(); - var getMethod = require_get_method(); - var ordinaryToPrimitive = require_ordinary_to_primitive(); - var wellKnownSymbol = require_well_known_symbol(); - var TypeError2 = global2.TypeError; - var TO_PRIMITIVE = wellKnownSymbol("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 === void 0) - pref = "default"; - result = call(exoticToPrim, input, pref); - if (!isObject(result) || isSymbol(result)) - return result; - throw TypeError2("Can't convert object to primitive value"); - } - if (pref === void 0) - pref = "number"; - return ordinaryToPrimitive(input, pref); - }; - } - }); - - // node_modules/core-js/internals/to-property-key.js - var require_to_property_key = __commonJS({ - "node_modules/core-js/internals/to-property-key.js"(exports, module) { - var toPrimitive = require_to_primitive(); - var isSymbol = require_is_symbol(); - module.exports = function(argument) { - var key = toPrimitive(argument, "string"); - return isSymbol(key) ? key : key + ""; - }; - } - }); - - // node_modules/core-js/internals/document-create-element.js - var require_document_create_element = __commonJS({ - "node_modules/core-js/internals/document-create-element.js"(exports, module) { - var global2 = require_global(); - var isObject = require_is_object(); - var document2 = global2.document; - var EXISTS = isObject(document2) && isObject(document2.createElement); - module.exports = function(it) { - return EXISTS ? document2.createElement(it) : {}; - }; - } - }); - - // node_modules/core-js/internals/ie8-dom-define.js - var require_ie8_dom_define = __commonJS({ - "node_modules/core-js/internals/ie8-dom-define.js"(exports, module) { - var DESCRIPTORS = require_descriptors(); - var fails = require_fails(); - var createElement = require_document_create_element(); - module.exports = !DESCRIPTORS && !fails(function() { - return Object.defineProperty(createElement("div"), "a", { - get: function() { - return 7; - } - }).a != 7; - }); - } - }); - - // node_modules/core-js/internals/object-get-own-property-descriptor.js - var require_object_get_own_property_descriptor = __commonJS({ - "node_modules/core-js/internals/object-get-own-property-descriptor.js"(exports) { - var DESCRIPTORS = require_descriptors(); - var call = require_function_call(); - var propertyIsEnumerableModule = require_object_property_is_enumerable(); - var createPropertyDescriptor = require_create_property_descriptor(); - var toIndexedObject = require_to_indexed_object(); - var toPropertyKey = require_to_property_key(); - var hasOwn = require_has_own_property(); - var IE8_DOM_DEFINE = require_ie8_dom_define(); - var $getOwnPropertyDescriptor = 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) { - } - if (hasOwn(O, P)) - return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); - }; - } - }); - - // node_modules/core-js/internals/an-object.js - var require_an_object = __commonJS({ - "node_modules/core-js/internals/an-object.js"(exports, module) { - var global2 = require_global(); - var isObject = require_is_object(); - var String2 = global2.String; - var TypeError2 = global2.TypeError; - module.exports = function(argument) { - if (isObject(argument)) - return argument; - throw TypeError2(String2(argument) + " is not an object"); - }; - } - }); - - // node_modules/core-js/internals/object-define-property.js - var require_object_define_property = __commonJS({ - "node_modules/core-js/internals/object-define-property.js"(exports) { - var global2 = require_global(); - var DESCRIPTORS = require_descriptors(); - var IE8_DOM_DEFINE = require_ie8_dom_define(); - var anObject = require_an_object(); - var toPropertyKey = require_to_property_key(); - var TypeError2 = global2.TypeError; - var $defineProperty = 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) { - } - if ("get" in Attributes || "set" in Attributes) - throw TypeError2("Accessors not supported"); - if ("value" in Attributes) - O[P] = Attributes.value; - return O; - }; - } - }); - - // node_modules/core-js/internals/create-non-enumerable-property.js - var require_create_non_enumerable_property = __commonJS({ - "node_modules/core-js/internals/create-non-enumerable-property.js"(exports, module) { - var DESCRIPTORS = require_descriptors(); - var definePropertyModule = require_object_define_property(); - var createPropertyDescriptor = require_create_property_descriptor(); - module.exports = DESCRIPTORS ? function(object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); - } : function(object, key, value) { - object[key] = value; - return object; - }; - } - }); - - // node_modules/core-js/internals/inspect-source.js - var require_inspect_source = __commonJS({ - "node_modules/core-js/internals/inspect-source.js"(exports, module) { - var uncurryThis = require_function_uncurry_this(); - var isCallable = require_is_callable(); - var store = require_shared_store(); - var functionToString = uncurryThis(Function.toString); - if (!isCallable(store.inspectSource)) { - store.inspectSource = function(it) { - return functionToString(it); - }; - } - module.exports = store.inspectSource; - } - }); - - // node_modules/core-js/internals/native-weak-map.js - var require_native_weak_map = __commonJS({ - "node_modules/core-js/internals/native-weak-map.js"(exports, module) { - var global2 = require_global(); - var isCallable = require_is_callable(); - var inspectSource = require_inspect_source(); - var WeakMap2 = global2.WeakMap; - module.exports = isCallable(WeakMap2) && /native code/.test(inspectSource(WeakMap2)); - } - }); - - // node_modules/core-js/internals/shared-key.js - var require_shared_key = __commonJS({ - "node_modules/core-js/internals/shared-key.js"(exports, module) { - var shared = require_shared(); - var uid = require_uid(); - var keys = shared("keys"); - module.exports = function(key) { - return keys[key] || (keys[key] = uid(key)); - }; - } - }); - - // node_modules/core-js/internals/hidden-keys.js - var require_hidden_keys = __commonJS({ - "node_modules/core-js/internals/hidden-keys.js"(exports, module) { - module.exports = {}; - } - }); - - // node_modules/core-js/internals/internal-state.js - var require_internal_state = __commonJS({ - "node_modules/core-js/internals/internal-state.js"(exports, module) { - var NATIVE_WEAK_MAP = require_native_weak_map(); - var global2 = require_global(); - var uncurryThis = require_function_uncurry_this(); - var isObject = require_is_object(); - var createNonEnumerableProperty = require_create_non_enumerable_property(); - var hasOwn = require_has_own_property(); - var shared = require_shared_store(); - var sharedKey = require_shared_key(); - var hiddenKeys = require_hidden_keys(); - var OBJECT_ALREADY_INITIALIZED = "Object already initialized"; - var TypeError2 = global2.TypeError; - var WeakMap2 = global2.WeakMap; - var set3; - var get3; - var has; - var enforce = function(it) { - return has(it) ? get3(it) : set3(it, {}); - }; - var getterFor = function(TYPE) { - return function(it) { - var state; - if (!isObject(it) || (state = get3(it)).type !== TYPE) { - throw TypeError2("Incompatible receiver, " + TYPE + " required"); - } - return state; - }; - }; - if (NATIVE_WEAK_MAP || shared.state) { - store = shared.state || (shared.state = new WeakMap2()); - wmget = uncurryThis(store.get); - wmhas = uncurryThis(store.has); - wmset = uncurryThis(store.set); - set3 = function(it, metadata) { - if (wmhas(store, it)) - throw new TypeError2(OBJECT_ALREADY_INITIALIZED); - metadata.facade = it; - wmset(store, it, metadata); - return metadata; - }; - get3 = function(it) { - return wmget(store, it) || {}; - }; - has = function(it) { - return wmhas(store, it); - }; - } else { - STATE = sharedKey("state"); - hiddenKeys[STATE] = true; - set3 = function(it, metadata) { - if (hasOwn(it, STATE)) - throw new TypeError2(OBJECT_ALREADY_INITIALIZED); - metadata.facade = it; - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get3 = function(it) { - return hasOwn(it, STATE) ? it[STATE] : {}; - }; - has = function(it) { - return hasOwn(it, STATE); - }; - } - var store; - var wmget; - var wmhas; - var wmset; - var STATE; - module.exports = { - set: set3, - get: get3, - has, - enforce, - getterFor - }; - } - }); - - // node_modules/core-js/internals/function-name.js - var require_function_name = __commonJS({ - "node_modules/core-js/internals/function-name.js"(exports, module) { - var DESCRIPTORS = require_descriptors(); - var hasOwn = require_has_own_property(); - var FunctionPrototype = Function.prototype; - var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; - var EXISTS = hasOwn(FunctionPrototype, "name"); - var PROPER = EXISTS && function something() { - }.name === "something"; - var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, "name").configurable); - module.exports = { - EXISTS, - PROPER, - CONFIGURABLE - }; - } - }); - - // node_modules/core-js/internals/redefine.js - var require_redefine = __commonJS({ - "node_modules/core-js/internals/redefine.js"(exports, module) { - var global2 = require_global(); - var isCallable = require_is_callable(); - var hasOwn = require_has_own_property(); - var createNonEnumerableProperty = require_create_non_enumerable_property(); - var setGlobal = require_set_global(); - var inspectSource = require_inspect_source(); - var InternalStateModule = require_internal_state(); - var CONFIGURABLE_FUNCTION_NAME = require_function_name().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 !== void 0 ? 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 === global2) { - 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); - })(Function.prototype, "toString", function toString() { - return isCallable(this) && getInternalState(this).source || inspectSource(this); - }); - } - }); - - // node_modules/core-js/internals/to-integer-or-infinity.js - var require_to_integer_or_infinity = __commonJS({ - "node_modules/core-js/internals/to-integer-or-infinity.js"(exports, module) { - var ceil = Math.ceil; - var floor = Math.floor; - module.exports = function(argument) { - var number = +argument; - return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); - }; - } - }); - - // node_modules/core-js/internals/to-absolute-index.js - var require_to_absolute_index = __commonJS({ - "node_modules/core-js/internals/to-absolute-index.js"(exports, module) { - var toIntegerOrInfinity = require_to_integer_or_infinity(); - var max = Math.max; - var min = Math.min; - module.exports = function(index, length) { - var integer = toIntegerOrInfinity(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); - }; - } - }); - - // node_modules/core-js/internals/to-length.js - var require_to_length = __commonJS({ - "node_modules/core-js/internals/to-length.js"(exports, module) { - var toIntegerOrInfinity = require_to_integer_or_infinity(); - var min = Math.min; - module.exports = function(argument) { - return argument > 0 ? min(toIntegerOrInfinity(argument), 9007199254740991) : 0; - }; - } - }); - - // node_modules/core-js/internals/length-of-array-like.js - var require_length_of_array_like = __commonJS({ - "node_modules/core-js/internals/length-of-array-like.js"(exports, module) { - var toLength = require_to_length(); - module.exports = function(obj) { - return toLength(obj.length); - }; - } - }); - - // node_modules/core-js/internals/array-includes.js - var require_array_includes = __commonJS({ - "node_modules/core-js/internals/array-includes.js"(exports, module) { - var toIndexedObject = require_to_indexed_object(); - var toAbsoluteIndex = require_to_absolute_index(); - var lengthOfArrayLike = require_length_of_array_like(); - 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; - if (IS_INCLUDES && el != el) - while (length > index) { - value = O[index++]; - if (value != value) - return true; - } - 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) - }; - } - }); - - // node_modules/core-js/internals/object-keys-internal.js - var require_object_keys_internal = __commonJS({ - "node_modules/core-js/internals/object-keys-internal.js"(exports, module) { - var uncurryThis = require_function_uncurry_this(); - var hasOwn = require_has_own_property(); - var toIndexedObject = require_to_indexed_object(); - var indexOf = require_array_includes().indexOf; - var hiddenKeys = require_hidden_keys(); - 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); - while (names.length > i) - if (hasOwn(O, key = names[i++])) { - ~indexOf(result, key) || push(result, key); - } - return result; - }; - } - }); - - // node_modules/core-js/internals/enum-bug-keys.js - var require_enum_bug_keys = __commonJS({ - "node_modules/core-js/internals/enum-bug-keys.js"(exports, module) { - module.exports = [ - "constructor", - "hasOwnProperty", - "isPrototypeOf", - "propertyIsEnumerable", - "toLocaleString", - "toString", - "valueOf" - ]; - } - }); - - // node_modules/core-js/internals/object-get-own-property-names.js - var require_object_get_own_property_names = __commonJS({ - "node_modules/core-js/internals/object-get-own-property-names.js"(exports) { - var internalObjectKeys = require_object_keys_internal(); - var enumBugKeys = require_enum_bug_keys(); - var hiddenKeys = enumBugKeys.concat("length", "prototype"); - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys); - }; - } - }); - - // node_modules/core-js/internals/object-get-own-property-symbols.js - var require_object_get_own_property_symbols = __commonJS({ - "node_modules/core-js/internals/object-get-own-property-symbols.js"(exports) { - exports.f = Object.getOwnPropertySymbols; - } - }); - - // node_modules/core-js/internals/own-keys.js - var require_own_keys = __commonJS({ - "node_modules/core-js/internals/own-keys.js"(exports, module) { - var getBuiltIn = require_get_built_in(); - var uncurryThis = require_function_uncurry_this(); - var getOwnPropertyNamesModule = require_object_get_own_property_names(); - var getOwnPropertySymbolsModule = require_object_get_own_property_symbols(); - var anObject = require_an_object(); - var concat = uncurryThis([].concat); - 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; - }; - } - }); - - // node_modules/core-js/internals/copy-constructor-properties.js - var require_copy_constructor_properties = __commonJS({ - "node_modules/core-js/internals/copy-constructor-properties.js"(exports, module) { - var hasOwn = require_has_own_property(); - var ownKeys = require_own_keys(); - var getOwnPropertyDescriptorModule = require_object_get_own_property_descriptor(); - var definePropertyModule = require_object_define_property(); - 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)); - } - }; - } - }); - - // node_modules/core-js/internals/is-forced.js - var require_is_forced = __commonJS({ - "node_modules/core-js/internals/is-forced.js"(exports, module) { - var fails = require_fails(); - var isCallable = require_is_callable(); - 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; - } - }); - - // node_modules/core-js/internals/export.js - var require_export = __commonJS({ - "node_modules/core-js/internals/export.js"(exports, module) { - var global2 = require_global(); - var getOwnPropertyDescriptor = require_object_get_own_property_descriptor().f; - var createNonEnumerableProperty = require_create_non_enumerable_property(); - var redefine = require_redefine(); - var setGlobal = require_set_global(); - var copyConstructorProperties = require_copy_constructor_properties(); - var isForced = require_is_forced(); - 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 = global2; - } else if (STATIC) { - target = global2[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global2[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); - if (!FORCED && targetProperty !== void 0) { - if (typeof sourceProperty == typeof targetProperty) - continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - if (options.sham || targetProperty && targetProperty.sham) { - createNonEnumerableProperty(sourceProperty, "sham", true); - } - redefine(target, key, sourceProperty, options); - } - }; - } - }); - - // node_modules/core-js/internals/object-keys.js - var require_object_keys = __commonJS({ - "node_modules/core-js/internals/object-keys.js"(exports, module) { - var internalObjectKeys = require_object_keys_internal(); - var enumBugKeys = require_enum_bug_keys(); - module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); - }; - } - }); - - // node_modules/core-js/internals/object-define-properties.js - var require_object_define_properties = __commonJS({ - "node_modules/core-js/internals/object-define-properties.js"(exports, module) { - var DESCRIPTORS = require_descriptors(); - var definePropertyModule = require_object_define_property(); - var anObject = require_an_object(); - var toIndexedObject = require_to_indexed_object(); - var objectKeys = require_object_keys(); - 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; - }; - } - }); - - // node_modules/core-js/internals/html.js - var require_html = __commonJS({ - "node_modules/core-js/internals/html.js"(exports, module) { - var getBuiltIn = require_get_built_in(); - module.exports = getBuiltIn("document", "documentElement"); - } - }); - - // node_modules/core-js/internals/object-create.js - var require_object_create = __commonJS({ - "node_modules/core-js/internals/object-create.js"(exports, module) { - var anObject = require_an_object(); - var defineProperties = require_object_define_properties(); - var enumBugKeys = require_enum_bug_keys(); - var hiddenKeys = require_hidden_keys(); - var html = require_html(); - var documentCreateElement = require_document_create_element(); - var sharedKey = require_shared_key(); - var GT = ">"; - var LT = "<"; - var PROTOTYPE = "prototype"; - var SCRIPT = "script"; - var IE_PROTO = sharedKey("IE_PROTO"); - var EmptyConstructor = function() { - }; - var scriptTag = function(content) { - return LT + SCRIPT + GT + content + LT + "/" + SCRIPT + GT; - }; - var NullProtoObjectViaActiveX = function(activeXDocument2) { - activeXDocument2.write(scriptTag("")); - activeXDocument2.close(); - var temp = activeXDocument2.parentWindow.Object; - activeXDocument2 = null; - return temp; - }; - var NullProtoObjectViaIFrame = function() { - var iframe = documentCreateElement("iframe"); - var JS = "java" + SCRIPT + ":"; - var iframeDocument; - iframe.style.display = "none"; - html.appendChild(iframe); - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag("document.F=Object")); - iframeDocument.close(); - return iframeDocument.F; - }; - var activeXDocument; - var NullProtoObject = function() { - try { - activeXDocument = new ActiveXObject("htmlfile"); - } catch (error) { - } - NullProtoObject = typeof document != "undefined" ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); - var length = enumBugKeys.length; - while (length--) - delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); - }; - hiddenKeys[IE_PROTO] = true; - module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - result[IE_PROTO] = O; - } else - result = NullProtoObject(); - return Properties === void 0 ? result : defineProperties(result, Properties); - }; - } - }); - - // node_modules/core-js/internals/add-to-unscopables.js - var require_add_to_unscopables = __commonJS({ - "node_modules/core-js/internals/add-to-unscopables.js"(exports, module) { - var wellKnownSymbol = require_well_known_symbol(); - var create = require_object_create(); - var definePropertyModule = require_object_define_property(); - var UNSCOPABLES = wellKnownSymbol("unscopables"); - var ArrayPrototype = Array.prototype; - if (ArrayPrototype[UNSCOPABLES] == void 0) { - definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { - configurable: true, - value: create(null) - }); - } - module.exports = function(key) { - ArrayPrototype[UNSCOPABLES][key] = true; - }; - } - }); - - // node_modules/core-js/modules/es.array.includes.js - var require_es_array_includes = __commonJS({ - "node_modules/core-js/modules/es.array.includes.js"() { - "use strict"; - var $ = require_export(); - var $includes = require_array_includes().includes; - var addToUnscopables = require_add_to_unscopables(); - $({ target: "Array", proto: true }, { - includes: function includes(el) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : void 0); - } - }); - addToUnscopables("includes"); - } - }); - - // node_modules/core-js/internals/entry-unbind.js - var require_entry_unbind = __commonJS({ - "node_modules/core-js/internals/entry-unbind.js"(exports, module) { - var global2 = require_global(); - var uncurryThis = require_function_uncurry_this(); - module.exports = function(CONSTRUCTOR, METHOD) { - return uncurryThis(global2[CONSTRUCTOR].prototype[METHOD]); - }; - } - }); - - // node_modules/core-js/es/array/includes.js - var require_includes = __commonJS({ - "node_modules/core-js/es/array/includes.js"(exports, module) { - require_es_array_includes(); - var entryUnbind = require_entry_unbind(); - module.exports = entryUnbind("Array", "includes"); - } - }); - - // node_modules/core-js/stable/array/includes.js - var require_includes2 = __commonJS({ - "node_modules/core-js/stable/array/includes.js"(exports, module) { - var parent = require_includes(); - module.exports = parent; - } - }); - - // node_modules/core-js/features/array/includes.js - var require_includes3 = __commonJS({ - "node_modules/core-js/features/array/includes.js"(exports, module) { - var parent = require_includes2(); - module.exports = parent; - } - }); - - // node_modules/lodash/_freeGlobal.js - var require_freeGlobal = __commonJS({ - "node_modules/lodash/_freeGlobal.js"(exports, module) { - var freeGlobal = typeof global == "object" && global && global.Object === Object && global; - module.exports = freeGlobal; - } - }); - - // node_modules/lodash/_root.js - var require_root = __commonJS({ - "node_modules/lodash/_root.js"(exports, module) { - var freeGlobal = require_freeGlobal(); - var freeSelf = typeof self == "object" && self && self.Object === Object && self; - var root = freeGlobal || freeSelf || Function("return this")(); - module.exports = root; - } - }); - - // node_modules/lodash/_Symbol.js - var require_Symbol = __commonJS({ - "node_modules/lodash/_Symbol.js"(exports, module) { - var root = require_root(); - var Symbol2 = root.Symbol; - module.exports = Symbol2; - } - }); - - // node_modules/lodash/_getRawTag.js - var require_getRawTag = __commonJS({ - "node_modules/lodash/_getRawTag.js"(exports, module) { - var Symbol2 = require_Symbol(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - var nativeObjectToString = objectProto.toString; - var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; - try { - value[symToStringTag] = void 0; - 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; - } - }); - - // node_modules/lodash/_objectToString.js - var require_objectToString = __commonJS({ - "node_modules/lodash/_objectToString.js"(exports, module) { - var objectProto = Object.prototype; - var nativeObjectToString = objectProto.toString; - function objectToString(value) { - return nativeObjectToString.call(value); - } - module.exports = objectToString; - } - }); - - // node_modules/lodash/_baseGetTag.js - var require_baseGetTag = __commonJS({ - "node_modules/lodash/_baseGetTag.js"(exports, module) { - var Symbol2 = require_Symbol(); - var getRawTag = require_getRawTag(); - var objectToString = require_objectToString(); - var nullTag = "[object Null]"; - var undefinedTag = "[object Undefined]"; - var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; - function baseGetTag(value) { - if (value == null) { - return value === void 0 ? undefinedTag : nullTag; - } - return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); - } - module.exports = baseGetTag; - } - }); - - // node_modules/lodash/_overArg.js - var require_overArg = __commonJS({ - "node_modules/lodash/_overArg.js"(exports, module) { - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - module.exports = overArg; - } - }); - - // node_modules/lodash/_getPrototype.js - var require_getPrototype = __commonJS({ - "node_modules/lodash/_getPrototype.js"(exports, module) { - var overArg = require_overArg(); - var getPrototype = overArg(Object.getPrototypeOf, Object); - module.exports = getPrototype; - } - }); - - // node_modules/lodash/isObjectLike.js - var require_isObjectLike = __commonJS({ - "node_modules/lodash/isObjectLike.js"(exports, module) { - function isObjectLike(value) { - return value != null && typeof value == "object"; - } - module.exports = isObjectLike; - } - }); - - // node_modules/lodash/isPlainObject.js - var require_isPlainObject = __commonJS({ - "node_modules/lodash/isPlainObject.js"(exports, module) { - var baseGetTag = require_baseGetTag(); - var getPrototype = require_getPrototype(); - var isObjectLike = require_isObjectLike(); - var objectTag = "[object Object]"; - var funcProto = Function.prototype; - var objectProto = Object.prototype; - var funcToString = funcProto.toString; - var hasOwnProperty = objectProto.hasOwnProperty; - var objectCtorString = funcToString.call(Object); - function isPlainObject(value) { - if (!isObjectLike(value) || baseGetTag(value) != objectTag) { - return false; - } - var proto = getPrototype(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; - } - module.exports = isPlainObject; - } - }); - - // node_modules/redux/node_modules/symbol-observable/lib/ponyfill.js - var require_ponyfill = __commonJS({ - "node_modules/redux/node_modules/symbol-observable/lib/ponyfill.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports["default"] = 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; - } - } - }); - - // node_modules/redux/node_modules/symbol-observable/lib/index.js - var require_lib = __commonJS({ - "node_modules/redux/node_modules/symbol-observable/lib/index.js"(exports, module) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - var _ponyfill = require_ponyfill(); - var _ponyfill2 = _interopRequireDefault(_ponyfill); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var root; - if (typeof self !== "undefined") { - root = self; - } else if (typeof window !== "undefined") { - root = window; - } else if (typeof global !== "undefined") { - root = global; - } else if (typeof module !== "undefined") { - root = module; - } else { - root = Function("return this")(); - } - var result = (0, _ponyfill2["default"])(root); - exports["default"] = result; - } - }); - - // node_modules/redux/lib/createStore.js - var require_createStore = __commonJS({ - "node_modules/redux/lib/createStore.js"(exports) { - "use strict"; - exports.__esModule = true; - exports.ActionTypes = void 0; - exports["default"] = createStore; - var _isPlainObject = require_isPlainObject(); - var _isPlainObject2 = _interopRequireDefault(_isPlainObject); - var _symbolObservable = require_lib(); - var _symbolObservable2 = _interopRequireDefault(_symbolObservable); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - var ActionTypes = exports.ActionTypes = { - INIT: "@@redux/INIT" - }; - function createStore(reducer, preloadedState, enhancer) { - var _ref2; - if (typeof preloadedState === "function" && typeof enhancer === "undefined") { - enhancer = preloadedState; - preloadedState = void 0; - } - 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(); - } - } - function getState() { - return currentState; - } - 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); - }; - } - function dispatch(action) { - if (!(0, _isPlainObject2["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; - } - function replaceReducer(nextReducer) { - if (typeof nextReducer !== "function") { - throw new Error("Expected the nextReducer to be a function."); - } - currentReducer = nextReducer; - dispatch({ type: ActionTypes.INIT }); - } - 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 subscribe2(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 }; - } - }, _ref[_symbolObservable2["default"]] = function() { - return this; - }, _ref; - } - dispatch({ type: ActionTypes.INIT }); - return _ref2 = { - dispatch, - subscribe, - getState, - replaceReducer - }, _ref2[_symbolObservable2["default"]] = observable, _ref2; - } - } - }); - - // node_modules/redux/lib/utils/warning.js - var require_warning = __commonJS({ - "node_modules/redux/lib/utils/warning.js"(exports) { - "use strict"; - exports.__esModule = true; - exports["default"] = warning; - function warning(message) { - if (typeof console !== "undefined" && typeof console.error === "function") { - console.error(message); - } - try { - throw new Error(message); - } catch (e) { - } - } - } - }); - - // node_modules/redux/lib/combineReducers.js - var require_combineReducers = __commonJS({ - "node_modules/redux/lib/combineReducers.js"(exports) { - "use strict"; - exports.__esModule = true; - exports["default"] = combineReducers2; - var _createStore = require_createStore(); - var _isPlainObject = require_isPlainObject(); - var _isPlainObject2 = _interopRequireDefault(_isPlainObject); - var _warning = require_warning(); - var _warning2 = _interopRequireDefault(_warning); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - 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 assertReducerSanity(reducers) { - Object.keys(reducers).forEach(function(key) { - var reducer = reducers[key]; - var initialState4 = reducer(void 0, { type: _createStore.ActionTypes.INIT }); - if (typeof initialState4 === "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(void 0, { type }) === "undefined") { - throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ("Don't try to handle " + _createStore.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."); - } - }); - } - function combineReducers2(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] === "undefined") { - (0, _warning2["default"])('No reducer provided for key "' + key + '"'); - } - } - 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] === void 0 ? {} : arguments[0]; - var action = arguments[1]; - if (sanityError) { - throw sanityError; - } - if (false) { - var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache); - if (warningMessage) { - (0, _warning2["default"])(warningMessage); - } - } - var hasChanged = false; - var nextState = {}; - for (var i2 = 0; i2 < finalReducerKeys.length; i2++) { - var key2 = finalReducerKeys[i2]; - var reducer = finalReducers[key2]; - var previousStateForKey = state[key2]; - var nextStateForKey = reducer(previousStateForKey, action); - if (typeof nextStateForKey === "undefined") { - var errorMessage = getUndefinedStateErrorMessage(key2, action); - throw new Error(errorMessage); - } - nextState[key2] = nextStateForKey; - hasChanged = hasChanged || nextStateForKey !== previousStateForKey; - } - return hasChanged ? nextState : state; - }; - } - } - }); - - // node_modules/redux/lib/bindActionCreators.js - var require_bindActionCreators = __commonJS({ - "node_modules/redux/lib/bindActionCreators.js"(exports) { - "use strict"; - exports.__esModule = true; - exports["default"] = bindActionCreators; - function bindActionCreator(actionCreator, dispatch) { - return function() { - return dispatch(actionCreator.apply(void 0, arguments)); - }; - } - 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; - } - } - }); - - // node_modules/redux/lib/compose.js - var require_compose = __commonJS({ - "node_modules/redux/lib/compose.js"(exports) { - "use strict"; - exports.__esModule = true; - exports["default"] = compose; - 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(void 0, arguments)); - }; - } - } - }); - - // node_modules/redux/lib/applyMiddleware.js - var require_applyMiddleware = __commonJS({ - "node_modules/redux/lib/applyMiddleware.js"(exports) { - "use strict"; - exports.__esModule = true; - 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; - }; - exports["default"] = applyMiddleware; - var _compose = require_compose(); - var _compose2 = _interopRequireDefault(_compose); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - 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 = _compose2["default"].apply(void 0, chain)(store.dispatch); - return _extends({}, store, { - dispatch: _dispatch - }); - }; - }; - } - } - }); - - // node_modules/redux/lib/index.js - var require_lib2 = __commonJS({ - "node_modules/redux/lib/index.js"(exports) { - "use strict"; - exports.__esModule = true; - exports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = void 0; - var _createStore = require_createStore(); - var _createStore2 = _interopRequireDefault(_createStore); - var _combineReducers = require_combineReducers(); - var _combineReducers2 = _interopRequireDefault(_combineReducers); - var _bindActionCreators = require_bindActionCreators(); - var _bindActionCreators2 = _interopRequireDefault(_bindActionCreators); - var _applyMiddleware = require_applyMiddleware(); - var _applyMiddleware2 = _interopRequireDefault(_applyMiddleware); - var _compose = require_compose(); - var _compose2 = _interopRequireDefault(_compose); - var _warning = require_warning(); - var _warning2 = _interopRequireDefault(_warning); - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { "default": obj }; - } - if (false) { - (0, _warning2["default"])("You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux. You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) to ensure you have the correct code for your production build."); - } - exports.createStore = _createStore2["default"]; - exports.combineReducers = _combineReducers2["default"]; - exports.bindActionCreators = _bindActionCreators2["default"]; - exports.applyMiddleware = _applyMiddleware2["default"]; - exports.compose = _compose2["default"]; - } - }); - - // packages/systems/ix2/shared-constants/trigger-events.ts - var EventTypeConsts, EventAppliesTo, EventBasedOn, EventContinuousMouseAxes, EventLimitAffectedElements, QuickEffectIds, QuickEffectDirectionConsts; - var init_trigger_events = __esm({ - "packages/systems/ix2/shared-constants/trigger-events.ts"() { - "use strict"; - 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" - }; - EventAppliesTo = { - ELEMENT: "ELEMENT", - CLASS: "CLASS", - PAGE: "PAGE" - }; - EventBasedOn = { - ELEMENT: "ELEMENT", - VIEWPORT: "VIEWPORT" - }; - EventContinuousMouseAxes = { - X_AXIS: "X_AXIS", - Y_AXIS: "Y_AXIS" - }; - EventLimitAffectedElements = { - CHILDREN: "CHILDREN", - SIBLINGS: "SIBLINGS", - IMMEDIATE_CHILDREN: "IMMEDIATE_CHILDREN" - }; - 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" - }; - 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" - }; - } - }); - - // packages/systems/ix2/shared-constants/animation-actions.ts - var ActionTypeConsts, ActionAppliesTo; - var init_animation_actions = __esm({ - "packages/systems/ix2/shared-constants/animation-actions.ts"() { - "use strict"; - 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", - OBJECT_VALUE: "OBJECT_VALUE", - PLUGIN_LOTTIE: "PLUGIN_LOTTIE", - PLUGIN_SPLINE: "PLUGIN_SPLINE", - PLUGIN_VARIABLE: "PLUGIN_VARIABLE", - 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" - }; - ActionAppliesTo = { - ELEMENT: "ELEMENT", - ELEMENT_CLASS: "ELEMENT_CLASS", - TRIGGER_ELEMENT: "TRIGGER_ELEMENT" - }; - } - }); - - // packages/systems/ix2/shared-constants/trigger-interactions.ts - var InteractionTypeConsts; - var init_trigger_interactions = __esm({ - "packages/systems/ix2/shared-constants/trigger-interactions.ts"() { - "use strict"; - 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" - }; - } - }); - - // packages/systems/ix2/shared-constants/reduced-motion.ts - var TRANSFORM_MOVE, TRANSFORM_SCALE, TRANSFORM_ROTATE, TRANSFORM_SKEW, STYLE_SIZE, STYLE_FILTER, STYLE_FONT_VARIATION, ReducedMotionTypes; - var init_reduced_motion = __esm({ - "packages/systems/ix2/shared-constants/reduced-motion.ts"() { - "use strict"; - init_animation_actions(); - ({ - TRANSFORM_MOVE, - TRANSFORM_SCALE, - TRANSFORM_ROTATE, - TRANSFORM_SKEW, - STYLE_SIZE, - STYLE_FILTER, - STYLE_FONT_VARIATION - } = ActionTypeConsts); - ReducedMotionTypes = { - [TRANSFORM_MOVE]: true, - [TRANSFORM_SCALE]: true, - [TRANSFORM_ROTATE]: true, - [TRANSFORM_SKEW]: true, - [STYLE_SIZE]: true, - [STYLE_FILTER]: true, - [STYLE_FONT_VARIATION]: true - }; - } - }); - - // packages/systems/ix2/shared-constants/IX2EngineActionTypes.ts - var IX2EngineActionTypes_exports = {}; - __export(IX2EngineActionTypes_exports, { - IX2_ACTION_LIST_PLAYBACK_CHANGED: () => IX2_ACTION_LIST_PLAYBACK_CHANGED, - IX2_ANIMATION_FRAME_CHANGED: () => IX2_ANIMATION_FRAME_CHANGED, - IX2_CLEAR_REQUESTED: () => IX2_CLEAR_REQUESTED, - IX2_ELEMENT_STATE_CHANGED: () => IX2_ELEMENT_STATE_CHANGED, - IX2_EVENT_LISTENER_ADDED: () => IX2_EVENT_LISTENER_ADDED, - IX2_EVENT_STATE_CHANGED: () => IX2_EVENT_STATE_CHANGED, - IX2_INSTANCE_ADDED: () => IX2_INSTANCE_ADDED, - IX2_INSTANCE_REMOVED: () => IX2_INSTANCE_REMOVED, - IX2_INSTANCE_STARTED: () => IX2_INSTANCE_STARTED, - IX2_MEDIA_QUERIES_DEFINED: () => IX2_MEDIA_QUERIES_DEFINED, - IX2_PARAMETER_CHANGED: () => IX2_PARAMETER_CHANGED, - IX2_PLAYBACK_REQUESTED: () => IX2_PLAYBACK_REQUESTED, - IX2_PREVIEW_REQUESTED: () => IX2_PREVIEW_REQUESTED, - IX2_RAW_DATA_IMPORTED: () => IX2_RAW_DATA_IMPORTED, - IX2_SESSION_INITIALIZED: () => IX2_SESSION_INITIALIZED, - IX2_SESSION_STARTED: () => IX2_SESSION_STARTED, - IX2_SESSION_STOPPED: () => IX2_SESSION_STOPPED, - IX2_STOP_REQUESTED: () => IX2_STOP_REQUESTED, - IX2_TEST_FRAME_RENDERED: () => IX2_TEST_FRAME_RENDERED, - IX2_VIEWPORT_WIDTH_CHANGED: () => IX2_VIEWPORT_WIDTH_CHANGED - }); - var IX2_RAW_DATA_IMPORTED, IX2_SESSION_INITIALIZED, IX2_SESSION_STARTED, IX2_SESSION_STOPPED, IX2_PREVIEW_REQUESTED, IX2_PLAYBACK_REQUESTED, IX2_STOP_REQUESTED, IX2_CLEAR_REQUESTED, IX2_EVENT_LISTENER_ADDED, IX2_EVENT_STATE_CHANGED, IX2_ANIMATION_FRAME_CHANGED, IX2_PARAMETER_CHANGED, IX2_INSTANCE_ADDED, IX2_INSTANCE_STARTED, IX2_INSTANCE_REMOVED, IX2_ELEMENT_STATE_CHANGED, IX2_ACTION_LIST_PLAYBACK_CHANGED, IX2_VIEWPORT_WIDTH_CHANGED, IX2_MEDIA_QUERIES_DEFINED, IX2_TEST_FRAME_RENDERED; - var init_IX2EngineActionTypes = __esm({ - "packages/systems/ix2/shared-constants/IX2EngineActionTypes.ts"() { - "use strict"; - IX2_RAW_DATA_IMPORTED = "IX2_RAW_DATA_IMPORTED"; - IX2_SESSION_INITIALIZED = "IX2_SESSION_INITIALIZED"; - IX2_SESSION_STARTED = "IX2_SESSION_STARTED"; - IX2_SESSION_STOPPED = "IX2_SESSION_STOPPED"; - IX2_PREVIEW_REQUESTED = "IX2_PREVIEW_REQUESTED"; - IX2_PLAYBACK_REQUESTED = "IX2_PLAYBACK_REQUESTED"; - IX2_STOP_REQUESTED = "IX2_STOP_REQUESTED"; - IX2_CLEAR_REQUESTED = "IX2_CLEAR_REQUESTED"; - IX2_EVENT_LISTENER_ADDED = "IX2_EVENT_LISTENER_ADDED"; - IX2_EVENT_STATE_CHANGED = "IX2_EVENT_STATE_CHANGED"; - IX2_ANIMATION_FRAME_CHANGED = "IX2_ANIMATION_FRAME_CHANGED"; - IX2_PARAMETER_CHANGED = "IX2_PARAMETER_CHANGED"; - IX2_INSTANCE_ADDED = "IX2_INSTANCE_ADDED"; - IX2_INSTANCE_STARTED = "IX2_INSTANCE_STARTED"; - IX2_INSTANCE_REMOVED = "IX2_INSTANCE_REMOVED"; - IX2_ELEMENT_STATE_CHANGED = "IX2_ELEMENT_STATE_CHANGED"; - IX2_ACTION_LIST_PLAYBACK_CHANGED = "IX2_ACTION_LIST_PLAYBACK_CHANGED"; - IX2_VIEWPORT_WIDTH_CHANGED = "IX2_VIEWPORT_WIDTH_CHANGED"; - IX2_MEDIA_QUERIES_DEFINED = "IX2_MEDIA_QUERIES_DEFINED"; - IX2_TEST_FRAME_RENDERED = "IX2_TEST_FRAME_RENDERED"; - } - }); - - // packages/systems/ix2/shared-constants/IX2EngineConstants.ts - var IX2EngineConstants_exports = {}; - __export(IX2EngineConstants_exports, { - ABSTRACT_NODE: () => ABSTRACT_NODE, - AUTO: () => AUTO, - BACKGROUND: () => BACKGROUND, - BACKGROUND_COLOR: () => BACKGROUND_COLOR, - BAR_DELIMITER: () => BAR_DELIMITER, - BORDER_COLOR: () => BORDER_COLOR, - BOUNDARY_SELECTOR: () => BOUNDARY_SELECTOR, - CHILDREN: () => CHILDREN, - COLON_DELIMITER: () => COLON_DELIMITER, - COLOR: () => COLOR, - COMMA_DELIMITER: () => COMMA_DELIMITER, - CONFIG_UNIT: () => CONFIG_UNIT, - CONFIG_VALUE: () => CONFIG_VALUE, - CONFIG_X_UNIT: () => CONFIG_X_UNIT, - CONFIG_X_VALUE: () => CONFIG_X_VALUE, - CONFIG_Y_UNIT: () => CONFIG_Y_UNIT, - CONFIG_Y_VALUE: () => CONFIG_Y_VALUE, - CONFIG_Z_UNIT: () => CONFIG_Z_UNIT, - CONFIG_Z_VALUE: () => CONFIG_Z_VALUE, - DISPLAY: () => DISPLAY, - FILTER: () => FILTER, - FLEX: () => FLEX, - FONT_VARIATION_SETTINGS: () => FONT_VARIATION_SETTINGS, - HEIGHT: () => HEIGHT, - HTML_ELEMENT: () => HTML_ELEMENT, - IMMEDIATE_CHILDREN: () => IMMEDIATE_CHILDREN, - IX2_ID_DELIMITER: () => IX2_ID_DELIMITER, - OPACITY: () => OPACITY, - PARENT: () => PARENT, - PLAIN_OBJECT: () => PLAIN_OBJECT, - PRESERVE_3D: () => PRESERVE_3D, - RENDER_GENERAL: () => RENDER_GENERAL, - RENDER_PLUGIN: () => RENDER_PLUGIN, - RENDER_STYLE: () => RENDER_STYLE, - RENDER_TRANSFORM: () => RENDER_TRANSFORM, - ROTATE_X: () => ROTATE_X, - ROTATE_Y: () => ROTATE_Y, - ROTATE_Z: () => ROTATE_Z, - SCALE_3D: () => SCALE_3D, - SCALE_X: () => SCALE_X, - SCALE_Y: () => SCALE_Y, - SCALE_Z: () => SCALE_Z, - SIBLINGS: () => SIBLINGS, - SKEW: () => SKEW, - SKEW_X: () => SKEW_X, - SKEW_Y: () => SKEW_Y, - TRANSFORM: () => TRANSFORM, - TRANSLATE_3D: () => TRANSLATE_3D, - TRANSLATE_X: () => TRANSLATE_X, - TRANSLATE_Y: () => TRANSLATE_Y, - TRANSLATE_Z: () => TRANSLATE_Z, - WF_PAGE: () => WF_PAGE, - WIDTH: () => WIDTH, - WILL_CHANGE: () => WILL_CHANGE, - W_MOD_IX: () => W_MOD_IX, - W_MOD_JS: () => W_MOD_JS - }); - var IX2_ID_DELIMITER, WF_PAGE, W_MOD_JS, W_MOD_IX, BOUNDARY_SELECTOR, CONFIG_X_VALUE, CONFIG_Y_VALUE, CONFIG_Z_VALUE, CONFIG_VALUE, CONFIG_X_UNIT, CONFIG_Y_UNIT, CONFIG_Z_UNIT, CONFIG_UNIT, TRANSFORM, TRANSLATE_X, TRANSLATE_Y, TRANSLATE_Z, TRANSLATE_3D, SCALE_X, SCALE_Y, SCALE_Z, SCALE_3D, ROTATE_X, ROTATE_Y, ROTATE_Z, SKEW, SKEW_X, SKEW_Y, OPACITY, FILTER, FONT_VARIATION_SETTINGS, WIDTH, HEIGHT, BACKGROUND_COLOR, BACKGROUND, BORDER_COLOR, COLOR, DISPLAY, FLEX, WILL_CHANGE, AUTO, COMMA_DELIMITER, COLON_DELIMITER, BAR_DELIMITER, CHILDREN, IMMEDIATE_CHILDREN, SIBLINGS, PARENT, PRESERVE_3D, HTML_ELEMENT, PLAIN_OBJECT, ABSTRACT_NODE, RENDER_TRANSFORM, RENDER_GENERAL, RENDER_STYLE, RENDER_PLUGIN; - var init_IX2EngineConstants = __esm({ - "packages/systems/ix2/shared-constants/IX2EngineConstants.ts"() { - "use strict"; - IX2_ID_DELIMITER = "|"; - WF_PAGE = "data-wf-page"; - W_MOD_JS = "w-mod-js"; - W_MOD_IX = "w-mod-ix"; - BOUNDARY_SELECTOR = ".w-dyn-item"; - CONFIG_X_VALUE = "xValue"; - CONFIG_Y_VALUE = "yValue"; - CONFIG_Z_VALUE = "zValue"; - CONFIG_VALUE = "value"; - CONFIG_X_UNIT = "xUnit"; - CONFIG_Y_UNIT = "yUnit"; - CONFIG_Z_UNIT = "zUnit"; - CONFIG_UNIT = "unit"; - TRANSFORM = "transform"; - TRANSLATE_X = "translateX"; - TRANSLATE_Y = "translateY"; - TRANSLATE_Z = "translateZ"; - TRANSLATE_3D = "translate3d"; - SCALE_X = "scaleX"; - SCALE_Y = "scaleY"; - SCALE_Z = "scaleZ"; - SCALE_3D = "scale3d"; - ROTATE_X = "rotateX"; - ROTATE_Y = "rotateY"; - ROTATE_Z = "rotateZ"; - SKEW = "skew"; - SKEW_X = "skewX"; - SKEW_Y = "skewY"; - OPACITY = "opacity"; - FILTER = "filter"; - FONT_VARIATION_SETTINGS = "font-variation-settings"; - WIDTH = "width"; - HEIGHT = "height"; - BACKGROUND_COLOR = "backgroundColor"; - BACKGROUND = "background"; - BORDER_COLOR = "borderColor"; - COLOR = "color"; - DISPLAY = "display"; - FLEX = "flex"; - WILL_CHANGE = "willChange"; - AUTO = "AUTO"; - COMMA_DELIMITER = ","; - COLON_DELIMITER = ":"; - BAR_DELIMITER = "|"; - CHILDREN = "CHILDREN"; - IMMEDIATE_CHILDREN = "IMMEDIATE_CHILDREN"; - SIBLINGS = "SIBLINGS"; - PARENT = "PARENT"; - PRESERVE_3D = "preserve-3d"; - HTML_ELEMENT = "HTML_ELEMENT"; - PLAIN_OBJECT = "PLAIN_OBJECT"; - ABSTRACT_NODE = "ABSTRACT_NODE"; - RENDER_TRANSFORM = "RENDER_TRANSFORM"; - RENDER_GENERAL = "RENDER_GENERAL"; - RENDER_STYLE = "RENDER_STYLE"; - RENDER_PLUGIN = "RENDER_PLUGIN"; - } - }); - - // packages/systems/ix2/shared-constants/index.ts - var shared_constants_exports = {}; - __export(shared_constants_exports, { - ActionAppliesTo: () => ActionAppliesTo, - ActionTypeConsts: () => ActionTypeConsts, - EventAppliesTo: () => EventAppliesTo, - EventBasedOn: () => EventBasedOn, - EventContinuousMouseAxes: () => EventContinuousMouseAxes, - EventLimitAffectedElements: () => EventLimitAffectedElements, - EventTypeConsts: () => EventTypeConsts, - IX2EngineActionTypes: () => IX2EngineActionTypes_exports, - IX2EngineConstants: () => IX2EngineConstants_exports, - InteractionTypeConsts: () => InteractionTypeConsts, - QuickEffectDirectionConsts: () => QuickEffectDirectionConsts, - QuickEffectIds: () => QuickEffectIds, - ReducedMotionTypes: () => ReducedMotionTypes - }); - var init_shared_constants = __esm({ - "packages/systems/ix2/shared-constants/index.ts"() { - "use strict"; - init_trigger_events(); - init_animation_actions(); - init_trigger_interactions(); - init_reduced_motion(); - init_IX2EngineActionTypes(); - init_IX2EngineConstants(); - init_animation_actions(); - init_trigger_events(); - } - }); - - // packages/systems/ix2/engine/reducers/IX2DataReducer.ts - var IX2_RAW_DATA_IMPORTED2, ixData; - var init_IX2DataReducer = __esm({ - "packages/systems/ix2/engine/reducers/IX2DataReducer.ts"() { - "use strict"; - init_shared_constants(); - ({ IX2_RAW_DATA_IMPORTED: IX2_RAW_DATA_IMPORTED2 } = IX2EngineActionTypes_exports); - ixData = (state = Object.freeze({}), action) => { - switch (action.type) { - case IX2_RAW_DATA_IMPORTED2: { - return action.payload.ixData || Object.freeze({}); - } - default: { - return state; - } - } - }; - } - }); - - // node_modules/timm/lib/timm.js - var require_timm = __commonJS({ - "node_modules/timm/lib/timm.js"(exports) { - "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 = addLast2; - exports.addFirst = addFirst; - exports.removeLast = removeLast; - exports.removeFirst = removeFirst; - exports.insert = insert; - exports.removeAt = removeAt; - exports.replaceAt = replaceAt; - exports.getIn = getIn2; - exports.set = set3; - exports.setIn = setIn4; - exports.update = update; - exports.updateIn = updateIn; - exports.merge = merge3; - exports.mergeDeep = mergeDeep; - exports.mergeIn = mergeIn4; - exports.omit = omit; - exports.addDefaults = addDefaults; - var INVALID_ARGS = "INVALID_ARGS"; - 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 ? "At least one object should be provided to merge()" : 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] !== void 0) - continue; - var nextVal = obj[key]; - if (fDeep && isObject(out[key]) && isObject(nextVal)) { - nextVal = doMerge(fAddDefaults, fDeep, out[key], nextVal); - } - if (nextVal === void 0 || 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"); - } - function addLast2(array, val) { - if (Array.isArray(val)) - return array.concat(val); - return array.concat([val]); - } - function addFirst(array, val) { - if (Array.isArray(val)) - return val.concat(array); - return [val].concat(array); - } - function removeLast(array) { - if (!array.length) - return array; - return array.slice(0, array.length - 1); - } - function removeFirst(array) { - if (!array.length) - return array; - return array.slice(1); - } - function insert(array, idx, val) { - return array.slice(0, idx).concat(Array.isArray(val) ? val : [val]).concat(array.slice(idx)); - } - function removeAt(array, idx) { - if (idx >= array.length || idx < 0) - return array; - return array.slice(0, idx).concat(array.slice(idx + 1)); - } - 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; - } - function getIn2(obj, path) { - !Array.isArray(path) && throwStr(false ? "A path array should be provided when calling getIn()" : INVALID_ARGS); - if (obj == null) - return void 0; - var ptr = obj; - for (var i = 0; i < path.length; i++) { - var key = path[i]; - ptr = ptr != null ? ptr[key] : void 0; - if (ptr === void 0) - return ptr; - } - return ptr; - } - function set3(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; - } - 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 set3(obj, key, newValue); - } - function setIn4(obj, path, val) { - if (!path.length) - return val; - return doSetIn(obj, path, val, 0); - } - function update(obj, key, fnUpdate) { - var prevVal = obj == null ? void 0 : obj[key]; - var nextVal = fnUpdate(prevVal); - return set3(obj, key, nextVal); - } - function updateIn(obj, path, fnUpdate) { - var prevVal = getIn2(obj, path); - var nextVal = fnUpdate(prevVal); - return setIn4(obj, path, nextVal); - } - function merge3(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); - } - 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); - } - function mergeIn4(a, path, b, c, d, e, f) { - var prevVal = getIn2(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 setIn4(a, path, nextVal); - } - 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; - } - 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); - } - var timm = { - clone, - addLast: addLast2, - addFirst, - removeLast, - removeFirst, - insert, - removeAt, - replaceAt, - getIn: getIn2, - // eslint-disable-next-line object-shorthand - set: set3, - // so that flow doesn't complain - setIn: setIn4, - update, - updateIn, - merge: merge3, - mergeDeep, - mergeIn: mergeIn4, - omit, - addDefaults - }; - exports.default = timm; - } - }); - - // packages/systems/ix2/engine/reducers/IX2RequestReducer.ts - var import_timm, IX2_PREVIEW_REQUESTED2, IX2_PLAYBACK_REQUESTED2, IX2_STOP_REQUESTED2, IX2_CLEAR_REQUESTED2, initialState, stateKeys, ixRequest; - var init_IX2RequestReducer = __esm({ - "packages/systems/ix2/engine/reducers/IX2RequestReducer.ts"() { - "use strict"; - init_shared_constants(); - import_timm = __toESM(require_timm()); - ({ - IX2_PREVIEW_REQUESTED: IX2_PREVIEW_REQUESTED2, - IX2_PLAYBACK_REQUESTED: IX2_PLAYBACK_REQUESTED2, - IX2_STOP_REQUESTED: IX2_STOP_REQUESTED2, - IX2_CLEAR_REQUESTED: IX2_CLEAR_REQUESTED2 - } = IX2EngineActionTypes_exports); - initialState = { - preview: {}, - playback: {}, - stop: {}, - clear: {} - }; - stateKeys = Object.create(null, { - [IX2_PREVIEW_REQUESTED2]: { value: "preview" }, - [IX2_PLAYBACK_REQUESTED2]: { value: "playback" }, - [IX2_STOP_REQUESTED2]: { value: "stop" }, - [IX2_CLEAR_REQUESTED2]: { value: "clear" } - }); - ixRequest = (state = initialState, action) => { - if (action.type in stateKeys) { - const key = [stateKeys[action.type]]; - return (0, import_timm.setIn)(state, [key], { ...action.payload }); - } - return state; - }; - } - }); - - // packages/systems/ix2/engine/reducers/IX2SessionReducer.ts - var import_timm2, IX2_SESSION_INITIALIZED2, IX2_SESSION_STARTED2, IX2_TEST_FRAME_RENDERED2, IX2_SESSION_STOPPED2, IX2_EVENT_LISTENER_ADDED2, IX2_EVENT_STATE_CHANGED2, IX2_ANIMATION_FRAME_CHANGED2, IX2_ACTION_LIST_PLAYBACK_CHANGED2, IX2_VIEWPORT_WIDTH_CHANGED2, IX2_MEDIA_QUERIES_DEFINED2, initialState2, TEST_FRAME_STEPS_SIZE, ixSession; - var init_IX2SessionReducer = __esm({ - "packages/systems/ix2/engine/reducers/IX2SessionReducer.ts"() { - "use strict"; - init_shared_constants(); - import_timm2 = __toESM(require_timm()); - ({ - IX2_SESSION_INITIALIZED: IX2_SESSION_INITIALIZED2, - IX2_SESSION_STARTED: IX2_SESSION_STARTED2, - IX2_TEST_FRAME_RENDERED: IX2_TEST_FRAME_RENDERED2, - IX2_SESSION_STOPPED: IX2_SESSION_STOPPED2, - IX2_EVENT_LISTENER_ADDED: IX2_EVENT_LISTENER_ADDED2, - IX2_EVENT_STATE_CHANGED: IX2_EVENT_STATE_CHANGED2, - IX2_ANIMATION_FRAME_CHANGED: IX2_ANIMATION_FRAME_CHANGED2, - IX2_ACTION_LIST_PLAYBACK_CHANGED: IX2_ACTION_LIST_PLAYBACK_CHANGED2, - IX2_VIEWPORT_WIDTH_CHANGED: IX2_VIEWPORT_WIDTH_CHANGED2, - IX2_MEDIA_QUERIES_DEFINED: IX2_MEDIA_QUERIES_DEFINED2 - } = IX2EngineActionTypes_exports); - initialState2 = { - active: false, - tick: 0, - eventListeners: [], - eventState: {}, - playbackState: {}, - viewportWidth: 0, - mediaQueryKey: null, - hasBoundaryNodes: false, - hasDefinedMediaQueries: false, - reducedMotion: false - }; - TEST_FRAME_STEPS_SIZE = 20; - ixSession = (state = initialState2, action) => { - switch (action.type) { - case IX2_SESSION_INITIALIZED2: { - const { hasBoundaryNodes, reducedMotion } = action.payload; - return (0, import_timm2.merge)(state, { - hasBoundaryNodes, - reducedMotion - }); - } - case IX2_SESSION_STARTED2: { - return (0, import_timm2.set)(state, "active", true); - } - case IX2_TEST_FRAME_RENDERED2: { - const { - payload: { step = TEST_FRAME_STEPS_SIZE } - } = action; - return (0, import_timm2.set)(state, "tick", state.tick + step); - } - case IX2_SESSION_STOPPED2: { - return initialState2; - } - case IX2_ANIMATION_FRAME_CHANGED2: { - const { - payload: { now } - } = action; - return (0, import_timm2.set)(state, "tick", now); - } - case IX2_EVENT_LISTENER_ADDED2: { - const eventListeners = (0, import_timm2.addLast)(state.eventListeners, action.payload); - return (0, import_timm2.set)(state, "eventListeners", eventListeners); - } - case IX2_EVENT_STATE_CHANGED2: { - const { stateKey, newState } = action.payload; - return (0, import_timm2.setIn)(state, ["eventState", stateKey], newState); - } - case IX2_ACTION_LIST_PLAYBACK_CHANGED2: { - const { actionListId, isPlaying } = action.payload; - return (0, import_timm2.setIn)(state, ["playbackState", actionListId], isPlaying); - } - case IX2_VIEWPORT_WIDTH_CHANGED2: { - const { width, mediaQueries } = action.payload; - const mediaQueryCount = mediaQueries.length; - let mediaQueryKey = null; - for (let i = 0; i < mediaQueryCount; i++) { - const { key, min, max } = mediaQueries[i]; - if (width >= min && width <= max) { - mediaQueryKey = key; - break; - } - } - return (0, import_timm2.merge)(state, { - viewportWidth: width, - mediaQueryKey - }); - } - case IX2_MEDIA_QUERIES_DEFINED2: { - return (0, import_timm2.set)(state, "hasDefinedMediaQueries", true); - } - default: { - return state; - } - } - }; - } - }); - - // node_modules/lodash/_listCacheClear.js - var require_listCacheClear = __commonJS({ - "node_modules/lodash/_listCacheClear.js"(exports, module) { - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - module.exports = listCacheClear; - } - }); - - // node_modules/lodash/eq.js - var require_eq = __commonJS({ - "node_modules/lodash/eq.js"(exports, module) { - function eq(value, other) { - return value === other || value !== value && other !== other; - } - module.exports = eq; - } - }); - - // node_modules/lodash/_assocIndexOf.js - var require_assocIndexOf = __commonJS({ - "node_modules/lodash/_assocIndexOf.js"(exports, module) { - var eq = require_eq(); - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - module.exports = assocIndexOf; - } - }); - - // node_modules/lodash/_listCacheDelete.js - var require_listCacheDelete = __commonJS({ - "node_modules/lodash/_listCacheDelete.js"(exports, module) { - var assocIndexOf = require_assocIndexOf(); - var arrayProto = Array.prototype; - var splice = arrayProto.splice; - 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; - } - }); - - // node_modules/lodash/_listCacheGet.js - var require_listCacheGet = __commonJS({ - "node_modules/lodash/_listCacheGet.js"(exports, module) { - var assocIndexOf = require_assocIndexOf(); - function listCacheGet(key) { - var data = this.__data__, index = assocIndexOf(data, key); - return index < 0 ? void 0 : data[index][1]; - } - module.exports = listCacheGet; - } - }); - - // node_modules/lodash/_listCacheHas.js - var require_listCacheHas = __commonJS({ - "node_modules/lodash/_listCacheHas.js"(exports, module) { - var assocIndexOf = require_assocIndexOf(); - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - module.exports = listCacheHas; - } - }); - - // node_modules/lodash/_listCacheSet.js - var require_listCacheSet = __commonJS({ - "node_modules/lodash/_listCacheSet.js"(exports, module) { - var assocIndexOf = require_assocIndexOf(); - 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; - } - }); - - // node_modules/lodash/_ListCache.js - var require_ListCache = __commonJS({ - "node_modules/lodash/_ListCache.js"(exports, module) { - var listCacheClear = require_listCacheClear(); - var listCacheDelete = require_listCacheDelete(); - var listCacheGet = require_listCacheGet(); - var listCacheHas = require_listCacheHas(); - var listCacheSet = require_listCacheSet(); - 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]); - } - } - ListCache.prototype.clear = listCacheClear; - ListCache.prototype["delete"] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - module.exports = ListCache; - } - }); - - // node_modules/lodash/_stackClear.js - var require_stackClear = __commonJS({ - "node_modules/lodash/_stackClear.js"(exports, module) { - var ListCache = require_ListCache(); - function stackClear() { - this.__data__ = new ListCache(); - this.size = 0; - } - module.exports = stackClear; - } - }); - - // node_modules/lodash/_stackDelete.js - var require_stackDelete = __commonJS({ - "node_modules/lodash/_stackDelete.js"(exports, module) { - function stackDelete(key) { - var data = this.__data__, result = data["delete"](key); - this.size = data.size; - return result; - } - module.exports = stackDelete; - } - }); - - // node_modules/lodash/_stackGet.js - var require_stackGet = __commonJS({ - "node_modules/lodash/_stackGet.js"(exports, module) { - function stackGet(key) { - return this.__data__.get(key); - } - module.exports = stackGet; - } - }); - - // node_modules/lodash/_stackHas.js - var require_stackHas = __commonJS({ - "node_modules/lodash/_stackHas.js"(exports, module) { - function stackHas(key) { - return this.__data__.has(key); - } - module.exports = stackHas; - } - }); - - // node_modules/lodash/isObject.js - var require_isObject = __commonJS({ - "node_modules/lodash/isObject.js"(exports, module) { - function isObject(value) { - var type = typeof value; - return value != null && (type == "object" || type == "function"); - } - module.exports = isObject; - } - }); - - // node_modules/lodash/isFunction.js - var require_isFunction = __commonJS({ - "node_modules/lodash/isFunction.js"(exports, module) { - var baseGetTag = require_baseGetTag(); - var isObject = require_isObject(); - var asyncTag = "[object AsyncFunction]"; - var funcTag = "[object Function]"; - var genTag = "[object GeneratorFunction]"; - var proxyTag = "[object Proxy]"; - function isFunction(value) { - if (!isObject(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - module.exports = isFunction; - } - }); - - // node_modules/lodash/_coreJsData.js - var require_coreJsData = __commonJS({ - "node_modules/lodash/_coreJsData.js"(exports, module) { - var root = require_root(); - var coreJsData = root["__core-js_shared__"]; - module.exports = coreJsData; - } - }); - - // node_modules/lodash/_isMasked.js - var require_isMasked = __commonJS({ - "node_modules/lodash/_isMasked.js"(exports, module) { - var coreJsData = require_coreJsData(); - var maskSrcKey = function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); - return uid ? "Symbol(src)_1." + uid : ""; - }(); - function isMasked(func) { - return !!maskSrcKey && maskSrcKey in func; - } - module.exports = isMasked; - } - }); - - // node_modules/lodash/_toSource.js - var require_toSource = __commonJS({ - "node_modules/lodash/_toSource.js"(exports, module) { - var funcProto = Function.prototype; - var funcToString = funcProto.toString; - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) { - } - try { - return func + ""; - } catch (e) { - } - } - return ""; - } - module.exports = toSource; - } - }); - - // node_modules/lodash/_baseIsNative.js - var require_baseIsNative = __commonJS({ - "node_modules/lodash/_baseIsNative.js"(exports, module) { - var isFunction = require_isFunction(); - var isMasked = require_isMasked(); - var isObject = require_isObject(); - var toSource = require_toSource(); - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - var reIsHostCtor = /^\[object .+?Constructor\]$/; - var funcProto = Function.prototype; - var objectProto = Object.prototype; - var funcToString = funcProto.toString; - var hasOwnProperty = objectProto.hasOwnProperty; - var reIsNative = RegExp( - "^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" - ); - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - module.exports = baseIsNative; - } - }); - - // node_modules/lodash/_getValue.js - var require_getValue = __commonJS({ - "node_modules/lodash/_getValue.js"(exports, module) { - function getValue(object, key) { - return object == null ? void 0 : object[key]; - } - module.exports = getValue; - } - }); - - // node_modules/lodash/_getNative.js - var require_getNative = __commonJS({ - "node_modules/lodash/_getNative.js"(exports, module) { - var baseIsNative = require_baseIsNative(); - var getValue = require_getValue(); - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : void 0; - } - module.exports = getNative; - } - }); - - // node_modules/lodash/_Map.js - var require_Map = __commonJS({ - "node_modules/lodash/_Map.js"(exports, module) { - var getNative = require_getNative(); - var root = require_root(); - var Map2 = getNative(root, "Map"); - module.exports = Map2; - } - }); - - // node_modules/lodash/_nativeCreate.js - var require_nativeCreate = __commonJS({ - "node_modules/lodash/_nativeCreate.js"(exports, module) { - var getNative = require_getNative(); - var nativeCreate = getNative(Object, "create"); - module.exports = nativeCreate; - } - }); - - // node_modules/lodash/_hashClear.js - var require_hashClear = __commonJS({ - "node_modules/lodash/_hashClear.js"(exports, module) { - var nativeCreate = require_nativeCreate(); - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - module.exports = hashClear; - } - }); - - // node_modules/lodash/_hashDelete.js - var require_hashDelete = __commonJS({ - "node_modules/lodash/_hashDelete.js"(exports, module) { - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } - module.exports = hashDelete; - } - }); - - // node_modules/lodash/_hashGet.js - var require_hashGet = __commonJS({ - "node_modules/lodash/_hashGet.js"(exports, module) { - var nativeCreate = require_nativeCreate(); - var HASH_UNDEFINED = "__lodash_hash_undefined__"; - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? void 0 : result; - } - return hasOwnProperty.call(data, key) ? data[key] : void 0; - } - module.exports = hashGet; - } - }); - - // node_modules/lodash/_hashHas.js - var require_hashHas = __commonJS({ - "node_modules/lodash/_hashHas.js"(exports, module) { - var nativeCreate = require_nativeCreate(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); - } - module.exports = hashHas; - } - }); - - // node_modules/lodash/_hashSet.js - var require_hashSet = __commonJS({ - "node_modules/lodash/_hashSet.js"(exports, module) { - var nativeCreate = require_nativeCreate(); - var HASH_UNDEFINED = "__lodash_hash_undefined__"; - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value; - return this; - } - module.exports = hashSet; - } - }); - - // node_modules/lodash/_Hash.js - var require_Hash = __commonJS({ - "node_modules/lodash/_Hash.js"(exports, module) { - var hashClear = require_hashClear(); - var hashDelete = require_hashDelete(); - var hashGet = require_hashGet(); - var hashHas = require_hashHas(); - var hashSet = require_hashSet(); - 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]); - } - } - Hash.prototype.clear = hashClear; - Hash.prototype["delete"] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - module.exports = Hash; - } - }); - - // node_modules/lodash/_mapCacheClear.js - var require_mapCacheClear = __commonJS({ - "node_modules/lodash/_mapCacheClear.js"(exports, module) { - var Hash = require_Hash(); - var ListCache = require_ListCache(); - var Map2 = require_Map(); - function mapCacheClear() { - this.size = 0; - this.__data__ = { - "hash": new Hash(), - "map": new (Map2 || ListCache)(), - "string": new Hash() - }; - } - module.exports = mapCacheClear; - } - }); - - // node_modules/lodash/_isKeyable.js - var require_isKeyable = __commonJS({ - "node_modules/lodash/_isKeyable.js"(exports, module) { - function isKeyable(value) { - var type = typeof value; - return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; - } - module.exports = isKeyable; - } - }); - - // node_modules/lodash/_getMapData.js - var require_getMapData = __commonJS({ - "node_modules/lodash/_getMapData.js"(exports, module) { - var isKeyable = require_isKeyable(); - function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; - } - module.exports = getMapData; - } - }); - - // node_modules/lodash/_mapCacheDelete.js - var require_mapCacheDelete = __commonJS({ - "node_modules/lodash/_mapCacheDelete.js"(exports, module) { - var getMapData = require_getMapData(); - function mapCacheDelete(key) { - var result = getMapData(this, key)["delete"](key); - this.size -= result ? 1 : 0; - return result; - } - module.exports = mapCacheDelete; - } - }); - - // node_modules/lodash/_mapCacheGet.js - var require_mapCacheGet = __commonJS({ - "node_modules/lodash/_mapCacheGet.js"(exports, module) { - var getMapData = require_getMapData(); - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - module.exports = mapCacheGet; - } - }); - - // node_modules/lodash/_mapCacheHas.js - var require_mapCacheHas = __commonJS({ - "node_modules/lodash/_mapCacheHas.js"(exports, module) { - var getMapData = require_getMapData(); - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - module.exports = mapCacheHas; - } - }); - - // node_modules/lodash/_mapCacheSet.js - var require_mapCacheSet = __commonJS({ - "node_modules/lodash/_mapCacheSet.js"(exports, module) { - var getMapData = require_getMapData(); - function mapCacheSet(key, value) { - var data = getMapData(this, key), size2 = data.size; - data.set(key, value); - this.size += data.size == size2 ? 0 : 1; - return this; - } - module.exports = mapCacheSet; - } - }); - - // node_modules/lodash/_MapCache.js - var require_MapCache = __commonJS({ - "node_modules/lodash/_MapCache.js"(exports, module) { - var mapCacheClear = require_mapCacheClear(); - var mapCacheDelete = require_mapCacheDelete(); - var mapCacheGet = require_mapCacheGet(); - var mapCacheHas = require_mapCacheHas(); - var mapCacheSet = require_mapCacheSet(); - 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]); - } - } - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype["delete"] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - module.exports = MapCache; - } - }); - - // node_modules/lodash/_stackSet.js - var require_stackSet = __commonJS({ - "node_modules/lodash/_stackSet.js"(exports, module) { - var ListCache = require_ListCache(); - var Map2 = require_Map(); - var MapCache = require_MapCache(); - var LARGE_ARRAY_SIZE = 200; - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map2 || 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; - } - }); - - // node_modules/lodash/_Stack.js - var require_Stack = __commonJS({ - "node_modules/lodash/_Stack.js"(exports, module) { - var ListCache = require_ListCache(); - var stackClear = require_stackClear(); - var stackDelete = require_stackDelete(); - var stackGet = require_stackGet(); - var stackHas = require_stackHas(); - var stackSet = require_stackSet(); - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - Stack.prototype.clear = stackClear; - Stack.prototype["delete"] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - module.exports = Stack; - } - }); - - // node_modules/lodash/_setCacheAdd.js - var require_setCacheAdd = __commonJS({ - "node_modules/lodash/_setCacheAdd.js"(exports, module) { - var HASH_UNDEFINED = "__lodash_hash_undefined__"; - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - module.exports = setCacheAdd; - } - }); - - // node_modules/lodash/_setCacheHas.js - var require_setCacheHas = __commonJS({ - "node_modules/lodash/_setCacheHas.js"(exports, module) { - function setCacheHas(value) { - return this.__data__.has(value); - } - module.exports = setCacheHas; - } - }); - - // node_modules/lodash/_SetCache.js - var require_SetCache = __commonJS({ - "node_modules/lodash/_SetCache.js"(exports, module) { - var MapCache = require_MapCache(); - var setCacheAdd = require_setCacheAdd(); - var setCacheHas = require_setCacheHas(); - function SetCache(values) { - var index = -1, length = values == null ? 0 : values.length; - this.__data__ = new MapCache(); - while (++index < length) { - this.add(values[index]); - } - } - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - module.exports = SetCache; - } - }); - - // node_modules/lodash/_arraySome.js - var require_arraySome = __commonJS({ - "node_modules/lodash/_arraySome.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/_cacheHas.js - var require_cacheHas = __commonJS({ - "node_modules/lodash/_cacheHas.js"(exports, module) { - function cacheHas(cache, key) { - return cache.has(key); - } - module.exports = cacheHas; - } - }); - - // node_modules/lodash/_equalArrays.js - var require_equalArrays = __commonJS({ - "node_modules/lodash/_equalArrays.js"(exports, module) { - var SetCache = require_SetCache(); - var arraySome = require_arraySome(); - var cacheHas = require_cacheHas(); - var COMPARE_PARTIAL_FLAG = 1; - var COMPARE_UNORDERED_FLAG = 2; - 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; - } - 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() : void 0; - stack.set(array, other); - stack.set(other, array); - 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 !== void 0) { - if (compared) { - continue; - } - result = false; - break; - } - if (seen) { - if (!arraySome(other, function(othValue2, othIndex) { - if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, 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; - } - }); - - // node_modules/lodash/_Uint8Array.js - var require_Uint8Array = __commonJS({ - "node_modules/lodash/_Uint8Array.js"(exports, module) { - var root = require_root(); - var Uint8Array2 = root.Uint8Array; - module.exports = Uint8Array2; - } - }); - - // node_modules/lodash/_mapToArray.js - var require_mapToArray = __commonJS({ - "node_modules/lodash/_mapToArray.js"(exports, module) { - function mapToArray(map) { - var index = -1, result = Array(map.size); - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } - module.exports = mapToArray; - } - }); - - // node_modules/lodash/_setToArray.js - var require_setToArray = __commonJS({ - "node_modules/lodash/_setToArray.js"(exports, module) { - function setToArray(set3) { - var index = -1, result = Array(set3.size); - set3.forEach(function(value) { - result[++index] = value; - }); - return result; - } - module.exports = setToArray; - } - }); - - // node_modules/lodash/_equalByTag.js - var require_equalByTag = __commonJS({ - "node_modules/lodash/_equalByTag.js"(exports, module) { - var Symbol2 = require_Symbol(); - var Uint8Array2 = require_Uint8Array(); - var eq = require_eq(); - var equalArrays = require_equalArrays(); - var mapToArray = require_mapToArray(); - var setToArray = require_setToArray(); - var COMPARE_PARTIAL_FLAG = 1; - var COMPARE_UNORDERED_FLAG = 2; - var boolTag = "[object Boolean]"; - var dateTag = "[object Date]"; - var errorTag = "[object Error]"; - var mapTag = "[object Map]"; - var numberTag = "[object Number]"; - var regexpTag = "[object RegExp]"; - var setTag = "[object Set]"; - var stringTag = "[object String]"; - var symbolTag = "[object Symbol]"; - var arrayBufferTag = "[object ArrayBuffer]"; - var dataViewTag = "[object DataView]"; - var symbolProto = Symbol2 ? Symbol2.prototype : void 0; - var symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; - 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 Uint8Array2(object), new Uint8Array2(other))) { - return false; - } - return true; - case boolTag: - case dateTag: - case numberTag: - return eq(+object, +other); - case errorTag: - return object.name == other.name && object.message == other.message; - case regexpTag: - case stringTag: - 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; - } - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - 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; - } - }); - - // node_modules/lodash/_arrayPush.js - var require_arrayPush = __commonJS({ - "node_modules/lodash/_arrayPush.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/isArray.js - var require_isArray = __commonJS({ - "node_modules/lodash/isArray.js"(exports, module) { - var isArray = Array.isArray; - module.exports = isArray; - } - }); - - // node_modules/lodash/_baseGetAllKeys.js - var require_baseGetAllKeys = __commonJS({ - "node_modules/lodash/_baseGetAllKeys.js"(exports, module) { - var arrayPush = require_arrayPush(); - var isArray = require_isArray(); - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); - } - module.exports = baseGetAllKeys; - } - }); - - // node_modules/lodash/_arrayFilter.js - var require_arrayFilter = __commonJS({ - "node_modules/lodash/_arrayFilter.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/stubArray.js - var require_stubArray = __commonJS({ - "node_modules/lodash/stubArray.js"(exports, module) { - function stubArray() { - return []; - } - module.exports = stubArray; - } - }); - - // node_modules/lodash/_getSymbols.js - var require_getSymbols = __commonJS({ - "node_modules/lodash/_getSymbols.js"(exports, module) { - var arrayFilter = require_arrayFilter(); - var stubArray = require_stubArray(); - var objectProto = Object.prototype; - var propertyIsEnumerable = objectProto.propertyIsEnumerable; - var nativeGetSymbols = Object.getOwnPropertySymbols; - 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; - } - }); - - // node_modules/lodash/_baseTimes.js - var require_baseTimes = __commonJS({ - "node_modules/lodash/_baseTimes.js"(exports, module) { - function baseTimes(n, iteratee) { - var index = -1, result = Array(n); - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - module.exports = baseTimes; - } - }); - - // node_modules/lodash/_baseIsArguments.js - var require_baseIsArguments = __commonJS({ - "node_modules/lodash/_baseIsArguments.js"(exports, module) { - var baseGetTag = require_baseGetTag(); - var isObjectLike = require_isObjectLike(); - var argsTag = "[object Arguments]"; - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - module.exports = baseIsArguments; - } - }); - - // node_modules/lodash/isArguments.js - var require_isArguments = __commonJS({ - "node_modules/lodash/isArguments.js"(exports, module) { - var baseIsArguments = require_baseIsArguments(); - var isObjectLike = require_isObjectLike(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - var propertyIsEnumerable = objectProto.propertyIsEnumerable; - var isArguments = baseIsArguments(function() { - return arguments; - }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); - }; - module.exports = isArguments; - } - }); - - // node_modules/lodash/stubFalse.js - var require_stubFalse = __commonJS({ - "node_modules/lodash/stubFalse.js"(exports, module) { - function stubFalse() { - return false; - } - module.exports = stubFalse; - } - }); - - // node_modules/lodash/isBuffer.js - var require_isBuffer = __commonJS({ - "node_modules/lodash/isBuffer.js"(exports, module) { - var root = require_root(); - var stubFalse = require_stubFalse(); - var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; - var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; - var moduleExports = freeModule && freeModule.exports === freeExports; - var Buffer2 = moduleExports ? root.Buffer : void 0; - var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0; - var isBuffer = nativeIsBuffer || stubFalse; - module.exports = isBuffer; - } - }); - - // node_modules/lodash/_isIndex.js - var require_isIndex = __commonJS({ - "node_modules/lodash/_isIndex.js"(exports, module) { - var MAX_SAFE_INTEGER = 9007199254740991; - var reIsUint = /^(?:0|[1-9]\d*)$/; - 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; - } - }); - - // node_modules/lodash/isLength.js - var require_isLength = __commonJS({ - "node_modules/lodash/isLength.js"(exports, module) { - var MAX_SAFE_INTEGER = 9007199254740991; - function isLength(value) { - return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - module.exports = isLength; - } - }); - - // node_modules/lodash/_baseIsTypedArray.js - var require_baseIsTypedArray = __commonJS({ - "node_modules/lodash/_baseIsTypedArray.js"(exports, module) { - var baseGetTag = require_baseGetTag(); - var isLength = require_isLength(); - var isObjectLike = require_isObjectLike(); - var argsTag = "[object Arguments]"; - var arrayTag = "[object Array]"; - var boolTag = "[object Boolean]"; - var dateTag = "[object Date]"; - var errorTag = "[object Error]"; - var funcTag = "[object Function]"; - var mapTag = "[object Map]"; - var numberTag = "[object Number]"; - var objectTag = "[object Object]"; - var regexpTag = "[object RegExp]"; - var setTag = "[object Set]"; - var stringTag = "[object String]"; - var weakMapTag = "[object WeakMap]"; - var arrayBufferTag = "[object ArrayBuffer]"; - var dataViewTag = "[object DataView]"; - var float32Tag = "[object Float32Array]"; - var float64Tag = "[object Float64Array]"; - var int8Tag = "[object Int8Array]"; - var int16Tag = "[object Int16Array]"; - var int32Tag = "[object Int32Array]"; - var uint8Tag = "[object Uint8Array]"; - var uint8ClampedTag = "[object Uint8ClampedArray]"; - var uint16Tag = "[object Uint16Array]"; - var uint32Tag = "[object Uint32Array]"; - 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; - function baseIsTypedArray(value) { - return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - module.exports = baseIsTypedArray; - } - }); - - // node_modules/lodash/_baseUnary.js - var require_baseUnary = __commonJS({ - "node_modules/lodash/_baseUnary.js"(exports, module) { - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - module.exports = baseUnary; - } - }); - - // node_modules/lodash/_nodeUtil.js - var require_nodeUtil = __commonJS({ - "node_modules/lodash/_nodeUtil.js"(exports, module) { - var freeGlobal = require_freeGlobal(); - var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; - var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; - var moduleExports = freeModule && freeModule.exports === freeExports; - var freeProcess = moduleExports && freeGlobal.process; - var nodeUtil = function() { - try { - var types = freeModule && freeModule.require && freeModule.require("util").types; - if (types) { - return types; - } - return freeProcess && freeProcess.binding && freeProcess.binding("util"); - } catch (e) { - } - }(); - module.exports = nodeUtil; - } - }); - - // node_modules/lodash/isTypedArray.js - var require_isTypedArray = __commonJS({ - "node_modules/lodash/isTypedArray.js"(exports, module) { - var baseIsTypedArray = require_baseIsTypedArray(); - var baseUnary = require_baseUnary(); - var nodeUtil = require_nodeUtil(); - var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - module.exports = isTypedArray; - } - }); - - // node_modules/lodash/_arrayLikeKeys.js - var require_arrayLikeKeys = __commonJS({ - "node_modules/lodash/_arrayLikeKeys.js"(exports, module) { - var baseTimes = require_baseTimes(); - var isArguments = require_isArguments(); - var isArray = require_isArray(); - var isBuffer = require_isBuffer(); - var isIndex = require_isIndex(); - var isTypedArray = require_isTypedArray(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - 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; - } - }); - - // node_modules/lodash/_isPrototype.js - var require_isPrototype = __commonJS({ - "node_modules/lodash/_isPrototype.js"(exports, module) { - var objectProto = Object.prototype; - function isPrototype(value) { - var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; - return value === proto; - } - module.exports = isPrototype; - } - }); - - // node_modules/lodash/_nativeKeys.js - var require_nativeKeys = __commonJS({ - "node_modules/lodash/_nativeKeys.js"(exports, module) { - var overArg = require_overArg(); - var nativeKeys = overArg(Object.keys, Object); - module.exports = nativeKeys; - } - }); - - // node_modules/lodash/_baseKeys.js - var require_baseKeys = __commonJS({ - "node_modules/lodash/_baseKeys.js"(exports, module) { - var isPrototype = require_isPrototype(); - var nativeKeys = require_nativeKeys(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - 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; - } - }); - - // node_modules/lodash/isArrayLike.js - var require_isArrayLike = __commonJS({ - "node_modules/lodash/isArrayLike.js"(exports, module) { - var isFunction = require_isFunction(); - var isLength = require_isLength(); - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - module.exports = isArrayLike; - } - }); - - // node_modules/lodash/keys.js - var require_keys = __commonJS({ - "node_modules/lodash/keys.js"(exports, module) { - var arrayLikeKeys = require_arrayLikeKeys(); - var baseKeys = require_baseKeys(); - var isArrayLike = require_isArrayLike(); - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - module.exports = keys; - } - }); - - // node_modules/lodash/_getAllKeys.js - var require_getAllKeys = __commonJS({ - "node_modules/lodash/_getAllKeys.js"(exports, module) { - var baseGetAllKeys = require_baseGetAllKeys(); - var getSymbols = require_getSymbols(); - var keys = require_keys(); - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - module.exports = getAllKeys; - } - }); - - // node_modules/lodash/_equalObjects.js - var require_equalObjects = __commonJS({ - "node_modules/lodash/_equalObjects.js"(exports, module) { - var getAllKeys = require_getAllKeys(); - var COMPARE_PARTIAL_FLAG = 1; - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - 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; - } - } - 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); - } - if (!(compared === void 0 ? 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; - 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; - } - }); - - // node_modules/lodash/_DataView.js - var require_DataView = __commonJS({ - "node_modules/lodash/_DataView.js"(exports, module) { - var getNative = require_getNative(); - var root = require_root(); - var DataView = getNative(root, "DataView"); - module.exports = DataView; - } - }); - - // node_modules/lodash/_Promise.js - var require_Promise = __commonJS({ - "node_modules/lodash/_Promise.js"(exports, module) { - var getNative = require_getNative(); - var root = require_root(); - var Promise2 = getNative(root, "Promise"); - module.exports = Promise2; - } - }); - - // node_modules/lodash/_Set.js - var require_Set = __commonJS({ - "node_modules/lodash/_Set.js"(exports, module) { - var getNative = require_getNative(); - var root = require_root(); - var Set = getNative(root, "Set"); - module.exports = Set; - } - }); - - // node_modules/lodash/_WeakMap.js - var require_WeakMap = __commonJS({ - "node_modules/lodash/_WeakMap.js"(exports, module) { - var getNative = require_getNative(); - var root = require_root(); - var WeakMap2 = getNative(root, "WeakMap"); - module.exports = WeakMap2; - } - }); - - // node_modules/lodash/_getTag.js - var require_getTag = __commonJS({ - "node_modules/lodash/_getTag.js"(exports, module) { - var DataView = require_DataView(); - var Map2 = require_Map(); - var Promise2 = require_Promise(); - var Set = require_Set(); - var WeakMap2 = require_WeakMap(); - var baseGetTag = require_baseGetTag(); - var toSource = require_toSource(); - var mapTag = "[object Map]"; - var objectTag = "[object Object]"; - var promiseTag = "[object Promise]"; - var setTag = "[object Set]"; - var weakMapTag = "[object WeakMap]"; - var dataViewTag = "[object DataView]"; - var dataViewCtorString = toSource(DataView); - var mapCtorString = toSource(Map2); - var promiseCtorString = toSource(Promise2); - var setCtorString = toSource(Set); - var weakMapCtorString = toSource(WeakMap2); - var getTag = baseGetTag; - if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2()) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set && getTag(new Set()) != setTag || WeakMap2 && getTag(new WeakMap2()) != weakMapTag) { - getTag = function(value) { - var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : void 0, 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; - } - }); - - // node_modules/lodash/_baseIsEqualDeep.js - var require_baseIsEqualDeep = __commonJS({ - "node_modules/lodash/_baseIsEqualDeep.js"(exports, module) { - var Stack = require_Stack(); - var equalArrays = require_equalArrays(); - var equalByTag = require_equalByTag(); - var equalObjects = require_equalObjects(); - var getTag = require_getTag(); - var isArray = require_isArray(); - var isBuffer = require_isBuffer(); - var isTypedArray = require_isTypedArray(); - var COMPARE_PARTIAL_FLAG = 1; - var argsTag = "[object Arguments]"; - var arrayTag = "[object Array]"; - var objectTag = "[object Object]"; - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - 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; - } - }); - - // node_modules/lodash/_baseIsEqual.js - var require_baseIsEqual = __commonJS({ - "node_modules/lodash/_baseIsEqual.js"(exports, module) { - var baseIsEqualDeep = require_baseIsEqualDeep(); - var isObjectLike = require_isObjectLike(); - 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; - } - }); - - // node_modules/lodash/_baseIsMatch.js - var require_baseIsMatch = __commonJS({ - "node_modules/lodash/_baseIsMatch.js"(exports, module) { - var Stack = require_Stack(); - var baseIsEqual = require_baseIsEqual(); - var COMPARE_PARTIAL_FLAG = 1; - var COMPARE_UNORDERED_FLAG = 2; - 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 === void 0 && !(key in object)) { - return false; - } - } else { - var stack = new Stack(); - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result)) { - return false; - } - } - } - return true; - } - module.exports = baseIsMatch; - } - }); - - // node_modules/lodash/_isStrictComparable.js - var require_isStrictComparable = __commonJS({ - "node_modules/lodash/_isStrictComparable.js"(exports, module) { - var isObject = require_isObject(); - function isStrictComparable(value) { - return value === value && !isObject(value); - } - module.exports = isStrictComparable; - } - }); - - // node_modules/lodash/_getMatchData.js - var require_getMatchData = __commonJS({ - "node_modules/lodash/_getMatchData.js"(exports, module) { - var isStrictComparable = require_isStrictComparable(); - var keys = require_keys(); - 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; - } - }); - - // node_modules/lodash/_matchesStrictComparable.js - var require_matchesStrictComparable = __commonJS({ - "node_modules/lodash/_matchesStrictComparable.js"(exports, module) { - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); - }; - } - module.exports = matchesStrictComparable; - } - }); - - // node_modules/lodash/_baseMatches.js - var require_baseMatches = __commonJS({ - "node_modules/lodash/_baseMatches.js"(exports, module) { - var baseIsMatch = require_baseIsMatch(); - var getMatchData = require_getMatchData(); - var matchesStrictComparable = require_matchesStrictComparable(); - 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; - } - }); - - // node_modules/lodash/isSymbol.js - var require_isSymbol = __commonJS({ - "node_modules/lodash/isSymbol.js"(exports, module) { - var baseGetTag = require_baseGetTag(); - var isObjectLike = require_isObjectLike(); - var symbolTag = "[object Symbol]"; - function isSymbol(value) { - return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; - } - module.exports = isSymbol; - } - }); - - // node_modules/lodash/_isKey.js - var require_isKey = __commonJS({ - "node_modules/lodash/_isKey.js"(exports, module) { - var isArray = require_isArray(); - var isSymbol = require_isSymbol(); - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; - var reIsPlainProp = /^\w*$/; - 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; - } - }); - - // node_modules/lodash/memoize.js - var require_memoize = __commonJS({ - "node_modules/lodash/memoize.js"(exports, module) { - var MapCache = require_MapCache(); - var FUNC_ERROR_TEXT = "Expected a function"; - 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; - } - memoize.Cache = MapCache; - module.exports = memoize; - } - }); - - // node_modules/lodash/_memoizeCapped.js - var require_memoizeCapped = __commonJS({ - "node_modules/lodash/_memoizeCapped.js"(exports, module) { - var memoize = require_memoize(); - var MAX_MEMOIZE_SIZE = 500; - 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; - } - }); - - // node_modules/lodash/_stringToPath.js - var require_stringToPath = __commonJS({ - "node_modules/lodash/_stringToPath.js"(exports, module) { - var memoizeCapped = require_memoizeCapped(); - var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - var reEscapeChar = /\\(\\)?/g; - 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; - } - }); - - // node_modules/lodash/_arrayMap.js - var require_arrayMap = __commonJS({ - "node_modules/lodash/_arrayMap.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/_baseToString.js - var require_baseToString = __commonJS({ - "node_modules/lodash/_baseToString.js"(exports, module) { - var Symbol2 = require_Symbol(); - var arrayMap = require_arrayMap(); - var isArray = require_isArray(); - var isSymbol = require_isSymbol(); - var INFINITY = 1 / 0; - var symbolProto = Symbol2 ? Symbol2.prototype : void 0; - var symbolToString = symbolProto ? symbolProto.toString : void 0; - function baseToString(value) { - if (typeof value == "string") { - return value; - } - if (isArray(value)) { - 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; - } - }); - - // node_modules/lodash/toString.js - var require_toString = __commonJS({ - "node_modules/lodash/toString.js"(exports, module) { - var baseToString = require_baseToString(); - function toString(value) { - return value == null ? "" : baseToString(value); - } - module.exports = toString; - } - }); - - // node_modules/lodash/_castPath.js - var require_castPath = __commonJS({ - "node_modules/lodash/_castPath.js"(exports, module) { - var isArray = require_isArray(); - var isKey = require_isKey(); - var stringToPath = require_stringToPath(); - var toString = require_toString(); - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); - } - module.exports = castPath; - } - }); - - // node_modules/lodash/_toKey.js - var require_toKey = __commonJS({ - "node_modules/lodash/_toKey.js"(exports, module) { - var isSymbol = require_isSymbol(); - var INFINITY = 1 / 0; - 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; - } - }); - - // node_modules/lodash/_baseGet.js - var require_baseGet = __commonJS({ - "node_modules/lodash/_baseGet.js"(exports, module) { - var castPath = require_castPath(); - var toKey = require_toKey(); - 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 : void 0; - } - module.exports = baseGet; - } - }); - - // node_modules/lodash/get.js - var require_get = __commonJS({ - "node_modules/lodash/get.js"(exports, module) { - var baseGet = require_baseGet(); - function get3(object, path, defaultValue) { - var result = object == null ? void 0 : baseGet(object, path); - return result === void 0 ? defaultValue : result; - } - module.exports = get3; - } - }); - - // node_modules/lodash/_baseHasIn.js - var require_baseHasIn = __commonJS({ - "node_modules/lodash/_baseHasIn.js"(exports, module) { - function baseHasIn(object, key) { - return object != null && key in Object(object); - } - module.exports = baseHasIn; - } - }); - - // node_modules/lodash/_hasPath.js - var require_hasPath = __commonJS({ - "node_modules/lodash/_hasPath.js"(exports, module) { - var castPath = require_castPath(); - var isArguments = require_isArguments(); - var isArray = require_isArray(); - var isIndex = require_isIndex(); - var isLength = require_isLength(); - var toKey = require_toKey(); - 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; - } - }); - - // node_modules/lodash/hasIn.js - var require_hasIn = __commonJS({ - "node_modules/lodash/hasIn.js"(exports, module) { - var baseHasIn = require_baseHasIn(); - var hasPath = require_hasPath(); - function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } - module.exports = hasIn; - } - }); - - // node_modules/lodash/_baseMatchesProperty.js - var require_baseMatchesProperty = __commonJS({ - "node_modules/lodash/_baseMatchesProperty.js"(exports, module) { - var baseIsEqual = require_baseIsEqual(); - var get3 = require_get(); - var hasIn = require_hasIn(); - var isKey = require_isKey(); - var isStrictComparable = require_isStrictComparable(); - var matchesStrictComparable = require_matchesStrictComparable(); - var toKey = require_toKey(); - var COMPARE_PARTIAL_FLAG = 1; - var COMPARE_UNORDERED_FLAG = 2; - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function(object) { - var objValue = get3(object, path); - return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - module.exports = baseMatchesProperty; - } - }); - - // node_modules/lodash/identity.js - var require_identity = __commonJS({ - "node_modules/lodash/identity.js"(exports, module) { - function identity(value) { - return value; - } - module.exports = identity; - } - }); - - // node_modules/lodash/_baseProperty.js - var require_baseProperty = __commonJS({ - "node_modules/lodash/_baseProperty.js"(exports, module) { - function baseProperty(key) { - return function(object) { - return object == null ? void 0 : object[key]; - }; - } - module.exports = baseProperty; - } - }); - - // node_modules/lodash/_basePropertyDeep.js - var require_basePropertyDeep = __commonJS({ - "node_modules/lodash/_basePropertyDeep.js"(exports, module) { - var baseGet = require_baseGet(); - function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; - } - module.exports = basePropertyDeep; - } - }); - - // node_modules/lodash/property.js - var require_property = __commonJS({ - "node_modules/lodash/property.js"(exports, module) { - var baseProperty = require_baseProperty(); - var basePropertyDeep = require_basePropertyDeep(); - var isKey = require_isKey(); - var toKey = require_toKey(); - function property(path) { - return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); - } - module.exports = property; - } - }); - - // node_modules/lodash/_baseIteratee.js - var require_baseIteratee = __commonJS({ - "node_modules/lodash/_baseIteratee.js"(exports, module) { - var baseMatches = require_baseMatches(); - var baseMatchesProperty = require_baseMatchesProperty(); - var identity = require_identity(); - var isArray = require_isArray(); - var property = require_property(); - function baseIteratee(value) { - 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; - } - }); - - // node_modules/lodash/_createFind.js - var require_createFind = __commonJS({ - "node_modules/lodash/_createFind.js"(exports, module) { - var baseIteratee = require_baseIteratee(); - var isArrayLike = require_isArrayLike(); - var keys = require_keys(); - 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] : void 0; - }; - } - module.exports = createFind; - } - }); - - // node_modules/lodash/_baseFindIndex.js - var require_baseFindIndex = __commonJS({ - "node_modules/lodash/_baseFindIndex.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/_trimmedEndIndex.js - var require_trimmedEndIndex = __commonJS({ - "node_modules/lodash/_trimmedEndIndex.js"(exports, module) { - var reWhitespace = /\s/; - function trimmedEndIndex(string) { - var index = string.length; - while (index-- && reWhitespace.test(string.charAt(index))) { - } - return index; - } - module.exports = trimmedEndIndex; - } - }); - - // node_modules/lodash/_baseTrim.js - var require_baseTrim = __commonJS({ - "node_modules/lodash/_baseTrim.js"(exports, module) { - var trimmedEndIndex = require_trimmedEndIndex(); - var reTrimStart = /^\s+/; - function baseTrim(string) { - return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; - } - module.exports = baseTrim; - } - }); - - // node_modules/lodash/toNumber.js - var require_toNumber = __commonJS({ - "node_modules/lodash/toNumber.js"(exports, module) { - var baseTrim = require_baseTrim(); - var isObject = require_isObject(); - var isSymbol = require_isSymbol(); - var NAN = 0 / 0; - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - var reIsBinary = /^0b[01]+$/i; - var reIsOctal = /^0o[0-7]+$/i; - var freeParseInt = parseInt; - 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; - } - }); - - // node_modules/lodash/toFinite.js - var require_toFinite = __commonJS({ - "node_modules/lodash/toFinite.js"(exports, module) { - var toNumber = require_toNumber(); - var INFINITY = 1 / 0; - var MAX_INTEGER = 17976931348623157e292; - 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; - } - }); - - // node_modules/lodash/toInteger.js - var require_toInteger = __commonJS({ - "node_modules/lodash/toInteger.js"(exports, module) { - var toFinite = require_toFinite(); - function toInteger(value) { - var result = toFinite(value), remainder = result % 1; - return result === result ? remainder ? result - remainder : result : 0; - } - module.exports = toInteger; - } - }); - - // node_modules/lodash/findIndex.js - var require_findIndex = __commonJS({ - "node_modules/lodash/findIndex.js"(exports, module) { - var baseFindIndex = require_baseFindIndex(); - var baseIteratee = require_baseIteratee(); - var toInteger = require_toInteger(); - var nativeMax = Math.max; - 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; - } - }); - - // node_modules/lodash/find.js - var require_find = __commonJS({ - "node_modules/lodash/find.js"(exports, module) { - var createFind = require_createFind(); - var findIndex = require_findIndex(); - var find3 = createFind(findIndex); - module.exports = find3; - } - }); - - // packages/systems/ix2/shared/logic/IX2BrowserSupport.ts - var IX2BrowserSupport_exports = {}; - __export(IX2BrowserSupport_exports, { - ELEMENT_MATCHES: () => ELEMENT_MATCHES, - FLEX_PREFIXED: () => FLEX_PREFIXED, - IS_BROWSER_ENV: () => IS_BROWSER_ENV, - TRANSFORM_PREFIXED: () => TRANSFORM_PREFIXED, - TRANSFORM_STYLE_PREFIXED: () => TRANSFORM_STYLE_PREFIXED, - withBrowser: () => withBrowser - }); - var import_find, IS_BROWSER_ENV, withBrowser, ELEMENT_MATCHES, FLEX_PREFIXED, TRANSFORM_PREFIXED, TRANSFORM_PREFIX, TRANSFORM_STYLE_PREFIXED; - var init_IX2BrowserSupport = __esm({ - "packages/systems/ix2/shared/logic/IX2BrowserSupport.ts"() { - "use strict"; - import_find = __toESM(require_find()); - IS_BROWSER_ENV = typeof window !== "undefined"; - withBrowser = (fn, fallback) => { - if (IS_BROWSER_ENV) { - return fn(); - } - return fallback; - }; - ELEMENT_MATCHES = withBrowser(() => { - return (0, import_find.default)( - [ - "matches", - "matchesSelector", - "mozMatchesSelector", - "msMatchesSelector", - "oMatchesSelector", - "webkitMatchesSelector" - ], - (key) => key in Element.prototype - ); - }); - FLEX_PREFIXED = withBrowser(() => { - const el = document.createElement("i"); - const values = [ - "flex", - "-webkit-flex", - "-ms-flexbox", - "-moz-box", - "-webkit-box" - ]; - const none = ""; - try { - const { length } = values; - for (let i = 0; i < length; i++) { - const value = values[i]; - el.style.display = value; - if (el.style.display === value) { - return value; - } - } - return none; - } catch (err) { - return none; - } - }, "flex"); - TRANSFORM_PREFIXED = withBrowser(() => { - const el = document.createElement("i"); - if (el.style.transform == null) { - const prefixes = ["Webkit", "Moz", "ms"]; - const suffix = "Transform"; - const { length } = prefixes; - for (let i = 0; i < length; i++) { - const prop = prefixes[i] + suffix; - if (el.style[prop] !== void 0) { - return prop; - } - } - } - return "transform"; - }, "transform"); - TRANSFORM_PREFIX = TRANSFORM_PREFIXED.split("transform")[0]; - TRANSFORM_STYLE_PREFIXED = TRANSFORM_PREFIX ? TRANSFORM_PREFIX + "TransformStyle" : "transformStyle"; - } - }); - - // node_modules/bezier-easing/src/index.js - var require_src = __commonJS({ - "node_modules/bezier-easing/src/index.js"(exports, module) { - var NEWTON_ITERATIONS = 4; - var NEWTON_MIN_SLOPE = 1e-3; - var SUBDIVISION_PRECISION = 1e-7; - var SUBDIVISION_MAX_ITERATIONS = 10; - var kSplineTableSize = 11; - var kSampleStepSize = 1 / (kSplineTableSize - 1); - var float32ArraySupported = typeof Float32Array === "function"; - function A(aA1, aA2) { - return 1 - 3 * aA2 + 3 * aA1; - } - function B(aA1, aA2) { - return 3 * aA2 - 6 * aA1; - } - function C(aA1) { - return 3 * aA1; - } - function calcBezier(aT, aA1, aA2) { - return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; - } - function getSlope(aT, aA1, aA2) { - return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1); - } - function binarySubdivide(aX, aA, aB, mX1, mX2) { - var currentX, currentT, i = 0; - do { - currentT = aA + (aB - aA) / 2; - currentX = calcBezier(currentT, mX1, mX2) - aX; - if (currentX > 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) { - 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"); - } - 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; - var currentSample = 1; - var lastSample = kSplineTableSize - 1; - for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { - intervalStart += kSampleStepSize; - } - --currentSample; - 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) { - return guessForT; - } else { - return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); - } - } - return function BezierEasing3(x) { - if (mX1 === mY1 && mX2 === mY2) { - return x; - } - if (x === 0) { - return 0; - } - if (x === 1) { - return 1; - } - return calcBezier(getTForX(x), mY1, mY2); - }; - }; - } - }); - - // packages/systems/ix2/shared/logic/IX2Easings.ts - var IX2Easings_exports = {}; - __export(IX2Easings_exports, { - bounce: () => bounce, - bouncePast: () => bouncePast, - ease: () => ease, - easeIn: () => easeIn, - easeInOut: () => easeInOut, - easeOut: () => easeOut, - inBack: () => inBack, - inCirc: () => inCirc, - inCubic: () => inCubic, - inElastic: () => inElastic, - inExpo: () => inExpo, - inOutBack: () => inOutBack, - inOutCirc: () => inOutCirc, - inOutCubic: () => inOutCubic, - inOutElastic: () => inOutElastic, - inOutExpo: () => inOutExpo, - inOutQuad: () => inOutQuad, - inOutQuart: () => inOutQuart, - inOutQuint: () => inOutQuint, - inOutSine: () => inOutSine, - inQuad: () => inQuad, - inQuart: () => inQuart, - inQuint: () => inQuint, - inSine: () => inSine, - outBack: () => outBack, - outBounce: () => outBounce, - outCirc: () => outCirc, - outCubic: () => outCubic, - outElastic: () => outElastic, - outExpo: () => outExpo, - outQuad: () => outQuad, - outQuart: () => outQuart, - outQuint: () => outQuint, - outSine: () => outSine, - swingFrom: () => swingFrom, - swingFromTo: () => swingFromTo, - swingTo: () => swingTo - }); - 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) { - const s = magicSwing; - return pos * pos * ((s + 1) * pos - s); - } - function outBack(pos) { - const s = magicSwing; - return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; - } - function inOutBack(pos) { - let 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) { - let s = magicSwing; - let p = 0; - let 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) { - let s = magicSwing; - let p = 0; - let 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) { - let s = magicSwing; - let p = 0; - let 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) { - let 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) { - const s = magicSwing; - return pos * pos * ((s + 1) * pos - s); - } - function swingTo(pos) { - const 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); - } - } - var import_bezier_easing, magicSwing, ease, easeIn, easeOut, easeInOut; - var init_IX2Easings = __esm({ - "packages/systems/ix2/shared/logic/IX2Easings.ts"() { - "use strict"; - import_bezier_easing = __toESM(require_src()); - magicSwing = 1.70158; - ease = (0, import_bezier_easing.default)(0.25, 0.1, 0.25, 1); - easeIn = (0, import_bezier_easing.default)(0.42, 0, 1, 1); - easeOut = (0, import_bezier_easing.default)(0, 0, 0.58, 1); - easeInOut = (0, import_bezier_easing.default)(0.42, 0, 0.58, 1); - } - }); - - // packages/systems/ix2/shared/logic/IX2EasingUtils.ts - var IX2EasingUtils_exports = {}; - __export(IX2EasingUtils_exports, { - applyEasing: () => applyEasing, - createBezierEasing: () => createBezierEasing, - optimizeFloat: () => optimizeFloat - }); - function optimizeFloat(value, digits = 5, base = 10) { - const pow = Math.pow(base, digits); - const float = Number(Math.round(value * pow) / pow); - return Math.abs(float) > 1e-4 ? float : 0; - } - function createBezierEasing(easing) { - return (0, import_bezier_easing2.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 && IX2Easings_exports[easing] ? IX2Easings_exports[easing](position) : position - ); - } - var import_bezier_easing2; - var init_IX2EasingUtils = __esm({ - "packages/systems/ix2/shared/logic/IX2EasingUtils.ts"() { - "use strict"; - init_IX2Easings(); - import_bezier_easing2 = __toESM(require_src()); - } - }); - - // packages/systems/ix2/shared/reducers/IX2ElementsReducer.ts - var IX2ElementsReducer_exports = {}; - __export(IX2ElementsReducer_exports, { - createElementState: () => createElementState, - ixElements: () => ixElements, - mergeActionState: () => mergeActionState - }); - function createElementState(state, ref, refType, elementId, actionItem) { - const refId = refType === PLAIN_OBJECT2 ? (0, import_timm3.getIn)(actionItem, ["config", "target", "objectId"]) : null; - return (0, import_timm3.mergeIn)(state, [elementId], { - id: elementId, - ref, - refId, - refType - }); - } - function mergeActionState(state, elementId, actionTypeId, actionState, actionItem) { - const units = pickUnits(actionItem); - const mergePath = [elementId, refState, actionTypeId]; - return (0, import_timm3.mergeIn)(state, mergePath, actionState, units); - } - function pickUnits(actionItem) { - const { config } = actionItem; - return valueUnitPairs.reduce((result, pair) => { - const valueKey = pair[0]; - const unitKey = pair[1]; - const configValue = config[valueKey]; - const configUnit = config[unitKey]; - if (configValue != null && configUnit != null) { - result[unitKey] = configUnit; - } - return result; - }, {}); - } - var import_timm3, HTML_ELEMENT2, PLAIN_OBJECT2, ABSTRACT_NODE2, CONFIG_X_VALUE2, CONFIG_Y_VALUE2, CONFIG_Z_VALUE2, CONFIG_VALUE2, CONFIG_X_UNIT2, CONFIG_Y_UNIT2, CONFIG_Z_UNIT2, CONFIG_UNIT2, IX2_SESSION_STOPPED3, IX2_INSTANCE_ADDED2, IX2_ELEMENT_STATE_CHANGED2, initialState3, refState, ixElements, valueUnitPairs; - var init_IX2ElementsReducer = __esm({ - "packages/systems/ix2/shared/reducers/IX2ElementsReducer.ts"() { - "use strict"; - import_timm3 = __toESM(require_timm()); - init_shared_constants(); - ({ - HTML_ELEMENT: HTML_ELEMENT2, - PLAIN_OBJECT: PLAIN_OBJECT2, - ABSTRACT_NODE: ABSTRACT_NODE2, - CONFIG_X_VALUE: CONFIG_X_VALUE2, - CONFIG_Y_VALUE: CONFIG_Y_VALUE2, - CONFIG_Z_VALUE: CONFIG_Z_VALUE2, - CONFIG_VALUE: CONFIG_VALUE2, - CONFIG_X_UNIT: CONFIG_X_UNIT2, - CONFIG_Y_UNIT: CONFIG_Y_UNIT2, - CONFIG_Z_UNIT: CONFIG_Z_UNIT2, - CONFIG_UNIT: CONFIG_UNIT2 - } = IX2EngineConstants_exports); - ({ IX2_SESSION_STOPPED: IX2_SESSION_STOPPED3, IX2_INSTANCE_ADDED: IX2_INSTANCE_ADDED2, IX2_ELEMENT_STATE_CHANGED: IX2_ELEMENT_STATE_CHANGED2 } = IX2EngineActionTypes_exports); - initialState3 = {}; - refState = "refState"; - ixElements = (state = initialState3, action = {}) => { - switch (action.type) { - case IX2_SESSION_STOPPED3: { - return initialState3; - } - case IX2_INSTANCE_ADDED2: { - const { - elementId, - element: ref, - origin, - actionItem, - refType - } = action.payload; - const { actionTypeId } = actionItem; - let newState = state; - if ((0, import_timm3.getIn)(newState, [elementId, ref]) !== ref) { - newState = createElementState( - newState, - ref, - refType, - elementId, - actionItem - ); - } - return mergeActionState( - newState, - elementId, - actionTypeId, - origin, - actionItem - ); - } - case IX2_ELEMENT_STATE_CHANGED2: { - const { elementId, actionTypeId, current, actionItem } = action.payload; - return mergeActionState( - state, - elementId, - actionTypeId, - current, - actionItem - ); - } - default: { - return state; - } - } - }; - valueUnitPairs = [ - [CONFIG_X_VALUE2, CONFIG_X_UNIT2], - [CONFIG_Y_VALUE2, CONFIG_Y_UNIT2], - [CONFIG_Z_VALUE2, CONFIG_Z_UNIT2], - [CONFIG_VALUE2, CONFIG_UNIT2] - ]; - } - }); - - // packages/systems/ix2/plugins/IX2Lottie.js - var require_IX2Lottie = __commonJS({ - "packages/systems/ix2/plugins/IX2Lottie.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.renderPlugin = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginDestination = exports.getPluginConfig = exports.createPluginInstance = exports.clearPlugin = void 0; - var getPluginConfig2 = (actionItemConfig) => { - return actionItemConfig.value; - }; - exports.getPluginConfig = getPluginConfig2; - var getPluginDuration3 = (element, actionItem) => { - if (actionItem.config.duration !== "auto") { - return null; - } - const duration = parseFloat(element.getAttribute("data-duration")); - if (duration > 0) { - return duration * 1e3; - } - return parseFloat(element.getAttribute("data-default-duration")) * 1e3; - }; - exports.getPluginDuration = getPluginDuration3; - var getPluginOrigin2 = (refState2) => { - return refState2 || { - value: 0 - }; - }; - exports.getPluginOrigin = getPluginOrigin2; - var getPluginDestination2 = (actionItemConfig) => { - return { - value: actionItemConfig.value - }; - }; - exports.getPluginDestination = getPluginDestination2; - var createPluginInstance3 = (element) => { - const instance = window.Webflow.require("lottie").createInstance(element); - instance.stop(); - instance.setSubframe(true); - return instance; - }; - exports.createPluginInstance = createPluginInstance3; - var renderPlugin2 = (pluginInstance, refState2, actionItem) => { - if (!pluginInstance) { - return; - } - const percent = refState2[actionItem.actionTypeId].value / 100; - pluginInstance.goToFrame(pluginInstance.frames * percent); - }; - exports.renderPlugin = renderPlugin2; - var clearPlugin2 = (element) => { - const instance = window.Webflow.require("lottie").createInstance(element); - instance.stop(); - }; - exports.clearPlugin = clearPlugin2; - } - }); - - // packages/systems/ix2/plugins/IX2Spline.js - var require_IX2Spline = __commonJS({ - "packages/systems/ix2/plugins/IX2Spline.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.renderPlugin = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginDestination = exports.getPluginConfig = exports.createPluginInstance = exports.clearPlugin = void 0; - var queryContainerElement = (elementId) => document.querySelector(`[data-w-id="${elementId}"]`); - var getFrontendModule = () => window.Webflow.require("spline"); - var difference = (arr1, arr2) => arr1.filter((x) => !arr2.includes(x)); - var getPluginConfig2 = (actionItemConfig, key) => { - return actionItemConfig.value[key]; - }; - exports.getPluginConfig = getPluginConfig2; - var getPluginDuration3 = () => { - return null; - }; - exports.getPluginDuration = getPluginDuration3; - var DEFAULT_VALUES = Object.freeze({ - positionX: 0, - positionY: 0, - positionZ: 0, - rotationX: 0, - rotationY: 0, - rotationZ: 0, - scaleX: 1, - scaleY: 1, - scaleZ: 1 - }); - var getPluginOrigin2 = (refState2, actionItem) => { - const destination = actionItem.config.value; - const destinationKeys = Object.keys(destination); - if (refState2) { - const stateKeys2 = Object.keys(refState2); - const diffKeys = difference(destinationKeys, stateKeys2); - if (diffKeys.length) { - const origin2 = diffKeys.reduce((result, key) => { - result[key] = DEFAULT_VALUES[key]; - return result; - }, refState2); - return origin2; - } - return refState2; - } - const origin = destinationKeys.reduce((result, key) => { - result[key] = DEFAULT_VALUES[key]; - return result; - }, {}); - return origin; - }; - exports.getPluginOrigin = getPluginOrigin2; - var getPluginDestination2 = (actionItemConfig) => { - return actionItemConfig.value; - }; - exports.getPluginDestination = getPluginDestination2; - var createPluginInstance3 = (element, actionItem) => { - var _actionItem$config; - const pluginElementId = actionItem === null || actionItem === void 0 || (_actionItem$config = actionItem.config) === null || _actionItem$config === void 0 || (_actionItem$config = _actionItem$config.target) === null || _actionItem$config === void 0 ? void 0 : _actionItem$config.pluginElement; - return pluginElementId ? queryContainerElement(pluginElementId) : null; - }; - exports.createPluginInstance = createPluginInstance3; - var renderPlugin2 = (containerElement, refState2, actionItem) => { - const frontendModule = getFrontendModule(); - const instance = frontendModule.getInstance(containerElement); - const objectId = actionItem.config.target.objectId; - const renderSpline = (spline) => { - if (!spline) { - throw new Error("Invalid spline app passed to renderSpline"); - } - const obj = objectId && spline.findObjectById(objectId); - if (!obj) { - return; - } - const { - PLUGIN_SPLINE: props - } = refState2; - if (props.positionX != null) { - obj.position.x = props.positionX; - } - if (props.positionY != null) { - obj.position.y = props.positionY; - } - if (props.positionZ != null) { - obj.position.z = props.positionZ; - } - if (props.rotationX != null) { - obj.rotation.x = props.rotationX; - } - if (props.rotationY != null) { - obj.rotation.y = props.rotationY; - } - if (props.rotationZ != null) { - obj.rotation.z = props.rotationZ; - } - if (props.scaleX != null) { - obj.scale.x = props.scaleX; - } - if (props.scaleY != null) { - obj.scale.y = props.scaleY; - } - if (props.scaleZ != null) { - obj.scale.z = props.scaleZ; - } - }; - if (instance) { - renderSpline(instance.spline); - } else { - frontendModule.setLoadHandler(containerElement, renderSpline); - } - }; - exports.renderPlugin = renderPlugin2; - var clearPlugin2 = () => { - return null; - }; - exports.clearPlugin = clearPlugin2; - } - }); - - // packages/systems/ix2/shared-utils/normalizeColor.js - var require_normalizeColor = __commonJS({ - "packages/systems/ix2/shared-utils/normalizeColor.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.normalizeColor = normalizeColor2; - var colorNamesObj = { - aliceblue: "#F0F8FF", - antiquewhite: "#FAEBD7", - aqua: "#00FFFF", - aquamarine: "#7FFFD4", - azure: "#F0FFFF", - beige: "#F5F5DC", - bisque: "#FFE4C4", - black: "#000000", - blanchedalmond: "#FFEBCD", - blue: "#0000FF", - blueviolet: "#8A2BE2", - brown: "#A52A2A", - burlywood: "#DEB887", - cadetblue: "#5F9EA0", - chartreuse: "#7FFF00", - chocolate: "#D2691E", - coral: "#FF7F50", - cornflowerblue: "#6495ED", - cornsilk: "#FFF8DC", - crimson: "#DC143C", - cyan: "#00FFFF", - darkblue: "#00008B", - darkcyan: "#008B8B", - darkgoldenrod: "#B8860B", - darkgray: "#A9A9A9", - darkgreen: "#006400", - darkgrey: "#A9A9A9", - darkkhaki: "#BDB76B", - darkmagenta: "#8B008B", - darkolivegreen: "#556B2F", - darkorange: "#FF8C00", - darkorchid: "#9932CC", - darkred: "#8B0000", - darksalmon: "#E9967A", - darkseagreen: "#8FBC8F", - darkslateblue: "#483D8B", - darkslategray: "#2F4F4F", - darkslategrey: "#2F4F4F", - darkturquoise: "#00CED1", - darkviolet: "#9400D3", - deeppink: "#FF1493", - deepskyblue: "#00BFFF", - dimgray: "#696969", - dimgrey: "#696969", - dodgerblue: "#1E90FF", - firebrick: "#B22222", - floralwhite: "#FFFAF0", - forestgreen: "#228B22", - fuchsia: "#FF00FF", - gainsboro: "#DCDCDC", - ghostwhite: "#F8F8FF", - gold: "#FFD700", - goldenrod: "#DAA520", - gray: "#808080", - green: "#008000", - greenyellow: "#ADFF2F", - grey: "#808080", - honeydew: "#F0FFF0", - hotpink: "#FF69B4", - indianred: "#CD5C5C", - indigo: "#4B0082", - ivory: "#FFFFF0", - khaki: "#F0E68C", - lavender: "#E6E6FA", - lavenderblush: "#FFF0F5", - lawngreen: "#7CFC00", - lemonchiffon: "#FFFACD", - lightblue: "#ADD8E6", - lightcoral: "#F08080", - lightcyan: "#E0FFFF", - lightgoldenrodyellow: "#FAFAD2", - lightgray: "#D3D3D3", - lightgreen: "#90EE90", - lightgrey: "#D3D3D3", - lightpink: "#FFB6C1", - lightsalmon: "#FFA07A", - lightseagreen: "#20B2AA", - lightskyblue: "#87CEFA", - lightslategray: "#778899", - lightslategrey: "#778899", - lightsteelblue: "#B0C4DE", - lightyellow: "#FFFFE0", - lime: "#00FF00", - limegreen: "#32CD32", - linen: "#FAF0E6", - magenta: "#FF00FF", - maroon: "#800000", - mediumaquamarine: "#66CDAA", - mediumblue: "#0000CD", - mediumorchid: "#BA55D3", - mediumpurple: "#9370DB", - mediumseagreen: "#3CB371", - mediumslateblue: "#7B68EE", - mediumspringgreen: "#00FA9A", - mediumturquoise: "#48D1CC", - mediumvioletred: "#C71585", - midnightblue: "#191970", - mintcream: "#F5FFFA", - mistyrose: "#FFE4E1", - moccasin: "#FFE4B5", - navajowhite: "#FFDEAD", - navy: "#000080", - oldlace: "#FDF5E6", - olive: "#808000", - olivedrab: "#6B8E23", - orange: "#FFA500", - orangered: "#FF4500", - orchid: "#DA70D6", - palegoldenrod: "#EEE8AA", - palegreen: "#98FB98", - paleturquoise: "#AFEEEE", - palevioletred: "#DB7093", - papayawhip: "#FFEFD5", - peachpuff: "#FFDAB9", - peru: "#CD853F", - pink: "#FFC0CB", - plum: "#DDA0DD", - powderblue: "#B0E0E6", - purple: "#800080", - rebeccapurple: "#663399", - red: "#FF0000", - rosybrown: "#BC8F8F", - royalblue: "#4169E1", - saddlebrown: "#8B4513", - salmon: "#FA8072", - sandybrown: "#F4A460", - seagreen: "#2E8B57", - seashell: "#FFF5EE", - sienna: "#A0522D", - silver: "#C0C0C0", - skyblue: "#87CEEB", - slateblue: "#6A5ACD", - slategray: "#708090", - slategrey: "#708090", - snow: "#FFFAFA", - springgreen: "#00FF7F", - steelblue: "#4682B4", - tan: "#D2B48C", - teal: "#008080", - thistle: "#D8BFD8", - tomato: "#FF6347", - turquoise: "#40E0D0", - violet: "#EE82EE", - wheat: "#F5DEB3", - white: "#FFFFFF", - whitesmoke: "#F5F5F5", - yellow: "#FFFF00", - yellowgreen: "#9ACD32" - }; - function normalizeColor2(inputColor) { - let red; - let green; - let blue; - let alpha = 1; - const rawColor = inputColor.replace(/\s/g, "").toLowerCase(); - const namedColor = typeof colorNamesObj[rawColor] === "string" ? colorNamesObj[rawColor].toLowerCase() : null; - const cleanColor = namedColor || rawColor; - if (cleanColor.startsWith("#")) { - const hex = cleanColor.substring(1); - if (hex.length === 3) { - red = parseInt(hex[0] + hex[0], 16); - green = parseInt(hex[1] + hex[1], 16); - blue = parseInt(hex[2] + hex[2], 16); - } else if (hex.length === 6) { - red = parseInt(hex.substring(0, 2), 16); - green = parseInt(hex.substring(2, 4), 16); - blue = parseInt(hex.substring(4, 6), 16); - } - } else if (cleanColor.startsWith("rgba")) { - const rgbaValues = cleanColor.match(/rgba\(([^)]+)\)/)[1].split(","); - red = parseInt(rgbaValues[0], 10); - green = parseInt(rgbaValues[1], 10); - blue = parseInt(rgbaValues[2], 10); - alpha = parseFloat(rgbaValues[3]); - } else if (cleanColor.startsWith("rgb")) { - const rgbValues = cleanColor.match(/rgb\(([^)]+)\)/)[1].split(","); - red = parseInt(rgbValues[0], 10); - green = parseInt(rgbValues[1], 10); - blue = parseInt(rgbValues[2], 10); - } else if (cleanColor.startsWith("hsla")) { - const hslaValues = cleanColor.match(/hsla\(([^)]+)\)/)[1].split(","); - const h = parseFloat(hslaValues[0]); - const s = parseFloat(hslaValues[1].replace("%", "")) / 100; - const l = parseFloat(hslaValues[2].replace("%", "")) / 100; - alpha = parseFloat(hslaValues[3]); - const C = (1 - Math.abs(2 * l - 1)) * s; - const X = C * (1 - Math.abs(h / 60 % 2 - 1)); - const m = l - C / 2; - let R; - let G; - let B; - if (h >= 0 && h < 60) { - R = C; - G = X; - B = 0; - } else if (h >= 60 && h < 120) { - R = X; - G = C; - B = 0; - } else if (h >= 120 && h < 180) { - R = 0; - G = C; - B = X; - } else if (h >= 180 && h < 240) { - R = 0; - G = X; - B = C; - } else if (h >= 240 && h < 300) { - R = X; - G = 0; - B = C; - } else { - R = C; - G = 0; - B = X; - } - red = Math.round((R + m) * 255); - green = Math.round((G + m) * 255); - blue = Math.round((B + m) * 255); - } else if (cleanColor.startsWith("hsl")) { - const hslValues = cleanColor.match(/hsl\(([^)]+)\)/)[1].split(","); - const h = parseFloat(hslValues[0]); - const s = parseFloat(hslValues[1].replace("%", "")) / 100; - const l = parseFloat(hslValues[2].replace("%", "")) / 100; - const C = (1 - Math.abs(2 * l - 1)) * s; - const X = C * (1 - Math.abs(h / 60 % 2 - 1)); - const m = l - C / 2; - let R; - let G; - let B; - if (h >= 0 && h < 60) { - R = C; - G = X; - B = 0; - } else if (h >= 60 && h < 120) { - R = X; - G = C; - B = 0; - } else if (h >= 120 && h < 180) { - R = 0; - G = C; - B = X; - } else if (h >= 180 && h < 240) { - R = 0; - G = X; - B = C; - } else if (h >= 240 && h < 300) { - R = X; - G = 0; - B = C; - } else { - R = C; - G = 0; - B = X; - } - red = Math.round((R + m) * 255); - green = Math.round((G + m) * 255); - blue = Math.round((B + m) * 255); - } - if (Number.isNaN(red) || Number.isNaN(green) || Number.isNaN(blue)) { - throw new Error(`Invalid color in [ix2/shared/utils/normalizeColor.js] '${inputColor}'`); - } - return { - red, - green, - blue, - alpha - }; - } - } - }); - - // packages/systems/ix2/plugins/IX2Variable.js - var require_IX2Variable = __commonJS({ - "packages/systems/ix2/plugins/IX2Variable.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.renderPlugin = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginDestination = exports.getPluginConfig = exports.createPluginInstance = exports.clearPlugin = void 0; - var _normalizeColor = require_normalizeColor(); - var getPluginConfig2 = (actionItemConfig, key) => { - return actionItemConfig.value[key]; - }; - exports.getPluginConfig = getPluginConfig2; - var getPluginDuration3 = () => { - return null; - }; - exports.getPluginDuration = getPluginDuration3; - var getPluginOrigin2 = (refState2, actionItem) => { - if (refState2) { - return refState2; - } - const destination = actionItem.config.value; - const objectId = actionItem.config.target.objectId; - const computedValue = getComputedStyle(document.documentElement).getPropertyValue(objectId); - if (destination.size != null) { - return { - size: parseInt(computedValue, 10) - }; - } - if (destination.red != null && destination.green != null && destination.blue != null) { - return (0, _normalizeColor.normalizeColor)(computedValue); - } - }; - exports.getPluginOrigin = getPluginOrigin2; - var getPluginDestination2 = (actionItemConfig) => { - return actionItemConfig.value; - }; - exports.getPluginDestination = getPluginDestination2; - var createPluginInstance3 = () => { - return null; - }; - exports.createPluginInstance = createPluginInstance3; - var renderPlugin2 = (_, refState2, actionItem) => { - const objectId = actionItem.config.target.objectId; - const unit = actionItem.config.value.unit; - const { - PLUGIN_VARIABLE: props - } = refState2; - const { - size: size2, - red, - green, - blue, - alpha - } = props; - let value; - if (size2 != null) { - value = size2 + unit; - } - if (red != null && blue != null && green != null && alpha != null) { - value = `rgba(${red}, ${green}, ${blue}, ${alpha})`; - } - if (value != null) { - document.documentElement.style.setProperty(objectId, value); - } - }; - exports.renderPlugin = renderPlugin2; - var clearPlugin2 = (ref, actionItem) => { - const objectId = actionItem.config.target.objectId; - document.documentElement.style.removeProperty(objectId); - }; - exports.clearPlugin = clearPlugin2; - } - }); - - // packages/systems/ix2/plugins/index.js - var require_plugins = __commonJS({ - "packages/systems/ix2/plugins/index.js"(exports) { - "use strict"; - var _interopRequireWildcard = require_interopRequireWildcard().default; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.pluginMethodMap = void 0; - var _sharedConstants = (init_shared_constants(), __toCommonJS(shared_constants_exports)); - var lottie = _interopRequireWildcard(require_IX2Lottie()); - var spline = _interopRequireWildcard(require_IX2Spline()); - var variable = _interopRequireWildcard(require_IX2Variable()); - var pluginMethodMap2 = exports.pluginMethodMap = /* @__PURE__ */ new Map([[_sharedConstants.ActionTypeConsts.PLUGIN_LOTTIE, { - ...lottie - }], [_sharedConstants.ActionTypeConsts.PLUGIN_SPLINE, { - ...spline - }], [_sharedConstants.ActionTypeConsts.PLUGIN_VARIABLE, { - ...variable - }]]); - } - }); - - // packages/systems/ix2/shared/logic/IX2VanillaPlugins.ts - var IX2VanillaPlugins_exports = {}; - __export(IX2VanillaPlugins_exports, { - clearPlugin: () => clearPlugin, - createPluginInstance: () => createPluginInstance, - getPluginConfig: () => getPluginConfig, - getPluginDestination: () => getPluginDestination, - getPluginDuration: () => getPluginDuration, - getPluginOrigin: () => getPluginOrigin, - isPluginType: () => isPluginType, - renderPlugin: () => renderPlugin - }); - function isPluginType(actionTypeId) { - return import_plugins.pluginMethodMap.has(actionTypeId); - } - var import_plugins, pluginMethod, getPluginConfig, getPluginOrigin, getPluginDuration, getPluginDestination, createPluginInstance, renderPlugin, clearPlugin; - var init_IX2VanillaPlugins = __esm({ - "packages/systems/ix2/shared/logic/IX2VanillaPlugins.ts"() { - "use strict"; - init_IX2BrowserSupport(); - import_plugins = __toESM(require_plugins()); - pluginMethod = (methodName) => (actionTypeId) => { - if (!IS_BROWSER_ENV) { - return () => null; - } - const plugin = import_plugins.pluginMethodMap.get(actionTypeId); - if (!plugin) { - throw new Error(`IX2 no plugin configured for: ${actionTypeId}`); - } - const method = plugin[methodName]; - if (!method) { - throw new Error(`IX2 invalid plugin method: ${methodName}`); - } - return method; - }; - getPluginConfig = pluginMethod("getPluginConfig"); - getPluginOrigin = pluginMethod("getPluginOrigin"); - getPluginDuration = pluginMethod("getPluginDuration"); - getPluginDestination = pluginMethod("getPluginDestination"); - createPluginInstance = pluginMethod("createPluginInstance"); - renderPlugin = pluginMethod("renderPlugin"); - clearPlugin = pluginMethod("clearPlugin"); - } - }); - - // node_modules/lodash/defaultTo.js - var require_defaultTo = __commonJS({ - "node_modules/lodash/defaultTo.js"(exports, module) { - function defaultTo2(value, defaultValue) { - return value == null || value !== value ? defaultValue : value; - } - module.exports = defaultTo2; - } - }); - - // node_modules/lodash/_arrayReduce.js - var require_arrayReduce = __commonJS({ - "node_modules/lodash/_arrayReduce.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/_createBaseFor.js - var require_createBaseFor = __commonJS({ - "node_modules/lodash/_createBaseFor.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/_baseFor.js - var require_baseFor = __commonJS({ - "node_modules/lodash/_baseFor.js"(exports, module) { - var createBaseFor = require_createBaseFor(); - var baseFor = createBaseFor(); - module.exports = baseFor; - } - }); - - // node_modules/lodash/_baseForOwn.js - var require_baseForOwn = __commonJS({ - "node_modules/lodash/_baseForOwn.js"(exports, module) { - var baseFor = require_baseFor(); - var keys = require_keys(); - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - module.exports = baseForOwn; - } - }); - - // node_modules/lodash/_createBaseEach.js - var require_createBaseEach = __commonJS({ - "node_modules/lodash/_createBaseEach.js"(exports, module) { - var isArrayLike = require_isArrayLike(); - 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; - } - }); - - // node_modules/lodash/_baseEach.js - var require_baseEach = __commonJS({ - "node_modules/lodash/_baseEach.js"(exports, module) { - var baseForOwn = require_baseForOwn(); - var createBaseEach = require_createBaseEach(); - var baseEach = createBaseEach(baseForOwn); - module.exports = baseEach; - } - }); - - // node_modules/lodash/_baseReduce.js - var require_baseReduce = __commonJS({ - "node_modules/lodash/_baseReduce.js"(exports, module) { - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection2) { - accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); - }); - return accumulator; - } - module.exports = baseReduce; - } - }); - - // node_modules/lodash/reduce.js - var require_reduce = __commonJS({ - "node_modules/lodash/reduce.js"(exports, module) { - var arrayReduce = require_arrayReduce(); - var baseEach = require_baseEach(); - var baseIteratee = require_baseIteratee(); - var baseReduce = require_baseReduce(); - var isArray = require_isArray(); - function reduce2(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; - return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); - } - module.exports = reduce2; - } - }); - - // node_modules/lodash/findLastIndex.js - var require_findLastIndex = __commonJS({ - "node_modules/lodash/findLastIndex.js"(exports, module) { - var baseFindIndex = require_baseFindIndex(); - var baseIteratee = require_baseIteratee(); - var toInteger = require_toInteger(); - var nativeMax = Math.max; - var nativeMin = Math.min; - function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== void 0) { - 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; - } - }); - - // node_modules/lodash/findLast.js - var require_findLast = __commonJS({ - "node_modules/lodash/findLast.js"(exports, module) { - var createFind = require_createFind(); - var findLastIndex = require_findLastIndex(); - var findLast2 = createFind(findLastIndex); - module.exports = findLast2; - } - }); - - // packages/systems/ix2/shared/logic/shallowEqual.ts - function is(x, y) { - if (x === y) { - return x !== 0 || y !== 0 || 1 / x === 1 / y; - } - return x !== x && y !== y; - } - function shallowEqual(objA, objB) { - if (is(objA, objB)) { - return true; - } - if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) { - return false; - } - const keysA = Object.keys(objA); - const keysB = Object.keys(objB); - if (keysA.length !== keysB.length) { - return false; - } - for (let i = 0; i < keysA.length; i++) { - if (!Object.hasOwn( - objB, - // @ts-expect-error - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'PropertyKey'. - keysA[i] - ) || // @ts-expect-error - TS2538 - Type 'undefined' cannot be used as an index type. | TS2538 - Type 'undefined' cannot be used as an index type. - !is(objA[keysA[i]], objB[keysA[i]])) { - return false; - } - } - return true; - } - var shallowEqual_default; - var init_shallowEqual = __esm({ - "packages/systems/ix2/shared/logic/shallowEqual.ts"() { - "use strict"; - shallowEqual_default = shallowEqual; - } - }); - - // packages/systems/ix2/shared/logic/IX2VanillaUtils.ts - var IX2VanillaUtils_exports = {}; - __export(IX2VanillaUtils_exports, { - cleanupHTMLElement: () => cleanupHTMLElement, - clearAllStyles: () => clearAllStyles, - clearObjectCache: () => clearObjectCache, - getActionListProgress: () => getActionListProgress, - getAffectedElements: () => getAffectedElements, - getComputedStyle: () => getComputedStyle2, - getDestinationValues: () => getDestinationValues, - getElementId: () => getElementId, - getInstanceId: () => getInstanceId, - getInstanceOrigin: () => getInstanceOrigin, - getItemConfigByKey: () => getItemConfigByKey, - getMaxDurationItemIndex: () => getMaxDurationItemIndex, - getNamespacedParameterId: () => getNamespacedParameterId, - getRenderType: () => getRenderType, - getStyleProp: () => getStyleProp, - mediaQueriesEqual: () => mediaQueriesEqual, - observeStore: () => observeStore, - reduceListToGroup: () => reduceListToGroup, - reifyState: () => reifyState, - renderHTMLElement: () => renderHTMLElement, - shallowEqual: () => shallowEqual_default, - shouldAllowMediaQuery: () => shouldAllowMediaQuery, - shouldNamespaceEventParameter: () => shouldNamespaceEventParameter, - stringifyTarget: () => stringifyTarget - }); - function clearObjectCache() { - objectCache.clear(); - } - function getInstanceId() { - return "i" + instanceCount++; - } - function getElementId(ixElements3, ref) { - for (const key in ixElements3) { - const ixEl = ixElements3[key]; - if (ixEl && ixEl.ref === ref) { - return ixEl.id; - } - } - return "e" + elementCount++; - } - function reifyState({ events, actionLists, site } = {}) { - const eventTypeMap = (0, import_reduce.default)( - events, - (result, event) => { - const { eventTypeId } = event; - if (!result[eventTypeId]) { - result[eventTypeId] = {}; - } - result[eventTypeId][event.id] = event; - return result; - }, - {} - ); - let mediaQueries = site && site.mediaQueries; - let mediaQueryKeys = []; - if (mediaQueries) { - mediaQueryKeys = mediaQueries.map((mq) => mq.key); - } else { - mediaQueries = []; - console.warn(`IX2 missing mediaQueries in site data`); - } - return { - ixData: { - events, - actionLists, - eventTypeMap, - mediaQueries, - mediaQueryKeys - } - }; - } - function observeStore({ - // @ts-expect-error - TS7031 - Binding element 'store' implicitly has an 'any' type. - store, - // @ts-expect-error - TS7031 - Binding element 'select' implicitly has an 'any' type. - select, - // @ts-expect-error - TS7031 - Binding element 'onChange' implicitly has an 'any' type. - onChange, - comparator = strictEqual - }) { - const { getState, subscribe } = store; - const unsubscribe = subscribe(handleChange); - let currentState = select(getState()); - function handleChange() { - const nextState = select(getState()); - if (nextState == null) { - unsubscribe(); - return; - } - if (!comparator(nextState, currentState)) { - currentState = nextState; - onChange(currentState, store); - } - } - return unsubscribe; - } - function normalizeTarget(target) { - const type = typeof target; - if (type === "string") { - return { id: target }; - } else if (target != null && type === "object") { - const { id, objectId, selector, selectorGuids, appliesTo, useEventTarget } = target; - return { id, objectId, selector, selectorGuids, appliesTo, useEventTarget }; - } - return {}; - } - function getAffectedElements({ - config, - event, - eventTarget, - elementRoot, - elementApi - }) { - if (!elementApi) { - throw new Error("IX2 missing elementApi"); - } - const { targets } = config; - if (Array.isArray(targets) && targets.length > 0) { - return targets.reduce( - (accumulator, target2) => accumulator.concat( - getAffectedElements({ - config: { target: target2 }, - event, - eventTarget, - elementRoot, - elementApi - }) - ), - [] - ); - } - const { - getValidDocument: getValidDocument2, - getQuerySelector: getQuerySelector2, - queryDocument: queryDocument2, - getChildElements: getChildElements2, - getSiblingElements: getSiblingElements2, - matchSelector: matchSelector2, - elementContains: elementContains2, - isSiblingNode: isSiblingNode2 - } = elementApi; - const { target } = config; - if (!target) { - return []; - } - const { - id, - objectId, - selector, - selectorGuids, - appliesTo, - useEventTarget - } = normalizeTarget(target); - if (objectId) { - const ref = objectCache.has(objectId) ? objectCache.get(objectId) : objectCache.set(objectId, {}).get(objectId); - return [ref]; - } - if (appliesTo === EventAppliesTo.PAGE) { - const doc = getValidDocument2(id); - return doc ? [doc] : []; - } - const overrides = event?.action?.config?.affectedElements ?? {}; - const override = overrides[id || selector] || {}; - const validOverride = Boolean(override.id || override.selector); - let limitAffectedElements; - let baseSelector; - let finalSelector; - const eventTargetSelector = event && getQuerySelector2(normalizeTarget(event.target)); - if (validOverride) { - limitAffectedElements = override.limitAffectedElements; - baseSelector = eventTargetSelector; - finalSelector = getQuerySelector2(override); - } else { - baseSelector = finalSelector = getQuerySelector2({ - id, - selector, - selectorGuids - }); - } - if (event && useEventTarget) { - const eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument2(eventTargetSelector); - if (finalSelector) { - if (useEventTarget === PARENT2) { - return queryDocument2(finalSelector).filter( - (parentElement) => eventTargets.some( - (targetElement) => elementContains2(parentElement, targetElement) - ) - ); - } - if (useEventTarget === CHILDREN2) { - return queryDocument2(finalSelector).filter( - (childElement) => eventTargets.some( - (targetElement) => elementContains2(targetElement, childElement) - ) - ); - } - if (useEventTarget === SIBLINGS2) { - return queryDocument2(finalSelector).filter( - (siblingElement) => eventTargets.some( - (targetElement) => isSiblingNode2(targetElement, siblingElement) - ) - ); - } - } - return eventTargets; - } - if (baseSelector == null || finalSelector == null) { - return []; - } - if (IS_BROWSER_ENV && elementRoot) { - return queryDocument2(finalSelector).filter( - (element) => elementRoot.contains(element) - ); - } - if (limitAffectedElements === CHILDREN2) { - return queryDocument2(baseSelector, finalSelector); - } else if (limitAffectedElements === IMMEDIATE_CHILDREN2) { - return getChildElements2(queryDocument2(baseSelector)).filter( - matchSelector2(finalSelector) - ); - } else if (limitAffectedElements === SIBLINGS2) { - return getSiblingElements2(queryDocument2(baseSelector)).filter( - matchSelector2(finalSelector) - ); - } else { - return queryDocument2(finalSelector); - } - } - function getComputedStyle2({ element, actionItem }) { - if (!IS_BROWSER_ENV) { - return {}; - } - const { actionTypeId } = actionItem; - switch (actionTypeId) { - case STYLE_SIZE2: - case STYLE_BACKGROUND_COLOR: - case STYLE_BORDER: - case STYLE_TEXT_COLOR: - case GENERAL_DISPLAY: - return window.getComputedStyle(element); - default: - return {}; - } - } - function getInstanceOrigin(element, refState2 = {}, computedStyle = {}, actionItem, elementApi) { - const { getStyle: getStyle2 } = elementApi; - const { actionTypeId } = actionItem; - if (isPluginType(actionTypeId)) { - return getPluginOrigin(actionTypeId)(refState2[actionTypeId], actionItem); - } - switch (actionItem.actionTypeId) { - case TRANSFORM_MOVE2: - case TRANSFORM_SCALE2: - case TRANSFORM_ROTATE2: - case TRANSFORM_SKEW2: { - return ( - // @ts-expect-error - TS7053 - Element implicitly has an 'any' type because expression of type '"TRANSFORM_MOVE" | "TRANSFORM_SCALE" | "TRANSFORM_ROTATE" | "TRANSFORM_SKEW"' can't be used to index type '{}'. - refState2[actionItem.actionTypeId] || transformDefaults[actionItem.actionTypeId] - ); - } - case STYLE_FILTER2: - return getFilterDefaults( - // @ts-expect-error - TS7053 - Element implicitly has an 'any' type because expression of type '"STYLE_FILTER"' can't be used to index type '{}'. - refState2[actionItem.actionTypeId], - actionItem.config.filters - ); - case STYLE_FONT_VARIATION2: - return getFontVariationDefaults( - // @ts-expect-error - TS7053 - Element implicitly has an 'any' type because expression of type '"STYLE_FONT_VARIATION"' can't be used to index type '{}'. - refState2[actionItem.actionTypeId], - actionItem.config.fontVariations - ); - case STYLE_OPACITY: - return { value: (0, import_defaultTo.default)(parseFloat(getStyle2(element, OPACITY2)), 1) }; - case STYLE_SIZE2: { - const inlineWidth = getStyle2(element, WIDTH2); - const inlineHeight = getStyle2(element, HEIGHT2); - let widthValue; - let heightValue; - if (actionItem.config.widthUnit === AUTO2) { - widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : ( - // @ts-expect-error - TS18047 - 'computedStyle' is possibly 'null'. - parseFloat(computedStyle.width) - ); - } else { - widthValue = (0, import_defaultTo.default)( - parseFloat(inlineWidth), - // @ts-expect-error - TS18047 - 'computedStyle' is possibly 'null'. - parseFloat(computedStyle.width) - ); - } - if (actionItem.config.heightUnit === AUTO2) { - heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : ( - // @ts-expect-error - TS18047 - 'computedStyle' is possibly 'null'. - parseFloat(computedStyle.height) - ); - } else { - heightValue = (0, import_defaultTo.default)( - parseFloat(inlineHeight), - // @ts-expect-error - TS18047 - 'computedStyle' is possibly 'null'. - parseFloat(computedStyle.height) - ); - } - return { - widthValue, - heightValue - }; - } - case STYLE_BACKGROUND_COLOR: - case STYLE_BORDER: - case STYLE_TEXT_COLOR: - return parseColor({ - element, - actionTypeId: actionItem.actionTypeId, - computedStyle, - getStyle: getStyle2 - }); - case GENERAL_DISPLAY: - return { - // @ts-expect-error - TS18047 - 'computedStyle' is possibly 'null'. - value: (0, import_defaultTo.default)(getStyle2(element, DISPLAY2), computedStyle.display) - }; - case OBJECT_VALUE: - return refState2[actionItem.actionTypeId] || { value: 0 }; - default: { - return; - } - } - } - function getDestinationValues({ - element, - actionItem, - elementApi - }) { - if (isPluginType(actionItem.actionTypeId)) { - return getPluginDestination(actionItem.actionTypeId)(actionItem.config); - } - switch (actionItem.actionTypeId) { - case TRANSFORM_MOVE2: - case TRANSFORM_SCALE2: - case TRANSFORM_ROTATE2: - case TRANSFORM_SKEW2: { - const { xValue, yValue, zValue } = actionItem.config; - return { xValue, yValue, zValue }; - } - case STYLE_SIZE2: { - const { getStyle: getStyle2, setStyle: setStyle2, getProperty: getProperty2 } = elementApi; - const { widthUnit, heightUnit } = actionItem.config; - let { widthValue, heightValue } = actionItem.config; - if (!IS_BROWSER_ENV) { - return { widthValue, heightValue }; - } - if (widthUnit === AUTO2) { - const temp = getStyle2(element, WIDTH2); - setStyle2(element, WIDTH2, ""); - widthValue = getProperty2(element, "offsetWidth"); - setStyle2(element, WIDTH2, temp); - } - if (heightUnit === AUTO2) { - const temp = getStyle2(element, HEIGHT2); - setStyle2(element, HEIGHT2, ""); - heightValue = getProperty2(element, "offsetHeight"); - setStyle2(element, HEIGHT2, temp); - } - return { widthValue, heightValue }; - } - case STYLE_BACKGROUND_COLOR: - case STYLE_BORDER: - case STYLE_TEXT_COLOR: { - const { rValue, gValue, bValue, aValue, globalSwatchId } = actionItem.config; - if (globalSwatchId && globalSwatchId.startsWith("--")) { - const { getStyle: getStyle2 } = elementApi; - const value = getStyle2(element, globalSwatchId); - const normalizedValue = (0, import_normalizeColor.normalizeColor)(value); - return { - rValue: normalizedValue.red, - gValue: normalizedValue.green, - bValue: normalizedValue.blue, - aValue: normalizedValue.alpha - }; - } - return { rValue, gValue, bValue, aValue }; - } - case STYLE_FILTER2: { - return actionItem.config.filters.reduce( - reduceFilters, - {} - ); - } - case STYLE_FONT_VARIATION2: { - return actionItem.config.fontVariations.reduce( - reduceFontVariations, - {} - ); - } - default: { - const { value } = actionItem.config; - return { value }; - } - } - } - function getRenderType(actionTypeId) { - if (/^TRANSFORM_/.test(actionTypeId)) { - return RENDER_TRANSFORM2; - } - if (/^STYLE_/.test(actionTypeId)) { - return RENDER_STYLE2; - } - if (/^GENERAL_/.test(actionTypeId)) { - return RENDER_GENERAL2; - } - if (/^PLUGIN_/.test(actionTypeId)) { - return RENDER_PLUGIN2; - } - } - function getStyleProp(renderType, actionTypeId) { - return renderType === RENDER_STYLE2 ? actionTypeId.replace("STYLE_", "").toLowerCase() : null; - } - function renderHTMLElement(element, refState2, actionState, eventId, actionItem, styleProp, elementApi, renderType, pluginInstance) { - switch (renderType) { - case RENDER_TRANSFORM2: { - return renderTransform( - element, - refState2, - actionState, - actionItem, - elementApi - ); - } - case RENDER_STYLE2: { - return renderStyle( - element, - refState2, - actionState, - actionItem, - styleProp, - elementApi - ); - } - case RENDER_GENERAL2: { - return renderGeneral(element, actionItem, elementApi); - } - case RENDER_PLUGIN2: { - const { actionTypeId } = actionItem; - if (isPluginType(actionTypeId)) { - return renderPlugin(actionTypeId)(pluginInstance, refState2, actionItem); - } - } - } - } - function renderTransform(element, refState2, actionState, actionItem, elementApi) { - const newTransform = transformKeys.map((actionTypeId) => { - const defaults = transformDefaults[actionTypeId]; - const { - xValue = defaults.xValue, - yValue = defaults.yValue, - zValue = defaults.zValue, - xUnit = "", - yUnit = "", - zUnit = "" - } = refState2[actionTypeId] || {}; - switch (actionTypeId) { - case TRANSFORM_MOVE2: - return `${TRANSLATE_3D2}(${xValue}${xUnit}, ${yValue}${yUnit}, ${zValue}${zUnit})`; - case TRANSFORM_SCALE2: - return `${SCALE_3D2}(${xValue}${xUnit}, ${yValue}${yUnit}, ${zValue}${zUnit})`; - case TRANSFORM_ROTATE2: - return `${ROTATE_X2}(${xValue}${xUnit}) ${ROTATE_Y2}(${yValue}${yUnit}) ${ROTATE_Z2}(${zValue}${zUnit})`; - case TRANSFORM_SKEW2: - return `${SKEW2}(${xValue}${xUnit}, ${yValue}${yUnit})`; - default: - return ""; - } - }).join(" "); - const { setStyle: setStyle2 } = elementApi; - addWillChange(element, TRANSFORM_PREFIXED, elementApi); - setStyle2(element, TRANSFORM_PREFIXED, newTransform); - if (hasDefined3dTransform(actionItem, actionState)) { - setStyle2(element, TRANSFORM_STYLE_PREFIXED, PRESERVE_3D2); - } - } - function renderFilter(element, actionState, actionItemConfig, elementApi) { - const filterValue = (0, import_reduce.default)( - actionState, - (result, value, type) => `${result} ${type}(${value}${getFilterUnit(type, actionItemConfig)})`, - "" - ); - const { setStyle: setStyle2 } = elementApi; - addWillChange(element, FILTER2, elementApi); - setStyle2(element, FILTER2, filterValue); - } - function renderFontVariation(element, actionState, actionItemConfig, elementApi) { - const fontVariationValue = (0, import_reduce.default)( - actionState, - (result, value, type) => { - result.push(`"${type}" ${value}`); - return result; - }, - [] - ).join(", "); - const { setStyle: setStyle2 } = elementApi; - addWillChange(element, FONT_VARIATION_SETTINGS2, elementApi); - setStyle2(element, FONT_VARIATION_SETTINGS2, fontVariationValue); - } - function hasDefined3dTransform({ actionTypeId }, { xValue, yValue, zValue }) { - return actionTypeId === TRANSFORM_MOVE2 && zValue !== void 0 || // SCALE_Z - actionTypeId === TRANSFORM_SCALE2 && zValue !== void 0 || // ROTATE_X or ROTATE_Y - actionTypeId === TRANSFORM_ROTATE2 && (xValue !== void 0 || yValue !== void 0); - } - function getFirstMatch(regex, value) { - const match = regex.exec(value); - return match ? match[1] : ""; - } - function parseColor({ element, actionTypeId, computedStyle, getStyle: getStyle2 }) { - const prop = colorStyleProps[actionTypeId]; - const inlineValue = getStyle2(element, prop); - const value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; - const matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER2); - return { - // @ts-expect-error - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'string'. - rValue: (0, import_defaultTo.default)(parseInt(matches[0], 10), 255), - // @ts-expect-error - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'string'. - gValue: (0, import_defaultTo.default)(parseInt(matches[1], 10), 255), - // @ts-expect-error - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'string'. - bValue: (0, import_defaultTo.default)(parseInt(matches[2], 10), 255), - // @ts-expect-error - TS2345 - Argument of type 'string | undefined' is not assignable to parameter of type 'string'. - aValue: (0, import_defaultTo.default)(parseFloat(matches[3]), 1) - }; - } - function renderStyle(element, refState2, actionState, actionItem, styleProp, elementApi) { - const { setStyle: setStyle2 } = elementApi; - switch (actionItem.actionTypeId) { - case STYLE_SIZE2: { - let { widthUnit = "", heightUnit = "" } = actionItem.config; - const { widthValue, heightValue } = actionState; - if (widthValue !== void 0) { - if (widthUnit === AUTO2) { - widthUnit = "px"; - } - addWillChange(element, WIDTH2, elementApi); - setStyle2(element, WIDTH2, widthValue + widthUnit); - } - if (heightValue !== void 0) { - if (heightUnit === AUTO2) { - heightUnit = "px"; - } - addWillChange(element, HEIGHT2, elementApi); - setStyle2(element, HEIGHT2, heightValue + heightUnit); - } - break; - } - case STYLE_FILTER2: { - renderFilter(element, actionState, actionItem.config, elementApi); - break; - } - case STYLE_FONT_VARIATION2: { - renderFontVariation(element, actionState, actionItem.config, elementApi); - break; - } - case STYLE_BACKGROUND_COLOR: - case STYLE_BORDER: - case STYLE_TEXT_COLOR: { - const prop = colorStyleProps[actionItem.actionTypeId]; - const rValue = Math.round(actionState.rValue); - const gValue = Math.round(actionState.gValue); - const bValue = Math.round(actionState.bValue); - const aValue = actionState.aValue; - addWillChange(element, prop, elementApi); - setStyle2( - element, - prop, - aValue >= 1 ? `rgb(${rValue},${gValue},${bValue})` : `rgba(${rValue},${gValue},${bValue},${aValue})` - ); - break; - } - default: { - const { unit = "" } = actionItem.config; - addWillChange(element, styleProp, elementApi); - setStyle2(element, styleProp, actionState.value + unit); - break; - } - } - } - function renderGeneral(element, actionItem, elementApi) { - const { setStyle: setStyle2 } = elementApi; - switch (actionItem.actionTypeId) { - case GENERAL_DISPLAY: { - const { value } = actionItem.config; - if (value === FLEX2 && IS_BROWSER_ENV) { - setStyle2(element, DISPLAY2, FLEX_PREFIXED); - } else { - setStyle2(element, DISPLAY2, value); - } - return; - } - } - } - function addWillChange(element, prop, elementApi) { - if (!IS_BROWSER_ENV) { - return; - } - const validProp = willChangeProps[prop]; - if (!validProp) { - return; - } - const { getStyle: getStyle2, setStyle: setStyle2 } = elementApi; - const value = getStyle2(element, WILL_CHANGE2); - if (!value) { - setStyle2(element, WILL_CHANGE2, validProp); - return; - } - const values = value.split(COMMA_DELIMITER2).map(trim); - if (values.indexOf(validProp) === -1) { - setStyle2( - element, - WILL_CHANGE2, - values.concat(validProp).join(COMMA_DELIMITER2) - ); - } - } - function removeWillChange(element, prop, elementApi) { - if (!IS_BROWSER_ENV) { - return; - } - const validProp = willChangeProps[prop]; - if (!validProp) { - return; - } - const { getStyle: getStyle2, setStyle: setStyle2 } = elementApi; - const value = getStyle2(element, WILL_CHANGE2); - if (!value || value.indexOf(validProp) === -1) { - return; - } - setStyle2( - element, - WILL_CHANGE2, - value.split(COMMA_DELIMITER2).map(trim).filter((v) => v !== validProp).join(COMMA_DELIMITER2) - ); - } - function clearAllStyles({ store, elementApi }) { - const { ixData: ixData2 } = store.getState(); - const { events = {}, actionLists = {} } = ixData2; - Object.keys(events).forEach((eventId) => { - const event = events[eventId]; - const { config } = event.action; - const { actionListId } = config; - const actionList = actionLists[actionListId]; - if (actionList) { - clearActionListStyles({ actionList, event, elementApi }); - } - }); - Object.keys(actionLists).forEach((actionListId) => { - clearActionListStyles({ actionList: actionLists[actionListId], elementApi }); - }); - } - function clearActionListStyles({ actionList = {}, event, elementApi }) { - const { actionItemGroups, continuousParameterGroups } = actionList; - actionItemGroups && // @ts-expect-error - TS7006 - Parameter 'actionGroup' implicitly has an 'any' type. - actionItemGroups.forEach((actionGroup) => { - clearActionGroupStyles({ actionGroup, event, elementApi }); - }); - continuousParameterGroups && // @ts-expect-error - TS7006 - Parameter 'paramGroup' implicitly has an 'any' type. - continuousParameterGroups.forEach((paramGroup) => { - const { continuousActionGroups } = paramGroup; - continuousActionGroups.forEach((actionGroup) => { - clearActionGroupStyles({ actionGroup, event, elementApi }); - }); - }); - } - function clearActionGroupStyles({ actionGroup, event, elementApi }) { - const { actionItems } = actionGroup; - actionItems.forEach((actionItem) => { - const { actionTypeId, config } = actionItem; - let clearElement; - if (isPluginType(actionTypeId)) { - clearElement = (ref) => clearPlugin(actionTypeId)(ref, actionItem); - } else { - clearElement = processElementByType({ - effect: clearStyleProp, - actionTypeId, - elementApi - }); - } - getAffectedElements({ config, event, elementApi }).forEach(clearElement); - }); - } - function cleanupHTMLElement(element, actionItem, elementApi) { - const { setStyle: setStyle2, getStyle: getStyle2 } = elementApi; - const { actionTypeId } = actionItem; - if (actionTypeId === STYLE_SIZE2) { - const { config } = actionItem; - if (config.widthUnit === AUTO2) { - setStyle2(element, WIDTH2, ""); - } - if (config.heightUnit === AUTO2) { - setStyle2(element, HEIGHT2, ""); - } - } - if (getStyle2(element, WILL_CHANGE2)) { - processElementByType({ effect: removeWillChange, actionTypeId, elementApi })( - element - ); - } - } - function clearStyleProp(element, prop, elementApi) { - const { setStyle: setStyle2 } = elementApi; - removeWillChange(element, prop, elementApi); - setStyle2(element, prop, ""); - if (prop === TRANSFORM_PREFIXED) { - setStyle2(element, TRANSFORM_STYLE_PREFIXED, ""); - } - } - function getMaxDurationItemIndex(actionItems) { - let maxDuration = 0; - let resultIndex = 0; - actionItems.forEach((actionItem, index) => { - const { config } = actionItem; - const total = config.delay + config.duration; - if (total >= maxDuration) { - maxDuration = total; - resultIndex = index; - } - }); - return resultIndex; - } - function getActionListProgress(actionList, instance) { - const { actionItemGroups, useFirstGroupAsInitialState } = actionList; - const { actionItem: instanceItem, verboseTimeElapsed = 0 } = instance; - let totalDuration = 0; - let elapsedDuration = 0; - actionItemGroups.forEach((group, index) => { - if (useFirstGroupAsInitialState && index === 0) { - return; - } - const { actionItems } = group; - const carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; - const { config, actionTypeId } = carrierItem; - if (instanceItem.id === carrierItem.id) { - elapsedDuration = totalDuration + verboseTimeElapsed; - } - const duration = getRenderType(actionTypeId) === RENDER_GENERAL2 ? 0 : config.duration; - totalDuration += config.delay + duration; - }); - return totalDuration > 0 ? optimizeFloat(elapsedDuration / totalDuration) : 0; - } - function reduceListToGroup({ actionList, actionItemId, rawData }) { - const { actionItemGroups, continuousParameterGroups } = actionList; - const newActionItems = []; - const takeItemUntilMatch = (actionItem) => { - newActionItems.push( - (0, import_timm4.mergeIn)(actionItem, ["config"], { - delay: 0, - duration: 0 - }) - ); - return actionItem.id === actionItemId; - }; - actionItemGroups && // @ts-expect-error - TS7031 - Binding element 'actionItems' implicitly has an 'any' type. - actionItemGroups.some(({ actionItems }) => { - return actionItems.some(takeItemUntilMatch); - }); - continuousParameterGroups && // @ts-expect-error - TS7006 - Parameter 'paramGroup' implicitly has an 'any' type. - continuousParameterGroups.some((paramGroup) => { - const { continuousActionGroups } = paramGroup; - return continuousActionGroups.some(({ actionItems }) => { - return actionItems.some(takeItemUntilMatch); - }); - }); - return (0, import_timm4.setIn)(rawData, ["actionLists"], { - [actionList.id]: { - id: actionList.id, - actionItemGroups: [ - { - actionItems: newActionItems - } - ] - } - }); - } - function shouldNamespaceEventParameter(eventTypeId, { basedOn }) { - return eventTypeId === EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === EventTypeConsts.MOUSE_MOVE && basedOn === EventBasedOn.ELEMENT; - } - function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { - const namespacedParameterId = eventStateKey + COLON_DELIMITER2 + continuousParameterGroupId; - return namespacedParameterId; - } - function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { - if (mediaQueryKey == null) { - return true; - } - return mediaQueries.indexOf(mediaQueryKey) !== -1; - } - function mediaQueriesEqual(listA, listB) { - return shallowEqual_default(listA && listA.sort(), listB && listB.sort()); - } - function stringifyTarget(target) { - if (typeof target === "string") { - return target; - } - if (target.pluginElement && target.objectId) { - return target.pluginElement + BAR_DELIMITER2 + target.objectId; - } - if (target.objectId) { - return target.objectId; - } - const { id = "", selector = "", useEventTarget = "" } = target; - return id + BAR_DELIMITER2 + selector + BAR_DELIMITER2 + useEventTarget; - } - var import_defaultTo, import_reduce, import_findLast, import_timm4, import_normalizeColor, BACKGROUND2, TRANSFORM2, TRANSLATE_3D2, SCALE_3D2, ROTATE_X2, ROTATE_Y2, ROTATE_Z2, SKEW2, PRESERVE_3D2, FLEX2, OPACITY2, FILTER2, FONT_VARIATION_SETTINGS2, WIDTH2, HEIGHT2, BACKGROUND_COLOR2, BORDER_COLOR2, COLOR2, CHILDREN2, IMMEDIATE_CHILDREN2, SIBLINGS2, PARENT2, DISPLAY2, WILL_CHANGE2, AUTO2, COMMA_DELIMITER2, COLON_DELIMITER2, BAR_DELIMITER2, RENDER_TRANSFORM2, RENDER_GENERAL2, RENDER_STYLE2, RENDER_PLUGIN2, TRANSFORM_MOVE2, TRANSFORM_SCALE2, TRANSFORM_ROTATE2, TRANSFORM_SKEW2, STYLE_OPACITY, STYLE_FILTER2, STYLE_FONT_VARIATION2, STYLE_SIZE2, STYLE_BACKGROUND_COLOR, STYLE_BORDER, STYLE_TEXT_COLOR, GENERAL_DISPLAY, OBJECT_VALUE, trim, colorStyleProps, willChangeProps, objectCache, instanceCount, elementCount, strictEqual, pxValueRegex, getFilterDefaults, getFontVariationDefaults, reduceFilters, reduceFontVariations, getItemConfigByKey, transformDefaults, filterDefaults, fontVariationDefaults, getFilterUnit, transformKeys, paramCapture, rgbValidRegex, rgbMatchRegex, processElementByType; - var init_IX2VanillaUtils = __esm({ - "packages/systems/ix2/shared/logic/IX2VanillaUtils.ts"() { - "use strict"; - import_defaultTo = __toESM(require_defaultTo()); - import_reduce = __toESM(require_reduce()); - import_findLast = __toESM(require_findLast()); - import_timm4 = __toESM(require_timm()); - init_shared_constants(); - init_shallowEqual(); - init_IX2EasingUtils(); - import_normalizeColor = __toESM(require_normalizeColor()); - init_IX2VanillaPlugins(); - init_IX2BrowserSupport(); - ({ - BACKGROUND: BACKGROUND2, - TRANSFORM: TRANSFORM2, - TRANSLATE_3D: TRANSLATE_3D2, - SCALE_3D: SCALE_3D2, - ROTATE_X: ROTATE_X2, - ROTATE_Y: ROTATE_Y2, - ROTATE_Z: ROTATE_Z2, - SKEW: SKEW2, - PRESERVE_3D: PRESERVE_3D2, - FLEX: FLEX2, - OPACITY: OPACITY2, - FILTER: FILTER2, - FONT_VARIATION_SETTINGS: FONT_VARIATION_SETTINGS2, - WIDTH: WIDTH2, - HEIGHT: HEIGHT2, - BACKGROUND_COLOR: BACKGROUND_COLOR2, - BORDER_COLOR: BORDER_COLOR2, - COLOR: COLOR2, - CHILDREN: CHILDREN2, - IMMEDIATE_CHILDREN: IMMEDIATE_CHILDREN2, - SIBLINGS: SIBLINGS2, - PARENT: PARENT2, - DISPLAY: DISPLAY2, - WILL_CHANGE: WILL_CHANGE2, - AUTO: AUTO2, - COMMA_DELIMITER: COMMA_DELIMITER2, - COLON_DELIMITER: COLON_DELIMITER2, - BAR_DELIMITER: BAR_DELIMITER2, - RENDER_TRANSFORM: RENDER_TRANSFORM2, - RENDER_GENERAL: RENDER_GENERAL2, - RENDER_STYLE: RENDER_STYLE2, - RENDER_PLUGIN: RENDER_PLUGIN2 - } = IX2EngineConstants_exports); - ({ - TRANSFORM_MOVE: TRANSFORM_MOVE2, - TRANSFORM_SCALE: TRANSFORM_SCALE2, - TRANSFORM_ROTATE: TRANSFORM_ROTATE2, - TRANSFORM_SKEW: TRANSFORM_SKEW2, - STYLE_OPACITY, - STYLE_FILTER: STYLE_FILTER2, - STYLE_FONT_VARIATION: STYLE_FONT_VARIATION2, - STYLE_SIZE: STYLE_SIZE2, - STYLE_BACKGROUND_COLOR, - STYLE_BORDER, - STYLE_TEXT_COLOR, - GENERAL_DISPLAY, - OBJECT_VALUE - } = ActionTypeConsts); - trim = (v) => v.trim(); - colorStyleProps = Object.freeze({ - [STYLE_BACKGROUND_COLOR]: BACKGROUND_COLOR2, - [STYLE_BORDER]: BORDER_COLOR2, - [STYLE_TEXT_COLOR]: COLOR2 - }); - willChangeProps = Object.freeze({ - [TRANSFORM_PREFIXED]: TRANSFORM2, - [BACKGROUND_COLOR2]: BACKGROUND2, - [OPACITY2]: OPACITY2, - [FILTER2]: FILTER2, - [WIDTH2]: WIDTH2, - [HEIGHT2]: HEIGHT2, - [FONT_VARIATION_SETTINGS2]: FONT_VARIATION_SETTINGS2 - }); - objectCache = /* @__PURE__ */ new Map(); - instanceCount = 1; - elementCount = 1; - strictEqual = (a, b) => a === b; - pxValueRegex = /px/; - getFilterDefaults = (actionState, filters) => ( - // @ts-expect-error - TS7006 - Parameter 'result' implicitly has an 'any' type. | TS7006 - Parameter 'filter' implicitly has an 'any' type. - filters.reduce((result, filter) => { - if (result[filter.type] == null) { - result[filter.type] = // @ts-expect-error - TS7053 - Element implicitly has an 'any' type because expression of type 'any' can't be used to index type 'Readonly<{ blur: 0; 'hue-rotate': 0; invert: 0; grayscale: 0; saturate: 100; sepia: 0; contrast: 100; brightness: 100; }>'. - filterDefaults[filter.type]; - } - return result; - }, actionState || {}) - ); - getFontVariationDefaults = (actionState, fontVariations) => fontVariations.reduce((result, fontVariation) => { - if (result[fontVariation.type] == null) { - result[fontVariation.type] = // @ts-expect-error - TS7053 - Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'Readonly<{ wght: 0; opsz: 0; wdth: 0; slnt: 0; }>'. - fontVariationDefaults[fontVariation.type] || // @ts-expect-error - TS2339 - Property 'defaultValue' does not exist on type 'FontVariationItemConfigType'. - fontVariation.defaultValue || 0; - } - return result; - }, actionState || {}); - reduceFilters = (result, filter) => { - if (filter) { - result[filter.type] = filter.value || 0; - } - return result; - }; - reduceFontVariations = (result, fontVariation) => { - if (fontVariation) { - result[fontVariation.type] = fontVariation.value || 0; - } - return result; - }; - getItemConfigByKey = (actionTypeId, key, config) => { - if (isPluginType(actionTypeId)) { - return getPluginConfig(actionTypeId)(config, key); - } - switch (actionTypeId) { - case STYLE_FILTER2: { - const filter = (0, import_findLast.default)(config.filters, ({ type }) => type === key); - return filter ? filter.value : 0; - } - case STYLE_FONT_VARIATION2: { - const fontVariation = (0, import_findLast.default)( - config.fontVariations, - ({ type }) => type === key - ); - return fontVariation ? fontVariation.value : 0; - } - default: - return config[key]; - } - }; - transformDefaults = { - [TRANSFORM_MOVE2]: Object.freeze({ - xValue: 0, - yValue: 0, - zValue: 0 - }), - [TRANSFORM_SCALE2]: Object.freeze({ - xValue: 1, - yValue: 1, - zValue: 1 - }), - [TRANSFORM_ROTATE2]: Object.freeze({ - xValue: 0, - yValue: 0, - zValue: 0 - }), - [TRANSFORM_SKEW2]: Object.freeze({ - xValue: 0, - yValue: 0 - }) - }; - filterDefaults = Object.freeze({ - blur: 0, - "hue-rotate": 0, - invert: 0, - grayscale: 0, - saturate: 100, - sepia: 0, - contrast: 100, - brightness: 100 - }); - fontVariationDefaults = Object.freeze({ - wght: 0, - opsz: 0, - wdth: 0, - slnt: 0 - }); - getFilterUnit = (filterType, actionItemConfig) => { - const filter = (0, import_findLast.default)( - actionItemConfig.filters, - ({ type }) => type === filterType - ); - if (filter && filter.unit) { - return filter.unit; - } - switch (filterType) { - case "blur": - return "px"; - case "hue-rotate": - return "deg"; - default: - return "%"; - } - }; - transformKeys = Object.keys(transformDefaults); - paramCapture = "\\(([^)]+)\\)"; - rgbValidRegex = /^rgb/; - rgbMatchRegex = RegExp(`rgba?${paramCapture}`); - processElementByType = ({ - effect, - actionTypeId, - elementApi - }) => ( - // @ts-expect-error - TS7006 - Parameter 'element' implicitly has an 'any' type. - (element) => { - switch (actionTypeId) { - case TRANSFORM_MOVE2: - case TRANSFORM_SCALE2: - case TRANSFORM_ROTATE2: - case TRANSFORM_SKEW2: - effect(element, TRANSFORM_PREFIXED, elementApi); - break; - case STYLE_FILTER2: - effect(element, FILTER2, elementApi); - break; - case STYLE_FONT_VARIATION2: - effect(element, FONT_VARIATION_SETTINGS2, elementApi); - break; - case STYLE_OPACITY: - effect(element, OPACITY2, elementApi); - break; - case STYLE_SIZE2: - effect(element, WIDTH2, elementApi); - effect(element, HEIGHT2, elementApi); - break; - case STYLE_BACKGROUND_COLOR: - case STYLE_BORDER: - case STYLE_TEXT_COLOR: - effect(element, colorStyleProps[actionTypeId], elementApi); - break; - case GENERAL_DISPLAY: - effect(element, DISPLAY2, elementApi); - break; - } - } - ); - } - }); - - // packages/systems/ix2/shared/index.js - var require_shared2 = __commonJS({ - "packages/systems/ix2/shared/index.js"(exports) { - "use strict"; - var _interopRequireWildcard = require_interopRequireWildcard().default; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.IX2VanillaUtils = exports.IX2VanillaPlugins = exports.IX2ElementsReducer = exports.IX2Easings = exports.IX2EasingUtils = exports.IX2BrowserSupport = void 0; - var IX2BrowserSupport2 = _interopRequireWildcard((init_IX2BrowserSupport(), __toCommonJS(IX2BrowserSupport_exports))); - exports.IX2BrowserSupport = IX2BrowserSupport2; - var IX2Easings = _interopRequireWildcard((init_IX2Easings(), __toCommonJS(IX2Easings_exports))); - exports.IX2Easings = IX2Easings; - var IX2EasingUtils2 = _interopRequireWildcard((init_IX2EasingUtils(), __toCommonJS(IX2EasingUtils_exports))); - exports.IX2EasingUtils = IX2EasingUtils2; - var IX2ElementsReducer2 = _interopRequireWildcard((init_IX2ElementsReducer(), __toCommonJS(IX2ElementsReducer_exports))); - exports.IX2ElementsReducer = IX2ElementsReducer2; - var IX2VanillaPlugins2 = _interopRequireWildcard((init_IX2VanillaPlugins(), __toCommonJS(IX2VanillaPlugins_exports))); - exports.IX2VanillaPlugins = IX2VanillaPlugins2; - var IX2VanillaUtils5 = _interopRequireWildcard((init_IX2VanillaUtils(), __toCommonJS(IX2VanillaUtils_exports))); - exports.IX2VanillaUtils = IX2VanillaUtils5; - } - }); - - // packages/systems/ix2/engine/reducers/IX2InstancesReducer.ts - var import_shared, import_timm5, IX2_RAW_DATA_IMPORTED3, IX2_SESSION_STOPPED4, IX2_INSTANCE_ADDED3, IX2_INSTANCE_STARTED2, IX2_INSTANCE_REMOVED2, IX2_ANIMATION_FRAME_CHANGED3, optimizeFloat2, applyEasing2, createBezierEasing2, RENDER_GENERAL3, getItemConfigByKey2, getRenderType2, getStyleProp2, continuousInstance, timedInstance, ixInstances; - var init_IX2InstancesReducer = __esm({ - "packages/systems/ix2/engine/reducers/IX2InstancesReducer.ts"() { - "use strict"; - init_shared_constants(); - import_shared = __toESM(require_shared2()); - import_timm5 = __toESM(require_timm()); - ({ - IX2_RAW_DATA_IMPORTED: IX2_RAW_DATA_IMPORTED3, - IX2_SESSION_STOPPED: IX2_SESSION_STOPPED4, - IX2_INSTANCE_ADDED: IX2_INSTANCE_ADDED3, - IX2_INSTANCE_STARTED: IX2_INSTANCE_STARTED2, - IX2_INSTANCE_REMOVED: IX2_INSTANCE_REMOVED2, - IX2_ANIMATION_FRAME_CHANGED: IX2_ANIMATION_FRAME_CHANGED3 - } = IX2EngineActionTypes_exports); - ({ optimizeFloat: optimizeFloat2, applyEasing: applyEasing2, createBezierEasing: createBezierEasing2 } = import_shared.IX2EasingUtils); - ({ RENDER_GENERAL: RENDER_GENERAL3 } = IX2EngineConstants_exports); - ({ getItemConfigByKey: getItemConfigByKey2, getRenderType: getRenderType2, getStyleProp: getStyleProp2 } = import_shared.IX2VanillaUtils); - continuousInstance = (state, action) => { - const { - position: lastPosition, - parameterId, - actionGroups, - destinationKeys, - smoothing, - restingValue, - actionTypeId, - customEasingFn, - skipMotion, - skipToValue - } = state; - const { parameters } = action.payload; - let velocity = Math.max(1 - smoothing, 0.01); - let paramValue = parameters[parameterId]; - if (paramValue == null) { - velocity = 1; - paramValue = restingValue; - } - const nextPosition = Math.max(paramValue, 0) || 0; - const positionDiff = optimizeFloat2(nextPosition - lastPosition); - const position = skipMotion ? skipToValue : optimizeFloat2(lastPosition + positionDiff * velocity); - const keyframePosition = position * 100; - if (position === lastPosition && state.current) { - return state; - } - let fromActionItem; - let toActionItem; - let positionOffset; - let positionRange; - for (let i = 0, { length } = actionGroups; i < length; i++) { - const { keyframe, actionItems } = actionGroups[i]; - if (i === 0) { - fromActionItem = actionItems[0]; - } - if (keyframePosition >= keyframe) { - fromActionItem = actionItems[0]; - const nextGroup = actionGroups[i + 1]; - const hasNextItem = nextGroup && keyframePosition !== keyframe; - toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; - if (hasNextItem) { - positionOffset = keyframe / 100; - positionRange = (nextGroup.keyframe - keyframe) / 100; - } - } - } - const current = {}; - if (fromActionItem && !toActionItem) { - for (let i = 0, { length } = destinationKeys; i < length; i++) { - const key = destinationKeys[i]; - current[key] = getItemConfigByKey2( - actionTypeId, - key, - fromActionItem.config - ); - } - } else if (fromActionItem && toActionItem && positionOffset !== void 0 && positionRange !== void 0) { - const localPosition = (position - positionOffset) / positionRange; - const easing = fromActionItem.config.easing; - const eased = applyEasing2(easing, localPosition, customEasingFn); - for (let i = 0, { length } = destinationKeys; i < length; i++) { - const key = destinationKeys[i]; - const fromVal = getItemConfigByKey2( - actionTypeId, - key, - fromActionItem.config - ); - const toVal = getItemConfigByKey2(actionTypeId, key, toActionItem.config); - const diff = toVal - fromVal; - const value = diff * eased + fromVal; - current[key] = value; - } - } - return (0, import_timm5.merge)(state, { - position, - current - }); - }; - timedInstance = (state, action) => { - const { - active, - origin, - start, - immediate, - renderType, - verbose, - actionItem, - destination, - destinationKeys, - pluginDuration, - instanceDelay, - customEasingFn, - skipMotion - } = state; - const easing = actionItem.config.easing; - let { duration, delay } = actionItem.config; - if (pluginDuration != null) { - duration = pluginDuration; - } - delay = instanceDelay != null ? instanceDelay : delay; - if (renderType === RENDER_GENERAL3) { - duration = 0; - } else if (immediate || skipMotion) { - duration = delay = 0; - } - const { now } = action.payload; - if (active && origin) { - const delta = now - (start + delay); - if (verbose) { - const verboseDelta = now - start; - const verboseDuration = duration + delay; - const verbosePosition = optimizeFloat2( - Math.min(Math.max(0, verboseDelta / verboseDuration), 1) - ); - state = (0, import_timm5.set)( - state, - "verboseTimeElapsed", - verboseDuration * verbosePosition - ); - } - if (delta < 0) { - return state; - } - const position = optimizeFloat2(Math.min(Math.max(0, delta / duration), 1)); - const eased = applyEasing2(easing, position, customEasingFn); - const newProps = {}; - let current = null; - if (destinationKeys.length) { - current = destinationKeys.reduce((result, key) => { - const destValue = destination[key]; - const originVal = parseFloat(origin[key]) || 0; - const diff = parseFloat(destValue) - originVal; - const 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, import_timm5.merge)(state, newProps); - } - return state; - }; - ixInstances = (state = Object.freeze({}), action) => { - switch (action.type) { - case IX2_RAW_DATA_IMPORTED3: { - return action.payload.ixInstances || Object.freeze({}); - } - case IX2_SESSION_STOPPED4: { - return Object.freeze({}); - } - case IX2_INSTANCE_ADDED3: { - const { - instanceId, - elementId, - actionItem, - eventId, - eventTarget, - eventStateKey, - actionListId, - groupIndex, - isCarrier, - origin, - destination, - immediate, - verbose, - continuous, - parameterId, - actionGroups, - smoothing, - restingValue, - pluginInstance, - pluginDuration, - instanceDelay, - skipMotion, - skipToValue - } = action.payload; - const { actionTypeId } = actionItem; - const renderType = getRenderType2(actionTypeId); - const styleProp = getStyleProp2(renderType, actionTypeId); - const destinationKeys = Object.keys(destination).filter( - (key) => ( - // Skip null destination values - destination[key] != null && // Skip string destination values - typeof destination[key] !== "string" - ) - ); - const { easing } = actionItem.config; - return (0, import_timm5.set)(state, instanceId, { - id: instanceId, - elementId, - active: false, - position: 0, - start: 0, - origin, - destination, - destinationKeys, - immediate, - verbose, - current: null, - actionItem, - actionTypeId, - eventId, - eventTarget, - eventStateKey, - actionListId, - groupIndex, - renderType, - isCarrier, - styleProp, - continuous, - parameterId, - actionGroups, - smoothing, - restingValue, - pluginInstance, - pluginDuration, - instanceDelay, - skipMotion, - skipToValue, - customEasingFn: Array.isArray(easing) && easing.length === 4 ? ( - // @ts-expect-error - TS2345 - Argument of type 'any[]' is not assignable to parameter of type 'IX2EasingCustomType'. - createBezierEasing2(easing) - ) : void 0 - }); - } - case IX2_INSTANCE_STARTED2: { - const { instanceId, time } = action.payload; - return (0, import_timm5.mergeIn)(state, [instanceId], { - active: true, - complete: false, - start: time - }); - } - case IX2_INSTANCE_REMOVED2: { - const { instanceId } = action.payload; - if (!state[instanceId]) { - return state; - } - const newState = {}; - const keys = Object.keys(state); - const { length } = keys; - for (let i = 0; i < length; i++) { - const key = keys[i]; - if (key !== instanceId) { - newState[key] = state[key]; - } - } - return newState; - } - case IX2_ANIMATION_FRAME_CHANGED3: { - let newState = state; - const keys = Object.keys(state); - const { length } = keys; - for (let i = 0; i < length; i++) { - const key = keys[i]; - const instance = state[key]; - const reducer = instance.continuous ? continuousInstance : timedInstance; - newState = (0, import_timm5.set)(newState, key, reducer(instance, action)); - } - return newState; - } - default: { - return state; - } - } - }; - } - }); - - // packages/systems/ix2/engine/reducers/IX2ParametersReducer.ts - var IX2_RAW_DATA_IMPORTED4, IX2_SESSION_STOPPED5, IX2_PARAMETER_CHANGED2, ixParameters; - var init_IX2ParametersReducer = __esm({ - "packages/systems/ix2/engine/reducers/IX2ParametersReducer.ts"() { - "use strict"; - init_shared_constants(); - ({ IX2_RAW_DATA_IMPORTED: IX2_RAW_DATA_IMPORTED4, IX2_SESSION_STOPPED: IX2_SESSION_STOPPED5, IX2_PARAMETER_CHANGED: IX2_PARAMETER_CHANGED2 } = IX2EngineActionTypes_exports); - ixParameters = (state = { - /*mutable flat state*/ - }, action) => { - switch (action.type) { - case IX2_RAW_DATA_IMPORTED4: { - return action.payload.ixParameters || { - /*mutable flat state*/ - }; - } - case IX2_SESSION_STOPPED5: { - return { - /*mutable flat state*/ - }; - } - case IX2_PARAMETER_CHANGED2: { - const { key, value } = action.payload; - state[key] = value; - return state; - } - default: { - return state; - } - } - }; - } - }); - - // packages/systems/ix2/engine/reducers/IX2Reducer.ts - var IX2Reducer_exports = {}; - __export(IX2Reducer_exports, { - default: () => IX2Reducer_default - }); - var import_redux, import_shared2, ixElements2, IX2Reducer_default; - var init_IX2Reducer = __esm({ - "packages/systems/ix2/engine/reducers/IX2Reducer.ts"() { - "use strict"; - import_redux = __toESM(require_lib2()); - init_IX2DataReducer(); - init_IX2RequestReducer(); - init_IX2SessionReducer(); - import_shared2 = __toESM(require_shared2()); - init_IX2InstancesReducer(); - init_IX2ParametersReducer(); - ({ ixElements: ixElements2 } = import_shared2.IX2ElementsReducer); - IX2Reducer_default = (0, import_redux.combineReducers)({ - // @ts-expect-error - TS2322 - Type '(state: FixMeAny | null | undefined, action: { type: typeof IX2_RAW_DATA_IMPORTED; payload: { ixData: FixMeAny; };}) => any' is not assignable to type 'Reducer'. - ixData, - ixRequest, - ixSession, - ixElements: ixElements2, - ixInstances, - ixParameters - }); - } - }); - - // node_modules/lodash/isString.js - var require_isString = __commonJS({ - "node_modules/lodash/isString.js"(exports, module) { - var baseGetTag = require_baseGetTag(); - var isArray = require_isArray(); - var isObjectLike = require_isObjectLike(); - var stringTag = "[object String]"; - function isString(value) { - return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag; - } - module.exports = isString; - } - }); - - // node_modules/lodash/_asciiSize.js - var require_asciiSize = __commonJS({ - "node_modules/lodash/_asciiSize.js"(exports, module) { - var baseProperty = require_baseProperty(); - var asciiSize = baseProperty("length"); - module.exports = asciiSize; - } - }); - - // node_modules/lodash/_hasUnicode.js - var require_hasUnicode = __commonJS({ - "node_modules/lodash/_hasUnicode.js"(exports, module) { - var rsAstralRange = "\\ud800-\\udfff"; - var rsComboMarksRange = "\\u0300-\\u036f"; - var reComboHalfMarksRange = "\\ufe20-\\ufe2f"; - var rsComboSymbolsRange = "\\u20d0-\\u20ff"; - var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange; - var rsVarRange = "\\ufe0e\\ufe0f"; - var rsZWJ = "\\u200d"; - var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); - function hasUnicode(string) { - return reHasUnicode.test(string); - } - module.exports = hasUnicode; - } - }); - - // node_modules/lodash/_unicodeSize.js - var require_unicodeSize = __commonJS({ - "node_modules/lodash/_unicodeSize.js"(exports, module) { - var rsAstralRange = "\\ud800-\\udfff"; - var rsComboMarksRange = "\\u0300-\\u036f"; - var reComboHalfMarksRange = "\\ufe20-\\ufe2f"; - var rsComboSymbolsRange = "\\u20d0-\\u20ff"; - var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange; - var rsVarRange = "\\ufe0e\\ufe0f"; - var rsAstral = "[" + rsAstralRange + "]"; - var rsCombo = "[" + rsComboRange + "]"; - var rsFitz = "\\ud83c[\\udffb-\\udfff]"; - var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")"; - var rsNonAstral = "[^" + rsAstralRange + "]"; - var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; - var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; - var rsZWJ = "\\u200d"; - var reOptMod = rsModifier + "?"; - var rsOptVar = "[" + rsVarRange + "]?"; - var rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*"; - var rsSeq = rsOptVar + reOptMod + rsOptJoin; - var rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; - var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - module.exports = unicodeSize; - } - }); - - // node_modules/lodash/_stringSize.js - var require_stringSize = __commonJS({ - "node_modules/lodash/_stringSize.js"(exports, module) { - var asciiSize = require_asciiSize(); - var hasUnicode = require_hasUnicode(); - var unicodeSize = require_unicodeSize(); - function stringSize(string) { - return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); - } - module.exports = stringSize; - } - }); - - // node_modules/lodash/size.js - var require_size = __commonJS({ - "node_modules/lodash/size.js"(exports, module) { - var baseKeys = require_baseKeys(); - var getTag = require_getTag(); - var isArrayLike = require_isArrayLike(); - var isString = require_isString(); - var stringSize = require_stringSize(); - var mapTag = "[object Map]"; - var setTag = "[object Set]"; - function size2(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 = size2; - } - }); - - // node_modules/lodash/negate.js - var require_negate = __commonJS({ - "node_modules/lodash/negate.js"(exports, module) { - var FUNC_ERROR_TEXT = "Expected a function"; - 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; - } - }); - - // node_modules/lodash/_defineProperty.js - var require_defineProperty = __commonJS({ - "node_modules/lodash/_defineProperty.js"(exports, module) { - var getNative = require_getNative(); - var defineProperty = function() { - try { - var func = getNative(Object, "defineProperty"); - func({}, "", {}); - return func; - } catch (e) { - } - }(); - module.exports = defineProperty; - } - }); - - // node_modules/lodash/_baseAssignValue.js - var require_baseAssignValue = __commonJS({ - "node_modules/lodash/_baseAssignValue.js"(exports, module) { - var defineProperty = require_defineProperty(); - 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; - } - }); - - // node_modules/lodash/_assignValue.js - var require_assignValue = __commonJS({ - "node_modules/lodash/_assignValue.js"(exports, module) { - var baseAssignValue = require_baseAssignValue(); - var eq = require_eq(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) { - baseAssignValue(object, key, value); - } - } - module.exports = assignValue; - } - }); - - // node_modules/lodash/_baseSet.js - var require_baseSet = __commonJS({ - "node_modules/lodash/_baseSet.js"(exports, module) { - var assignValue = require_assignValue(); - var castPath = require_castPath(); - var isIndex = require_isIndex(); - var isObject = require_isObject(); - var toKey = require_toKey(); - 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) : void 0; - if (newValue === void 0) { - newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - module.exports = baseSet; - } - }); - - // node_modules/lodash/_basePickBy.js - var require_basePickBy = __commonJS({ - "node_modules/lodash/_basePickBy.js"(exports, module) { - var baseGet = require_baseGet(); - var baseSet = require_baseSet(); - var castPath = require_castPath(); - 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; - } - }); - - // node_modules/lodash/_getSymbolsIn.js - var require_getSymbolsIn = __commonJS({ - "node_modules/lodash/_getSymbolsIn.js"(exports, module) { - var arrayPush = require_arrayPush(); - var getPrototype = require_getPrototype(); - var getSymbols = require_getSymbols(); - var stubArray = require_stubArray(); - var nativeGetSymbols = Object.getOwnPropertySymbols; - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result = []; - while (object) { - arrayPush(result, getSymbols(object)); - object = getPrototype(object); - } - return result; - }; - module.exports = getSymbolsIn; - } - }); - - // node_modules/lodash/_nativeKeysIn.js - var require_nativeKeysIn = __commonJS({ - "node_modules/lodash/_nativeKeysIn.js"(exports, module) { - function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } - } - return result; - } - module.exports = nativeKeysIn; - } - }); - - // node_modules/lodash/_baseKeysIn.js - var require_baseKeysIn = __commonJS({ - "node_modules/lodash/_baseKeysIn.js"(exports, module) { - var isObject = require_isObject(); - var isPrototype = require_isPrototype(); - var nativeKeysIn = require_nativeKeysIn(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - 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; - } - }); - - // node_modules/lodash/keysIn.js - var require_keysIn = __commonJS({ - "node_modules/lodash/keysIn.js"(exports, module) { - var arrayLikeKeys = require_arrayLikeKeys(); - var baseKeysIn = require_baseKeysIn(); - var isArrayLike = require_isArrayLike(); - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - module.exports = keysIn; - } - }); - - // node_modules/lodash/_getAllKeysIn.js - var require_getAllKeysIn = __commonJS({ - "node_modules/lodash/_getAllKeysIn.js"(exports, module) { - var baseGetAllKeys = require_baseGetAllKeys(); - var getSymbolsIn = require_getSymbolsIn(); - var keysIn = require_keysIn(); - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - module.exports = getAllKeysIn; - } - }); - - // node_modules/lodash/pickBy.js - var require_pickBy = __commonJS({ - "node_modules/lodash/pickBy.js"(exports, module) { - var arrayMap = require_arrayMap(); - var baseIteratee = require_baseIteratee(); - var basePickBy = require_basePickBy(); - var getAllKeysIn = require_getAllKeysIn(); - 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; - } - }); - - // node_modules/lodash/omitBy.js - var require_omitBy = __commonJS({ - "node_modules/lodash/omitBy.js"(exports, module) { - var baseIteratee = require_baseIteratee(); - var negate = require_negate(); - var pickBy = require_pickBy(); - function omitBy2(object, predicate) { - return pickBy(object, negate(baseIteratee(predicate))); - } - module.exports = omitBy2; - } - }); - - // node_modules/lodash/isEmpty.js - var require_isEmpty = __commonJS({ - "node_modules/lodash/isEmpty.js"(exports, module) { - var baseKeys = require_baseKeys(); - var getTag = require_getTag(); - var isArguments = require_isArguments(); - var isArray = require_isArray(); - var isArrayLike = require_isArrayLike(); - var isBuffer = require_isBuffer(); - var isPrototype = require_isPrototype(); - var isTypedArray = require_isTypedArray(); - var mapTag = "[object Map]"; - var setTag = "[object Set]"; - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - function isEmpty2(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 = isEmpty2; - } - }); - - // node_modules/lodash/mapValues.js - var require_mapValues = __commonJS({ - "node_modules/lodash/mapValues.js"(exports, module) { - var baseAssignValue = require_baseAssignValue(); - var baseForOwn = require_baseForOwn(); - var baseIteratee = require_baseIteratee(); - function mapValues2(object, iteratee) { - var result = {}; - iteratee = baseIteratee(iteratee, 3); - baseForOwn(object, function(value, key, object2) { - baseAssignValue(result, key, iteratee(value, key, object2)); - }); - return result; - } - module.exports = mapValues2; - } - }); - - // node_modules/lodash/_arrayEach.js - var require_arrayEach = __commonJS({ - "node_modules/lodash/_arrayEach.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/_castFunction.js - var require_castFunction = __commonJS({ - "node_modules/lodash/_castFunction.js"(exports, module) { - var identity = require_identity(); - function castFunction(value) { - return typeof value == "function" ? value : identity; - } - module.exports = castFunction; - } - }); - - // node_modules/lodash/forEach.js - var require_forEach = __commonJS({ - "node_modules/lodash/forEach.js"(exports, module) { - var arrayEach = require_arrayEach(); - var baseEach = require_baseEach(); - var castFunction = require_castFunction(); - var isArray = require_isArray(); - function forEach2(collection, iteratee) { - var func = isArray(collection) ? arrayEach : baseEach; - return func(collection, castFunction(iteratee)); - } - module.exports = forEach2; - } - }); - - // node_modules/lodash/now.js - var require_now = __commonJS({ - "node_modules/lodash/now.js"(exports, module) { - var root = require_root(); - var now = function() { - return root.Date.now(); - }; - module.exports = now; - } - }); - - // node_modules/lodash/debounce.js - var require_debounce = __commonJS({ - "node_modules/lodash/debounce.js"(exports, module) { - var isObject = require_isObject(); - var now = require_now(); - var toNumber = require_toNumber(); - var FUNC_ERROR_TEXT = "Expected a function"; - var nativeMax = Math.max; - var nativeMin = Math.min; - 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 = void 0; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - function leadingEdge(time) { - lastInvokeTime = time; - timerId = setTimeout(timerExpired, wait); - 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; - return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - timerId = setTimeout(timerExpired, remainingWait(time)); - } - function trailingEdge(time) { - timerId = void 0; - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = void 0; - return result; - } - function cancel() { - if (timerId !== void 0) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = void 0; - } - function flush() { - return timerId === void 0 ? result : trailingEdge(now()); - } - function debounced() { - var time = now(), isInvoking = shouldInvoke(time); - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - if (isInvoking) { - if (timerId === void 0) { - return leadingEdge(lastCallTime); - } - if (maxing) { - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === void 0) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - module.exports = debounce; - } - }); - - // node_modules/lodash/throttle.js - var require_throttle = __commonJS({ - "node_modules/lodash/throttle.js"(exports, module) { - var debounce = require_debounce(); - var isObject = require_isObject(); - var FUNC_ERROR_TEXT = "Expected a function"; - function throttle2(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 = throttle2; - } - }); - - // packages/systems/ix2/engine/actions/IX2EngineActions.ts - var IX2EngineActions_exports = {}; - __export(IX2EngineActions_exports, { - actionListPlaybackChanged: () => actionListPlaybackChanged, - animationFrameChanged: () => animationFrameChanged, - clearRequested: () => clearRequested, - elementStateChanged: () => elementStateChanged, - eventListenerAdded: () => eventListenerAdded, - eventStateChanged: () => eventStateChanged, - instanceAdded: () => instanceAdded, - instanceRemoved: () => instanceRemoved, - instanceStarted: () => instanceStarted, - mediaQueriesDefined: () => mediaQueriesDefined, - parameterChanged: () => parameterChanged, - playbackRequested: () => playbackRequested, - previewRequested: () => previewRequested, - rawDataImported: () => rawDataImported, - sessionInitialized: () => sessionInitialized, - sessionStarted: () => sessionStarted, - sessionStopped: () => sessionStopped, - stopRequested: () => stopRequested, - testFrameRendered: () => testFrameRendered, - viewportWidthChanged: () => viewportWidthChanged - }); - var import_shared3, IX2_RAW_DATA_IMPORTED5, IX2_SESSION_INITIALIZED3, IX2_SESSION_STARTED3, IX2_SESSION_STOPPED6, IX2_PREVIEW_REQUESTED3, IX2_PLAYBACK_REQUESTED3, IX2_STOP_REQUESTED3, IX2_CLEAR_REQUESTED3, IX2_EVENT_LISTENER_ADDED3, IX2_TEST_FRAME_RENDERED3, IX2_EVENT_STATE_CHANGED3, IX2_ANIMATION_FRAME_CHANGED4, IX2_PARAMETER_CHANGED3, IX2_INSTANCE_ADDED4, IX2_INSTANCE_STARTED3, IX2_INSTANCE_REMOVED3, IX2_ELEMENT_STATE_CHANGED3, IX2_ACTION_LIST_PLAYBACK_CHANGED3, IX2_VIEWPORT_WIDTH_CHANGED3, IX2_MEDIA_QUERIES_DEFINED3, reifyState2, rawDataImported, sessionInitialized, sessionStarted, sessionStopped, previewRequested, playbackRequested, stopRequested, clearRequested, eventListenerAdded, testFrameRendered, eventStateChanged, animationFrameChanged, parameterChanged, instanceAdded, instanceStarted, instanceRemoved, elementStateChanged, actionListPlaybackChanged, viewportWidthChanged, mediaQueriesDefined; - var init_IX2EngineActions = __esm({ - "packages/systems/ix2/engine/actions/IX2EngineActions.ts"() { - "use strict"; - init_shared_constants(); - import_shared3 = __toESM(require_shared2()); - ({ - IX2_RAW_DATA_IMPORTED: IX2_RAW_DATA_IMPORTED5, - IX2_SESSION_INITIALIZED: IX2_SESSION_INITIALIZED3, - IX2_SESSION_STARTED: IX2_SESSION_STARTED3, - IX2_SESSION_STOPPED: IX2_SESSION_STOPPED6, - IX2_PREVIEW_REQUESTED: IX2_PREVIEW_REQUESTED3, - IX2_PLAYBACK_REQUESTED: IX2_PLAYBACK_REQUESTED3, - IX2_STOP_REQUESTED: IX2_STOP_REQUESTED3, - IX2_CLEAR_REQUESTED: IX2_CLEAR_REQUESTED3, - IX2_EVENT_LISTENER_ADDED: IX2_EVENT_LISTENER_ADDED3, - IX2_TEST_FRAME_RENDERED: IX2_TEST_FRAME_RENDERED3, - IX2_EVENT_STATE_CHANGED: IX2_EVENT_STATE_CHANGED3, - IX2_ANIMATION_FRAME_CHANGED: IX2_ANIMATION_FRAME_CHANGED4, - IX2_PARAMETER_CHANGED: IX2_PARAMETER_CHANGED3, - IX2_INSTANCE_ADDED: IX2_INSTANCE_ADDED4, - IX2_INSTANCE_STARTED: IX2_INSTANCE_STARTED3, - IX2_INSTANCE_REMOVED: IX2_INSTANCE_REMOVED3, - IX2_ELEMENT_STATE_CHANGED: IX2_ELEMENT_STATE_CHANGED3, - IX2_ACTION_LIST_PLAYBACK_CHANGED: IX2_ACTION_LIST_PLAYBACK_CHANGED3, - IX2_VIEWPORT_WIDTH_CHANGED: IX2_VIEWPORT_WIDTH_CHANGED3, - IX2_MEDIA_QUERIES_DEFINED: IX2_MEDIA_QUERIES_DEFINED3 - } = IX2EngineActionTypes_exports); - ({ reifyState: reifyState2 } = import_shared3.IX2VanillaUtils); - rawDataImported = (rawData) => ({ - type: IX2_RAW_DATA_IMPORTED5, - payload: { - ...reifyState2(rawData) - } - }); - sessionInitialized = ({ - hasBoundaryNodes, - reducedMotion - }) => ({ - type: IX2_SESSION_INITIALIZED3, - payload: { - hasBoundaryNodes, - reducedMotion - } - }); - sessionStarted = () => ({ - type: IX2_SESSION_STARTED3 - }); - sessionStopped = () => ({ - type: IX2_SESSION_STOPPED6 - }); - previewRequested = ({ - rawData, - defer - }) => ({ - type: IX2_PREVIEW_REQUESTED3, - payload: { - defer, - rawData - } - }); - playbackRequested = ({ - actionTypeId = ActionTypeConsts.GENERAL_START_ACTION, - actionListId, - actionItemId, - eventId, - allowEvents, - immediate, - testManual, - verbose, - rawData - }) => ({ - type: IX2_PLAYBACK_REQUESTED3, - payload: { - actionTypeId, - actionListId, - actionItemId, - testManual, - eventId, - allowEvents, - immediate, - verbose, - rawData - } - }); - stopRequested = (actionListId) => ({ - type: IX2_STOP_REQUESTED3, - payload: { - actionListId - } - }); - clearRequested = () => ({ - type: IX2_CLEAR_REQUESTED3 - }); - eventListenerAdded = (target, listenerParams) => ({ - type: IX2_EVENT_LISTENER_ADDED3, - payload: { - target, - listenerParams - } - }); - testFrameRendered = (step = 1) => ({ - type: IX2_TEST_FRAME_RENDERED3, - payload: { - step - } - }); - eventStateChanged = (stateKey, newState) => ({ - type: IX2_EVENT_STATE_CHANGED3, - payload: { - stateKey, - newState - } - }); - animationFrameChanged = (now, parameters) => ({ - type: IX2_ANIMATION_FRAME_CHANGED4, - payload: { - now, - parameters - } - }); - parameterChanged = (key, value) => ({ - type: IX2_PARAMETER_CHANGED3, - payload: { - key, - value - } - }); - instanceAdded = (options) => ({ - type: IX2_INSTANCE_ADDED4, - payload: { - ...options - } - }); - instanceStarted = (instanceId, time) => ({ - type: IX2_INSTANCE_STARTED3, - payload: { - instanceId, - time - } - }); - instanceRemoved = (instanceId) => ({ - type: IX2_INSTANCE_REMOVED3, - payload: { - instanceId - } - }); - elementStateChanged = (elementId, actionTypeId, current, actionItem) => ({ - type: IX2_ELEMENT_STATE_CHANGED3, - payload: { - elementId, - actionTypeId, - current, - actionItem - } - }); - actionListPlaybackChanged = ({ - actionListId, - isPlaying - }) => ({ - type: IX2_ACTION_LIST_PLAYBACK_CHANGED3, - payload: { - actionListId, - isPlaying - } - }); - viewportWidthChanged = ({ - width, - mediaQueries - }) => ({ - type: IX2_VIEWPORT_WIDTH_CHANGED3, - payload: { - width, - mediaQueries - } - }); - mediaQueriesDefined = () => ({ - type: IX2_MEDIA_QUERIES_DEFINED3 - }); - } - }); - - // packages/systems/ix2/engine/logic/IX2BrowserApi.ts - var IX2BrowserApi_exports = {}; - __export(IX2BrowserApi_exports, { - elementContains: () => elementContains, - getChildElements: () => getChildElements, - getClosestElement: () => getClosestElement, - getProperty: () => getProperty, - getQuerySelector: () => getQuerySelector, - getRefType: () => getRefType, - getSiblingElements: () => getSiblingElements, - getStyle: () => getStyle, - getValidDocument: () => getValidDocument, - isSiblingNode: () => isSiblingNode, - matchSelector: () => matchSelector, - queryDocument: () => queryDocument, - setStyle: () => setStyle - }); - function setStyle(element, prop, value) { - element.style[prop] = value; - } - function getStyle(element, prop) { - if (prop.startsWith("--")) { - return window.getComputedStyle(document.documentElement).getPropertyValue(prop); - } - return element.style[prop]; - } - function getProperty(element, prop) { - return element[prop]; - } - function matchSelector(selector) { - return (element) => element[ELEMENT_MATCHES2](selector); - } - function getQuerySelector({ - id, - selector - }) { - if (id) { - let nodeId = id; - if (id.indexOf(IX2_ID_DELIMITER2) !== -1) { - const pair = id.split(IX2_ID_DELIMITER2); - const pageId = pair[0]; - nodeId = pair[1]; - if (pageId !== document.documentElement.getAttribute(WF_PAGE2)) { - return null; - } - } - return `[data-w-id="${nodeId}"], [data-w-id^="${nodeId}_instance"]`; - } - return selector; - } - function getValidDocument(pageId) { - if (pageId == null || pageId === document.documentElement.getAttribute(WF_PAGE2)) { - 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) { - const childElements = []; - for (let i = 0, { length } = sourceElements || []; i < length; i++) { - const { children } = sourceElements[i]; - const { length: childCount } = children; - if (!childCount) { - continue; - } - for (let j = 0; j < childCount; j++) { - childElements.push(children[j]); - } - } - return childElements; - } - function getSiblingElements(sourceElements = []) { - const elements = []; - const parentCache = []; - for (let i = 0, { length } = sourceElements; i < length; i++) { - const { parentNode } = sourceElements[i]; - if (!parentNode || !parentNode.children || !parentNode.children.length) { - continue; - } - if (parentCache.indexOf(parentNode) !== -1) { - continue; - } - parentCache.push(parentNode); - let el = parentNode.firstElementChild; - while (el != null) { - if (sourceElements.indexOf(el) === -1) { - elements.push(el); - } - el = el.nextElementSibling; - } - } - return elements; - } - function getRefType(ref) { - if (ref != null && typeof ref == "object") { - return ref instanceof Element ? HTML_ELEMENT3 : PLAIN_OBJECT3; - } - return null; - } - var import_shared4, ELEMENT_MATCHES2, IX2_ID_DELIMITER2, HTML_ELEMENT3, PLAIN_OBJECT3, WF_PAGE2, getClosestElement; - var init_IX2BrowserApi = __esm({ - "packages/systems/ix2/engine/logic/IX2BrowserApi.ts"() { - "use strict"; - import_shared4 = __toESM(require_shared2()); - init_shared_constants(); - ({ ELEMENT_MATCHES: ELEMENT_MATCHES2 } = import_shared4.IX2BrowserSupport); - ({ IX2_ID_DELIMITER: IX2_ID_DELIMITER2, HTML_ELEMENT: HTML_ELEMENT3, PLAIN_OBJECT: PLAIN_OBJECT3, WF_PAGE: WF_PAGE2 } = IX2EngineConstants_exports); - getClosestElement = Element.prototype.closest ? (element, selector) => { - if (!document.documentElement.contains(element)) { - return null; - } - return element.closest(selector); - } : (element, selector) => { - if (!document.documentElement.contains(element)) { - return null; - } - let el = element; - do { - if (el[ELEMENT_MATCHES2] && el[ELEMENT_MATCHES2](selector)) { - return el; - } - el = el.parentNode; - } while (el != null); - return null; - }; - } - }); - - // node_modules/lodash/_baseCreate.js - var require_baseCreate = __commonJS({ - "node_modules/lodash/_baseCreate.js"(exports, module) { - var isObject = require_isObject(); - var objectCreate = Object.create; - 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 = void 0; - return result; - }; - }(); - module.exports = baseCreate; - } - }); - - // node_modules/lodash/_baseLodash.js - var require_baseLodash = __commonJS({ - "node_modules/lodash/_baseLodash.js"(exports, module) { - function baseLodash() { - } - module.exports = baseLodash; - } - }); - - // node_modules/lodash/_LodashWrapper.js - var require_LodashWrapper = __commonJS({ - "node_modules/lodash/_LodashWrapper.js"(exports, module) { - var baseCreate = require_baseCreate(); - var baseLodash = require_baseLodash(); - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = void 0; - } - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - module.exports = LodashWrapper; - } - }); - - // node_modules/lodash/_isFlattenable.js - var require_isFlattenable = __commonJS({ - "node_modules/lodash/_isFlattenable.js"(exports, module) { - var Symbol2 = require_Symbol(); - var isArguments = require_isArguments(); - var isArray = require_isArray(); - var spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : void 0; - function isFlattenable(value) { - return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); - } - module.exports = isFlattenable; - } - }); - - // node_modules/lodash/_baseFlatten.js - var require_baseFlatten = __commonJS({ - "node_modules/lodash/_baseFlatten.js"(exports, module) { - var arrayPush = require_arrayPush(); - var isFlattenable = require_isFlattenable(); - 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) { - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - module.exports = baseFlatten; - } - }); - - // node_modules/lodash/flatten.js - var require_flatten = __commonJS({ - "node_modules/lodash/flatten.js"(exports, module) { - var baseFlatten = require_baseFlatten(); - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - module.exports = flatten; - } - }); - - // node_modules/lodash/_apply.js - var require_apply = __commonJS({ - "node_modules/lodash/_apply.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/_overRest.js - var require_overRest = __commonJS({ - "node_modules/lodash/_overRest.js"(exports, module) { - var apply = require_apply(); - var nativeMax = Math.max; - function overRest(func, start, transform) { - start = nativeMax(start === void 0 ? 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; - } - }); - - // node_modules/lodash/constant.js - var require_constant = __commonJS({ - "node_modules/lodash/constant.js"(exports, module) { - function constant(value) { - return function() { - return value; - }; - } - module.exports = constant; - } - }); - - // node_modules/lodash/_baseSetToString.js - var require_baseSetToString = __commonJS({ - "node_modules/lodash/_baseSetToString.js"(exports, module) { - var constant = require_constant(); - var defineProperty = require_defineProperty(); - var identity = require_identity(); - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, "toString", { - "configurable": true, - "enumerable": false, - "value": constant(string), - "writable": true - }); - }; - module.exports = baseSetToString; - } - }); - - // node_modules/lodash/_shortOut.js - var require_shortOut = __commonJS({ - "node_modules/lodash/_shortOut.js"(exports, module) { - var HOT_COUNT = 800; - var HOT_SPAN = 16; - var nativeNow = Date.now; - 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(void 0, arguments); - }; - } - module.exports = shortOut; - } - }); - - // node_modules/lodash/_setToString.js - var require_setToString = __commonJS({ - "node_modules/lodash/_setToString.js"(exports, module) { - var baseSetToString = require_baseSetToString(); - var shortOut = require_shortOut(); - var setToString = shortOut(baseSetToString); - module.exports = setToString; - } - }); - - // node_modules/lodash/_flatRest.js - var require_flatRest = __commonJS({ - "node_modules/lodash/_flatRest.js"(exports, module) { - var flatten = require_flatten(); - var overRest = require_overRest(); - var setToString = require_setToString(); - function flatRest(func) { - return setToString(overRest(func, void 0, flatten), func + ""); - } - module.exports = flatRest; - } - }); - - // node_modules/lodash/_metaMap.js - var require_metaMap = __commonJS({ - "node_modules/lodash/_metaMap.js"(exports, module) { - var WeakMap2 = require_WeakMap(); - var metaMap = WeakMap2 && new WeakMap2(); - module.exports = metaMap; - } - }); - - // node_modules/lodash/noop.js - var require_noop = __commonJS({ - "node_modules/lodash/noop.js"(exports, module) { - function noop() { - } - module.exports = noop; - } - }); - - // node_modules/lodash/_getData.js - var require_getData = __commonJS({ - "node_modules/lodash/_getData.js"(exports, module) { - var metaMap = require_metaMap(); - var noop = require_noop(); - var getData = !metaMap ? noop : function(func) { - return metaMap.get(func); - }; - module.exports = getData; - } - }); - - // node_modules/lodash/_realNames.js - var require_realNames = __commonJS({ - "node_modules/lodash/_realNames.js"(exports, module) { - var realNames = {}; - module.exports = realNames; - } - }); - - // node_modules/lodash/_getFuncName.js - var require_getFuncName = __commonJS({ - "node_modules/lodash/_getFuncName.js"(exports, module) { - var realNames = require_realNames(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - 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; - } - }); - - // node_modules/lodash/_LazyWrapper.js - var require_LazyWrapper = __commonJS({ - "node_modules/lodash/_LazyWrapper.js"(exports, module) { - var baseCreate = require_baseCreate(); - var baseLodash = require_baseLodash(); - var MAX_ARRAY_LENGTH = 4294967295; - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - module.exports = LazyWrapper; - } - }); - - // node_modules/lodash/_copyArray.js - var require_copyArray = __commonJS({ - "node_modules/lodash/_copyArray.js"(exports, module) { - 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; - } - }); - - // node_modules/lodash/_wrapperClone.js - var require_wrapperClone = __commonJS({ - "node_modules/lodash/_wrapperClone.js"(exports, module) { - var LazyWrapper = require_LazyWrapper(); - var LodashWrapper = require_LodashWrapper(); - var copyArray = require_copyArray(); - 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; - } - }); - - // node_modules/lodash/wrapperLodash.js - var require_wrapperLodash = __commonJS({ - "node_modules/lodash/wrapperLodash.js"(exports, module) { - var LazyWrapper = require_LazyWrapper(); - var LodashWrapper = require_LodashWrapper(); - var baseLodash = require_baseLodash(); - var isArray = require_isArray(); - var isObjectLike = require_isObjectLike(); - var wrapperClone = require_wrapperClone(); - var objectProto = Object.prototype; - var hasOwnProperty = objectProto.hasOwnProperty; - 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); - } - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - module.exports = lodash; - } - }); - - // node_modules/lodash/_isLaziable.js - var require_isLaziable = __commonJS({ - "node_modules/lodash/_isLaziable.js"(exports, module) { - var LazyWrapper = require_LazyWrapper(); - var getData = require_getData(); - var getFuncName = require_getFuncName(); - var lodash = require_wrapperLodash(); - 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; - } - }); - - // node_modules/lodash/_createFlow.js - var require_createFlow = __commonJS({ - "node_modules/lodash/_createFlow.js"(exports, module) { - var LodashWrapper = require_LodashWrapper(); - var flatRest = require_flatRest(); - var getData = require_getData(); - var getFuncName = require_getFuncName(); - var isArray = require_isArray(); - var isLaziable = require_isLaziable(); - var FUNC_ERROR_TEXT = "Expected a function"; - var WRAP_CURRY_FLAG = 8; - var WRAP_PARTIAL_FLAG = 32; - var WRAP_ARY_FLAG = 128; - var WRAP_REARG_FLAG = 256; - 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) : void 0; - 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 index2 = 0, result = length ? funcs[index2].apply(this, args) : value; - while (++index2 < length) { - result = funcs[index2].call(this, result); - } - return result; - }; - }); - } - module.exports = createFlow; - } - }); - - // node_modules/lodash/flow.js - var require_flow = __commonJS({ - "node_modules/lodash/flow.js"(exports, module) { - var createFlow = require_createFlow(); - var flow2 = createFlow(); - module.exports = flow2; - } - }); - - // node_modules/lodash/_baseClamp.js - var require_baseClamp = __commonJS({ - "node_modules/lodash/_baseClamp.js"(exports, module) { - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== void 0) { - number = number <= upper ? number : upper; - } - if (lower !== void 0) { - number = number >= lower ? number : lower; - } - } - return number; - } - module.exports = baseClamp; - } - }); - - // node_modules/lodash/clamp.js - var require_clamp = __commonJS({ - "node_modules/lodash/clamp.js"(exports, module) { - var baseClamp = require_baseClamp(); - var toNumber = require_toNumber(); - function clamp2(number, lower, upper) { - if (upper === void 0) { - upper = lower; - lower = void 0; - } - if (upper !== void 0) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== void 0) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - module.exports = clamp2; - } - }); - - // packages/systems/ix2/engine/logic/IX2VanillaEvents.ts - var import_flow, import_get, import_clamp, import_shared5, MOUSE_CLICK, MOUSE_SECOND_CLICK, MOUSE_DOWN, MOUSE_UP, MOUSE_OVER, MOUSE_OUT, DROPDOWN_CLOSE, DROPDOWN_OPEN, SLIDER_ACTIVE, SLIDER_INACTIVE, TAB_ACTIVE, TAB_INACTIVE, NAVBAR_CLOSE, NAVBAR_OPEN, MOUSE_MOVE, PAGE_SCROLL_DOWN, SCROLL_INTO_VIEW, SCROLL_OUT_OF_VIEW, PAGE_SCROLL_UP, SCROLLING_IN_VIEW, PAGE_FINISH, ECOMMERCE_CART_CLOSE, ECOMMERCE_CART_OPEN, PAGE_START, PAGE_SCROLL, COMPONENT_ACTIVE, COMPONENT_INACTIVE, COLON_DELIMITER3, getNamespacedParameterId2, composableFilter, isElement, containsElement, isOrContainsElement, getAutoStopEvent, hasAutoStopEvent, actionGroupCreator, withFilter, baseActionGroupOptions, baseActivityActionGroupOptions, SCROLL_EVENT_TYPES, MOUSE_OVER_OUT_TYPES, baseScrollActionGroupOptions, AUTO_STOP_DISABLED_EVENTS, getDocumentState, areBoxesIntersecting, isElementHovered, isElementVisible, whenComponentActiveChange, whenElementHoverChange, whenElementVisibiltyChange, whenScrollDirectionChange, pointIntersects, whenPageLoadFinish, whenPageLoadStart, whenClickCountChange, getComponentActiveOptions, getComponentInactiveOptions, scrollIntoOutOfViewOptions, MOUSE_OUT_ROUND_THRESHOLD, IX2VanillaEvents_default; - var init_IX2VanillaEvents = __esm({ - "packages/systems/ix2/engine/logic/IX2VanillaEvents.ts"() { - "use strict"; - import_flow = __toESM(require_flow()); - import_get = __toESM(require_get()); - import_clamp = __toESM(require_clamp()); - init_shared_constants(); - init_IX2VanillaEngine(); - init_IX2EngineActions(); - import_shared5 = __toESM(require_shared2()); - ({ - MOUSE_CLICK, - MOUSE_SECOND_CLICK, - MOUSE_DOWN, - MOUSE_UP, - MOUSE_OVER, - MOUSE_OUT, - DROPDOWN_CLOSE, - DROPDOWN_OPEN, - SLIDER_ACTIVE, - SLIDER_INACTIVE, - TAB_ACTIVE, - TAB_INACTIVE, - NAVBAR_CLOSE, - NAVBAR_OPEN, - MOUSE_MOVE, - PAGE_SCROLL_DOWN, - SCROLL_INTO_VIEW, - SCROLL_OUT_OF_VIEW, - PAGE_SCROLL_UP, - SCROLLING_IN_VIEW, - PAGE_FINISH, - ECOMMERCE_CART_CLOSE, - ECOMMERCE_CART_OPEN, - PAGE_START, - PAGE_SCROLL - } = EventTypeConsts); - COMPONENT_ACTIVE = "COMPONENT_ACTIVE"; - COMPONENT_INACTIVE = "COMPONENT_INACTIVE"; - ({ COLON_DELIMITER: COLON_DELIMITER3 } = IX2EngineConstants_exports); - ({ getNamespacedParameterId: getNamespacedParameterId2 } = import_shared5.IX2VanillaUtils); - composableFilter = (predicate) => (options) => { - if (typeof options === "object" && predicate(options)) { - return true; - } - return options; - }; - isElement = composableFilter(({ element, nativeEvent }) => { - return element === nativeEvent.target; - }); - containsElement = composableFilter(({ element, nativeEvent }) => { - return element.contains(nativeEvent.target); - }); - isOrContainsElement = (0, import_flow.default)([isElement, containsElement]); - getAutoStopEvent = (store, autoStopEventId) => { - if (autoStopEventId) { - const { ixData: ixData2 } = store.getState(); - const { events } = ixData2; - const eventToStop = events[autoStopEventId]; - if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { - return eventToStop; - } - } - return null; - }; - hasAutoStopEvent = ({ store, event }) => { - const { action: eventAction } = event; - const { autoStopEventId } = eventAction.config; - return Boolean(getAutoStopEvent(store, autoStopEventId)); - }; - actionGroupCreator = ({ store, event, element, eventStateKey }, state) => { - const { action: eventAction, id: eventId } = event; - const { actionListId, autoStopEventId } = eventAction.config; - const eventToStop = getAutoStopEvent(store, autoStopEventId); - if (eventToStop) { - stopActionGroup({ - store, - eventId: autoStopEventId, - eventTarget: element, - eventStateKey: autoStopEventId + COLON_DELIMITER3 + eventStateKey.split(COLON_DELIMITER3)[1], - actionListId: (0, import_get.default)(eventToStop, "action.config.actionListId") - }); - } - stopActionGroup({ - store, - eventId, - eventTarget: element, - eventStateKey, - actionListId - }); - startActionGroup({ - store, - eventId, - eventTarget: element, - eventStateKey, - actionListId - }); - return state; - }; - withFilter = (filter, handler) => (options, state) => filter(options, state) === true ? handler(options, state) : state; - baseActionGroupOptions = { - handler: withFilter(isOrContainsElement, actionGroupCreator) - }; - baseActivityActionGroupOptions = { - ...baseActionGroupOptions, - types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(" ") - }; - SCROLL_EVENT_TYPES = [ - { target: window, types: "resize orientationchange", throttle: true }, - { - target: document, - types: "scroll wheel readystatechange IX2_PAGE_UPDATE", - throttle: true - } - ]; - MOUSE_OVER_OUT_TYPES = "mouseover mouseout"; - baseScrollActionGroupOptions = { - types: SCROLL_EVENT_TYPES - }; - AUTO_STOP_DISABLED_EVENTS = { - PAGE_START, - PAGE_FINISH - }; - getDocumentState = (() => { - const supportOffset = window.pageXOffset !== void 0; - const isCSS1Compat = document.compatMode === "CSS1Compat"; - const rootElement = isCSS1Compat ? document.documentElement : document.body; - return () => ({ - scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, - scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, - // required to remove elasticity in Safari scrolling. - stiffScrollTop: (0, import_clamp.default)( - supportOffset ? window.pageYOffset : rootElement.scrollTop, - 0, - rootElement.scrollHeight - window.innerHeight - ), - scrollWidth: rootElement.scrollWidth, - scrollHeight: rootElement.scrollHeight, - clientWidth: rootElement.clientWidth, - clientHeight: rootElement.clientHeight, - innerWidth: window.innerWidth, - innerHeight: window.innerHeight - }); - })(); - areBoxesIntersecting = (a, b) => !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); - isElementHovered = ({ element, nativeEvent }) => { - const { type, target, relatedTarget } = nativeEvent; - const containsTarget = element.contains(target); - if (type === "mouseover" && containsTarget) { - return true; - } - const containsRelated = element.contains(relatedTarget); - if (type === "mouseout" && containsTarget && containsRelated) { - return true; - } - return false; - }; - isElementVisible = (options) => { - const { - element, - event: { config } - } = options; - const { clientWidth, clientHeight } = getDocumentState(); - const scrollOffsetValue = config.scrollOffsetValue; - const scrollOffsetUnit = config.scrollOffsetUnit; - const isPX = scrollOffsetUnit === "PX"; - const offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; - return areBoxesIntersecting(element.getBoundingClientRect(), { - left: 0, - top: offsetPadding, - right: clientWidth, - bottom: clientHeight - offsetPadding - }); - }; - whenComponentActiveChange = // @ts-expect-error - TS7006 - Parameter 'handler' implicitly has an 'any' type. - (handler) => (options, oldState) => { - const { type } = options.nativeEvent; - const isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; - const newState = { - ...oldState, - isActive - }; - if (!oldState || newState.isActive !== oldState.isActive) { - return handler(options, newState) || newState; - } - return newState; - }; - whenElementHoverChange = (handler) => (options, oldState) => { - const newState = { - elementHovered: isElementHovered(options) - }; - if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { - return handler(options, newState) || newState; - } - return newState; - }; - whenElementVisibiltyChange = (handler) => (options, oldState) => { - const newState = { - ...oldState, - elementVisible: isElementVisible(options) - }; - if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { - return handler(options, newState) || newState; - } - return newState; - }; - whenScrollDirectionChange = // @ts-expect-error - TS7006 - Parameter 'handler' implicitly has an 'any' type. - (handler) => (options, oldState = {}) => { - const { - stiffScrollTop: scrollTop, - scrollHeight, - innerHeight - } = getDocumentState(); - const { - event: { config, eventTypeId } - } = options; - const { scrollOffsetValue, scrollOffsetUnit } = config; - const isPX = scrollOffsetUnit === "PX"; - const scrollHeightBounds = scrollHeight - innerHeight; - const percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); - if (oldState && oldState.percentTop === percentTop) { - return oldState; - } - const scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; - let scrollingDown; - let scrollDirectionChanged; - let anchorTop = 0; - if (oldState) { - scrollingDown = percentTop > oldState.percentTop; - scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; - anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; - } - const inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; - const newState = { - ...oldState, - percentTop, - inBounds, - anchorTop, - scrollingDown - }; - if (oldState && inBounds && // @ts-expect-error - TS2339 - Property 'inBounds' does not exist on type '{}'. - (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { - return handler(options, newState) || newState; - } - return newState; - }; - pointIntersects = (point, rect) => point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; - whenPageLoadFinish = (handler) => (options, oldState) => { - const newState = { - finished: document.readyState === "complete" - }; - if (newState.finished && !(oldState && oldState.finshed)) { - handler(options); - } - return newState; - }; - whenPageLoadStart = (handler) => (options, oldState) => { - const newState = { - started: true - }; - if (!oldState) { - handler(options); - } - return newState; - }; - whenClickCountChange = (handler) => (options, oldState = { clickCount: 0 }) => { - const newState = { - clickCount: oldState.clickCount % 2 + 1 - }; - if (newState.clickCount !== oldState.clickCount) { - return handler(options, newState) || newState; - } - return newState; - }; - getComponentActiveOptions = (allowNestedChildrenEvents = true) => ({ - ...baseActivityActionGroupOptions, - handler: withFilter( - allowNestedChildrenEvents ? isOrContainsElement : isElement, - // @ts-expect-error - TS7006 - Parameter 'options' implicitly has an 'any' type. | TS7006 - Parameter 'state' implicitly has an 'any' type. - whenComponentActiveChange((options, state) => { - return state.isActive ? baseActionGroupOptions.handler(options, state) : state; - }) - ) - }); - getComponentInactiveOptions = (allowNestedChildrenEvents = true) => ({ - ...baseActivityActionGroupOptions, - handler: withFilter( - allowNestedChildrenEvents ? isOrContainsElement : isElement, - // @ts-expect-error - TS7006 - Parameter 'options' implicitly has an 'any' type. | TS7006 - Parameter 'state' implicitly has an 'any' type. - whenComponentActiveChange((options, state) => { - return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; - }) - ) - }); - scrollIntoOutOfViewOptions = { - ...baseScrollActionGroupOptions, - handler: whenElementVisibiltyChange((options, state) => { - const { elementVisible } = state; - const { event, store } = options; - const { ixData: ixData2 } = store.getState(); - const { events } = ixData2; - if (!events[event.action.config.autoStopEventId] && state.triggered) { - return state; - } - if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { - actionGroupCreator(options); - return { - ...state, - triggered: true - }; - } else { - return state; - } - }) - }; - MOUSE_OUT_ROUND_THRESHOLD = 0.05; - IX2VanillaEvents_default = { - [SLIDER_ACTIVE]: getComponentActiveOptions(), - [SLIDER_INACTIVE]: getComponentInactiveOptions(), - [DROPDOWN_OPEN]: getComponentActiveOptions(), - [DROPDOWN_CLOSE]: getComponentInactiveOptions(), - // navbar elements may contain nested components in the menu. To prevent activity misfires, only listed for activity - // events where the target is the navbar element, and ignore children that dispatch activitiy events. - [NAVBAR_OPEN]: getComponentActiveOptions(false), - [NAVBAR_CLOSE]: getComponentInactiveOptions(false), - [TAB_ACTIVE]: getComponentActiveOptions(), - [TAB_INACTIVE]: getComponentInactiveOptions(), - [ECOMMERCE_CART_OPEN]: { - types: "ecommerce-cart-open", - handler: withFilter(isOrContainsElement, actionGroupCreator) - }, - [ECOMMERCE_CART_CLOSE]: { - types: "ecommerce-cart-close", - handler: withFilter(isOrContainsElement, actionGroupCreator) - }, - [MOUSE_CLICK]: { - types: "click", - handler: withFilter( - isOrContainsElement, - whenClickCountChange((options, { clickCount }) => { - if (hasAutoStopEvent(options)) { - clickCount === 1 && actionGroupCreator(options); - } else { - actionGroupCreator(options); - } - }) - ) - }, - [MOUSE_SECOND_CLICK]: { - types: "click", - handler: withFilter( - isOrContainsElement, - whenClickCountChange((options, { clickCount }) => { - if (clickCount === 2) { - actionGroupCreator(options); - } - }) - ) - }, - [MOUSE_DOWN]: { - ...baseActionGroupOptions, - types: "mousedown" - }, - [MOUSE_UP]: { - ...baseActionGroupOptions, - types: "mouseup" - }, - [MOUSE_OVER]: { - types: MOUSE_OVER_OUT_TYPES, - handler: withFilter( - isOrContainsElement, - whenElementHoverChange((options, state) => { - if (state.elementHovered) { - actionGroupCreator(options); - } - }) - ) - }, - [MOUSE_OUT]: { - types: MOUSE_OVER_OUT_TYPES, - handler: withFilter( - isOrContainsElement, - whenElementHoverChange((options, state) => { - if (!state.elementHovered) { - actionGroupCreator(options); - } - }) - ) - }, - [MOUSE_MOVE]: { - types: "mousemove mouseout scroll", - handler: ({ store, element, eventConfig, nativeEvent, eventStateKey }, state = { clientX: 0, clientY: 0, pageX: 0, pageY: 0 }) => { - const { - basedOn, - selectedAxis, - continuousParameterGroupId, - reverse, - restingState = 0 - } = eventConfig; - const { - clientX = state.clientX, - clientY = state.clientY, - pageX = state.pageX, - pageY = state.pageY - } = nativeEvent; - const isXAxis = selectedAxis === "X_AXIS"; - const isMouseOut = nativeEvent.type === "mouseout"; - let value = restingState / 100; - let namespacedParameterId = continuousParameterGroupId; - let elementHovered = false; - switch (basedOn) { - case EventBasedOn.VIEWPORT: { - value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; - break; - } - case EventBasedOn.PAGE: { - const { scrollLeft, scrollTop, scrollWidth, scrollHeight } = getDocumentState(); - value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; - break; - } - case EventBasedOn.ELEMENT: - default: { - namespacedParameterId = getNamespacedParameterId2( - eventStateKey, - continuousParameterGroupId - ); - const isMouseEvent = nativeEvent.type.indexOf("mouse") === 0; - if (isMouseEvent && isOrContainsElement({ element, nativeEvent }) !== true) { - break; - } - const rect = element.getBoundingClientRect(); - const { left, top, width, height } = rect; - if (!isMouseEvent && !pointIntersects({ left: clientX, top: clientY }, rect)) { - break; - } - elementHovered = true; - value = isXAxis ? (clientX - left) / width : (clientY - top) / height; - break; - } - } - if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { - value = Math.round(value); - } - if (basedOn !== EventBasedOn.ELEMENT || elementHovered || // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - elementHovered !== state.elementHovered) { - value = reverse ? 1 - value : value; - store.dispatch(parameterChanged(namespacedParameterId, value)); - } - return { - elementHovered, - clientX, - clientY, - pageX, - pageY - }; - } - }, - [PAGE_SCROLL]: { - types: SCROLL_EVENT_TYPES, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - handler: ({ store, eventConfig }) => { - const { continuousParameterGroupId, reverse } = eventConfig; - const { scrollTop, scrollHeight, clientHeight } = getDocumentState(); - let value = scrollTop / (scrollHeight - clientHeight); - value = reverse ? 1 - value : value; - store.dispatch(parameterChanged(continuousParameterGroupId, value)); - } - }, - [SCROLLING_IN_VIEW]: { - types: SCROLL_EVENT_TYPES, - handler: ({ element, store, eventConfig, eventStateKey }, state = { scrollPercent: 0 }) => { - const { - scrollLeft, - scrollTop, - scrollWidth, - scrollHeight, - clientHeight: visibleHeight - } = getDocumentState(); - const { - basedOn, - selectedAxis, - continuousParameterGroupId, - startsEntering, - startsExiting, - addEndOffset, - addStartOffset, - addOffsetValue = 0, - endOffsetValue = 0 - } = eventConfig; - const isXAxis = selectedAxis === "X_AXIS"; - if (basedOn === EventBasedOn.VIEWPORT) { - const value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; - if (value !== state.scrollPercent) { - store.dispatch(parameterChanged(continuousParameterGroupId, value)); - } - return { - scrollPercent: value - }; - } else { - const namespacedParameterId = getNamespacedParameterId2( - eventStateKey, - continuousParameterGroupId - ); - const elementRect = element.getBoundingClientRect(); - let offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; - let offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; - offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; - offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; - const offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); - const offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; - const offsetHeight = offsetElementBottom - offsetElementTop; - const fixedScrollHeight = Math.min( - visibleHeight + offsetHeight, - scrollHeight - ); - const fixedScrollTop = Math.min( - Math.max(0, visibleHeight - offsetElementTop), - fixedScrollHeight - ); - const fixedScrollPerc = fixedScrollTop / fixedScrollHeight; - if (fixedScrollPerc !== state.scrollPercent) { - store.dispatch( - parameterChanged(namespacedParameterId, fixedScrollPerc) - ); - } - return { - scrollPercent: fixedScrollPerc - }; - } - } - }, - [SCROLL_INTO_VIEW]: scrollIntoOutOfViewOptions, - [SCROLL_OUT_OF_VIEW]: scrollIntoOutOfViewOptions, - [PAGE_SCROLL_DOWN]: { - ...baseScrollActionGroupOptions, - // @ts-expect-error - TS7006 - Parameter 'options' implicitly has an 'any' type. | TS7006 - Parameter 'state' implicitly has an 'any' type. - handler: whenScrollDirectionChange((options, state) => { - if (state.scrollingDown) { - actionGroupCreator(options); - } - }) - }, - [PAGE_SCROLL_UP]: { - ...baseScrollActionGroupOptions, - // @ts-expect-error - TS7006 - Parameter 'options' implicitly has an 'any' type. | TS7006 - Parameter 'state' implicitly has an 'any' type. - handler: whenScrollDirectionChange((options, state) => { - if (!state.scrollingDown) { - actionGroupCreator(options); - } - }) - }, - [PAGE_FINISH]: { - types: "readystatechange IX2_PAGE_UPDATE", - handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) - }, - [PAGE_START]: { - types: "readystatechange IX2_PAGE_UPDATE", - handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) - } - }; - } - }); - - // packages/systems/ix2/engine/logic/IX2VanillaEngine.ts - var IX2VanillaEngine_exports = {}; - __export(IX2VanillaEngine_exports, { - observeRequests: () => observeRequests, - startActionGroup: () => startActionGroup, - startEngine: () => startEngine, - stopActionGroup: () => stopActionGroup, - stopAllActionGroups: () => stopAllActionGroups, - stopEngine: () => stopEngine - }); - function observeRequests(store) { - observeStore2({ - store, - // @ts-expect-error - TS7031 - Binding element 'ixRequest' implicitly has an 'any' type. - select: ({ ixRequest: ixRequest2 }) => ixRequest2.preview, - onChange: handlePreviewRequest - }); - observeStore2({ - store, - // @ts-expect-error - TS7031 - Binding element 'ixRequest' implicitly has an 'any' type. - select: ({ ixRequest: ixRequest2 }) => ixRequest2.playback, - onChange: handlePlaybackRequest - }); - observeStore2({ - store, - // @ts-expect-error - TS7031 - Binding element 'ixRequest' implicitly has an 'any' type. - select: ({ ixRequest: ixRequest2 }) => ixRequest2.stop, - onChange: handleStopRequest - }); - observeStore2({ - store, - // @ts-expect-error - TS7031 - Binding element 'ixRequest' implicitly has an 'any' type. - select: ({ ixRequest: ixRequest2 }) => ixRequest2.clear, - onChange: handleClearRequest - }); - } - function observeMediaQueryChange(store) { - observeStore2({ - store, - // @ts-expect-error - TS7031 - Binding element 'ixSession' implicitly has an 'any' type. - select: ({ ixSession: ixSession2 }) => ixSession2.mediaQueryKey, - onChange: () => { - stopEngine(store); - clearAllStyles2({ store, elementApi: IX2BrowserApi_exports }); - startEngine({ store, allowEvents: true }); - dispatchPageUpdateEvent(); - } - }); - } - function observeOneRenderTick(store, onTick) { - const unsubscribe = observeStore2({ - store, - // @ts-expect-error - TS7031 - Binding element 'ixSession' implicitly has an 'any' type. - select: ({ ixSession: ixSession2 }) => ixSession2.tick, - // @ts-expect-error - TS7006 - Parameter 'tick' implicitly has an 'any' type. - onChange: (tick) => { - onTick(tick); - unsubscribe(); - } - }); - } - function handlePreviewRequest({ rawData, defer }, store) { - const start = () => { - startEngine({ store, rawData, allowEvents: true }); - dispatchPageUpdateEvent(); - }; - defer ? setTimeout(start, 0) : start(); - } - function dispatchPageUpdateEvent() { - document.dispatchEvent(new CustomEvent("IX2_PAGE_UPDATE")); - } - function handlePlaybackRequest(playback, store) { - const { - actionTypeId, - actionListId, - actionItemId, - eventId, - allowEvents, - immediate, - testManual, - verbose = true - } = playback; - let { rawData } = playback; - if (actionListId && actionItemId && rawData && immediate) { - const actionList = rawData.actionLists[actionListId]; - if (actionList) { - rawData = reduceListToGroup2({ - actionList, - actionItemId, - rawData - }); - } - } - startEngine({ store, rawData, allowEvents, testManual }); - if (actionListId && actionTypeId === ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(actionTypeId)) { - stopActionGroup({ store, actionListId }); - renderInitialGroup({ store, actionListId, eventId }); - const started = startActionGroup({ - store, - eventId, - actionListId, - immediate, - verbose - }); - if (verbose && started) { - store.dispatch( - actionListPlaybackChanged({ actionListId, isPlaying: !immediate }) - ); - } - } - } - function handleStopRequest({ actionListId }, store) { - if (actionListId) { - stopActionGroup({ store, actionListId }); - } else { - stopAllActionGroups({ store }); - } - stopEngine(store); - } - function handleClearRequest(state, store) { - stopEngine(store); - clearAllStyles2({ store, elementApi: IX2BrowserApi_exports }); - } - function startEngine({ store, rawData, allowEvents, testManual }) { - const { ixSession: ixSession2 } = store.getState(); - if (rawData) { - store.dispatch(rawDataImported(rawData)); - } - if (!ixSession2.active) { - store.dispatch( - sessionInitialized({ - hasBoundaryNodes: Boolean(document.querySelector(BOUNDARY_SELECTOR2)), - reducedMotion: 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(sessionStarted()); - startRenderLoop(store, testManual); - } - } - function addDocumentClass() { - const { documentElement } = document; - if (documentElement.className.indexOf(W_MOD_IX2) === -1) { - documentElement.className += ` ${W_MOD_IX2}`; - } - } - function startRenderLoop(store, testManual) { - const handleFrame = (now) => { - const { ixSession: ixSession2, ixParameters: ixParameters2 } = store.getState(); - if (ixSession2.active) { - store.dispatch(animationFrameChanged(now, ixParameters2)); - if (testManual) { - observeOneRenderTick(store, handleFrame); - } else { - requestAnimationFrame(handleFrame); - } - } - }; - handleFrame(window.performance.now()); - } - function stopEngine(store) { - const { ixSession: ixSession2 } = store.getState(); - if (ixSession2.active) { - const { eventListeners } = ixSession2; - eventListeners.forEach(clearEventListener); - clearObjectCache2(); - store.dispatch(sessionStopped()); - } - } - function clearEventListener({ target, listenerParams }) { - target.removeEventListener.apply(target, listenerParams); - } - function createGroupInstances({ - // @ts-expect-error - TS7031 - Binding element 'store' implicitly has an 'any' type. - store, - // @ts-expect-error - TS7031 - Binding element 'eventStateKey' implicitly has an 'any' type. - eventStateKey, - // @ts-expect-error - TS7031 - Binding element 'eventTarget' implicitly has an 'any' type. - eventTarget, - // @ts-expect-error - TS7031 - Binding element 'eventId' implicitly has an 'any' type. - eventId, - // @ts-expect-error - TS7031 - Binding element 'eventConfig' implicitly has an 'any' type. - eventConfig, - // @ts-expect-error - TS7031 - Binding element 'actionListId' implicitly has an 'any' type. - actionListId, - // @ts-expect-error - TS7031 - Binding element 'parameterGroup' implicitly has an 'any' type. - parameterGroup, - // @ts-expect-error - TS7031 - Binding element 'smoothing' implicitly has an 'any' type. - smoothing, - // @ts-expect-error - TS7031 - Binding element 'restingValue' implicitly has an 'any' type. - restingValue - }) { - const { ixData: ixData2, ixSession: ixSession2 } = store.getState(); - const { events } = ixData2; - const event = events[eventId]; - const { eventTypeId } = event; - const targetCache = {}; - const instanceActionGroups = {}; - const instanceConfigs = []; - const { continuousActionGroups } = parameterGroup; - let { id: parameterId } = parameterGroup; - if (shouldNamespaceEventParameter2(eventTypeId, eventConfig)) { - parameterId = getNamespacedParameterId3(eventStateKey, parameterId); - } - const eventElementRoot = ixSession2.hasBoundaryNodes && eventTarget ? getClosestElement(eventTarget, BOUNDARY_SELECTOR2) : null; - continuousActionGroups.forEach((actionGroup) => { - const { keyframe, actionItems } = actionGroup; - actionItems.forEach((actionItem) => { - const { actionTypeId } = actionItem; - const { target } = actionItem.config; - if (!target) { - return; - } - const elementRoot = target.boundaryMode ? eventElementRoot : null; - const key = stringifyTarget2(target) + COLON_DELIMITER4 + actionTypeId; - instanceActionGroups[key] = appendActionItem( - instanceActionGroups[key], - keyframe, - actionItem - ); - if (!targetCache[key]) { - targetCache[key] = true; - const { config } = actionItem; - getAffectedElements2({ - config, - event, - eventTarget, - elementRoot, - elementApi: IX2BrowserApi_exports - }).forEach((element) => { - instanceConfigs.push({ element, key }); - }); - } - }); - }); - instanceConfigs.forEach(({ element, key }) => { - const actionGroups = instanceActionGroups[key]; - const actionItem = (0, import_get2.default)(actionGroups, `[0].actionItems[0]`, {}); - const { actionTypeId } = actionItem; - const pluginInstance = isPluginType2(actionTypeId) ? createPluginInstance2(actionTypeId)(element, actionItem) : null; - const destination = getDestinationValues2( - { element, actionItem, elementApi: IX2BrowserApi_exports }, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - pluginInstance - ); - createInstance({ - store, - element, - eventId, - actionListId, - actionItem, - destination, - continuous: true, - parameterId, - actionGroups, - smoothing, - restingValue, - pluginInstance - }); - }); - } - function appendActionItem(actionGroups = [], keyframe, actionItem) { - const newActionGroups = [...actionGroups]; - let groupIndex; - newActionGroups.some((group, index) => { - if (group.keyframe === keyframe) { - groupIndex = index; - return true; - } - return false; - }); - if (groupIndex == null) { - groupIndex = newActionGroups.length; - newActionGroups.push({ - keyframe, - actionItems: [] - }); - } - newActionGroups[groupIndex].actionItems.push(actionItem); - return newActionGroups; - } - function bindEvents(store) { - const { ixData: ixData2 } = store.getState(); - const { eventTypeMap } = ixData2; - updateViewportWidth(store); - (0, import_forEach.default)(eventTypeMap, (events, key) => { - const logic = IX2VanillaEvents_default[key]; - if (!logic) { - console.warn(`IX2 event type not configured: ${key}`); - return; - } - bindEventType({ - logic, - store, - events - }); - }); - const { ixSession: ixSession2 } = store.getState(); - if (ixSession2.eventListeners.length) { - bindResizeEvents(store); - } - } - function bindResizeEvents(store) { - const handleResize = () => { - updateViewportWidth(store); - }; - WINDOW_RESIZE_EVENTS.forEach((type) => { - window.addEventListener(type, handleResize); - store.dispatch(eventListenerAdded(window, [type, handleResize])); - }); - handleResize(); - } - function updateViewportWidth(store) { - const { ixSession: ixSession2, ixData: ixData2 } = store.getState(); - const width = window.innerWidth; - if (width !== ixSession2.viewportWidth) { - const { mediaQueries } = ixData2; - store.dispatch(viewportWidthChanged({ width, mediaQueries })); - } - } - function bindEventType({ logic, store, events }) { - injectBehaviorCSSFixes(events); - const { types: eventTypes, handler: eventHandler } = logic; - const { ixData: ixData2 } = store.getState(); - const { actionLists } = ixData2; - const eventTargets = mapFoundValues(events, getAffectedForEvent); - if (!(0, import_size.default)(eventTargets)) { - return; - } - (0, import_forEach.default)(eventTargets, (elements, key) => { - const event = events[key]; - const { - action: eventAction, - id: eventId, - mediaQueries = ixData2.mediaQueryKeys - } = event; - const { actionListId } = eventAction.config; - if (!mediaQueriesEqual2(mediaQueries, ixData2.mediaQueryKeys)) { - store.dispatch(mediaQueriesDefined()); - } - if (eventAction.actionTypeId === ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { - const configs = Array.isArray(event.config) ? event.config : [event.config]; - configs.forEach((eventConfig) => { - const { continuousParameterGroupId } = eventConfig; - const paramGroups = (0, import_get2.default)( - actionLists, - `${actionListId}.continuousParameterGroups`, - [] - ); - const parameterGroup = (0, import_find2.default)( - paramGroups, - ({ id }) => id === continuousParameterGroupId - ); - const smoothing = (eventConfig.smoothing || 0) / 100; - const restingValue = (eventConfig.restingState || 0) / 100; - if (!parameterGroup) { - return; - } - elements.forEach((eventTarget, index) => { - const eventStateKey = eventId + COLON_DELIMITER4 + index; - createGroupInstances({ - store, - eventStateKey, - eventTarget, - eventId, - eventConfig, - actionListId, - parameterGroup, - smoothing, - restingValue - }); - }); - }); - } - if (eventAction.actionTypeId === ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(eventAction.actionTypeId)) { - renderInitialGroup({ store, actionListId, eventId }); - } - }); - const handleEvent = (nativeEvent) => { - const { ixSession: ixSession2 } = store.getState(); - forEachEventTarget(eventTargets, (element, eventId, eventStateKey) => { - const event = events[eventId]; - const oldState = ixSession2.eventState[eventStateKey]; - const { action: eventAction, mediaQueries = ixData2.mediaQueryKeys } = event; - if (!shouldAllowMediaQuery2(mediaQueries, ixSession2.mediaQueryKey)) { - return; - } - const handleEventWithConfig = (eventConfig = {}) => { - const newState = eventHandler( - { - store, - element, - event, - eventConfig, - nativeEvent, - eventStateKey - }, - oldState - ); - if (!shallowEqual2(newState, oldState)) { - store.dispatch(eventStateChanged(eventStateKey, newState)); - } - }; - if (eventAction.actionTypeId === ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { - const configs = Array.isArray(event.config) ? event.config : [event.config]; - configs.forEach(handleEventWithConfig); - } else { - handleEventWithConfig(); - } - }); - }; - const handleEventThrottled = (0, import_throttle.default)(handleEvent, THROTTLED_EVENT_WAIT); - const addListeners = ({ - target = document, - // @ts-expect-error - TS7031 - Binding element 'types' implicitly has an 'any' type. - types, - // @ts-expect-error - TS7031 - Binding element 'shouldThrottle' implicitly has an 'any' type. - throttle: shouldThrottle - }) => { - types.split(" ").filter(Boolean).forEach((type) => { - const handlerFunc = shouldThrottle ? handleEventThrottled : handleEvent; - target.addEventListener(type, handlerFunc); - store.dispatch(eventListenerAdded(target, [type, handlerFunc])); - }); - }; - if (Array.isArray(eventTypes)) { - eventTypes.forEach(addListeners); - } else if (typeof eventTypes === "string") { - addListeners(logic); - } - } - function injectBehaviorCSSFixes(events) { - if (!IS_MOBILE_SAFARI) { - return; - } - const injectedSelectors = {}; - let cssText = ""; - for (const eventId in events) { - const { eventTypeId, target } = events[eventId]; - const selector = getQuerySelector(target); - if (injectedSelectors[selector]) { - continue; - } - if (eventTypeId === EventTypeConsts.MOUSE_CLICK || eventTypeId === EventTypeConsts.MOUSE_SECOND_CLICK) { - injectedSelectors[selector] = true; - cssText += selector + "{cursor: pointer;touch-action: manipulation;}"; - } - } - if (cssText) { - const style = document.createElement("style"); - style.textContent = cssText; - document.body.appendChild(style); - } - } - function renderInitialGroup({ store, actionListId, eventId }) { - const { ixData: ixData2, ixSession: ixSession2 } = store.getState(); - const { actionLists, events } = ixData2; - const event = events[eventId]; - const actionList = actionLists[actionListId]; - if (actionList && actionList.useFirstGroupAsInitialState) { - const initialStateItems = (0, import_get2.default)( - actionList, - "actionItemGroups[0].actionItems", - [] - ); - const mediaQueries = (0, import_get2.default)(event, "mediaQueries", ixData2.mediaQueryKeys); - if (!shouldAllowMediaQuery2(mediaQueries, ixSession2.mediaQueryKey)) { - return; - } - initialStateItems.forEach((actionItem) => { - const { config: itemConfig, actionTypeId } = actionItem; - const config = ( - // When useEventTarget is explicitly true, use event target/targets to query elements - // However, skip this condition when objectId is defined - itemConfig?.target?.useEventTarget === true && itemConfig?.target?.objectId == null ? { target: event.target, targets: event.targets } : itemConfig - ); - const itemElements = getAffectedElements2({ config, event, elementApi: IX2BrowserApi_exports }); - const shouldUsePlugin = isPluginType2(actionTypeId); - itemElements.forEach((element) => { - const pluginInstance = shouldUsePlugin ? createPluginInstance2(actionTypeId)(element, actionItem) : null; - createInstance({ - destination: getDestinationValues2( - { element, actionItem, elementApi: IX2BrowserApi_exports }, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - pluginInstance - ), - immediate: true, - store, - element, - eventId, - actionItem, - actionListId, - pluginInstance - }); - }); - }); - } - } - function stopAllActionGroups({ store }) { - const { ixInstances: ixInstances2 } = store.getState(); - (0, import_forEach.default)(ixInstances2, (instance) => { - if (!instance.continuous) { - const { actionListId, verbose } = instance; - removeInstance(instance, store); - if (verbose) { - store.dispatch( - actionListPlaybackChanged({ actionListId, isPlaying: false }) - ); - } - } - }); - } - function stopActionGroup({ - // @ts-expect-error - TS7031 - Binding element 'store' implicitly has an 'any' type. - store, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - eventId, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - eventTarget, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - eventStateKey, - // @ts-expect-error - TS7031 - Binding element 'actionListId' implicitly has an 'any' type. - actionListId - }) { - const { ixInstances: ixInstances2, ixSession: ixSession2 } = store.getState(); - const eventElementRoot = ixSession2.hasBoundaryNodes && eventTarget ? getClosestElement(eventTarget, BOUNDARY_SELECTOR2) : null; - (0, import_forEach.default)(ixInstances2, (instance) => { - const boundaryMode = (0, import_get2.default)(instance, "actionItem.config.target.boundaryMode"); - const validEventKey = eventStateKey ? instance.eventStateKey === eventStateKey : true; - if (instance.actionListId === actionListId && instance.eventId === eventId && validEventKey) { - if (eventElementRoot && boundaryMode && !elementContains(eventElementRoot, instance.element)) { - return; - } - removeInstance(instance, store); - if (instance.verbose) { - store.dispatch( - actionListPlaybackChanged({ actionListId, isPlaying: false }) - ); - } - } - }); - } - function startActionGroup({ - // @ts-expect-error - TS7031 - Binding element 'store' implicitly has an 'any' type. - store, - // @ts-expect-error - TS7031 - Binding element 'eventId' implicitly has an 'any' type. - eventId, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - eventTarget, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - eventStateKey, - // @ts-expect-error - TS7031 - Binding element 'actionListId' implicitly has an 'any' type. - actionListId, - groupIndex = 0, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - immediate, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - verbose - }) { - const { ixData: ixData2, ixSession: ixSession2 } = store.getState(); - const { events } = ixData2; - const event = events[eventId] || {}; - const { mediaQueries = ixData2.mediaQueryKeys } = event; - const actionList = (0, import_get2.default)(ixData2, `actionLists.${actionListId}`, {}); - const { actionItemGroups, useFirstGroupAsInitialState } = actionList; - if (!actionItemGroups || !actionItemGroups.length) { - return false; - } - if (groupIndex >= actionItemGroups.length && (0, import_get2.default)(event, "config.loop")) { - groupIndex = 0; - } - if (groupIndex === 0 && useFirstGroupAsInitialState) { - groupIndex++; - } - const isFirstGroup = groupIndex === 0 || groupIndex === 1 && useFirstGroupAsInitialState; - const instanceDelay = isFirstGroup && isQuickEffect(event.action?.actionTypeId) ? event.config.delay : void 0; - const actionItems = (0, import_get2.default)(actionItemGroups, [groupIndex, "actionItems"], []); - if (!actionItems.length) { - return false; - } - if (!shouldAllowMediaQuery2(mediaQueries, ixSession2.mediaQueryKey)) { - return false; - } - const eventElementRoot = ixSession2.hasBoundaryNodes && eventTarget ? getClosestElement(eventTarget, BOUNDARY_SELECTOR2) : null; - const carrierIndex = getMaxDurationItemIndex2(actionItems); - let groupStartResult = false; - actionItems.forEach((actionItem, actionIndex) => { - const { config, actionTypeId } = actionItem; - const shouldUsePlugin = isPluginType2(actionTypeId); - const { target } = config; - if (!target) { - return; - } - const elementRoot = target.boundaryMode ? eventElementRoot : null; - const elements = getAffectedElements2({ - config, - event, - eventTarget, - elementRoot, - elementApi: IX2BrowserApi_exports - }); - elements.forEach((element, elementIndex) => { - const pluginInstance = shouldUsePlugin ? createPluginInstance2(actionTypeId)(element, actionItem) : null; - const pluginDuration = shouldUsePlugin ? getPluginDuration2(actionTypeId)(element, actionItem) : null; - groupStartResult = true; - const isCarrier = carrierIndex === actionIndex && elementIndex === 0; - const computedStyle = getComputedStyle3({ element, actionItem }); - const destination = getDestinationValues2( - { element, actionItem, elementApi: IX2BrowserApi_exports }, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - pluginInstance - ); - createInstance({ - store, - element, - actionItem, - eventId, - eventTarget, - eventStateKey, - actionListId, - groupIndex, - isCarrier, - computedStyle, - destination, - immediate, - verbose, - pluginInstance, - pluginDuration, - instanceDelay - }); - }); - }); - return groupStartResult; - } - function createInstance(options) { - const { store, computedStyle, ...rest } = options; - const { - element, - actionItem, - immediate, - pluginInstance, - continuous, - restingValue, - eventId - } = rest; - const autoStart = !continuous; - const instanceId = getInstanceId2(); - const { ixElements: ixElements3, ixSession: ixSession2, ixData: ixData2 } = store.getState(); - const elementId = getElementId2(ixElements3, element); - const { refState: refState2 } = ixElements3[elementId] || {}; - const refType = getRefType(element); - const skipMotion = ( - // @ts-expect-error - TS7053 - Element implicitly has an 'any' type because expression of type 'any' can't be used to index type '{ readonly TRANSFORM_MOVE: true; readonly TRANSFORM_SCALE: true; readonly TRANSFORM_ROTATE: true; readonly TRANSFORM_SKEW: true; readonly STYLE_SIZE: true; readonly STYLE_FILTER: true; readonly STYLE_FONT_VARIATION: true; }'. - ixSession2.reducedMotion && ReducedMotionTypes[actionItem.actionTypeId] - ); - let skipToValue; - if (skipMotion && continuous) { - switch (ixData2.events[eventId]?.eventTypeId) { - case EventTypeConsts.MOUSE_MOVE: - case EventTypeConsts.MOUSE_MOVE_IN_VIEWPORT: - skipToValue = restingValue; - break; - default: - skipToValue = 0.5; - break; - } - } - const origin = getInstanceOrigin2( - element, - refState2, - computedStyle, - actionItem, - IX2BrowserApi_exports, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - pluginInstance - ); - store.dispatch( - instanceAdded({ - instanceId, - elementId, - origin, - refType, - skipMotion, - skipToValue, - ...rest - }) - ); - dispatchCustomEvent(document.body, "ix2-animation-started", instanceId); - if (immediate) { - renderImmediateInstance(store, instanceId); - return; - } - observeStore2({ - store, - // @ts-expect-error - TS7031 - Binding element 'ixInstances' implicitly has an 'any' type. - select: ({ ixInstances: ixInstances2 }) => ixInstances2[instanceId], - onChange: handleInstanceChange - }); - if (autoStart) { - store.dispatch(instanceStarted(instanceId, ixSession2.tick)); - } - } - function removeInstance(instance, store) { - dispatchCustomEvent(document.body, "ix2-animation-stopping", { - instanceId: instance.id, - state: store.getState() - }); - const { elementId, actionItem } = instance; - const { ixElements: ixElements3 } = store.getState(); - const { ref, refType } = ixElements3[elementId] || {}; - if (refType === HTML_ELEMENT4) { - cleanupHTMLElement2(ref, actionItem, IX2BrowserApi_exports); - } - store.dispatch(instanceRemoved(instance.id)); - } - function dispatchCustomEvent(element, eventName, detail) { - const event = document.createEvent("CustomEvent"); - event.initCustomEvent(eventName, true, true, detail); - element.dispatchEvent(event); - } - function renderImmediateInstance(store, instanceId) { - const { ixParameters: ixParameters2 } = store.getState(); - store.dispatch(instanceStarted(instanceId, 0)); - store.dispatch(animationFrameChanged(performance.now(), ixParameters2)); - const { ixInstances: ixInstances2 } = store.getState(); - handleInstanceChange(ixInstances2[instanceId], store); - } - function handleInstanceChange(instance, store) { - const { - active, - continuous, - complete, - elementId, - actionItem, - actionTypeId, - renderType, - current, - groupIndex, - eventId, - eventTarget, - eventStateKey, - actionListId, - isCarrier, - styleProp, - verbose, - pluginInstance - } = instance; - const { ixData: ixData2, ixSession: ixSession2 } = store.getState(); - const { events } = ixData2; - const event = events[eventId] || {}; - const { mediaQueries = ixData2.mediaQueryKeys } = event; - if (!shouldAllowMediaQuery2(mediaQueries, ixSession2.mediaQueryKey)) { - return; - } - if (continuous || active || complete) { - if (current || renderType === RENDER_GENERAL4 && complete) { - store.dispatch( - elementStateChanged(elementId, actionTypeId, current, actionItem) - ); - const { ixElements: ixElements3 } = store.getState(); - const { ref, refType, refState: refState2 } = ixElements3[elementId] || {}; - const actionState = refState2 && refState2[actionTypeId]; - if (refType === HTML_ELEMENT4 || isPluginType2(actionTypeId)) { - renderHTMLElement2( - ref, - refState2, - actionState, - eventId, - actionItem, - styleProp, - IX2BrowserApi_exports, - renderType, - pluginInstance - ); - } - } - if (complete) { - if (isCarrier) { - const started = startActionGroup({ - store, - eventId, - eventTarget, - eventStateKey, - actionListId, - groupIndex: groupIndex + 1, - verbose - }); - if (verbose && !started) { - store.dispatch( - actionListPlaybackChanged({ actionListId, isPlaying: false }) - ); - } - } - removeInstance(instance, store); - } - } - } - var import_find2, import_get2, import_size, import_omitBy, import_isEmpty, import_mapValues, import_forEach, import_throttle, import_shared6, QuickEffectsIdList, isQuickEffect, COLON_DELIMITER4, BOUNDARY_SELECTOR2, HTML_ELEMENT4, RENDER_GENERAL4, W_MOD_IX2, getAffectedElements2, getElementId2, getDestinationValues2, observeStore2, getInstanceId2, renderHTMLElement2, clearAllStyles2, getMaxDurationItemIndex2, getComputedStyle3, getInstanceOrigin2, reduceListToGroup2, shouldNamespaceEventParameter2, getNamespacedParameterId3, shouldAllowMediaQuery2, cleanupHTMLElement2, clearObjectCache2, stringifyTarget2, mediaQueriesEqual2, shallowEqual2, isPluginType2, createPluginInstance2, getPluginDuration2, ua, IS_MOBILE_SAFARI, THROTTLED_EVENT_WAIT, WINDOW_RESIZE_EVENTS, mapFoundValues, forEachEventTarget, getAffectedForEvent; - var init_IX2VanillaEngine = __esm({ - "packages/systems/ix2/engine/logic/IX2VanillaEngine.ts"() { - "use strict"; - import_find2 = __toESM(require_find()); - import_get2 = __toESM(require_get()); - import_size = __toESM(require_size()); - import_omitBy = __toESM(require_omitBy()); - import_isEmpty = __toESM(require_isEmpty()); - import_mapValues = __toESM(require_mapValues()); - import_forEach = __toESM(require_forEach()); - import_throttle = __toESM(require_throttle()); - init_shared_constants(); - import_shared6 = __toESM(require_shared2()); - init_IX2EngineActions(); - init_IX2BrowserApi(); - init_IX2VanillaEvents(); - QuickEffectsIdList = Object.keys(QuickEffectIds); - isQuickEffect = (actionTypeId) => QuickEffectsIdList.includes(actionTypeId); - ({ - COLON_DELIMITER: COLON_DELIMITER4, - BOUNDARY_SELECTOR: BOUNDARY_SELECTOR2, - HTML_ELEMENT: HTML_ELEMENT4, - RENDER_GENERAL: RENDER_GENERAL4, - W_MOD_IX: W_MOD_IX2 - } = IX2EngineConstants_exports); - ({ - getAffectedElements: getAffectedElements2, - getElementId: getElementId2, - getDestinationValues: getDestinationValues2, - observeStore: observeStore2, - getInstanceId: getInstanceId2, - renderHTMLElement: renderHTMLElement2, - clearAllStyles: clearAllStyles2, - getMaxDurationItemIndex: getMaxDurationItemIndex2, - getComputedStyle: getComputedStyle3, - getInstanceOrigin: getInstanceOrigin2, - reduceListToGroup: reduceListToGroup2, - shouldNamespaceEventParameter: shouldNamespaceEventParameter2, - getNamespacedParameterId: getNamespacedParameterId3, - shouldAllowMediaQuery: shouldAllowMediaQuery2, - cleanupHTMLElement: cleanupHTMLElement2, - clearObjectCache: clearObjectCache2, - stringifyTarget: stringifyTarget2, - mediaQueriesEqual: mediaQueriesEqual2, - shallowEqual: shallowEqual2 - } = import_shared6.IX2VanillaUtils); - ({ isPluginType: isPluginType2, createPluginInstance: createPluginInstance2, getPluginDuration: getPluginDuration2 } = import_shared6.IX2VanillaPlugins); - ua = navigator.userAgent; - IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); - THROTTLED_EVENT_WAIT = 12; - WINDOW_RESIZE_EVENTS = ["resize", "orientationchange"]; - mapFoundValues = (object, iteratee) => (0, import_omitBy.default)((0, import_mapValues.default)(object, iteratee), import_isEmpty.default); - forEachEventTarget = (eventTargets, eventCallback) => { - (0, import_forEach.default)(eventTargets, (elements, eventId) => { - elements.forEach((element, index) => { - const eventStateKey = eventId + COLON_DELIMITER4 + index; - eventCallback(element, eventId, eventStateKey); - }); - }); - }; - getAffectedForEvent = (event) => { - const config = { target: event.target, targets: event.targets }; - return getAffectedElements2({ config, elementApi: IX2BrowserApi_exports }); - }; - } - }); - - // packages/systems/ix2/engine/index.js - var require_engine = __commonJS({ - "packages/systems/ix2/engine/index.js"(exports) { - "use strict"; - var _interopRequireWildcard = require_interopRequireWildcard().default; - var _interopRequireDefault = require_interopRequireDefault().default; - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.actions = void 0; - exports.destroy = destroy; - exports.init = init; - exports.setEnv = setEnv; - exports.store = void 0; - require_includes3(); - var _redux = require_lib2(); - var _IX2Reducer = _interopRequireDefault((init_IX2Reducer(), __toCommonJS(IX2Reducer_exports))); - var _IX2VanillaEngine = (init_IX2VanillaEngine(), __toCommonJS(IX2VanillaEngine_exports)); - var actions = _interopRequireWildcard((init_IX2EngineActions(), __toCommonJS(IX2EngineActions_exports))); - exports.actions = actions; - var store = exports.store = (0, _redux.createStore)(_IX2Reducer.default); - function setEnv(env) { - if (env()) { - (0, _IX2VanillaEngine.observeRequests)(store); - } - } - function init(rawData) { - destroy(); - (0, _IX2VanillaEngine.startEngine)({ - store, - rawData, - allowEvents: true - }); - } - function destroy() { - (0, _IX2VanillaEngine.stopEngine)(store); - } - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-ix2.js - var require_webflow_ix2 = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-ix2.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - var ix2 = require_engine(); - ix2.setEnv(Webflow.env); - Webflow.define("ix2", module.exports = function() { - return ix2; - }); - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-links.js - var require_webflow_links = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-links.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - 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; - api.ready = api.design = api.preview = init; - function init() { - designer = inApp && Webflow.env("design"); - slug = Webflow.env("slug") || location.pathname || ""; - Webflow.scroll.off(scroll); - anchors = []; - var links = document.links; - for (var i = 0; i < links.length; ++i) { - select(links[i]); - } - if (anchors.length) { - Webflow.scroll.on(scroll); - scroll(); - } - } - function select(link) { - if (link.getAttribute("hreflang")) { - return; - } - var href = designer && link.getAttribute("href-disabled") || link.getAttribute("href"); - tempLink.href = href; - if (href.indexOf(":") >= 0) { - return; - } - var $link = $(link); - if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { - if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { - return; - } - var $section = $(tempLink.hash); - $section.length && anchors.push({ - link: $link, - sec: $section, - active: false - }); - return; - } - if (href === "#" || href === "") { - return; - } - 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(); - _.each(anchors, function(anchor) { - if (anchor.link.attr("hreflang")) { - return; - } - 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); - } - return api; - }); - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-scroll.js - var require_webflow_scroll = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-scroll.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - Webflow.define("scroll", module.exports = function($) { - 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="#"]'; - 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:.-]*$/; - function linksToCurrentPage(link) { - return validHash.test(link.hash) && link.host + link.pathname === loc.host + loc.pathname; - } - const 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"); - } - 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) { - 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); - } - } - } - 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() { - 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) { - var $header = $(headerSelector); - var offsetY = $header.css("position") === "fixed" ? $header.outerHeight() : 0; - var end = $targetEl.offset().top - offsetY; - 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; - $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) - 2e3) * mult; - } - function getY(start, end, elapsed, duration) { - if (elapsed > duration) { - return end; - } - return start + (end - start) * ease2(elapsed / duration); - } - function ease2(t) { - return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; - } - function ready() { - var { - WF_CLICK_EMPTY, - WF_CLICK_SCROLL - } = NS_EVENTS; - $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); - $doc.on(WF_CLICK_EMPTY, emptyHrefSelector, function(e) { - e.preventDefault(); - }); - document.head.insertBefore(focusStylesEl, document.head.firstChild); - } - return { - ready - }; - }); - } - }); - - // packages/shared/render/plugins/BaseSiteModules/webflow-touch.js - var require_webflow_touch = __commonJS({ - "packages/shared/render/plugins/BaseSiteModules/webflow-touch.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - Webflow.define("touch", module.exports = function($) { - var api = {}; - var getSelection = window.getSelection; - $.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) { - 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; - 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; - } - this.destroy = destroy; - } - function triggerEvent(type, evt, data) { - var newEvent = $.Event(type, { - originalEvent: evt - }); - $(evt.target).trigger(newEvent, data); - } - api.instance = api.init(document); - return api; - }); - } - }); - - // packages/shared/render/plugins/Dropdown/webflow-dropdown.js - var require_webflow_dropdown = __commonJS({ - "packages/shared/render/plugins/Dropdown/webflow-dropdown.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - var IXEvents = require_webflow_ix2_events(); - 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 - }; - var FORCE_CLOSE = true; - var INTERNAL_PAGE_LINK_HASHES_PATTERN = /^#[a-zA-Z0-9\-_]+$/; - Webflow.define("dropdown", module.exports = function($, _) { - var debounce = _.debounce; - var api = {}; - var inApp = Webflow.env(); - var inPreview = false; - var inDesigner; - var touch = Webflow.env.touch; - var namespace = ".w-dropdown"; - var openStateClassName = "w--open"; - var ix = IXEvents.triggers; - var defaultZIndex = 900; - var focusOutEvent = "focusout" + namespace; - var keydownEvent = "keydown" + namespace; - var mouseEnterEvent = "mouseenter" + namespace; - var mouseMoveEvent = "mousemove" + namespace; - var mouseLeaveEvent = "mouseleave" + namespace; - var mouseUpEvent = (touch ? "click" : "mouseup") + namespace; - var closeEvent = "w-close" + namespace; - var settingEvent = "setting" + namespace; - var $doc = $(document); - var $dropdowns; - api.ready = init; - api.design = function() { - if (inPreview) { - closeAll(); - } - inPreview = false; - init(); - }; - api.preview = function() { - inPreview = true; - init(); - }; - function init() { - inDesigner = inApp && Webflow.env("design"); - $dropdowns = $doc.find(namespace); - $dropdowns.each(build); - } - function build(i, el) { - var $el = $(el); - var data = $.data(el, namespace); - if (!data) { - data = $.data(el, namespace, { - open: false, - el: $el, - config: {}, - selectedIdx: -1 - }); - } - data.toggle = data.el.children(".w-dropdown-toggle"); - data.list = data.el.children(".w-dropdown-list"); - data.links = data.list.find("a:not(.w-dropdown .w-dropdown a)"); - data.complete = complete(data); - data.mouseLeave = makeMouseLeaveHandler(data); - data.mouseUpOutside = outside(data); - data.mouseMoveOutside = moveOutside(data); - configure(data); - var toggleId = data.toggle.attr("id"); - var listId = data.list.attr("id"); - if (!toggleId) { - toggleId = "w-dropdown-toggle-" + i; - } - if (!listId) { - listId = "w-dropdown-list-" + i; - } - data.toggle.attr("id", toggleId); - data.toggle.attr("aria-controls", listId); - data.toggle.attr("aria-haspopup", "menu"); - data.toggle.attr("aria-expanded", "false"); - data.toggle.find(".w-icon-dropdown-toggle").attr("aria-hidden", "true"); - if (data.toggle.prop("tagName") !== "BUTTON") { - data.toggle.attr("role", "button"); - if (!data.toggle.attr("tabindex")) { - data.toggle.attr("tabindex", "0"); - } - } - data.list.attr("id", listId); - data.list.attr("aria-labelledby", toggleId); - data.links.each(function(idx, link) { - if (!link.hasAttribute("tabindex")) - link.setAttribute("tabindex", "0"); - if (INTERNAL_PAGE_LINK_HASHES_PATTERN.test(link.hash)) { - link.addEventListener("click", close.bind(null, data)); - } - }); - data.el.off(namespace); - data.toggle.off(namespace); - if (data.nav) { - data.nav.off(namespace); - } - var initialToggler = makeToggler(data, FORCE_CLOSE); - if (inDesigner) { - data.el.on(settingEvent, makeSettingEventHandler(data)); - } - if (!inDesigner) { - if (inApp) { - data.hovering = false; - close(data); - } - if (data.config.hover) { - data.toggle.on(mouseEnterEvent, makeMouseEnterHandler(data)); - } - data.el.on(closeEvent, initialToggler); - data.el.on(keydownEvent, makeDropdownKeydownHandler(data)); - data.el.on(focusOutEvent, makeDropdownFocusOutHandler(data)); - data.toggle.on(mouseUpEvent, initialToggler); - data.toggle.on(keydownEvent, makeToggleKeydownHandler(data)); - data.nav = data.el.closest(".w-nav"); - data.nav.on(closeEvent, initialToggler); - } - } - function configure(data) { - var zIndex = Number(data.el.css("z-index")); - data.manageZ = zIndex === defaultZIndex || zIndex === defaultZIndex + 1; - data.config = { - hover: data.el.attr("data-hover") === "true" && !touch, - delay: data.el.attr("data-delay") - }; - } - function makeSettingEventHandler(data) { - return function(evt, options) { - options = options || {}; - configure(data); - options.open === true && open(data, true); - options.open === false && close(data, { - immediate: true - }); - }; - } - function makeToggler(data, forceClose) { - return debounce(function(evt) { - if (data.open || evt && evt.type === "w-close") { - return close(data, { - forceClose - }); - } - open(data); - }); - } - function open(data) { - if (data.open) { - return; - } - closeOthers(data); - data.open = true; - data.list.addClass(openStateClassName); - data.toggle.addClass(openStateClassName); - data.toggle.attr("aria-expanded", "true"); - ix.intro(0, data.el[0]); - Webflow.redraw.up(); - data.manageZ && data.el.css("z-index", defaultZIndex + 1); - var isEditor = Webflow.env("editor"); - if (!inDesigner) { - $doc.on(mouseUpEvent, data.mouseUpOutside); - } - if (data.hovering && !isEditor) { - data.el.on(mouseLeaveEvent, data.mouseLeave); - } - if (data.hovering && isEditor) { - $doc.on(mouseMoveEvent, data.mouseMoveOutside); - } - window.clearTimeout(data.delayId); - } - function close(data, { - immediate, - forceClose - } = {}) { - if (!data.open) { - return; - } - if (data.config.hover && data.hovering && !forceClose) { - return; - } - data.toggle.attr("aria-expanded", "false"); - data.open = false; - var config = data.config; - ix.outro(0, data.el[0]); - $doc.off(mouseUpEvent, data.mouseUpOutside); - $doc.off(mouseMoveEvent, data.mouseMoveOutside); - data.el.off(mouseLeaveEvent, data.mouseLeave); - window.clearTimeout(data.delayId); - if (!config.delay || immediate) { - return data.complete(); - } - data.delayId = window.setTimeout(data.complete, config.delay); - } - function closeAll() { - $doc.find(namespace).each(function(i, el) { - $(el).triggerHandler(closeEvent); - }); - } - function closeOthers(data) { - var self2 = data.el[0]; - $dropdowns.each(function(i, other) { - var $other = $(other); - if ($other.is(self2) || $other.has(self2).length) { - return; - } - $other.triggerHandler(closeEvent); - }); - } - function outside(data) { - if (data.mouseUpOutside) { - $doc.off(mouseUpEvent, data.mouseUpOutside); - } - return debounce(function(evt) { - if (!data.open) { - return; - } - var $target = $(evt.target); - if ($target.closest(".w-dropdown-toggle").length) { - return; - } - var isEventOutsideDropdowns = $.inArray(data.el[0], $target.parents(namespace)) === -1; - var isEditor = Webflow.env("editor"); - if (isEventOutsideDropdowns) { - if (isEditor) { - var isEventOnDetachedSvg = $target.parents().length === 1 && $target.parents("svg").length === 1; - var isEventOnHoverControls = $target.parents(".w-editor-bem-EditorHoverControls").length; - if (isEventOnDetachedSvg || isEventOnHoverControls) { - return; - } - } - close(data); - } - }); - } - function complete(data) { - return function() { - data.list.removeClass(openStateClassName); - data.toggle.removeClass(openStateClassName); - data.manageZ && data.el.css("z-index", ""); - }; - } - function makeMouseEnterHandler(data) { - return function() { - data.hovering = true; - open(data); - }; - } - function makeMouseLeaveHandler(data) { - return function() { - data.hovering = false; - if (!data.links.is(":focus")) { - close(data); - } - }; - } - function moveOutside(data) { - return debounce(function(evt) { - if (!data.open) { - return; - } - var $target = $(evt.target); - var isEventOutsideDropdowns = $.inArray(data.el[0], $target.parents(namespace)) === -1; - if (isEventOutsideDropdowns) { - var isEventOnHoverControls = $target.parents(".w-editor-bem-EditorHoverControls").length; - var isEventOnHoverToolbar = $target.parents(".w-editor-bem-RTToolbar").length; - var $editorOverlay = $(".w-editor-bem-EditorOverlay"); - var isDropdownInEdition = $editorOverlay.find(".w-editor-edit-outline").length || $editorOverlay.find(".w-editor-bem-RTToolbar").length; - if (isEventOnHoverControls || isEventOnHoverToolbar || isDropdownInEdition) { - return; - } - data.hovering = false; - close(data); - } - }); - } - function makeDropdownKeydownHandler(data) { - return function(evt) { - if (inDesigner || !data.open) { - return; - } - data.selectedIdx = data.links.index(document.activeElement); - switch (evt.keyCode) { - case KEY_CODES.HOME: { - if (!data.open) - return; - data.selectedIdx = 0; - focusSelectedLink(data); - return evt.preventDefault(); - } - case KEY_CODES.END: { - if (!data.open) - return; - data.selectedIdx = data.links.length - 1; - focusSelectedLink(data); - return evt.preventDefault(); - } - case KEY_CODES.ESCAPE: { - close(data); - data.toggle.focus(); - 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); - return evt.preventDefault(); - } - case KEY_CODES.ARROW_LEFT: - case KEY_CODES.ARROW_UP: { - data.selectedIdx = Math.max(-1, data.selectedIdx - 1); - focusSelectedLink(data); - return evt.preventDefault(); - } - } - }; - } - function focusSelectedLink(data) { - if (data.links[data.selectedIdx]) { - data.links[data.selectedIdx].focus(); - } - } - function makeToggleKeydownHandler(data) { - var toggler = makeToggler(data, FORCE_CLOSE); - return function(evt) { - if (inDesigner) - return; - if (!data.open) { - switch (evt.keyCode) { - case KEY_CODES.ARROW_UP: - case KEY_CODES.ARROW_DOWN: { - return evt.stopPropagation(); - } - } - } - switch (evt.keyCode) { - case KEY_CODES.SPACE: - case KEY_CODES.ENTER: { - toggler(); - evt.stopPropagation(); - return evt.preventDefault(); - } - } - }; - } - function makeDropdownFocusOutHandler(data) { - return debounce(function(evt) { - var { - relatedTarget, - target - } = evt; - var menuEl = data.el[0]; - var menuContainsFocus = menuEl.contains(relatedTarget) || menuEl.contains(target); - if (!menuContainsFocus) { - close(data); - } - return evt.stopPropagation(); - }); - } - return api; - }); - } - }); - - // packages/shared/render/plugins/Form/webflow-forms.js - var require_webflow_forms = __commonJS({ - "packages/shared/render/plugins/Form/webflow-forms.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - 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; - 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(); - if (!inApp && !listening) { - addListeners(); - } - }; - function init() { - siteId = $("html").attr("data-wf-site"); - formUrl = "https://webflow.com/api/v1/form/" + siteId; - if (retro && formUrl.indexOf("https://webflow.com") >= 0) { - formUrl = formUrl.replace("https://webflow.com", "https://formdata.webflow.com"); - } - signFileUrl = `${formUrl}/signFile`; - $forms = $(namespace + " form"); - if (!$forms.length) { - return; - } - $forms.each(build); - } - function build(i, el) { - var $el = $(el); - var data = $.data(el, namespace); - if (!data) { - data = $.data(el, namespace, { - form: $el - }); - } - 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); - }); - 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"); - if (chimpRegex.test(action)) { - data.handler = submitMailChimp; - return; - } - if (action) { - return; - } - if (siteId) { - data.handler = true ? exportedSubmitWebflow : (() => { - const hostedSubmitHandler = null.default; - return hostedSubmitHandler(reset, loc, Webflow, collectEnterpriseTrackingCookies, preventDefault, findFields, alert, findFileUploads, disableBtn, siteId, afterSubmit, $, formUrl); - })(); - return; - } - disconnected(); - } - function addListeners() { - listening = true; - $doc.on("submit", namespace + " form", function(evt) { - var data = $.data(this, namespace); - if (data.handler) { - data.evt = evt; - data.handler(data); - } - }); - const CHECKBOX_CLASS_NAME = ".w-checkbox-input"; - const RADIO_INPUT_CLASS_NAME = ".w-radio-input"; - const CHECKED_CLASS = "w--redirected-checked"; - const FOCUSED_CLASS = "w--redirected-focus"; - const FOCUSED_VISIBLE_CLASS = "w--redirected-focus-visible"; - const focusVisibleSelectors = ":focus-visible, [data-wf-focus-visible]"; - const CUSTOM_CONTROLS = [["checkbox", CHECKBOX_CLASS_NAME], ["radio", RADIO_INPUT_CLASS_NAME]]; - $doc.on("change", namespace + ` form input[type="checkbox"]:not(` + CHECKBOX_CLASS_NAME + ")", (evt) => { - $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); - }); - $doc.on("change", namespace + ` form input[type="radio"]`, (evt) => { - $(`input[name="${evt.target.name}"]:not(${CHECKBOX_CLASS_NAME})`).map((i, el) => $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS)); - const $target = $(evt.target); - if (!$target.hasClass("w-radio-input")) { - $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); - } - }); - CUSTOM_CONTROLS.forEach(([controlType, customControlClassName]) => { - $doc.on("focus", namespace + ` form input[type="${controlType}"]:not(` + customControlClassName + ")", (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="${controlType}"]:not(` + customControlClassName + ")", (evt) => { - $(evt.target).siblings(customControlClassName).removeClass(`${FOCUSED_CLASS} ${FOCUSED_VISIBLE_CLASS}`); - }); - }); - } - 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); - } - function disableBtn(data) { - var btn = data.btn; - var wait = data.wait; - btn.prop("disabled", true); - if (wait) { - data.label = btn.val(); - btn.val(wait); - } - } - function findFields(form, result) { - var status = null; - result = result || {}; - 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); - name = encodeURIComponent(name); - var value = field.val(); - if (type === "checkbox") { - value = field.is(":checked"); - } else if (type === "radio") { - 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; - } - const trackingCookieNameMap = { - _mkto_trk: "marketo" - // __hstc: 'hubspot', - }; - function collectEnterpriseTrackingCookies() { - const cookies = document.cookie.split("; ").reduce(function(acc, cookie) { - const splitCookie = cookie.split("="); - const name = splitCookie[0]; - if (name in trackingCookieNameMap) { - const mappedName = trackingCookieNameMap[name]; - const 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\u2019re not a robot."; - } - return status; - } - function exportedSubmitWebflow(data) { - preventDefault(data); - afterSubmit(data); - } - function submitMailChimp(data) { - reset(data); - var form = data.form; - var payload = {}; - if (/^https/.test(loc.href) && !/^https/.test(data.action)) { - form.attr("method", "post"); - return; - } - preventDefault(data); - var status = findFields(form, payload); - if (status) { - return alert(status); - } - disableBtn(data); - 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]; - } - var url = data.action.replace("/post?", "/post-json?") + "&c=?"; - 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, - 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); - }); - } - function afterSubmit(data) { - var form = data.form; - var redirect = data.redirect; - var success = data.success; - if (success && redirect) { - Webflow.location(redirect); - return; - } - data.done.toggle(success); - data.fail.toggle(!success); - if (success) { - data.done.focus(); - } else { - data.fail.focus(); - } - form.toggle(!success); - 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"); - if (!inApp) { - $label.on("click keydown", function(e) { - if (e.type === "keydown" && e.which !== 13 && e.which !== 32) { - return; - } - e.preventDefault(); - $input.click(); - }); - } - $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; - } - $defaultWrap.toggle(false); - $errorWrap.toggle(false); - $uploadingWrap.toggle(true); - $uploadingWrap.focus(); - $fileNameEl.text(file.name); - if (!isUploading()) { - disableBtn(form); - } - form.fileUploads[i].uploading = true; - signFile(file, afterSign); - }); - 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); - } - $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: `${signFileUrl}?${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, - data: formData, - processData: false, - contentType: false - }).done(function() { - cb(null); - }).fail(function(err) { - cb(err); - }); - } - return api; - }); - } - }); - - // packages/shared/render/plugins/Navbar/webflow-navbar.js - var require_webflow_navbar = __commonJS({ - "packages/shared/render/plugins/Navbar/webflow-navbar.js"(exports, module) { - "use strict"; - var Webflow = require_webflow_lib(); - var IXEvents = require_webflow_ix2_events(); - 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 = $(); - api.ready = api.design = api.preview = init; - api.destroy = function() { - menuSibling = $(); - removeListeners(); - if ($navbars && $navbars.length) { - $navbars.each(teardown); - } - }; - function init() { - designer = inApp && Webflow.env("design"); - inEditor = Webflow.env("editor"); - $body = $(document.body); - $navbars = $doc.find(namespace); - if (!$navbars.length) { - return; - } - $navbars.each(build); - 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); - 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); - var navBrandLink = $el.find(".w-nav-brand"); - if (navBrandLink && navBrandLink.attr("href") === "/" && navBrandLink.attr("aria-label") == null) { - navBrandLink.attr("aria-label", "home"); - } - data.button.attr("style", "-webkit-user-select: text;"); - 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"); - data.el.off(namespace); - data.button.off(namespace); - data.menu.off(namespace); - configure(data); - 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)); - } - 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 || {}; - var animation = config.animation = data.el.attr("data-animation") || "default"; - config.animOver = /^over/.test(animation); - config.animDirect = /left$/.test(animation) ? -1 : 1; - 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"); - 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); - 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(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; - } - 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); - 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) { - return debounce(function() { - data.open ? close(data) : open(data); - }); - } - function navigate(data) { - return function(evt) { - var link = $(this); - var href = link.attr("href"); - if (!Webflow.validClick(evt.currentTarget)) { - evt.preventDefault(); - return; - } - if (href && href.indexOf("#") === 0 && data.open) { - close(data); - } - }; - } - function outside(data) { - if (data.outside) { - $doc.off("click" + namespace, data.outside); - } - return function(evt) { - var $target = $(evt.target); - if (inEditor && $target.closest(".w-editor-bem-EditorOverlay").length) { - return; - } - 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); - var collapsed = data.collapsed = data.button.css("display") !== "none"; - if (data.open && !collapsed && !designer) { - close(data, true); - } - if (data.container.length) { - var updateEachMax = updateMax(data); - data.links.each(updateEachMax); - data.dropdowns.each(updateEachMax); - } - if (data.open) { - setOverlayHeight(data); - } - } - var maxWidth = "max-width"; - function updateMax(data) { - var containMax = data.container.css(maxWidth); - if (containMax === "none") { - containMax = ""; - } - return function(i, link) { - link = $(link); - link.css(maxWidth, ""); - 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(); - if (!designer) { - $doc.on("click" + namespace, data.outside); - } - if (immediate) { - complete(); - return; - } - var transConfig = "transform " + config.duration + "ms " + config.easing; - if (data.overlay) { - menuSibling = data.menu.prev(); - data.overlay.show().append(data.menu); - } - 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; - } - 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]); - $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(); - if (config.animOver) { - tram(data.menu).add(transConfig).start({ - x: menuWidth * config.animDirect - }).then(complete); - return; - } - 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) { - menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); - data.overlay.attr("style", "").hide(); - } - data.el.triggerHandler("w-close"); - data.button.attr("aria-expanded", "false"); - } - } - return api; - }); - } - }); - - // - require_webflow_brand(); - require_webflow_focus_visible(); - require_webflow_focus(); - require_webflow_ix2_events(); - require_webflow_ix2(); - require_webflow_links(); - require_webflow_scroll(); - require_webflow_touch(); - require_webflow_dropdown(); - require_webflow_forms(); - require_webflow_navbar(); -})(); -/*! - * tram.js v0.8.2-global - * Cross-browser CSS3 transitions in JavaScript - * https://github.com/bkwld/tram - * MIT License - */ -/*! - * Webflow._ (aka) Underscore.js 1.6.0 (custom build) - * - * http://underscorejs.org - * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Underscore may be freely distributed under the MIT license. - * @license MIT - */ -/*! Bundled license information: - -timm/lib/timm.js: - (*! - * Timm - * - * Immutability helpers with fast reads and acceptable writes. - * - * @copyright Guillermo Grau Panea 2016 - * @license MIT - *) -*/ -/** - * ---------------------------------------------------------------------- - * Webflow: Interactions 2.0: Init - */ -Webflow.require('ix2').init( -{"events":{"e-16":{"id":"e-16","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GROW_BIG_EFFECT","instant":false,"config":{"actionListId":"growBigIn","autoStopEventId":"e-17"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6b3b7785-d872-c313-8cb2-d9ee8f79f15f","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6b3b7785-d872-c313-8cb2-d9ee8f79f15f","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1657215331495},"e-18":{"id":"e-18","name":"","animationType":"custom","eventTypeId":"DROPDOWN_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-19"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"657a1bfb75745832a0447e9b|c11e0153-d2be-bd31-f36e-cb5e11f0583e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"657a1bfb75745832a0447e9b|c11e0153-d2be-bd31-f36e-cb5e11f0583e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658428765702},"e-19":{"id":"e-19","name":"","animationType":"custom","eventTypeId":"DROPDOWN_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-18"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"657a1bfb75745832a0447e9b|c11e0153-d2be-bd31-f36e-cb5e11f0583e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"657a1bfb75745832a0447e9b|c11e0153-d2be-bd31-f36e-cb5e11f0583e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658428765703},"e-20":{"id":"e-20","name":"","animationType":"preset","eventTypeId":"DROPDOWN_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-21"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".accordion-1","originalId":"657a1bfb75745832a0447e9b|f53f5221-f3f3-51a3-c9e4-17b327b578fe","appliesTo":"CLASS"},"targets":[{"selector":".accordion-1","originalId":"657a1bfb75745832a0447e9b|f53f5221-f3f3-51a3-c9e4-17b327b578fe","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658429188905},"e-21":{"id":"e-21","name":"","animationType":"preset","eventTypeId":"DROPDOWN_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-20"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".accordion-1","originalId":"657a1bfb75745832a0447e9b|f53f5221-f3f3-51a3-c9e4-17b327b578fe","appliesTo":"CLASS"},"targets":[{"selector":".accordion-1","originalId":"657a1bfb75745832a0447e9b|f53f5221-f3f3-51a3-c9e4-17b327b578fe","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658429188905},"e-22":{"id":"e-22","name":"","animationType":"preset","eventTypeId":"DROPDOWN_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-23"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"657a1bfb75745832a0447e9b|d305cf2c-fe58-8830-9686-ab1e21722993","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"657a1bfb75745832a0447e9b|d305cf2c-fe58-8830-9686-ab1e21722993","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658429310755},"e-23":{"id":"e-23","name":"","animationType":"preset","eventTypeId":"DROPDOWN_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-22"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"657a1bfb75745832a0447e9b|d305cf2c-fe58-8830-9686-ab1e21722993","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"657a1bfb75745832a0447e9b|d305cf2c-fe58-8830-9686-ab1e21722993","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658429310755},"e-24":{"id":"e-24","name":"","animationType":"preset","eventTypeId":"DROPDOWN_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-25"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"657a1bfb75745832a0447e9b|d91ad92e-dec7-5e09-25dd-85a76fb8c0df","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"657a1bfb75745832a0447e9b|d91ad92e-dec7-5e09-25dd-85a76fb8c0df","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658429409311},"e-25":{"id":"e-25","name":"","animationType":"preset","eventTypeId":"DROPDOWN_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-24"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"657a1bfb75745832a0447e9b|d91ad92e-dec7-5e09-25dd-85a76fb8c0df","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"657a1bfb75745832a0447e9b|d91ad92e-dec7-5e09-25dd-85a76fb8c0df","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658429409311},"e-26":{"id":"e-26","name":"","animationType":"preset","eventTypeId":"DROPDOWN_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-27"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"657a1bfb75745832a0447e9b|46100b5a-431e-1956-57e4-c396a4008dda","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"657a1bfb75745832a0447e9b|46100b5a-431e-1956-57e4-c396a4008dda","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658429496186},"e-27":{"id":"e-27","name":"","animationType":"preset","eventTypeId":"DROPDOWN_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-26"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"657a1bfb75745832a0447e9b|46100b5a-431e-1956-57e4-c396a4008dda","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"657a1bfb75745832a0447e9b|46100b5a-431e-1956-57e4-c396a4008dda","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1658429496186}},"actionLists":{"a":{"id":"a","title":"Accordion opens","actionItemGroups":[{"actionItems":[{"id":"a-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"657a1bfb75745832a0447e9b|1b6ea80e-2b58-2dc2-0004-998652388ca8"},"heightValue":80,"widthUnit":"PX","heightUnit":"px","locked":false}}]},{"actionItems":[{"id":"a-n-3","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"657a1bfb75745832a0447e9b|1b6ea80e-2b58-2dc2-0004-998652388ca8"},"widthUnit":"PX","heightUnit":"AUTO","locked":false}}]}],"useFirstGroupAsInitialState":true,"createdOn":1658422021402},"a-2":{"id":"a-2","title":"Accordion closes","actionItemGroups":[{"actionItems":[{"id":"a-2-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"657a1bfb75745832a0447e9b|c11e0153-d2be-bd31-f36e-cb5e11f0583e"},"heightValue":80,"widthUnit":"PX","heightUnit":"px","locked":false}}]},{"actionItems":[{"id":"a-2-n-2","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"657a1bfb75745832a0447e9b|c11e0153-d2be-bd31-f36e-cb5e11f05840"},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1658422505369},"growBigIn":{"id":"growBigIn","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0,"yValue":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":1,"yValue":1}},{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}}]}]}},"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/cent.webflow/privacy-policy.html b/cent.webflow/privacy-policy.html deleted file mode 100644 index c0a8638..0000000 --- a/cent.webflow/privacy-policy.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - Privacy Policy - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
Privacy Policy & Terms of Use
-
-
-
-
-
Cent Finance (“We”) are committed to protecting and respecting your privacy. This policy and any other documents referred to in it, sets out the basis on which any personal data we collect from you, or that you provide to us, will be processed by us. Please read the following carefully to understand our views and practices regarding your personal data and how we will treat it. By visiting cent.finance , you are accepting and consenting to the practices described in this policy. For the purpose of the Data Protection Act 1998 (the “Act”) and the General Data Protection Regulation 2018 (the “GDPR”), the data controller is Cent Finance. Our nominated representative for the purpose of the Act is Cent Finance.
-
-
-
-

1. Information we collect from you

We will collect and process the following data about you:

a) Information you give us: This is information about you that you give us by filling in forms on our site, cent.finance (“our site”) or by corresponding with us by phone, e-mail or otherwise. It includes information you provide when you use our site, submit contact forms or other social media functions on our site, enter a competition, promotion or survey, and when you report a problem with our site. The information you give us may include your name, address, e-mail address and phone number, personal description.

b) Information we collect about you: With regard to each of your visits to our site we will automatically collect the following information: Technical information, including the Internet protocol (IP) address used to connect your computer to the Internet, your login information, browser type and version, time zone setting, browser plug-in types and versions, operating system and platform; Information about your visit, including the full Uniform Resource Locators (URL), clickstream to, through and from our site (including date and time), products you viewed or searched for, page response times, download errors, length of visits to certain pages, page interaction information (such as scrolling, clicks, and mouse-overs), methods used to browse away from the page, and any number or email used to reach our customer service.

2. Cookies

Our website uses cookies to distinguish you from other users of our website. This helps us to provide you with a good experience when you browse our website and also allows us to improve our site.

3. Uses made of the information

We use information held about you in the following ways:

a) Information you give to us. We will use this information: To carry out our obligations arising from any contracts entered into between you and us and to provide you with the information, products and services that you request from us; To provide you with information about other goods and services we offer or enquired about; To provide you with a response to any enquiry submitted; To ensure that content from our site is presented in the most effective manner for you and for your computer.

b) Information we collect about you. We will use this information:To administer our site and for internal operations, including troubleshooting, data analysis, testing, research, statistical and survey purposes; To improve our site to ensure that content is presented in the most effective manner for you and for your computer; To allow you to participate in interactive features of our service, when you choose to do so; As part of our efforts to keep our site safe and secure; To make suggestions and recommendations to you and other users of our site about goods or services that may interest you or them.

c) Information we receive from other sources.We will combine this information with information you give to us and information we collect about you. We will use this information and the combined information for the purposes set out above (depending on the types of information we receive).

4. Disclosure of your information

You agree that we have the right to share your personal information with. We will use this information: Any member of our group, which means our subsidiaries, our ultimate holding company and its subsidiaries, as defined in section 1159 of the UK Companies Act 2006. Any other member of the Cent Finance web-based platform. Selected third parties including: Business partners, suppliers and sub-contractors for the performance of any contract we enter into with you; Analytics and search engine providers that assist us in the improvement and optimisation of our site.We will disclose your personal information to third parties: If Cent Finance or substantially all of its assets are acquired by a third party, in which case personal data held by it about its customers will be one of the transferred assets.If we are under a duty to disclose or share your personal data in order to comply with any legal obligation, or in order to enforce or to protect the rights, property, or safety of Cent Finance, our customers, or others. This includes exchanging information with other companies and organisations for the purposes of fraud protection and credit risk reduction.

5. Where we store your personal data

The data that we collect from you may be transferred to, and stored at, a destination outside the European Economic Area (“EEA”). It may also be processed by staff operating outside the EEA who work for us or for one of our suppliers. By submitting your personal data, you agree to this transfer, storing or processing. We will take all steps reasonably necessary to ensure that your data is treated securely and in accordance with this privacy policy. All information you provide to us is stored on a third-parties secure server. Unfortunately, the transmission of information via the internet is not completely secure. Although we will do our best to protect your personal data, we cannot guarantee the security of your data transmitted to our site; any transmission is at your own risk. Once we have received your information, we will use strict procedures and security features to try to prevent unauthorised access.

6. Your rights

You have the qualifying right to: Access any of your personal data we hold; Remove or amend your personal data; Opt-out of marketing communications; Determine how your personal data is processed, Make a complaint about how your personal data is treated by us. We will usually inform you (before collecting your data) if we intend to use your data for such purposes or if we intend to disclose your information to any third party for such purposes. You can also exercise your data rights at any time by contacting us at hi@Cent.Finance Our site may, from time to time, contain links to and from the websites of our partner networks, advertisers and affiliates. If you follow a link to any of these websites, please note that these websites have their own privacy policies and that we do not accept any responsibility or liability for them or their policies. Please check these sites and their policies before you submit any personal data to these websites.

7. Access to information

The Act gives you the right to access information held about you. Your right of access can be exercised in accordance with the Act. Any access request may be subject to a fee to meet our costs in providing you with details of the information we hold about you.

8. Changes to our privacy policy

Any changes we make to our privacy policy in the future will be posted on this page and, where appropriate, notified to you by e-mail. Please check back frequently to see any updates or changes to our privacy policy.

9. Contact:

Questions, comments and requests regarding this privacy policy are welcomed and should be addressed to hi@Cent.Finance

All rights reserved.

-
-
-
-
-
-
-

Cent Finance, LastUpdated: December 14, 2023

Cent Finance, and/or its affiliates (“we,” “our,” or “us”) provides its software services through its mobile applications and products (collectively the“Services” or “Cent Finance”). Before using our Services, please read the Terms of Service (the “Terms”) carefully, along with any other policies or notices on our website or applications.


AGREEMENT TO TERMS

By accessing or using any or all of the Services, you expressly acknowledge that

(i) you have read and understood these Terms;
(ii) you agree to be bound by these Terms; and
(iii) you are legally competent to enter into these Terms.

If you do not agree to be bound by these Terms or any updates or modifications to these Terms, you may not access or use our Services.

WE DO NOT PROVIDE INVESTMENT OR FINANCIAL ADVICE OR CONSULTING SERVICES. WE ARE SOLELY THE PROVIDER OF Cent Finance AND WE DO NOT ADVISE OR MAKE RECOMMENDATIONS ABOUT ENGAGING IN DIGITAL ASSET TRANSACTIONS OR OPERATIONS. DECISIONS TO ENGAGE IN TRANSACTIONS OR PERFORM OPERATIONS INVOLVING DIGITAL ASSETS SHOULD BE TAKEN ON YOUR OWN ACCORD.

PRIVACY POLICY

For an explanation on how we collect, use and disclose information from ourusers please see our Privacy Policy at https://Cent.Finance/privacy-policy.html
You acknowledge and agree that your use of the Services is subject to, and that we can collect, use and/or disclose your information (including any personal data you provide to us) in accordance with our Privacy Policy.

UPDATES TO TERMS OR SERVICES

We reserve the right to update or modify these Terms at any time at our sole discretion. If we do so, we’ll let you know by either posting the revised Terms on our website, on our mobile application or through other methods of communication which we deem reasonable. Such revised Terms as posted will take effective immediately, unless otherwise indicated. You should regularly check our website to inform yourself of any such changes and decide whether or not to accept the revised version of these Terms. If you continue to use Cent Finance following any update or modification of the Terms you shall be deemed to have accepted the revised Terms. If you do not agree to the Terms or any update or modification to the Terms, you must cease to access or use our Services. Our Services are evolving over time, we may change or discontinue all or any part of theServices, at any time and without prior notice, and at our sole discretion.

ELIGIBILITY

To be eligible to use Cent Finance:

(i) you must be at least eighteen (18) years old and legally competent to enterinto these Terms;
(ii) you must not be a resident of sanctioned jurisdictions according to anytrade embargoes, UN Security CouncilResolutions (“UNSCR”) or HM Treasury's financial sanctions regime; and
(iii) you must not be currently the subject of or subject to economic sanctions such as the United Nations Security Council Sanctions List, the list of specially designated nationals maintained by OFAC, the denied persons or entity list of the U.S. Department of Commerce or any similar list maintained by any other relevant sanctions authority. If you are using our Services on behalf of a legal entity, you further represent and warrant that:
(iv) the legal entity is duly organized and validly existing under theapplicable laws of the jurisdiction of its organization; and
(v) you are duly authorized by such legal entity to act on its behalf. You canonly use our Services if permitted under the laws of your jurisdiction. For the avoidance of doubt, you may not use our Services if you are located in, or a citizen or resident of any state, country, territory or other jurisdiction where your use of our Services would be illegal or otherwise violate any applicable laws.

Please make sure that these Terms are in compliance with all laws, rules, and regulations that apply to you. You agree that you are only using our Services with legally-obtained funds that rightfully belong to you. By using Cent Finance, you represent and warrant that you meet all eligibility requirements that we outline in these Terms. We may still refuse to let certain people accessor use Cent Finance, however, and we reserve the right to change our eligibility criteria at any time.



Accuracy of Information Provided by User

You represent and warrant that any information you provide via the Services is accurate and complete. You accept and acknowledge that we are not responsible for any errors or omissions that you make in connection with any transaction initiated via the Services. We strongly encourage you to review your details carefully before attempting a transaction.



Taxes

It is your responsibility to determine what, if any, taxes apply to the transactions that you have submitted transaction details for via the Services, and it is your responsibility to report and remit the correct tax to the appropriate tax authority. You agree that we are not responsible for determining whether taxes apply to your transactions or for collecting, reporting, withholding, or remitting any taxes arising from any DigitalAsset-related transactions.

THIRD PARTY SERVICES AND CONTENT

In no event shall a description or reference to a third party’s product orservice(including, but not limited to, providing a description or reference viahyperlink) be construed as an endorsement or promotion of such third partyproducts or services by us. We retain the exclusive right to add to, modify, orcancel the availability of any Third Party Service. You may agree to receivepush notifications from Third Party Content providers. In order to receive pushnotifications, you must opt in to the service. Push notifications will not be automatically enabled on your device for Third Party Content. We do not control, endorse, or adopt any Third Party Content shared through push notifications, and will have no responsibility for Third Party Content including, but not limited to, token availability and/or sales. If, to the extent permitted by Cent Finance, you grant express permission to a third party to access or connect to your Cent Finance account, either through the third party’s product or service or through Cent Finance, you acknowledge that granting permission to a third party to take specific actions on your behalf does not relieve you of any of your responsibilities under these Terms. You are fully responsible for all acts or omissions of any third party with access to your wallet.

INTELLECTUAL PROPERTY

License

As long as you agree to and comply with the present Terms, we grant you a non-exclusive, non-sublicensable and non-transferable license to use Cent Finance for your personal use or internal business use only. Except as otherwise expressly permitted in these Terms, you will not:

(a) reproduce, modify, adaptor create derivative works of any part of Cent Finance;
(b) rent, lease, distribute, sell, sublicense, transfer, or provide access to Cent Finance;
(c) use Cent Finance for the benefit of any third party;
(d) incorporate Cent Finance into a product or service you provide to a third party without our prior written consent;
(d) circumvent mechanisms in Cent Finance intended to limit your use;
(f) reverse engineer, disassemble, decompile, translate, or otherwise seek to obtain or derive the source code, including images and texts, underlying ideas, algorithms, file formats or non-public APIs to Cent Finance, except to the extent expressly permitted by applicable law (and then only upon advance notice to us);
(g) remove or obscure any proprietary or other notices contained in Cent Finance
(h) use Cent Finance for competitive analysis, as part of any other software or project of any kind or to build competitive products.

Feedback

From time to time, you may choose to submit feedback to us. We may, in connection with Cent Finance, freely use, copy, disclose, license, distribute and exploit any feedback in any manner without any obligation, royalty or restriction based on intellectual property rights or otherwise. No feedback will be considered your Confidential Information, and nothing in thisAgreement limits our right to independently use, develop, evaluate, or market products or services, whether incorporating feedback or otherwise.

Open Source

Cent Finance was developed under a GPL open source license. Information regarding Cent Finance’s current software can be found at https://Cent.Finance software development is community-based, it can be accessed, used, and shared, in modified or unmodified form, by anyone. Please be aware that GPL is a copy left license, which means that any derivative works can only be distributed under the same license terms as the original software. If you have any questions, you should review GNU’s terms and conditions at https://www.gnu.org/licenses/gpl-3.0.en.html.

Content

Cent Finance may contain copyrighted material and trademarks including, but not limited to, text and graphics (the “Content”), which is protected by copyright law, registered and unregistered trademarks, and other intellectual property rights. Unless otherwise provided, we exclusively own the Content. Your use of Cent Finance does not grant you any right, title, or interest in the Content. You agree that you will not copy, reproduce, modify, republish, upload, post, transmit, distribute, collect, sell, license, create derivative works from, or, in any other way, whether manual or automated, exploit any of the Content, in whole or in part.

YOUR USE OF Cent Finance

You agree that you will not violate any laws when using our Services. Thisincludes any local, provincial, state, federal, national, or international lawsthat may apply to you. You agree that you will not use our Services to pay for,support, or otherwise engage in any illegal activities including, but notlimited to, illegal or otherwise prohibited trade, illegal gambling, fraud,money laundering, or terrorist activities. For the avoidance of doubt, if wediscover that you have violated these Terms and/or any applicable laws orregulatory requirements, including, but not limited to, the Bank Secrecy Act,we reserve all of our rights and remedies under these Terms and at law and will take all necessary actions against you.

You further agree that:

(i) you will not encourage or induce any third party to engage in any of theactivities prohibited under this Section;
(ii) you will not impersonate someone or use or attempt to use another user’swallet without authorization or use our Services in any manner that couldinterfere, disrupt, negatively affect, or inhibit other users from fullyenjoying it;
(iii) you will not distribute any virus or other harmful computer code through Cent Finance;
(iv) you will not take any action that may impose an unreasonable or disproportionately large load on our or any of our third party providers’ infrastructure;
(v) you will not reverse engineer or bypass, circumvent, or attempt to bypass or circumvent any measures that we may use to prevent or restrict access to the Services including, without limitation, other accounts, computer systems, or networks connected to the Services; and
(vi) you will not violate, misappropriate or infringe the rights of Cent Finance, our users, or others, including privacy, publicity, intellectual property, or other proprietary rights. Although we have no obligation to monitor any user content, we have absolute discretion to take any necessary actions any time and for any reason without notice in the event you breach these Terms.

Any use of Cent Finance other than as specifically authorized in these Terms, without our prior written permission, is strictly prohibited and we shall have the right to terminate your license to use Cent Finance immediately without notice. You acknowledge and accept that by using the Services, you may be exposed to content that is offensive, indecent, or objectionable. We take no responsibility and assume no liability for any user content, including any loss or damage to any of your user content.


LIMITATION OF LIABILITY & DISCLAIMER OF WARRANTIES

You acknowledge and agree that we have no control over, and no duty to take any action regarding:

(i) failures, disruptions, errors, or delays in the processing of Digital Assets that you may experience while using the Services;
(ii) the risk of failure of hardware, software, and Internet connections;
(iii) the risk of malicious software being introduced or found in the software underlying Cent Finance;
(iv) the risk that third parties may obtain unauthorized access to information stored within your wallet, including, but not limited to your wallet address, private key, and Secret Phrase; and
(v) the risk of unknown vulnerabilities in or unanticipated changes to the applicable blockchain networks.

You release us from all liability related to any losses, damages, or claims arising from:
(a) user error such as forgotten passwords, incorrectly constructed transactions, or mistyped Digital Asset addresses;
(b) server failure or data loss;
(c) unauthorized access to the Cent Finance application;
(d) bugs or other errors in the Cent Finance software; and
(e) any unauthorized third party activities, including, but not limited to, the use of viruses, phishing, brute forcing, or other means of attack against Cent Finance. We make no representations concerning any Third Party Content contained in or accessed through our Services. Any other terms, conditions, warranties, or representations associated with such content, are solely between you and such organizations and/or individuals.

Limitation of Liability

TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL WE, OR OUR AFFILIATES, OR ANY OF OUR RESPECTIVE SHAREHOLDERS, MEMBERS, DIRECTORS,OFFICERS,EMPLOYEES, ATTORNEYS, AGENTS, REPRESENTATIVES, SUPPLIERS OR CONTRACTORS BE LIABLE FOR ANY DIRECT DAMAGES OR INCIDENTAL, INDIRECT, SPECIAL,PUNITIVE,CONSEQUENTIAL OR SIMILAR DAMAGES OR LIABILITIES WHATSOEVER(INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF DATA, INFORMATION, REVENUE,PROFITS OR OTHER BUSINESSES OR FINANCIAL BENEFITS) WHETHER UNDER CONTRACT,TORT, NEGLIGENCE,STATUTE, STRICT LIABILITY OR OTHER THEORY EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, ARISING OUT OF YOUR ACCESS ORUSE OF THE SERVICES,INCLUDING, BUT NOT LIMITED TO: ANY UNAUTHORIZED USE OFYOUR WALLET ADDRESS AND/OR PRIVATE KEY DUE TO YOUR FAILURE TO MAINTAIN THE CONFIDENTIALITY OF YOUR WALLET, ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SERVICES OR ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE THAT ARE FOUND IN THE TelosSpark SOFTWARE OR THAT MAY BE TRANSMITTED TO OR THROUGH OUR SERVICES BY ANY THIRD PARTY (REGARDLESS OF THE SOURCE OF ORIGINATION); ANY ACTIONS WE TAKE ORFAIL TO TAKE AS A RESULT OF COMMUNICATIONS YOU SEND TO US;HUMAN ERRORS;TECHNICAL MALFUNCTIONS; FAILURES, INCLUDING PUBLIC UTILITY OR TELEPHONEOUTAGES; OMISSIONS, INTERRUPTIONS, LATENCY, DELETIONS OR DEFECTS OFANY DEVICEOR NETWORK, PROVIDERS, OR SOFTWARE (INCLUDING, BUT NOT LIMITED TO,THOSE THAT DONOT PERMIT PARTICIPATION IN OUR SERVICES); ANY INJURY OR DAMAGE TO COMPUTER EQUIPMENT; INABILITY TO FULLY ACCESS OUR WEBSITE, Cent.Finance OR THE SERVICES OR ANY OTHER WEBSITE; THEFT, TAMPERING, DESTRUCTION, OR UNAUTHORIZED ACCESS TO, IMAGES OR OTHER CONTENT OF ANY KIND; DATA THAT IS PROCESSED LATE OR INCORRECTLY OR IS INCOMPLETE OR LOST; TYPOGRAPHICAL, PRINTING OR OTHER ERRORS,OR ANY COMBINATION THEREOF; OR ANY OTHER MATTER RELATING TOTHE WEBSITE, Cent Finance APPLICATION OR ANY OTHER ASPECT OF THE SERVICES. SOME JURISDICTIONS DONOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TOYOU. IN NO EVENT SHALL OUR LIABILITY TO YOU FOR ALL DAMAGES (OTHER THAN MAY BE REQUIRED BY APPLICABLE LAW IN CASES INVOLVING PERSONAL INJURY) EXCEED THE AMOUNT OF ONE HUNDRED U.S. DOLLARS ($USD100.00) OR ITS EQUIVALENT IN THE LOCAL CURRENCY OFTHE APPLICABLE JURISDICTION.

Warranty Disclaimer

Cent Finance IS PROVIDED "AS IS" AND “AS AVAILABLE”, AND WITHOUT WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY LAW, WE DISCLAIM ALL REPRESENTATIONS AND WARRANTIES, EXPRESS OR IMPLIED, RELATING TO THE SERVICES AND UNDERLYING SOFTWARE OR ANY ASPECT OF THE INFORMATION, CONTENT, OR THE SERVICES, WHETHER PROVIDED OR OWNED BY US, OR BY ANY THIRD PARTY OR CONTAINED IN ANY THIRD PARTY MATERIALS OR ON ANY THIRD PARTY WEBSITES ACCESSIBLE OR LINKED TO OUR WEBSITE OR THE SERVICES, INCLUDING WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT,FREEDOM FROM COMPUTER VIRUS, AND ANY IMPLIED WARRANTIES ARISING FROM COURSE OF DEALING, COURSE OF PERFORMANCE, OR USAGE IN TRADE, ALLOF WHICH ARE EXPRESSLY DISCLAIMED. IN ADDITION, WE DO NOT REPRESENT OR WARRANT THAT THE CONTENT ACCESSIBLE VIA THE SERVICES IS ACCURATE, COMPLETE, AVAILABLE,CURRENT, FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS, OR THAT THE RESULTS OF USING THE SERVICES WILL MEET YOUR REQUIREMENTS. WE DO NOT MAKE ANY REPRESENTATIONS OR GIVE WARRANTIES THAT THE ACCESS TO Cent Finance OR USEOF THE SERVICES AND THE FUNCTIONALITY THEREOF WILL BE CONTINUOUS,UNINTERRUPTED, TIMELY OR ERROR-FREE. SOME STATES DO NOT ALLOW THE DISCLAIMER OF IMPLIED WARRANTIES, SO THE FOREGOING DISCLAIMERS MAY NOT APPLY TO YOU.

INDEMNITY

To the extent permitted by applicable law, you agree to defend, indemnify, and hold harmless us, our affiliates, and our respective shareholders, members, directors, officers, employees, attorneys, agents, representatives, suppliers and contractors, from and against any and all claims, damages, obligations, losses, liabilities, tort, costs or debt, and expenses (including, but not limited to, attorney’s fees) arising from: (a) your use of and access to the Services; (b) any feedback or submissions you provide to us concerning Cent Finance; (c) violation of any Third Party Content (d) your violation of the Terms; or (e) your violation of any law, rule, or regulation, or the rights of any third party.

TIME LIMITATION ON CLAIMS

You agree that any claim you may have arising out of or related to your relationship with us must be filed within one year after such claim arises, otherwise, your claim is permanently barred.

GOVERNING LAW

No matter where you’re located, the laws of England and Wales will govern theseTerms and the parties’ relationship as if you signed these Terms in England or Wales. If any provisions of these Terms are inconsistent with any applicable law, those provisions will be superseded or modified only to the extent such provisions are inconsistent. The parties agree to submit to the courts of England andWales for exclusive jurisdiction of any dispute arising out of or related to your use of the Services or your breach of these Terms. You waive any objection based on lack of personal jurisdiction, place of residence, improper venue, or forum non convenience in any such action.

NOTE TO INTERNATIONAL USERS

If you are a user accessing or using our Services from a region with laws orregulations governing personal data collection, use, and disclosure that differfrom the laws of England and Wales, please be advised that we do not collect orprocess your personal data, except as provided for in our Privacy Policy.

TERMINATION

In the event of termination concerning your license to use Cent Finance, your obligations under this Agreement will still continue. Your access to the funds in your Wallet after termination will depend on your access to your backup of your Wallet address and private key.

DISCONTINUANCE OF SERVICES

We may, in our sole discretion and without cost to you, with or without prior notice, and at any time, modify or discontinue, temporarily or permanently, any portion of our Services. You are solely responsible for storing outside of theServices a backup of any wallet address and private key pair that you maintain in your wallet. Maintaining an external backup of any wallet address and private key pairs associated with your wallet will allow you to access the blockchain network upon which your wallet is secured. Such a backup will allow you to fully restore your wallet at any time without cost or loss of your Digital Assets. If you do not maintain a backup of your wallet data outside of the Services, you will not be able to access the Digital Assets associated with your wallet. Cent Finance shall not be held responsible or liable for any loss of Digital Assets in the event that we discontinue all or any part of the Services.

NO WAIVER

Our failure to exercise or delay in exercising any right, power, or privilegeunder this Agreement shall not operate as a waiver; nor shall any single orpartial exercise of any right, power, or privilege preclude any other or further exercise thereof. The waiver of any such right or provision will be effective only if in writing and signed by a duly authorized representative of us. Except as expressly set forth in this Agreement, the exercise by either party of any of its remedies under this Agreement will be without prejudice to its other remedies under this Agreement or otherwise.

SEVERABILITY

If it turns out that any part of this Agreement is invalid, void, or for any reason unenforceable, that term will be deemed severable and limited or eliminated to the minimum extent necessary. The limitation or elimination of the term shall not affect or impair the validity or enforceability of any remaining part of that term, clause or provision or any other terms, clauses or provisions of these Terms.

FORCE MAJEURE

We shall not be held liable for any delays, failure in performance, or interruptions of service which result directly or indirectly from any cause or condition beyond our reasonable control, including but not limited to: any delay or failure due to any acts of God, acts of civil or military authorities, acts of terrorism, civil or industrial disturbances, blockages, embargoes, war, strikes or other labor disputes, fire, earthquakes, storms or other nature-related events, interruption in electrical telecommunications orInternet services or network provider services, failure of hardware equipment and/or software or other utility failures, smart contract bugs or weaknesses, technological changes, changes in interest rates or other monetary conditions, and, for the avoidance of doubt, changes to any blockchain-related protocol, other catastrophe, or any other occurrences which are beyond our reasonable control, and shall not affect the validity and enforceability of any remaining provisions. If we are unable to perform our Services outlined in the Terms due to factors beyond our control, including, but not limited to, the aforementioned force majeure events or changes in applicable laws and/or sanctions policies, we shall not be liable for the Services provided under these Terms during the time period coincident with the event in question.

ASSIGNMENT

You agree that we may assign any of our rights and/or transfer, sub-contract, or delegate any of our obligations under these Terms without any notice or consent from you. These Terms will bind and inure to the benefit of the parties, their successors and permitted assigns. Your agreement to these Terms is personal to you and you may not transfer or assign it to any third party.

NO THIRD PARTY BENEFICIARIES

You agree that, except as otherwise expressly provided in these Terms, there shall be no third party beneficiaries to the Terms.

ENTIRE AGREEMENT

This Agreement sets forth the entire understanding and agreement as to the subject matter here of and supersedes any and all prior discussions, agreements, and understandings of any kind (including, without limitation, any prior versions of the Terms) and every nature between us. Except as provided for above, any modification to these Terms must be in writing and must be signed by both parties.

NOTICES

Any notices or other communications provided by us under these Terms, including those regarding modifications to it will be given by posting to the Services and/or through other electronic communication. You agree and consent to receiving electronically all communications, agreements, documents, notices and disclosures that we provide in connection with your account and your use of thenServices.

QUESTIONS OR COMMENTS

If you have any questions relating to these Terms, your rights and obligations arising from these Terms and/or your use of Cent Finance and our Services or any other matter please send us a message on our contact page.

Questions, comments and requests regarding this privacy policy are welcomed and should be addressed to hi@Cent.Finance

All rights reserved

-
-
-
-
-
-
- -
-
- - - - \ No newline at end of file