diff --git a/aearascapes/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js b/aearascapes/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js new file mode 100644 index 0000000..3e95a6c --- /dev/null +++ b/aearascapes/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js @@ -0,0 +1,33 @@ +/* + * Copyright 2016 Small Batch, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +/* Web Font Loader v1.6.26 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,d){setTimeout(d,b.f)});Promise.race([e,d]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a= +P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)}; +function ma(a,b,c){for(var d in S)if(S.hasOwnProperty(d)&&b===a.f[S[d]]&&c===a.f[S[d]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=U()&&ma(a,b,c));d?q()-a.A>=a.w?U()&&ma(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)}; +W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,d,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)}; +function ra(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=d||null||{};if(0===c.length&&f)M(b.a);else{b.f+=c.length;f&&(b.j=f);var h,m=[];for(h=0;h img { + visibility: visible !important; + opacity: 1 !important; + vertical-align: middle !important; + display: inline-block !important; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 10px; + font-weight: bold; +} + +h1 { + margin-top: 20px; + font-size: 38px; + line-height: 44px; +} + +h2 { + margin-top: 20px; + font-size: 32px; + line-height: 36px; +} + +h3 { + margin-top: 20px; + font-size: 24px; + line-height: 30px; +} + +h4 { + margin-top: 10px; + font-size: 18px; + line-height: 24px; +} + +h5 { + margin-top: 10px; + font-size: 14px; + line-height: 20px; +} + +h6 { + margin-top: 10px; + font-size: 12px; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 10px; +} + +blockquote { + border-left: 5px solid #e2e2e2; + margin: 0 0 10px; + padding: 10px 20px; + font-size: 18px; + line-height: 22px; +} + +figure { + margin: 0 0 10px; +} + +figcaption { + text-align: center; + margin-top: 5px; +} + +ul, ol { + margin-top: 0; + margin-bottom: 10px; + padding-left: 40px; +} + +.w-list-unstyled { + padding-left: 0; + list-style: none; +} + +.w-embed:before, .w-embed:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-embed:after { + clear: both; +} + +.w-video { + width: 100%; + padding: 0; + position: relative; +} + +.w-video iframe, .w-video object, .w-video embed { + border: none; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +button, [type="button"], [type="reset"] { + cursor: pointer; + -webkit-appearance: button; + border: 0; +} + +.w-form { + margin: 0 0 15px; +} + +.w-form-done { + text-align: center; + background-color: #ddd; + padding: 20px; + display: none; +} + +.w-form-fail { + background-color: #ffdede; + margin-top: 10px; + padding: 10px; + display: none; +} + +label { + margin-bottom: 5px; + font-weight: bold; + display: block; +} + +.w-input, .w-select { + color: #333; + vertical-align: middle; + background-color: #fff; + border: 1px solid #ccc; + width: 100%; + height: 38px; + margin-bottom: 10px; + padding: 8px 12px; + font-size: 14px; + line-height: 1.42857; + display: block; +} + +.w-input::placeholder, .w-select::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: #eee; +} + +textarea.w-input, textarea.w-select { + height: auto; +} + +.w-select { + background-color: #f3f3f3; +} + +.w-select[multiple] { + height: auto; +} + +.w-form-label { + cursor: pointer; + margin-bottom: 0; + font-weight: normal; + display: inline-block; +} + +.w-radio { + margin-bottom: 5px; + padding-left: 20px; + display: block; +} + +.w-radio:before, .w-radio:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-radio:after { + clear: both; +} + +.w-radio-input { + float: left; + margin: 3px 0 0 -20px; + line-height: normal; +} + +.w-file-upload { + margin-bottom: 10px; + display: block; +} + +.w-file-upload-input { + opacity: 0; + z-index: -100; + width: .1px; + height: .1px; + position: absolute; + overflow: hidden; +} + +.w-file-upload-default, .w-file-upload-uploading, .w-file-upload-success { + color: #333; + display: inline-block; +} + +.w-file-upload-error { + margin-top: 10px; + display: block; +} + +.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 { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: flex; +} + +.w-file-upload-file { + background-color: #fafafa; + border: 1px solid #ccc; + flex-grow: 1; + justify-content: space-between; + margin: 0; + padding: 8px 9px 8px 11px; + display: flex; +} + +.w-file-upload-file-name { + font-size: 14px; + font-weight: normal; + display: block; +} + +.w-file-remove-link { + cursor: pointer; + width: auto; + height: auto; + margin-top: 3px; + margin-left: 10px; + padding: 3px; + display: block; +} + +.w-icon-file-upload-remove { + margin: auto; + font-size: 10px; +} + +.w-file-upload-error-msg { + color: #ea384c; + padding: 2px 0; + display: inline-block; +} + +.w-file-upload-info { + padding: 0 12px; + line-height: 38px; + display: inline-block; +} + +.w-file-upload-label { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: inline-block; +} + +.w-icon-file-upload-icon, .w-icon-file-upload-uploading { + width: 20px; + margin-right: 8px; + display: inline-block; +} + +.w-icon-file-upload-uploading { + height: 20px; +} + +.w-container { + max-width: 940px; + margin-left: auto; + margin-right: auto; +} + +.w-container:before, .w-container:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-container:after { + clear: both; +} + +.w-container .w-row { + margin-left: -10px; + margin-right: -10px; +} + +.w-row:before, .w-row:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-row:after { + clear: both; +} + +.w-row .w-row { + margin-left: 0; + margin-right: 0; +} + +.w-col { + float: left; + width: 100%; + min-height: 1px; + padding-left: 10px; + padding-right: 10px; + position: relative; +} + +.w-col .w-col { + padding-left: 0; + padding-right: 0; +} + +.w-col-1 { + width: 8.33333%; +} + +.w-col-2 { + width: 16.6667%; +} + +.w-col-3 { + width: 25%; +} + +.w-col-4 { + width: 33.3333%; +} + +.w-col-5 { + width: 41.6667%; +} + +.w-col-6 { + width: 50%; +} + +.w-col-7 { + width: 58.3333%; +} + +.w-col-8 { + width: 66.6667%; +} + +.w-col-9 { + width: 75%; +} + +.w-col-10 { + width: 83.3333%; +} + +.w-col-11 { + width: 91.6667%; +} + +.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.33333%; + } + + .w-col-medium-2 { + width: 16.6667%; + } + + .w-col-medium-3 { + width: 25%; + } + + .w-col-medium-4 { + width: 33.3333%; + } + + .w-col-medium-5 { + width: 41.6667%; + } + + .w-col-medium-6 { + width: 50%; + } + + .w-col-medium-7 { + width: 58.3333%; + } + + .w-col-medium-8 { + width: 66.6667%; + } + + .w-col-medium-9 { + width: 75%; + } + + .w-col-medium-10 { + width: 83.3333%; + } + + .w-col-medium-11 { + width: 91.6667%; + } + + .w-col-medium-12 { + width: 100%; + } + + .w-col-stack { + width: 100%; + left: auto; + right: auto; + } +} + +@media screen and (max-width: 767px) { + .w-hidden-main, .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.33333%; + } + + .w-col-small-2 { + width: 16.6667%; + } + + .w-col-small-3 { + width: 25%; + } + + .w-col-small-4 { + width: 33.3333%; + } + + .w-col-small-5 { + width: 41.6667%; + } + + .w-col-small-6 { + width: 50%; + } + + .w-col-small-7 { + width: 58.3333%; + } + + .w-col-small-8 { + width: 66.6667%; + } + + .w-col-small-9 { + width: 75%; + } + + .w-col-small-10 { + width: 83.3333%; + } + + .w-col-small-11 { + width: 91.6667%; + } + + .w-col-small-12 { + width: 100%; + } +} + +@media screen and (max-width: 479px) { + .w-container { + max-width: none; + } + + .w-hidden-main, .w-hidden-medium, .w-hidden-small { + display: inherit !important; + } + + .w-hidden-tiny { + display: none !important; + } + + .w-col { + width: 100%; + } + + .w-col-tiny-1 { + width: 8.33333%; + } + + .w-col-tiny-2 { + width: 16.6667%; + } + + .w-col-tiny-3 { + width: 25%; + } + + .w-col-tiny-4 { + width: 33.3333%; + } + + .w-col-tiny-5 { + width: 41.6667%; + } + + .w-col-tiny-6 { + width: 50%; + } + + .w-col-tiny-7 { + width: 58.3333%; + } + + .w-col-tiny-8 { + width: 66.6667%; + } + + .w-col-tiny-9 { + width: 75%; + } + + .w-col-tiny-10 { + width: 83.3333%; + } + + .w-col-tiny-11 { + width: 91.6667%; + } + + .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 { + vertical-align: top; + text-align: center; + background: #fff; + border: 1px solid #758696; + border-radius: 3px; + width: 28px; + height: 20px; + display: inline-block; + position: relative; +} + +.w-widget-twitter-count-shim * { + pointer-events: none; + -webkit-user-select: none; + user-select: none; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-inner { + text-align: center; + color: #999; + font-family: serif; + font-size: 15px; + line-height: 12px; + position: relative; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-clear { + display: block; + position: relative; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 50%; + left: 0; +} + +.w-widget-twitter-count-shim:not(.w--vertical):before { + border-width: 4px; + border-color: #75869600 #5d6c7b #75869600 #75869600; + margin-top: -4px; + margin-left: -9px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:before { + border-width: 5px; + margin-top: -5px; + margin-left: -10px; +} + +.w-widget-twitter-count-shim:not(.w--vertical):after { + border-width: 4px; + border-color: #fff0 #fff #fff0 #fff0; + margin-top: -4px; + margin-left: -8px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:after { + border-width: 5px; + margin-top: -5px; + margin-left: -9px; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 100%; + left: 50%; +} + +.w-widget-twitter-count-shim.w--vertical:before { + border-width: 5px; + border-color: #5d6c7b #75869600 #75869600; + margin-left: -5px; +} + +.w-widget-twitter-count-shim.w--vertical:after { + border-width: 4px; + border-color: #fff #fff0 #fff0; + 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 { + color: #fff; + height: 500px; + position: relative; + overflow: hidden; +} + +.w-background-video > video { + object-fit: cover; + z-index: -100; + background-position: 50%; + background-size: cover; + width: 100%; + height: 100%; + margin: auto; + position: absolute; + inset: -100%; +} + +.w-background-video > video::-webkit-media-controls-start-playback-button { + -webkit-appearance: none; + display: none !important; +} + +.w-background-video--control { + background-color: #0000; + padding: 0; + position: absolute; + bottom: 1em; + right: 1em; +} + +.w-background-video--control > [hidden] { + display: none !important; +} + +.w-slider { + text-align: center; + clear: both; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + background: #ddd; + height: 300px; + position: relative; +} + +.w-slider-mask { + z-index: 1; + white-space: nowrap; + height: 100%; + display: block; + position: relative; + left: 0; + right: 0; + overflow: hidden; +} + +.w-slide { + vertical-align: top; + white-space: normal; + text-align: left; + width: 100%; + height: 100%; + display: inline-block; + position: relative; +} + +.w-slider-nav { + z-index: 2; + text-align: center; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + height: 40px; + margin: auto; + padding-top: 10px; + position: absolute; + inset: auto 0 0; +} + +.w-slider-nav.w-round > div { + border-radius: 100%; +} + +.w-slider-nav.w-num > div { + font-size: inherit; + line-height: inherit; + width: auto; + height: auto; + padding: .2em .5em; +} + +.w-slider-nav.w-shadow > div { + box-shadow: 0 0 3px #3336; +} + +.w-slider-nav-invert { + color: #fff; +} + +.w-slider-nav-invert > div { + background-color: #2226; +} + +.w-slider-nav-invert > div.w-active { + background-color: #222; +} + +.w-slider-dot { + cursor: pointer; + background-color: #fff6; + width: 1em; + height: 1em; + margin: 0 3px .5em; + transition: background-color .1s, color .1s; + display: inline-block; + position: relative; +} + +.w-slider-dot.w-active { + background-color: #fff; +} + +.w-slider-dot:focus { + outline: none; + box-shadow: 0 0 0 2px #fff; +} + +.w-slider-dot:focus.w-active { + box-shadow: none; +} + +.w-slider-arrow-left, .w-slider-arrow-right { + cursor: pointer; + color: #fff; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + width: 80px; + margin: auto; + font-size: 40px; + position: absolute; + inset: 0; + overflow: hidden; +} + +.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 { + width: 1em; + height: 1em; + margin: auto; + inset: 0; +} + +.w-slider-aria-label { + clip: rect(0 0 0 0); + border: 0; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + position: absolute; + overflow: hidden; +} + +.w-slider-force-show { + display: block !important; +} + +.w-dropdown { + text-align: left; + z-index: 900; + margin-left: auto; + margin-right: auto; + display: inline-block; + position: relative; +} + +.w-dropdown-btn, .w-dropdown-toggle, .w-dropdown-link { + vertical-align: top; + color: #222; + text-align: left; + white-space: nowrap; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + position: relative; +} + +.w-dropdown-toggle { + -webkit-user-select: none; + user-select: none; + cursor: pointer; + padding-right: 40px; + display: inline-block; +} + +.w-dropdown-toggle:focus { + outline: 0; +} + +.w-icon-dropdown-toggle { + width: 1em; + height: 1em; + margin: auto 20px auto auto; + position: absolute; + top: 0; + bottom: 0; + right: 0; +} + +.w-dropdown-list { + background: #ddd; + min-width: 100%; + display: none; + position: absolute; +} + +.w-dropdown-list.w--open { + display: block; +} + +.w-dropdown-link { + color: #222; + padding: 10px 20px; + display: block; +} + +.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; + } +} + +.w-lightbox-backdrop { + cursor: auto; + letter-spacing: normal; + text-indent: 0; + text-shadow: none; + text-transform: none; + visibility: visible; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + color: #fff; + text-align: center; + z-index: 2000; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -webkit-tap-highlight-color: transparent; + background: #000000e6; + outline: 0; + font-family: Helvetica Neue, Helvetica, Ubuntu, Segoe UI, Verdana, sans-serif; + font-size: 17px; + font-style: normal; + font-weight: 300; + line-height: 1.2; + list-style: disc; + position: fixed; + inset: 0; + -webkit-transform: translate(0); +} + +.w-lightbox-backdrop, .w-lightbox-container { + -webkit-overflow-scrolling: touch; + height: 100%; + overflow: auto; +} + +.w-lightbox-content { + height: 100vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-view { + opacity: 0; + width: 100vw; + height: 100vh; + position: absolute; +} + +.w-lightbox-view:before { + content: ""; + height: 100vh; +} + +.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 { + vertical-align: middle; + display: inline-block; +} + +.w-lightbox-figure { + margin: 0; + position: relative; +} + +.w-lightbox-group .w-lightbox-figure { + cursor: pointer; +} + +.w-lightbox-img { + width: auto; + max-width: none; + height: auto; +} + +.w-lightbox-image { + float: none; + max-width: 100vw; + max-height: 100vh; + display: block; +} + +.w-lightbox-group .w-lightbox-image { + max-height: 86vh; +} + +.w-lightbox-caption { + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + background: #0006; + padding: .5em 1em; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: hidden; +} + +.w-lightbox-embed { + width: 100%; + height: 100%; + position: absolute; + inset: 0; +} + +.w-lightbox-control { + cursor: pointer; + background-position: center; + background-repeat: no-repeat; + background-size: 24px; + width: 4em; + transition: all .3s; + position: absolute; + top: 0; +} + +.w-lightbox-left { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg=="); + display: none; + bottom: 0; + left: 0; +} + +.w-lightbox-right { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+"); + display: none; + bottom: 0; + right: 0; +} + +.w-lightbox-close { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4="); + background-size: 18px; + height: 2.6em; + right: 0; +} + +.w-lightbox-strip { + white-space: nowrap; + padding: 0 1vh; + line-height: 0; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: auto hidden; +} + +.w-lightbox-item { + box-sizing: content-box; + cursor: pointer; + width: 10vh; + padding: 2vh 1vh; + display: inline-block; + -webkit-transform: translate3d(0, 0, 0); +} + +.w-lightbox-active { + opacity: .3; +} + +.w-lightbox-thumbnail { + background: #222; + height: 10vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-thumbnail-image { + position: absolute; + top: 0; + left: 0; +} + +.w-lightbox-thumbnail .w-lightbox-tall { + width: 100%; + top: 50%; + transform: translate(0, -50%); +} + +.w-lightbox-thumbnail .w-lightbox-wide { + height: 100%; + left: 50%; + transform: translate(-50%); +} + +.w-lightbox-spinner { + box-sizing: border-box; + border: 5px solid #0006; + border-radius: 50%; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + animation: .8s linear infinite spin; + position: absolute; + top: 50%; + left: 50%; +} + +.w-lightbox-spinner:after { + content: ""; + border: 3px solid #0000; + border-bottom-color: #fff; + border-radius: 50%; + position: absolute; + inset: -4px; +} + +.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-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 { + opacity: .5; + display: block; + } + + .w-lightbox-close { + opacity: .8; + } + + .w-lightbox-control:hover { + opacity: 1; + } +} + +.w-lightbox-inactive, .w-lightbox-inactive:hover { + opacity: 0; +} + +.w-richtext:before, .w-richtext:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.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, .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: ""; + display: none; + position: absolute; + inset: 0; +} + +.w-richtext figure { + max-width: 60%; + position: relative; +} + +.w-richtext figure > div:before { + cursor: default !important; +} + +.w-richtext figure img { + width: 100%; +} + +.w-richtext figure figcaption.w-richtext-figcaption-placeholder { + opacity: .6; +} + +.w-richtext figure div { + color: #0000; + font-size: 0; +} + +.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 { + caption-side: bottom; + display: table-caption; +} + +.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 { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +.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 { + clear: both; + margin-left: auto; + margin-right: auto; +} + +.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 { + text-align: center; + clear: both; + width: 100%; + max-width: 100%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.w-richtext figure.w-richtext-align-fullwidth > div { + padding-bottom: inherit; + display: inline-block; +} + +.w-richtext figure.w-richtext-align-fullwidth > figcaption { + display: block; +} + +.w-richtext figure.w-richtext-align-floatleft { + float: left; + clear: none; + margin-right: 15px; +} + +.w-richtext figure.w-richtext-align-floatright { + float: right; + clear: none; + margin-left: 15px; +} + +.w-nav { + z-index: 1000; + background: #ddd; + position: relative; +} + +.w-nav:before, .w-nav:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-nav:after { + clear: both; +} + +.w-nav-brand { + float: left; + color: #333; + text-decoration: none; + position: relative; +} + +.w-nav-link { + vertical-align: top; + color: #222; + text-align: left; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-nav-link.w--current { + color: #0082f3; +} + +.w-nav-menu { + float: right; + position: relative; +} + +[data-nav-menu-open] { + text-align: center; + background: #c8c8c8; + min-width: 200px; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: visible; + display: block !important; +} + +.w--nav-link-open { + display: block; + position: relative; +} + +.w-nav-overlay { + width: 100%; + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: hidden; +} + +.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] { + z-index: 1; + top: 0; + right: auto; +} + +.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] { + z-index: 1; + top: 0; + left: auto; +} + +.w-nav-button { + float: right; + cursor: pointer; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + padding: 18px; + font-size: 24px; + display: none; + position: relative; +} + +.w-nav-button:focus { + outline: 0; +} + +.w-nav-button.w--open { + color: #fff; + background-color: #c8c8c8; +} + +.w-nav[data-collapse="all"] .w-nav-menu { + display: none; +} + +.w-nav[data-collapse="all"] .w-nav-button, .w--nav-dropdown-open, .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: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-tabs:after { + clear: both; +} + +.w-tab-menu { + position: relative; +} + +.w-tab-link { + vertical-align: top; + text-align: left; + cursor: pointer; + color: #222; + background-color: #ddd; + padding: 9px 30px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-tab-link.w--current { + background-color: #c8c8c8; +} + +.w-tab-link:focus { + outline: 0; +} + +.w-tab-content { + display: block; + position: relative; + overflow: hidden; +} + +.w-tab-pane { + display: none; + position: relative; +} + +.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(0); + } + + 100% { + transform: rotate(360deg); + } +} + +.w-dyn-empty { + background-color: #ddd; + padding: 10px; +} + +.w-dyn-hide, .w-dyn-bind-empty, .w-condition-invisible { + display: none !important; +} + +.wf-layout-layout { + display: grid; +} + +.w-code-component > * { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +:root { + --medium-aquamarine: #7ec4bd; + --white-smoke: whitesmoke; +} + +.w-embed-youtubevideo { + background-image: url("../../../d3e54v103j8qbb.cloudfront.net/static/youtube-placeholder.2b05e7d68d.svg"); + background-position: 50%; + background-size: cover; + width: 100%; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + position: relative; +} + +.w-embed-youtubevideo:empty { + min-height: 75px; + padding-bottom: 56.25%; +} + +body { + color: #333; + font-family: Vollkorn, serif; + font-size: 14px; + line-height: 20px; +} + +h1 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 32px; + font-weight: 700; + line-height: 38px; +} + +h2 { + text-align: center; + text-transform: uppercase; + margin: 10px 0; + font-family: Montserrat, sans-serif; + font-size: 23px; + font-weight: 400; + line-height: 36px; +} + +h3 { + text-transform: uppercase; + margin: 0 0 20px; + font-family: Montserrat, sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 20px; +} + +h4 { + margin: 10px 0; + font-size: 18px; + font-weight: 700; + line-height: 24px; +} + +h5 { + margin: 10px 0; + font-size: 14px; + font-weight: 700; + line-height: 20px; +} + +h6 { + margin: 10px 0; + font-size: 12px; + font-weight: 700; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 5px; + font-family: Vollkorn, serif; + font-size: 15px; + line-height: 22px; +} + +a { + text-decoration: underline; +} + +a:hover { + color: #111; +} + +a:active { + color: #000; +} + +a:visited { + color: #666; +} + +.button { + color: #fff; + text-align: center; + background-color: #13b7d8; + border: 1px #47474f; + border-radius: 6px; + padding: 12px 30px; + font-family: Roboto, sans-serif; + font-size: 18px; + font-style: normal; + text-decoration: none; + transition: background-color .3s; + display: inline-block; +} + +.button:hover { + background-color: #1296b1; +} + +.button.form { + color: #7ec4bd; + border-width: 1px 1px 2px; + border-color: #7ec4bd; + margin-top: 23px; + margin-bottom: 24px; + padding-left: 54px; + padding-right: 54px; +} + +.button.form:hover { + background-color: #7ec4bd57; +} + +.header { + color: #fff; + text-align: center; + background-color: #fffcba; + padding: 60px 20px; +} + +.header.project-page { + background-image: linear-gradient(#64d1c68c, #64d1c68c), url("../61cc329947770114fa07dcd2_lake.jpg"); + padding-top: 77px; + padding-bottom: 77px; +} + +.navbar { + background-color: #fff; + padding-top: 18px; + padding-bottom: 18px; +} + +.nav-link { + color: #404040; + text-transform: uppercase; + border-bottom: 2px solid #0000; + margin-top: 23px; + margin-left: 34px; + padding: 0; + font-family: Roboto, sans-serif; + font-size: 14px; + font-weight: 400; + transition: border-color .3s; +} + +.nav-link:hover { + border-bottom-color: #13b7d8; +} + +.nav-link.w--current { + font-family: Roboto, sans-serif; + font-size: 14px; +} + +.logo-title { + float: left; + text-transform: uppercase; + margin-top: 12px; + font-family: Roboto Condensed, sans-serif; + font-size: 22px; + font-weight: 400; +} + +.logo-img { + float: left; + margin-right: 18px; +} + +.main-heading { + color: #000; + text-align: left; + text-transform: none; + margin-top: 0; + margin-bottom: 0; + margin-left: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 36px; + font-weight: 400; + line-height: 48px; +} + +.divider { + background-color: #fff; + width: 80px; + height: 2px; + margin: 28px auto; + display: block; +} + +.divider.grey { + background-color: #00000017; + margin-bottom: 43px; +} + +.main-subtitle { + color: #ffffffcf; + font-family: Vollkorn, serif; + font-size: 18px; + font-style: italic; +} + +.about-section { + text-align: center; + background-color: #fffcba; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-text { + color: #47474f; + margin-bottom: 40px; + font-family: Roboto Mono, sans-serif; + font-size: 20px; + font-style: normal; + line-height: 30px; +} + +.x-icon { + margin-top: -26px; + margin-bottom: 34px; +} + +.section { + text-align: center; + padding-top: 69px; + padding-bottom: 69px; +} + +.section.grey { + background-color: #f5f5f5; +} + +.section.contact { + background-color: #9ac4cd; + background-image: linear-gradient(#9ac4cd, #9ac4cd); + padding-top: 40px; + padding-bottom: 60px; + font-family: Vollkorn, serif; +} + +.section.footer { + background-color: #393b3c; + padding-top: 40px; + padding-bottom: 40px; +} + +.grey-icon-wrapper { + background-color: #f5f5f5; + margin-bottom: 38px; + padding-top: 50px; + padding-bottom: 50px; +} + +.project-wrapper { + color: #333; + text-decoration: none; + transition: bottom .3s; + display: block; + position: relative; + bottom: 0; +} + +.project-wrapper:hover { + bottom: 8px; +} + +.team-image { + border-radius: 100%; + margin-bottom: 21px; +} + +.role { + margin-bottom: 16px; + font-family: Vollkorn, serif; + font-size: 17px; + font-style: italic; +} + +.social-link { + background-color: #f5f5f5; + border-radius: 100%; + width: 29px; + height: 29px; + margin: 3px; + padding-top: 5px; + padding-left: 1px; + transition: box-shadow .3s; + box-shadow: inset 0 0 0 1px #0000; +} + +.social-link:hover { + box-shadow: inset 0 0 0 2px #7ec4bd; +} + +.team-title { + margin-bottom: 7px; +} + +.testimonial-slider { + background-color: #0000; + height: auto; +} + +.quote-icon { + margin-bottom: 37px; +} + +.arrow { + color: #e3e3e3; + width: 40px; + font-size: 30px; + transition: color .3s; +} + +.arrow:hover { + color: #333; +} + +.testimonial-slide { + text-align: center; + width: 50%; + padding: 30px 34px 29px; +} + +.testimonial-slide.left-border { + border-left: 2px solid #0000000a; +} + +.mask { + width: 95%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.team-row { + margin-bottom: 20px; +} + +.testimonial { + margin-bottom: 22px; + font-size: 26px; + line-height: 33px; +} + +.from { + color: #ababab; + text-transform: uppercase; + margin-bottom: 0; + font-family: Montserrat, sans-serif; + font-size: 14px; + font-weight: 400; +} + +.icon-wrapper { + height: 95px; + margin-bottom: 10px; + padding-top: 13px; +} + +.icon-wrapper._2 { + padding-top: 20px; +} + +.footer-logo { + opacity: .4; + margin-bottom: 15px; +} + +.contact-text { + color: #212121; + font-family: Roboto, sans-serif; + font-size: 17px; +} + +.link { + color: #1c1c1c; +} + +.social-wrapper { + text-align: left; + margin-bottom: 11px; + margin-left: 33%; + text-decoration: none; + transition: opacity .3s; + display: block; +} + +.social-wrapper:hover { + opacity: .43; +} + +.footer-text { + color: #fff6; + font-family: Roboto, sans-serif; +} + +.social-link-text { + display: inline-block; +} + +.social-icon { + margin-top: -6px; + margin-right: 9px; +} + +.field { + color: #7ec4bd; + background-color: #fff3; + border: 0 solid #000; + height: 57px; + margin-bottom: 0; + padding-top: 17px; + padding-bottom: 17px; + font-size: 18px; + font-style: italic; + box-shadow: inset 3px 0 #0000; +} + +.field:focus { + box-shadow: inset 3px 0 #7ec4bd; +} + +.field.large { + height: 127px; +} + +.field.darker { + background-color: #ffffff2e; + transition: box-shadow .3s; +} + +.form-wrapper { + padding-left: 20%; + padding-right: 20%; +} + +.success-message { + color: #7ec4bd; + background-color: #0000; + border: 1px solid #7ec4bd; + border-bottom-width: 2px; + padding-top: 82px; + padding-bottom: 82px; +} + +.project-info { + background-color: #fff; + margin-bottom: 20px; + padding-top: 20px; + padding-bottom: 20px; +} + +.project-title { + margin-bottom: 4px; +} + +.grow-row { + margin-bottom: 42px; +} + +.screenshot { + margin-bottom: 43px; +} + +.face { + border-radius: 100%; + margin-bottom: 10px; +} + +.body { + background-color: #000; + font-family: Roboto, sans-serif; +} + +.container { + padding-top: 0; +} + +.image { + cursor: none; + object-fit: fill; + width: 100%; + max-width: 100%; + margin: auto; + display: block; + overflow: auto; +} + +.heading { + font-family: Roboto Mono, sans-serif; +} + +.container-2 { + font-family: Roboto, sans-serif; +} + +.heading-2, .heading-3, .heading-4 { + font-family: Roboto Mono, sans-serif; + font-weight: 600; +} + +.datapop-section { + text-align: center; + background-color: #e8f7fa; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-key-visual { + color: #47474f; + margin-bottom: 40px; + margin-left: auto; + margin-right: auto; + font-family: Roboto Mono, sans-serif; + font-size: 18px; + line-height: 25px; + display: block; +} + +.datapop-logo { + margin-bottom: 60px; +} + +.column, .column-2 { + padding-left: 0; + padding-right: 0; +} + +.body-2 { + background-color: #000; +} + +.image-2 { + -webkit-text-fill-color: inherit; + cursor: zoom-in; + object-position: 50% 50%; + background-clip: border-box; + border-radius: 0; +} + +.collection-item { + height: 100%; +} + +.item { + float: left; + clear: none; + cursor: none; + object-fit: fill; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + position: relative; + overflow: visible; +} + +.item:hover { + background-color: #fff; +} + +.collection-list { + padding: 30px 10px 10px; +} + +.identity { + object-fit: fill; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + font-family: Inconsolata, monospace; + font-size: 16px; + font-weight: 400; + text-decoration: none; + display: flex; + position: static; +} + +.headingblock { + z-index: 100; + color: #333; + background-color: #fff; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 100%; + margin-bottom: 0; + padding-bottom: 0; + padding-left: 20px; + padding-right: 20px; + font-family: Inconsolata, monospace; + display: flex; + position: fixed; + inset: 0% 0% auto; + overflow: auto; +} + +.collection-list-wrapper { + margin-top: 40px; + padding: 0 10px 10px; +} + +.collection-item-2 { + padding-left: 0; + padding-right: 0; +} + +.collection-list-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + cursor: none; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + display: block; + overflow: visible; +} + +.div-block { + cursor: none; + background-color: #fff; +} + +.image-3 { + width: 100%; +} + +.linkblock { + cursor: zoom-in; + display: block; +} + +.link-block-2 { + display: block; +} + +.text-span { + color: #888; + padding-left: 10px; + text-decoration: none; +} + +.p5canvas { + background-color: #000; + overflow: hidden; +} + +.bodyrosa { + clear: none; + object-fit: fill; + background-color: #ffade4; + padding: 0 40px 40px; + font-family: Inconsolata, monospace; + display: block; +} + +.text-block { + color: #242424; + text-align: center; + background-color: #fff; + margin-top: 40px; + padding: 20px; + font-size: 24px; + font-weight: 700; +} + +.image-4 { + z-index: auto; + object-fit: fill; + margin: 40px auto; + display: block; + position: static; + overflow: auto; +} + +.heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; +} + +.heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px 20px; + font-size: 26px; + line-height: 34px; +} + +.paragraph { + background-color: #fff; + margin-bottom: 0; + padding: 10px 20px; + font-family: Inconsolata, monospace; + font-size: 18px; + line-height: 26px; +} + +.body-3 { + background-color: #ffa1af; +} + +.body-4 { + cursor: none; +} + +.link-block-day { + color: #000; + cursor: none; + background-color: #fff; + border: 1px solid #000; + border-radius: 4px; + flex: 0 auto; + justify-content: center; + align-self: auto; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-day:hover { + color: #000; + background-color: #eee; +} + +.text-block-2 { + text-align: center; + flex: 1; + justify-content: space-between; + align-self: center; + width: 50%; + display: block; +} + +.body-5 { + height: 100%; + min-height: 100px; + margin-top: auto; + margin-bottom: auto; +} + +.columns-2 { + float: none; + clear: none; + flex-flow: column wrap; + place-content: space-around space-between; + align-items: center; + margin-top: auto; + margin-bottom: auto; + display: flex; +} + +.body-6 { + grid-column-gap: 20px; + grid-row-gap: 20px; + cursor: none; + object-fit: none; + flex-direction: row; + justify-content: space-around; + align-items: stretch; + height: 100vh; + padding: 20px; + display: flex; + overflow: auto; +} + +.link-block-night { + color: #fff; + cursor: none; + background-color: #000; + border-radius: 4px; + flex-wrap: nowrap; + flex: 0 auto; + justify-content: center; + align-self: center; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-night:hover { + background-color: #222; +} + +.image-5 { + color: #fff; + background-color: #0000; +} + +.icon-night { + color: #fff; + flex-direction: row; + align-items: stretch; +} + +.icon-day { + color: #000; + flex-direction: row; + align-items: stretch; +} + +.collection-item-3 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: flex-start; + width: 100%; + padding-left: 0; + padding-right: 0; + display: block; + position: absolute; +} + +.image-6 { + width: 100%; +} + +.body-7 { + cursor: none; + background-color: #000; + padding: 0; +} + +.collection-item-4 { + padding-top: 10px; + padding-bottom: 10px; +} + +.image-7 { + background-color: #000; +} + +.body-8 { + cursor: none; + background-color: #fff; +} + +.collection-list-wrapper-2 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-5 { + padding-top: 10px; + padding-bottom: 10px; +} + +.collection-list-wrapper-3 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-6 { + padding: 10px; +} + +.body-9 { + cursor: none; + background-color: #000; +} + +.image-8 { + width: 100%; + min-width: 100%; + margin: auto; + display: block; +} + +.link-block-3 { + display: block; +} + +.image-9 { + cursor: none; + width: 100%; +} + +.link-block-4 { + display: block; +} + +.image-10 { + cursor: zoom-in; +} + +.collection-list-wrapper-4 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; + display: block; +} + +.link-block-5 { + color: #333; + text-decoration: none; +} + +.link-block-5:active, .link-block-5:focus { + color: #000; +} + +.link-block-5:visited { + color: #333; +} + +.div-block-3 { + background-color: #fff; +} + +.paragraph-2 { + text-align: center; + letter-spacing: 2px; + flex-flow: row; + justify-content: space-around; + align-items: stretch; + margin-bottom: 0; + font-family: Roboto, sans-serif; + font-size: 72px; + font-weight: 400; + line-height: 72px; + display: block; +} + +.container-3 { + width: 4%; + max-width: 0; + margin-top: auto; + margin-bottom: auto; + display: block; +} + +.div-block-4 { + width: 50%; + margin: auto; + display: block; +} + +.section-2 { + grid-column-gap: 36px; + grid-row-gap: 36px; + color: #fff; + background-color: #fc0093; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + font-family: Inconsolata, monospace; + font-size: 36px; + line-height: 36px; + display: flex; +} + +.text-block-3 { + font-size: 72px; + line-height: 72px; +} + +.video { + aspect-ratio: 9 / 16; + margin-bottom: 4px; +} + +.collection-item-7 { + padding-bottom: 20px; + padding-left: 10px; +} + +.collection-list-3 { + padding-left: 10px; + padding-right: 10px; +} + +.link-2 { + color: #000; + font-family: Inconsolata, monospace; +} + +.collection-list-wrapper-5 { + padding-top: 44px; +} + +.bg { + box-sizing: border-box; + grid-column-gap: 11px; + grid-row-gap: 11px; + background-color: #000; + display: flex; +} + +.no1 { + clear: none; + grid-column-gap: 0px; + grid-row-gap: 0px; + aspect-ratio: 16 / 9; + outline-offset: 0px; + direction: ltr; + color: #fff; + text-align: center; + text-transform: none; + -webkit-text-fill-color: inherit; + vertical-align: super; + cursor: none; + background-color: #333; + background-clip: border-box; + border: 1px #000; + border-radius: 20px; + outline: 0 #fff; + flex-flow: row; + flex: 1; + order: 0; + justify-content: center; + align-self: auto; + align-items: center; + padding: 20px 30px; + font-family: Roboto Mono, sans-serif; + font-size: 16em; + text-decoration: none; + display: flex; + position: static; + inset: 0%; + overflow: visible; +} + +.no1:active { + background-color: #008d38; +} + +.no1-copy { + float: none; + clear: none; + color: #fff; + text-align: center; + vertical-align: super; + background-color: #3d3d3d; + border-radius: 20px; + justify-content: center; + align-items: center; + margin: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 15em; + display: flex; + position: fixed; + inset: 0%; + overflow: visible; +} + +.no1-copy:active { + background-color: #008d38; +} + +.numbers { + box-sizing: border-box; + grid-column-gap: 20px; + grid-row-gap: 20px; + flex-flow: row; + flex: 0 auto; + order: 0; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: center; + align-self: auto; + align-items: center; + margin: auto; + padding: 20px; + display: flex; + position: static; + overflow: visible; +} + +.text-span-2 { + font-weight: 700; +} + +.div-block-5 { + background-color: #000; + flex: 1; + justify-content: space-around; + align-items: center; + height: 100vh; + display: flex; +} + +.text-span-3 { + color: #fff; + text-align: left; + font-family: Lato, sans-serif; + font-size: 12em; + font-weight: 400; +} + +@media screen and (max-width: 991px) { + .nav-link { + margin: 0 auto; + padding-top: 20px; + padding-bottom: 20px; + } + + .nav-link:hover { + border-bottom-color: #0000; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .project-wrapper:hover { + transform: translate(0); + } + + .social-wrapper { + margin-left: 30%; + } + + .menu-button { + margin-top: 7px; + padding: 10px; + font-size: 32px; + } + + .menu-button.w--open { + color: #7ec4bd; + background-color: #0000; + } + + .nav-menu { + background-color: #f5f5f5; + } +} + +@media screen and (max-width: 767px) { + .header { + padding-top: 45px; + padding-bottom: 45px; + } + + .navbar { + padding-top: 10px; + padding-bottom: 10px; + } + + .nav-link { + padding-top: 15px; + padding-bottom: 15px; + padding-left: 10px; + } + + .logo-title { + margin-top: 6px; + } + + .logo-img { + width: 50px; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .about-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } + + .x-icon { + margin-bottom: 21px; + } + + .section { + padding-top: 30px; + padding-bottom: 30px; + } + + .grey-icon-wrapper { + margin-bottom: 16px; + padding: 34px 56px; + display: inline-block; + } + + .grey-icon-wrapper.push-top { + margin-top: 30px; + } + + .testimonial-slide { + width: 100%; + } + + .testimonial-slide.left-border { + border-left-width: 0; + } + + .icon-wrapper { + height: 85px; + } + + .icon-wrapper._2 { + margin-top: 37px; + } + + .social-wrapper { + text-align: center; + margin-left: 0%; + } + + .form-wrapper { + padding-left: 10%; + padding-right: 10%; + } + + .menu-button { + margin-top: 0; + } + + .member { + padding-bottom: 47px; + } + + .grow-row { + margin-bottom: 0; + } + + .screenshot { + width: 90%; + } + + .image { + margin-bottom: auto; + padding: 0; + } + + .datapop-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } +} + +@media screen and (max-width: 479px) { + .header { + padding-top: 40px; + padding-bottom: 40px; + } + + .brand-block { + padding-left: 12px; + } + + .main-heading { + float: right; + clear: none; + font-size: 28px; + line-height: 40px; + position: relative; + } + + .about-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .grey-icon-wrapper { + display: block; + } + + .form-wrapper { + padding-left: 5%; + padding-right: 5%; + } + + .image { + padding: 0; + } + + .datapop-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .datapop-logo { + margin-bottom: 40px; + } + + .column-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + } + + .bodyrosa { + margin-bottom: 0; + padding: 0 20px 20px; + } + + .text-block { + background-color: #fff; + margin-top: 20px; + line-height: 28px; + } + + .image-4 { + margin-top: 30px; + margin-bottom: 30px; + } + + .div-block-2 { + text-align: right; + background-color: #fff; + margin-top: 20px; + padding: 20px; + font-size: 16px; + } + + .heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; + } + + .heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + font-size: 26px; + line-height: 36px; + } + + .paragraph { + background-color: #fff; + padding: 10px 20px; + font-size: 20px; + line-height: 28px; + } + + .link-block-day { + border: 1px solid #000; + } + + .body-6 { + flex-direction: column; + padding: 20px; + } + + .collection-item-3 { + grid-column-gap: 0px; + grid-row-gap: 0px; + justify-content: space-between; + display: flex; + } + + .image-6 { + display: block; + position: static; + } + + .body-7 { + flex-direction: row; + justify-content: space-between; + align-items: stretch; + display: flex; + } + + .body-8 { + background-color: #000; + } + + .paragraph-2 { + font-size: 32px; + line-height: 32px; + } +} diff --git a/aearascapes/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js b/aearascapes/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js new file mode 100644 index 0000000..afca678 --- /dev/null +++ b/aearascapes/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js @@ -0,0 +1,12280 @@ + +/*! + * 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(module1) { + if (Webflow.env()) { + isFunction(module1.design) && $win.on("__wf_design", module1.design); + isFunction(module1.preview) && $win.on("__wf_preview", module1.preview); + } + isFunction(module1.destroy) && $win.on("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + addReady(module1); + } + } + function addReady(module1) { + if (domready) { + module1.ready(); + return; + } + if (_.contains(primary, module1.ready)) { + return; + } + primary.push(module1.ready); + } + function unbindModule(module1) { + isFunction(module1.design) && $win.off("__wf_design", module1.design); + isFunction(module1.preview) && $win.off("__wf_preview", module1.preview); + isFunction(module1.destroy) && $win.off("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + removeReady(module1); + } + } + function removeReady(module1) { + primary = _.filter(primary, function(readyFn) { + return readyFn !== module1.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-edit.js + var require_webflow_edit = __commonJS({ + "packages/shared/render/plugins/BaseSiteModules/webflow-edit.js"(exports, module) { + "use strict"; + var Webflow = require_webflow_lib(); + Webflow.define("edit", module.exports = function($, _, options) { + options = options || {}; + if (Webflow.env("test") || Webflow.env("frame")) { + if (!options.fixture && !inCypress()) { + return { + exit: 1 + }; + } + } + var api = {}; + var $win = $(window); + var $html = $(document.documentElement); + var location = document.location; + var hashchange = "hashchange"; + var loaded; + var loadEditor = options.load || load; + var hasLocalStorage = false; + try { + hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem("WebflowEditor"); + } catch (e) { + } + if (hasLocalStorage) { + loadEditor(); + } else if (location.search) { + if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) { + loadEditor(); + } + } else { + $win.on(hashchange, checkHash).triggerHandler(hashchange); + } + function checkHash() { + if (loaded) { + return; + } + if (/\?edit/.test(location.hash)) { + loadEditor(); + } + } + function load() { + loaded = true; + window.WebflowEditor = true; + $win.off(hashchange, checkHash); + checkThirdPartyCookieSupport(function(thirdPartyCookiesSupported) { + $.ajax({ + url: cleanSlashes("https://editor-api.webflow.com/api/editor/view"), + data: { + siteId: $html.attr("data-wf-site") + }, + xhrFields: { + withCredentials: true + }, + dataType: "json", + crossDomain: true, + success: success(thirdPartyCookiesSupported) + }); + }); + } + function success(thirdPartyCookiesSupported) { + return function(data) { + if (!data) { + console.error("Could not load editor data"); + return; + } + data.thirdPartyCookiesSupported = thirdPartyCookiesSupported; + getScript(prefix(data.scriptPath), function() { + window.WebflowEditor(data); + }); + }; + } + function getScript(url, done) { + $.ajax({ + type: "GET", + url, + dataType: "script", + cache: true + }).then(done, error); + } + function error(jqXHR, textStatus, errorThrown) { + console.error("Could not load editor script: " + textStatus); + throw errorThrown; + } + function prefix(url) { + return url.indexOf("//") >= 0 ? url : cleanSlashes("https://editor-api.webflow.com" + url); + } + function cleanSlashes(url) { + return url.replace(/([^:])\/\//g, "$1/"); + } + function checkThirdPartyCookieSupport(callback) { + var iframe = window.document.createElement("iframe"); + iframe.src = "https://webflow.com/site/third-party-cookie-check.html"; + iframe.style.display = "none"; + iframe.sandbox = "allow-scripts allow-same-origin"; + var handleMessage = function(event) { + if (event.data === "WF_third_party_cookies_unsupported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + } else if (event.data === "WF_third_party_cookies_supported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(true); + } + }; + iframe.onerror = function() { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + }; + window.addEventListener("message", handleMessage, false); + window.document.body.appendChild(iframe); + } + function cleanUpCookieCheckerIframe(iframe, listener) { + window.removeEventListener("message", listener, false); + iframe.remove(); + } + return api; + }); + function inCypress() { + try { + return window.top.__Cypress__; + } catch (e) { + return false; + } + } + } + }); + + // 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/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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var getPluginConfig2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + 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; + }; + var getPluginOrigin2 = (refState2) => { + return refState2 || { + value: 0 + }; + }; + var getPluginDestination2 = (actionItemConfig) => { + return { + value: actionItemConfig.value + }; + }; + var createPluginInstance3 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + instance.setSubframe(true); + return instance; + }; + var renderPlugin2 = (pluginInstance, refState2, actionItem) => { + if (!pluginInstance) { + return; + } + const percent = refState2[actionItem.actionTypeId].value / 100; + pluginInstance.goToFrame(pluginInstance.frames * percent); + }; + var clearPlugin2 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + }; + } + }); + + // 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + 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]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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; + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = (element, actionItem) => { + const pluginElementId = actionItem?.config?.target?.pluginElement; + return pluginElementId ? queryContainerElement(pluginElementId) : null; + }; + 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); + } + }; + var clearPlugin2 = () => { + return null; + }; + } + }); + + // 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 + }); + Object.defineProperty(exports, "normalizeColor", { + enumerable: true, + get: function() { + return 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 || hex.length === 4) { + red = parseInt(hex[0] + hex[0], 16); + green = parseInt(hex[1] + hex[1], 16); + blue = parseInt(hex[2] + hex[2], 16); + if (hex.length === 4) { + alpha = parseInt(hex[3] + hex[3], 16) / 255; + } + } else if (hex.length === 6 || hex.length === 8) { + red = parseInt(hex.substring(0, 2), 16); + green = parseInt(hex.substring(2, 4), 16); + blue = parseInt(hex.substring(4, 6), 16); + if (hex.length === 8) { + alpha = parseInt(hex.substring(6, 8), 16) / 255; + } + } + } 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var _normalizeColor = require_normalizeColor(); + var getPluginConfig2 = (actionItemConfig, key) => { + return actionItemConfig.value[key]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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); + } + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = () => { + return null; + }; + 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); + } + }; + var clearPlugin2 = (ref, actionItem) => { + const objectId = actionItem.config.target.objectId; + document.documentElement.style.removeProperty(objectId); + }; + } + }); + + // packages/systems/ix2/plugins/index.js + var require_plugins = __commonJS({ + "packages/systems/ix2/plugins/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "pluginMethodMap", { + enumerable: true, + get: function() { + return pluginMethodMap2; + } + }); + var _sharedconstants = (init_shared_constants(), __toCommonJS(shared_constants_exports)); + var _IX2Lottie = /* @__PURE__ */ _interop_require_wildcard(require_IX2Lottie()); + var _IX2Spline = /* @__PURE__ */ _interop_require_wildcard(require_IX2Spline()); + var _IX2Variable = /* @__PURE__ */ _interop_require_wildcard(require_IX2Variable()); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var pluginMethodMap2 = /* @__PURE__ */ new Map([ + [ + _sharedconstants.ActionTypeConsts.PLUGIN_LOTTIE, + { + ..._IX2Lottie + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_SPLINE, + { + ..._IX2Spline + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_VARIABLE, + { + ..._IX2Variable + } + ] + ]); + } + }); + + // 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 && actionItemGroups.some(({ actionItems }) => { + return actionItems.some(takeItemUntilMatch); + }); + continuousParameterGroups && 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_shared = __commonJS({ + "packages/systems/ix2/shared/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + // IX2Actions, + IX2BrowserSupport: function() { + return _IX2BrowserSupport; + }, + IX2EasingUtils: function() { + return _IX2EasingUtils; + }, + IX2Easings: function() { + return _IX2Easings; + }, + IX2ElementsReducer: function() { + return _IX2ElementsReducer; + }, + IX2VanillaPlugins: function() { + return _IX2VanillaPlugins; + }, + IX2VanillaUtils: function() { + return _IX2VanillaUtils; + } + }); + var _IX2BrowserSupport = /* @__PURE__ */ _interop_require_wildcard((init_IX2BrowserSupport(), __toCommonJS(IX2BrowserSupport_exports))); + var _IX2Easings = /* @__PURE__ */ _interop_require_wildcard((init_IX2Easings(), __toCommonJS(IX2Easings_exports))); + var _IX2EasingUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2EasingUtils(), __toCommonJS(IX2EasingUtils_exports))); + var _IX2ElementsReducer = /* @__PURE__ */ _interop_require_wildcard((init_IX2ElementsReducer(), __toCommonJS(IX2ElementsReducer_exports))); + var _IX2VanillaPlugins = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaPlugins(), __toCommonJS(IX2VanillaPlugins_exports))); + var _IX2VanillaUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaUtils(), __toCommonJS(IX2VanillaUtils_exports))); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + } + }); + + // 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_shared()); + 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 ( + // @ts-expect-error - Further investigation is needed as looks like IX2_RAW_DATA_IMPORTED is never triggered with ixParameters + 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_shared()); + init_IX2InstancesReducer(); + init_IX2ParametersReducer(); + ({ ixElements: ixElements2 } = import_shared2.IX2ElementsReducer); + IX2Reducer_default = (0, import_redux.combineReducers)({ + 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_shared()); + ({ + 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_shared()); + 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_shared()); + ({ + 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, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.preview, + onChange: handlePreviewRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.playback, + onChange: handlePlaybackRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.stop, + onChange: handleStopRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.clear, + onChange: handleClearRequest + }); + } + function observeMediaQueryChange(store) { + observeStore2({ + store, + 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, + 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({ + // @ts-expect-error - TS7031 - Binding element 'logic' implicitly has an 'any' type. + 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 + // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.useEventTarget === true && // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.objectId == null ? ( + // @ts-expect-error - TS18048 - 'event' is possibly 'undefined'. + { 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 && events[eventId] ? 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_shared()); + 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"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + actions: function() { + return _IX2EngineActions; + }, + destroy: function() { + return destroy; + }, + init: function() { + return init; + }, + setEnv: function() { + return setEnv; + }, + store: function() { + return store; + } + }); + var _redux = require_lib2(); + var _IX2Reducer = /* @__PURE__ */ _interop_require_default((init_IX2Reducer(), __toCommonJS(IX2Reducer_exports))); + var _IX2VanillaEngine = (init_IX2VanillaEngine(), __toCommonJS(IX2VanillaEngine_exports)); + var _IX2EngineActions = /* @__PURE__ */ _interop_require_wildcard((init_IX2EngineActions(), __toCommonJS(IX2EngineActions_exports))); + function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var 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/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_edit(); + 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_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 + *) +*/ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01-p-500.jpeg new file mode 100644 index 0000000..6300bef Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01-p-800.jpeg new file mode 100644 index 0000000..ed6a4b2 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01.jpeg new file mode 100644 index 0000000..5d748d7 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32b3d40e8abaed9515a3_01.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02-p-500.jpeg new file mode 100644 index 0000000..389b9f7 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02-p-800.jpeg new file mode 100644 index 0000000..1d07c60 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02.jpeg new file mode 100644 index 0000000..012dd79 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32d7a7ba206297604585_02.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03-p-500.jpeg new file mode 100644 index 0000000..cbebd59 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03-p-800.jpeg new file mode 100644 index 0000000..d2de139 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03.jpeg new file mode 100644 index 0000000..56293de Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d32e16f758e3b8629ba0e_03.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01-p-500.jpeg new file mode 100644 index 0000000..d516dff Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01-p-800.jpeg new file mode 100644 index 0000000..0d78c01 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01.jpeg new file mode 100644 index 0000000..ece345c Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46250877f35fe40fa4eb_01.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02-p-500.jpeg new file mode 100644 index 0000000..537e155 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02-p-800.jpeg new file mode 100644 index 0000000..7d2986b Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02.jpeg new file mode 100644 index 0000000..ff07334 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4630a40071bdeed5ddbd_02.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03-p-500.jpeg new file mode 100644 index 0000000..8438672 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03-p-800.jpeg new file mode 100644 index 0000000..691b98b Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03.jpeg new file mode 100644 index 0000000..6aed9d2 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d46383fb91c40d57180d3_03.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04-p-500.jpeg new file mode 100644 index 0000000..95e3863 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04-p-800.jpeg new file mode 100644 index 0000000..1d329ec Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04.jpeg new file mode 100644 index 0000000..41edb89 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47746127b3f91e355fe4_04.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05-p-500.jpeg new file mode 100644 index 0000000..14c1731 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05-p-800.jpeg new file mode 100644 index 0000000..25a3874 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05.jpeg new file mode 100644 index 0000000..1e393cd Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d477eb44d544cd08579c9_05.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06-p-500.jpeg new file mode 100644 index 0000000..8f72856 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06-p-800.jpeg new file mode 100644 index 0000000..6ba93ab Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06.jpeg new file mode 100644 index 0000000..781d99c Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47ce99509959fa491522_06.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07-p-500.jpeg new file mode 100644 index 0000000..11a8a49 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07-p-800.jpeg new file mode 100644 index 0000000..200bb7a Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07.jpeg new file mode 100644 index 0000000..1f147f0 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47d98817b0cac319f331_07.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08-p-500.jpeg new file mode 100644 index 0000000..d265fe6 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08-p-800.jpeg new file mode 100644 index 0000000..dfe7f32 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08.jpeg new file mode 100644 index 0000000..9bb2592 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47e30a137ad60c7b8439_08.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09-p-500.jpeg new file mode 100644 index 0000000..8603546 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09-p-800.jpeg new file mode 100644 index 0000000..280c88d Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09.jpeg new file mode 100644 index 0000000..cd76520 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d47efdf2c84c5cd579003_09.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04-p-500.jpeg new file mode 100644 index 0000000..3fefb1d Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04-p-800.jpeg new file mode 100644 index 0000000..6ce175e Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04.jpeg new file mode 100644 index 0000000..cce3241 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e51b2c68ccbc295760f_04.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05-p-500.jpeg new file mode 100644 index 0000000..4704dfb Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05-p-800.jpeg new file mode 100644 index 0000000..e015d79 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05.jpeg new file mode 100644 index 0000000..ef8a034 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e5f98342bad9964a7c0_05.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06-p-500.jpeg new file mode 100644 index 0000000..cf95b73 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06-p-800.jpeg new file mode 100644 index 0000000..4104839 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06.jpeg new file mode 100644 index 0000000..4d4d8aa Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e6731126e93364f7b3c_06.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07-p-500.jpeg new file mode 100644 index 0000000..d387ce0 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07-p-800.jpeg new file mode 100644 index 0000000..66d0f73 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07.jpeg new file mode 100644 index 0000000..cc4d59c Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e7023c99bd8a6dcdf71_07.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08-p-500.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08-p-500.jpeg new file mode 100644 index 0000000..a8e72a1 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08-p-500.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08-p-800.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08-p-800.jpeg new file mode 100644 index 0000000..f81cd35 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08-p-800.jpeg differ diff --git a/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08.jpeg b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08.jpeg new file mode 100644 index 0000000..a6e18a5 Binary files /dev/null and b/aearascapes/cdn.prod.website-files.com/63470efce625b300825300a0/651d4e790a137ad60c82e3c8_08.jpeg differ diff --git "a/aearascapes/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" "b/aearascapes/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" new file mode 100644 index 0000000..b061403 --- /dev/null +++ "b/aearascapes/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 + + + youtube-placeholder + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/aearascapes/datapopulator.s3-eu-central-1.amazonaws.com/manifest.json b/aearascapes/datapopulator.s3-eu-central-1.amazonaws.com/manifest.json new file mode 100644 index 0000000..ecba24c --- /dev/null +++ b/aearascapes/datapopulator.s3-eu-central-1.amazonaws.com/manifest.json @@ -0,0 +1,12 @@ +{ + "short_name": "~scapes", + "name": "aeara ~scapes", + "id": "aeara", + "start_url": "/aeara/scapes", + "background_color": "#ffffff", + "display": "standalone", + "scope": "/", + "theme_color": "#ffffff", + "description": "" + ] +} diff --git "a/aearascapes/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" "b/aearascapes/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" new file mode 100644 index 0000000..8a4efe0 --- /dev/null +++ "b/aearascapes/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" @@ -0,0 +1,242 @@ +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} diff --git a/aearascapes/fonts.googleapis.com/robots.ssl.txt b/aearascapes/fonts.googleapis.com/robots.ssl.txt new file mode 100644 index 0000000..9e60f97 --- /dev/null +++ b/aearascapes/fonts.googleapis.com/robots.ssl.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/aearascapes/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 b/aearascapes/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 new file mode 100644 index 0000000..d560d34 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 new file mode 100644 index 0000000..5e2b24a Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..b3ec1b3 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..d315229 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..366dc80 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..95c63e0 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..03039fe Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 new file mode 100644 index 0000000..b49074b Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 new file mode 100644 index 0000000..d25560c Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 new file mode 100644 index 0000000..fad313b Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 b/aearascapes/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 new file mode 100644 index 0000000..56e968d Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 b/aearascapes/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 new file mode 100644 index 0000000..0773927 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 b/aearascapes/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 new file mode 100644 index 0000000..e9bd2e8 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 b/aearascapes/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 new file mode 100644 index 0000000..74bc295 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 b/aearascapes/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 new file mode 100644 index 0000000..daa4d3e Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff b/aearascapes/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff new file mode 100644 index 0000000..9394bc1 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff differ diff --git a/aearascapes/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 b/aearascapes/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 new file mode 100644 index 0000000..741341a Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff b/aearascapes/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff new file mode 100644 index 0000000..98c7eab Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff differ diff --git a/aearascapes/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 b/aearascapes/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 new file mode 100644 index 0000000..9ac07eb Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 differ diff --git a/aearascapes/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 b/aearascapes/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 new file mode 100644 index 0000000..8d7b415 Binary files /dev/null and b/aearascapes/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 differ diff --git a/aearascapes/www.aeara.com/_downloads.html b/aearascapes/www.aeara.com/_downloads.html new file mode 100644 index 0000000..113b9fc --- /dev/null +++ b/aearascapes/www.aeara.com/_downloads.html @@ -0,0 +1,13 @@ + + + + + Downloads + + +

Downloads

+ + + diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/01.html b/aearascapes/www.aeara.com/aeara-scapes-days/01.html new file mode 100644 index 0000000..aa51568 --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/01.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/02.html b/aearascapes/www.aeara.com/aeara-scapes-days/02.html new file mode 100644 index 0000000..5e464ff --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/02.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/03.html b/aearascapes/www.aeara.com/aeara-scapes-days/03.html new file mode 100644 index 0000000..57955d6 --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/03.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/04.html b/aearascapes/www.aeara.com/aeara-scapes-days/04.html new file mode 100644 index 0000000..3216d8a --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/04.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/05.html b/aearascapes/www.aeara.com/aeara-scapes-days/05.html new file mode 100644 index 0000000..dfbcfed --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/05.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/06.html b/aearascapes/www.aeara.com/aeara-scapes-days/06.html new file mode 100644 index 0000000..9bbb2dc --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/06.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/07.html b/aearascapes/www.aeara.com/aeara-scapes-days/07.html new file mode 100644 index 0000000..dbf000e --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/07.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/08.html b/aearascapes/www.aeara.com/aeara-scapes-days/08.html new file mode 100644 index 0000000..74f6e86 --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/08.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara-scapes-days/09.html b/aearascapes/www.aeara.com/aeara-scapes-days/09.html new file mode 100644 index 0000000..4212132 --- /dev/null +++ b/aearascapes/www.aeara.com/aeara-scapes-days/09.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ day + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara/scapes.html b/aearascapes/www.aeara.com/aeara/scapes.html new file mode 100644 index 0000000..ee49552 --- /dev/null +++ b/aearascapes/www.aeara.com/aeara/scapes.html @@ -0,0 +1,9 @@ +æara ⚡️ ~scapes + + + +
+ +
+ +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara/scapes/day.html b/aearascapes/www.aeara.com/aeara/scapes/day.html new file mode 100644 index 0000000..6db328b --- /dev/null +++ b/aearascapes/www.aeara.com/aeara/scapes/day.html @@ -0,0 +1,38 @@ +æara ~scapes ⚡️ day + + + + + + + + \ No newline at end of file diff --git a/aearascapes/www.aeara.com/aeara/scapes/night.html b/aearascapes/www.aeara.com/aeara/scapes/night.html new file mode 100644 index 0000000..aeef12b --- /dev/null +++ b/aearascapes/www.aeara.com/aeara/scapes/night.html @@ -0,0 +1,38 @@ +æara ~scapes ⚡️ night + + + + + + + + \ No newline at end of file diff --git a/aearascapes/www.aeara.com/night/01.html b/aearascapes/www.aeara.com/night/01.html new file mode 100644 index 0000000..c2a0baa --- /dev/null +++ b/aearascapes/www.aeara.com/night/01.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ night + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/night/02.html b/aearascapes/www.aeara.com/night/02.html new file mode 100644 index 0000000..2640207 --- /dev/null +++ b/aearascapes/www.aeara.com/night/02.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ night + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/night/03.html b/aearascapes/www.aeara.com/night/03.html new file mode 100644 index 0000000..d06012b --- /dev/null +++ b/aearascapes/www.aeara.com/night/03.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ night + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/night/04.html b/aearascapes/www.aeara.com/night/04.html new file mode 100644 index 0000000..9f9a219 --- /dev/null +++ b/aearascapes/www.aeara.com/night/04.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ night + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/night/05.html b/aearascapes/www.aeara.com/night/05.html new file mode 100644 index 0000000..f5495df --- /dev/null +++ b/aearascapes/www.aeara.com/night/05.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ night + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/night/06.html b/aearascapes/www.aeara.com/night/06.html new file mode 100644 index 0000000..7c833e6 --- /dev/null +++ b/aearascapes/www.aeara.com/night/06.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ night + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/night/07.html b/aearascapes/www.aeara.com/night/07.html new file mode 100644 index 0000000..8565426 --- /dev/null +++ b/aearascapes/www.aeara.com/night/07.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ night + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.aeara.com/night/08.html b/aearascapes/www.aeara.com/night/08.html new file mode 100644 index 0000000..005c61c --- /dev/null +++ b/aearascapes/www.aeara.com/night/08.html @@ -0,0 +1,40 @@ +æara ~scapes ⚡️ night + + + + + + +
\ No newline at end of file diff --git a/aearascapes/www.instagram.com/robots.ssl.txt b/aearascapes/www.instagram.com/robots.ssl.txt new file mode 100644 index 0000000..df26d5e --- /dev/null +++ b/aearascapes/www.instagram.com/robots.ssl.txt @@ -0,0 +1,204 @@ +# Notice: Collection of data on Instagram through automated means is +# prohibited unless you have express written permission from Instagram +# and may only be conducted for the limited purpose contained in said +# permission. +User-agent: Amazonbot +Disallow: / + +User-agent: Applebot-Extended +Disallow: / + +User-agent: ClaudeBot +Disallow: / + +User-agent: Google-Extended +Disallow: / + +User-agent: GPTBot +Disallow: / + +User-agent: PetalBot +Disallow: / + +User-agent: viberbot +Disallow: / + +User-agent: YaK +Disallow: / + +User-agent: Yandex +Disallow: / + +User-agent: Applebot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Bingbot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Discordbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: DuckDuckBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: facebookexternalhit +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Googlebot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Googlebot-Image +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: LinkedInBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: msnbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Naverbot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Pinterestbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Screaming Frog SEO Spider +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: seznambot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Slurp +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: teoma +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: TelegramBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Twitterbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Yeti +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: * +Disallow: / diff --git a/index.html b/audiobeauty/index.html similarity index 100% rename from index.html rename to audiobeauty/index.html diff --git a/style.css b/audiobeauty/style.css similarity index 100% rename from style.css rename to audiobeauty/style.css diff --git a/max-for-live/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js b/max-for-live/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js new file mode 100644 index 0000000..3e95a6c --- /dev/null +++ b/max-for-live/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js @@ -0,0 +1,33 @@ +/* + * Copyright 2016 Small Batch, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +/* Web Font Loader v1.6.26 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,d){setTimeout(d,b.f)});Promise.race([e,d]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a= +P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)}; +function ma(a,b,c){for(var d in S)if(S.hasOwnProperty(d)&&b===a.f[S[d]]&&c===a.f[S[d]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=U()&&ma(a,b,c));d?q()-a.A>=a.w?U()&&ma(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)}; +W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,d,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)}; +function ra(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=d||null||{};if(0===c.length&&f)M(b.a);else{b.f+=c.length;f&&(b.j=f);var h,m=[];for(h=0;h img { + visibility: visible !important; + opacity: 1 !important; + vertical-align: middle !important; + display: inline-block !important; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 10px; + font-weight: bold; +} + +h1 { + margin-top: 20px; + font-size: 38px; + line-height: 44px; +} + +h2 { + margin-top: 20px; + font-size: 32px; + line-height: 36px; +} + +h3 { + margin-top: 20px; + font-size: 24px; + line-height: 30px; +} + +h4 { + margin-top: 10px; + font-size: 18px; + line-height: 24px; +} + +h5 { + margin-top: 10px; + font-size: 14px; + line-height: 20px; +} + +h6 { + margin-top: 10px; + font-size: 12px; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 10px; +} + +blockquote { + border-left: 5px solid #e2e2e2; + margin: 0 0 10px; + padding: 10px 20px; + font-size: 18px; + line-height: 22px; +} + +figure { + margin: 0 0 10px; +} + +figcaption { + text-align: center; + margin-top: 5px; +} + +ul, ol { + margin-top: 0; + margin-bottom: 10px; + padding-left: 40px; +} + +.w-list-unstyled { + padding-left: 0; + list-style: none; +} + +.w-embed:before, .w-embed:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-embed:after { + clear: both; +} + +.w-video { + width: 100%; + padding: 0; + position: relative; +} + +.w-video iframe, .w-video object, .w-video embed { + border: none; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +button, [type="button"], [type="reset"] { + cursor: pointer; + -webkit-appearance: button; + border: 0; +} + +.w-form { + margin: 0 0 15px; +} + +.w-form-done { + text-align: center; + background-color: #ddd; + padding: 20px; + display: none; +} + +.w-form-fail { + background-color: #ffdede; + margin-top: 10px; + padding: 10px; + display: none; +} + +label { + margin-bottom: 5px; + font-weight: bold; + display: block; +} + +.w-input, .w-select { + color: #333; + vertical-align: middle; + background-color: #fff; + border: 1px solid #ccc; + width: 100%; + height: 38px; + margin-bottom: 10px; + padding: 8px 12px; + font-size: 14px; + line-height: 1.42857; + display: block; +} + +.w-input::placeholder, .w-select::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: #eee; +} + +textarea.w-input, textarea.w-select { + height: auto; +} + +.w-select { + background-color: #f3f3f3; +} + +.w-select[multiple] { + height: auto; +} + +.w-form-label { + cursor: pointer; + margin-bottom: 0; + font-weight: normal; + display: inline-block; +} + +.w-radio { + margin-bottom: 5px; + padding-left: 20px; + display: block; +} + +.w-radio:before, .w-radio:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-radio:after { + clear: both; +} + +.w-radio-input { + float: left; + margin: 3px 0 0 -20px; + line-height: normal; +} + +.w-file-upload { + margin-bottom: 10px; + display: block; +} + +.w-file-upload-input { + opacity: 0; + z-index: -100; + width: .1px; + height: .1px; + position: absolute; + overflow: hidden; +} + +.w-file-upload-default, .w-file-upload-uploading, .w-file-upload-success { + color: #333; + display: inline-block; +} + +.w-file-upload-error { + margin-top: 10px; + display: block; +} + +.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 { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: flex; +} + +.w-file-upload-file { + background-color: #fafafa; + border: 1px solid #ccc; + flex-grow: 1; + justify-content: space-between; + margin: 0; + padding: 8px 9px 8px 11px; + display: flex; +} + +.w-file-upload-file-name { + font-size: 14px; + font-weight: normal; + display: block; +} + +.w-file-remove-link { + cursor: pointer; + width: auto; + height: auto; + margin-top: 3px; + margin-left: 10px; + padding: 3px; + display: block; +} + +.w-icon-file-upload-remove { + margin: auto; + font-size: 10px; +} + +.w-file-upload-error-msg { + color: #ea384c; + padding: 2px 0; + display: inline-block; +} + +.w-file-upload-info { + padding: 0 12px; + line-height: 38px; + display: inline-block; +} + +.w-file-upload-label { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: inline-block; +} + +.w-icon-file-upload-icon, .w-icon-file-upload-uploading { + width: 20px; + margin-right: 8px; + display: inline-block; +} + +.w-icon-file-upload-uploading { + height: 20px; +} + +.w-container { + max-width: 940px; + margin-left: auto; + margin-right: auto; +} + +.w-container:before, .w-container:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-container:after { + clear: both; +} + +.w-container .w-row { + margin-left: -10px; + margin-right: -10px; +} + +.w-row:before, .w-row:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-row:after { + clear: both; +} + +.w-row .w-row { + margin-left: 0; + margin-right: 0; +} + +.w-col { + float: left; + width: 100%; + min-height: 1px; + padding-left: 10px; + padding-right: 10px; + position: relative; +} + +.w-col .w-col { + padding-left: 0; + padding-right: 0; +} + +.w-col-1 { + width: 8.33333%; +} + +.w-col-2 { + width: 16.6667%; +} + +.w-col-3 { + width: 25%; +} + +.w-col-4 { + width: 33.3333%; +} + +.w-col-5 { + width: 41.6667%; +} + +.w-col-6 { + width: 50%; +} + +.w-col-7 { + width: 58.3333%; +} + +.w-col-8 { + width: 66.6667%; +} + +.w-col-9 { + width: 75%; +} + +.w-col-10 { + width: 83.3333%; +} + +.w-col-11 { + width: 91.6667%; +} + +.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.33333%; + } + + .w-col-medium-2 { + width: 16.6667%; + } + + .w-col-medium-3 { + width: 25%; + } + + .w-col-medium-4 { + width: 33.3333%; + } + + .w-col-medium-5 { + width: 41.6667%; + } + + .w-col-medium-6 { + width: 50%; + } + + .w-col-medium-7 { + width: 58.3333%; + } + + .w-col-medium-8 { + width: 66.6667%; + } + + .w-col-medium-9 { + width: 75%; + } + + .w-col-medium-10 { + width: 83.3333%; + } + + .w-col-medium-11 { + width: 91.6667%; + } + + .w-col-medium-12 { + width: 100%; + } + + .w-col-stack { + width: 100%; + left: auto; + right: auto; + } +} + +@media screen and (max-width: 767px) { + .w-hidden-main, .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.33333%; + } + + .w-col-small-2 { + width: 16.6667%; + } + + .w-col-small-3 { + width: 25%; + } + + .w-col-small-4 { + width: 33.3333%; + } + + .w-col-small-5 { + width: 41.6667%; + } + + .w-col-small-6 { + width: 50%; + } + + .w-col-small-7 { + width: 58.3333%; + } + + .w-col-small-8 { + width: 66.6667%; + } + + .w-col-small-9 { + width: 75%; + } + + .w-col-small-10 { + width: 83.3333%; + } + + .w-col-small-11 { + width: 91.6667%; + } + + .w-col-small-12 { + width: 100%; + } +} + +@media screen and (max-width: 479px) { + .w-container { + max-width: none; + } + + .w-hidden-main, .w-hidden-medium, .w-hidden-small { + display: inherit !important; + } + + .w-hidden-tiny { + display: none !important; + } + + .w-col { + width: 100%; + } + + .w-col-tiny-1 { + width: 8.33333%; + } + + .w-col-tiny-2 { + width: 16.6667%; + } + + .w-col-tiny-3 { + width: 25%; + } + + .w-col-tiny-4 { + width: 33.3333%; + } + + .w-col-tiny-5 { + width: 41.6667%; + } + + .w-col-tiny-6 { + width: 50%; + } + + .w-col-tiny-7 { + width: 58.3333%; + } + + .w-col-tiny-8 { + width: 66.6667%; + } + + .w-col-tiny-9 { + width: 75%; + } + + .w-col-tiny-10 { + width: 83.3333%; + } + + .w-col-tiny-11 { + width: 91.6667%; + } + + .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 { + vertical-align: top; + text-align: center; + background: #fff; + border: 1px solid #758696; + border-radius: 3px; + width: 28px; + height: 20px; + display: inline-block; + position: relative; +} + +.w-widget-twitter-count-shim * { + pointer-events: none; + -webkit-user-select: none; + user-select: none; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-inner { + text-align: center; + color: #999; + font-family: serif; + font-size: 15px; + line-height: 12px; + position: relative; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-clear { + display: block; + position: relative; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 50%; + left: 0; +} + +.w-widget-twitter-count-shim:not(.w--vertical):before { + border-width: 4px; + border-color: #75869600 #5d6c7b #75869600 #75869600; + margin-top: -4px; + margin-left: -9px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:before { + border-width: 5px; + margin-top: -5px; + margin-left: -10px; +} + +.w-widget-twitter-count-shim:not(.w--vertical):after { + border-width: 4px; + border-color: #fff0 #fff #fff0 #fff0; + margin-top: -4px; + margin-left: -8px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:after { + border-width: 5px; + margin-top: -5px; + margin-left: -9px; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 100%; + left: 50%; +} + +.w-widget-twitter-count-shim.w--vertical:before { + border-width: 5px; + border-color: #5d6c7b #75869600 #75869600; + margin-left: -5px; +} + +.w-widget-twitter-count-shim.w--vertical:after { + border-width: 4px; + border-color: #fff #fff0 #fff0; + 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 { + color: #fff; + height: 500px; + position: relative; + overflow: hidden; +} + +.w-background-video > video { + object-fit: cover; + z-index: -100; + background-position: 50%; + background-size: cover; + width: 100%; + height: 100%; + margin: auto; + position: absolute; + inset: -100%; +} + +.w-background-video > video::-webkit-media-controls-start-playback-button { + -webkit-appearance: none; + display: none !important; +} + +.w-background-video--control { + background-color: #0000; + padding: 0; + position: absolute; + bottom: 1em; + right: 1em; +} + +.w-background-video--control > [hidden] { + display: none !important; +} + +.w-slider { + text-align: center; + clear: both; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + background: #ddd; + height: 300px; + position: relative; +} + +.w-slider-mask { + z-index: 1; + white-space: nowrap; + height: 100%; + display: block; + position: relative; + left: 0; + right: 0; + overflow: hidden; +} + +.w-slide { + vertical-align: top; + white-space: normal; + text-align: left; + width: 100%; + height: 100%; + display: inline-block; + position: relative; +} + +.w-slider-nav { + z-index: 2; + text-align: center; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + height: 40px; + margin: auto; + padding-top: 10px; + position: absolute; + inset: auto 0 0; +} + +.w-slider-nav.w-round > div { + border-radius: 100%; +} + +.w-slider-nav.w-num > div { + font-size: inherit; + line-height: inherit; + width: auto; + height: auto; + padding: .2em .5em; +} + +.w-slider-nav.w-shadow > div { + box-shadow: 0 0 3px #3336; +} + +.w-slider-nav-invert { + color: #fff; +} + +.w-slider-nav-invert > div { + background-color: #2226; +} + +.w-slider-nav-invert > div.w-active { + background-color: #222; +} + +.w-slider-dot { + cursor: pointer; + background-color: #fff6; + width: 1em; + height: 1em; + margin: 0 3px .5em; + transition: background-color .1s, color .1s; + display: inline-block; + position: relative; +} + +.w-slider-dot.w-active { + background-color: #fff; +} + +.w-slider-dot:focus { + outline: none; + box-shadow: 0 0 0 2px #fff; +} + +.w-slider-dot:focus.w-active { + box-shadow: none; +} + +.w-slider-arrow-left, .w-slider-arrow-right { + cursor: pointer; + color: #fff; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + width: 80px; + margin: auto; + font-size: 40px; + position: absolute; + inset: 0; + overflow: hidden; +} + +.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 { + width: 1em; + height: 1em; + margin: auto; + inset: 0; +} + +.w-slider-aria-label { + clip: rect(0 0 0 0); + border: 0; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + position: absolute; + overflow: hidden; +} + +.w-slider-force-show { + display: block !important; +} + +.w-dropdown { + text-align: left; + z-index: 900; + margin-left: auto; + margin-right: auto; + display: inline-block; + position: relative; +} + +.w-dropdown-btn, .w-dropdown-toggle, .w-dropdown-link { + vertical-align: top; + color: #222; + text-align: left; + white-space: nowrap; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + position: relative; +} + +.w-dropdown-toggle { + -webkit-user-select: none; + user-select: none; + cursor: pointer; + padding-right: 40px; + display: inline-block; +} + +.w-dropdown-toggle:focus { + outline: 0; +} + +.w-icon-dropdown-toggle { + width: 1em; + height: 1em; + margin: auto 20px auto auto; + position: absolute; + top: 0; + bottom: 0; + right: 0; +} + +.w-dropdown-list { + background: #ddd; + min-width: 100%; + display: none; + position: absolute; +} + +.w-dropdown-list.w--open { + display: block; +} + +.w-dropdown-link { + color: #222; + padding: 10px 20px; + display: block; +} + +.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; + } +} + +.w-lightbox-backdrop { + cursor: auto; + letter-spacing: normal; + text-indent: 0; + text-shadow: none; + text-transform: none; + visibility: visible; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + color: #fff; + text-align: center; + z-index: 2000; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -webkit-tap-highlight-color: transparent; + background: #000000e6; + outline: 0; + font-family: Helvetica Neue, Helvetica, Ubuntu, Segoe UI, Verdana, sans-serif; + font-size: 17px; + font-style: normal; + font-weight: 300; + line-height: 1.2; + list-style: disc; + position: fixed; + inset: 0; + -webkit-transform: translate(0); +} + +.w-lightbox-backdrop, .w-lightbox-container { + -webkit-overflow-scrolling: touch; + height: 100%; + overflow: auto; +} + +.w-lightbox-content { + height: 100vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-view { + opacity: 0; + width: 100vw; + height: 100vh; + position: absolute; +} + +.w-lightbox-view:before { + content: ""; + height: 100vh; +} + +.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 { + vertical-align: middle; + display: inline-block; +} + +.w-lightbox-figure { + margin: 0; + position: relative; +} + +.w-lightbox-group .w-lightbox-figure { + cursor: pointer; +} + +.w-lightbox-img { + width: auto; + max-width: none; + height: auto; +} + +.w-lightbox-image { + float: none; + max-width: 100vw; + max-height: 100vh; + display: block; +} + +.w-lightbox-group .w-lightbox-image { + max-height: 86vh; +} + +.w-lightbox-caption { + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + background: #0006; + padding: .5em 1em; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: hidden; +} + +.w-lightbox-embed { + width: 100%; + height: 100%; + position: absolute; + inset: 0; +} + +.w-lightbox-control { + cursor: pointer; + background-position: center; + background-repeat: no-repeat; + background-size: 24px; + width: 4em; + transition: all .3s; + position: absolute; + top: 0; +} + +.w-lightbox-left { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg=="); + display: none; + bottom: 0; + left: 0; +} + +.w-lightbox-right { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+"); + display: none; + bottom: 0; + right: 0; +} + +.w-lightbox-close { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4="); + background-size: 18px; + height: 2.6em; + right: 0; +} + +.w-lightbox-strip { + white-space: nowrap; + padding: 0 1vh; + line-height: 0; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: auto hidden; +} + +.w-lightbox-item { + box-sizing: content-box; + cursor: pointer; + width: 10vh; + padding: 2vh 1vh; + display: inline-block; + -webkit-transform: translate3d(0, 0, 0); +} + +.w-lightbox-active { + opacity: .3; +} + +.w-lightbox-thumbnail { + background: #222; + height: 10vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-thumbnail-image { + position: absolute; + top: 0; + left: 0; +} + +.w-lightbox-thumbnail .w-lightbox-tall { + width: 100%; + top: 50%; + transform: translate(0, -50%); +} + +.w-lightbox-thumbnail .w-lightbox-wide { + height: 100%; + left: 50%; + transform: translate(-50%); +} + +.w-lightbox-spinner { + box-sizing: border-box; + border: 5px solid #0006; + border-radius: 50%; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + animation: .8s linear infinite spin; + position: absolute; + top: 50%; + left: 50%; +} + +.w-lightbox-spinner:after { + content: ""; + border: 3px solid #0000; + border-bottom-color: #fff; + border-radius: 50%; + position: absolute; + inset: -4px; +} + +.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-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 { + opacity: .5; + display: block; + } + + .w-lightbox-close { + opacity: .8; + } + + .w-lightbox-control:hover { + opacity: 1; + } +} + +.w-lightbox-inactive, .w-lightbox-inactive:hover { + opacity: 0; +} + +.w-richtext:before, .w-richtext:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.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, .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: ""; + display: none; + position: absolute; + inset: 0; +} + +.w-richtext figure { + max-width: 60%; + position: relative; +} + +.w-richtext figure > div:before { + cursor: default !important; +} + +.w-richtext figure img { + width: 100%; +} + +.w-richtext figure figcaption.w-richtext-figcaption-placeholder { + opacity: .6; +} + +.w-richtext figure div { + color: #0000; + font-size: 0; +} + +.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 { + caption-side: bottom; + display: table-caption; +} + +.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 { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +.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 { + clear: both; + margin-left: auto; + margin-right: auto; +} + +.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 { + text-align: center; + clear: both; + width: 100%; + max-width: 100%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.w-richtext figure.w-richtext-align-fullwidth > div { + padding-bottom: inherit; + display: inline-block; +} + +.w-richtext figure.w-richtext-align-fullwidth > figcaption { + display: block; +} + +.w-richtext figure.w-richtext-align-floatleft { + float: left; + clear: none; + margin-right: 15px; +} + +.w-richtext figure.w-richtext-align-floatright { + float: right; + clear: none; + margin-left: 15px; +} + +.w-nav { + z-index: 1000; + background: #ddd; + position: relative; +} + +.w-nav:before, .w-nav:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-nav:after { + clear: both; +} + +.w-nav-brand { + float: left; + color: #333; + text-decoration: none; + position: relative; +} + +.w-nav-link { + vertical-align: top; + color: #222; + text-align: left; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-nav-link.w--current { + color: #0082f3; +} + +.w-nav-menu { + float: right; + position: relative; +} + +[data-nav-menu-open] { + text-align: center; + background: #c8c8c8; + min-width: 200px; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: visible; + display: block !important; +} + +.w--nav-link-open { + display: block; + position: relative; +} + +.w-nav-overlay { + width: 100%; + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: hidden; +} + +.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] { + z-index: 1; + top: 0; + right: auto; +} + +.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] { + z-index: 1; + top: 0; + left: auto; +} + +.w-nav-button { + float: right; + cursor: pointer; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + padding: 18px; + font-size: 24px; + display: none; + position: relative; +} + +.w-nav-button:focus { + outline: 0; +} + +.w-nav-button.w--open { + color: #fff; + background-color: #c8c8c8; +} + +.w-nav[data-collapse="all"] .w-nav-menu { + display: none; +} + +.w-nav[data-collapse="all"] .w-nav-button, .w--nav-dropdown-open, .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: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-tabs:after { + clear: both; +} + +.w-tab-menu { + position: relative; +} + +.w-tab-link { + vertical-align: top; + text-align: left; + cursor: pointer; + color: #222; + background-color: #ddd; + padding: 9px 30px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-tab-link.w--current { + background-color: #c8c8c8; +} + +.w-tab-link:focus { + outline: 0; +} + +.w-tab-content { + display: block; + position: relative; + overflow: hidden; +} + +.w-tab-pane { + display: none; + position: relative; +} + +.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(0); + } + + 100% { + transform: rotate(360deg); + } +} + +.w-dyn-empty { + background-color: #ddd; + padding: 10px; +} + +.w-dyn-hide, .w-dyn-bind-empty, .w-condition-invisible { + display: none !important; +} + +.wf-layout-layout { + display: grid; +} + +.w-code-component > * { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +:root { + --medium-aquamarine: #7ec4bd; + --white-smoke: whitesmoke; +} + +.w-embed-youtubevideo { + background-image: url("../../../d3e54v103j8qbb.cloudfront.net/static/youtube-placeholder.2b05e7d68d.svg"); + background-position: 50%; + background-size: cover; + width: 100%; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + position: relative; +} + +.w-embed-youtubevideo:empty { + min-height: 75px; + padding-bottom: 56.25%; +} + +body { + color: #333; + font-family: Vollkorn, serif; + font-size: 14px; + line-height: 20px; +} + +h1 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 32px; + font-weight: 700; + line-height: 38px; +} + +h2 { + text-align: center; + text-transform: uppercase; + margin: 10px 0; + font-family: Montserrat, sans-serif; + font-size: 23px; + font-weight: 400; + line-height: 36px; +} + +h3 { + text-transform: uppercase; + margin: 0 0 20px; + font-family: Montserrat, sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 20px; +} + +h4 { + margin: 10px 0; + font-size: 18px; + font-weight: 700; + line-height: 24px; +} + +h5 { + margin: 10px 0; + font-size: 14px; + font-weight: 700; + line-height: 20px; +} + +h6 { + margin: 10px 0; + font-size: 12px; + font-weight: 700; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 5px; + font-family: Vollkorn, serif; + font-size: 15px; + line-height: 22px; +} + +a { + text-decoration: underline; +} + +a:hover { + color: #111; +} + +a:active { + color: #000; +} + +a:visited { + color: #666; +} + +.button { + color: #fff; + text-align: center; + background-color: #13b7d8; + border: 1px #47474f; + border-radius: 6px; + padding: 12px 30px; + font-family: Roboto, sans-serif; + font-size: 18px; + font-style: normal; + text-decoration: none; + transition: background-color .3s; + display: inline-block; +} + +.button:hover { + background-color: #1296b1; +} + +.button.form { + color: #7ec4bd; + border-width: 1px 1px 2px; + border-color: #7ec4bd; + margin-top: 23px; + margin-bottom: 24px; + padding-left: 54px; + padding-right: 54px; +} + +.button.form:hover { + background-color: #7ec4bd57; +} + +.header { + color: #fff; + text-align: center; + background-color: #fffcba; + padding: 60px 20px; +} + +.header.project-page { + background-image: linear-gradient(#64d1c68c, #64d1c68c), url("../61cc329947770114fa07dcd2_lake.jpg"); + padding-top: 77px; + padding-bottom: 77px; +} + +.navbar { + background-color: #fff; + padding-top: 18px; + padding-bottom: 18px; +} + +.nav-link { + color: #404040; + text-transform: uppercase; + border-bottom: 2px solid #0000; + margin-top: 23px; + margin-left: 34px; + padding: 0; + font-family: Roboto, sans-serif; + font-size: 14px; + font-weight: 400; + transition: border-color .3s; +} + +.nav-link:hover { + border-bottom-color: #13b7d8; +} + +.nav-link.w--current { + font-family: Roboto, sans-serif; + font-size: 14px; +} + +.logo-title { + float: left; + text-transform: uppercase; + margin-top: 12px; + font-family: Roboto Condensed, sans-serif; + font-size: 22px; + font-weight: 400; +} + +.logo-img { + float: left; + margin-right: 18px; +} + +.main-heading { + color: #000; + text-align: left; + text-transform: none; + margin-top: 0; + margin-bottom: 0; + margin-left: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 36px; + font-weight: 400; + line-height: 48px; +} + +.divider { + background-color: #fff; + width: 80px; + height: 2px; + margin: 28px auto; + display: block; +} + +.divider.grey { + background-color: #00000017; + margin-bottom: 43px; +} + +.main-subtitle { + color: #ffffffcf; + font-family: Vollkorn, serif; + font-size: 18px; + font-style: italic; +} + +.about-section { + text-align: center; + background-color: #fffcba; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-text { + color: #47474f; + margin-bottom: 40px; + font-family: Roboto Mono, sans-serif; + font-size: 20px; + font-style: normal; + line-height: 30px; +} + +.x-icon { + margin-top: -26px; + margin-bottom: 34px; +} + +.section { + text-align: center; + padding-top: 69px; + padding-bottom: 69px; +} + +.section.grey { + background-color: #f5f5f5; +} + +.section.contact { + background-color: #9ac4cd; + background-image: linear-gradient(#9ac4cd, #9ac4cd); + padding-top: 40px; + padding-bottom: 60px; + font-family: Vollkorn, serif; +} + +.section.footer { + background-color: #393b3c; + padding-top: 40px; + padding-bottom: 40px; +} + +.grey-icon-wrapper { + background-color: #f5f5f5; + margin-bottom: 38px; + padding-top: 50px; + padding-bottom: 50px; +} + +.project-wrapper { + color: #333; + text-decoration: none; + transition: bottom .3s; + display: block; + position: relative; + bottom: 0; +} + +.project-wrapper:hover { + bottom: 8px; +} + +.team-image { + border-radius: 100%; + margin-bottom: 21px; +} + +.role { + margin-bottom: 16px; + font-family: Vollkorn, serif; + font-size: 17px; + font-style: italic; +} + +.social-link { + background-color: #f5f5f5; + border-radius: 100%; + width: 29px; + height: 29px; + margin: 3px; + padding-top: 5px; + padding-left: 1px; + transition: box-shadow .3s; + box-shadow: inset 0 0 0 1px #0000; +} + +.social-link:hover { + box-shadow: inset 0 0 0 2px #7ec4bd; +} + +.team-title { + margin-bottom: 7px; +} + +.testimonial-slider { + background-color: #0000; + height: auto; +} + +.quote-icon { + margin-bottom: 37px; +} + +.arrow { + color: #e3e3e3; + width: 40px; + font-size: 30px; + transition: color .3s; +} + +.arrow:hover { + color: #333; +} + +.testimonial-slide { + text-align: center; + width: 50%; + padding: 30px 34px 29px; +} + +.testimonial-slide.left-border { + border-left: 2px solid #0000000a; +} + +.mask { + width: 95%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.team-row { + margin-bottom: 20px; +} + +.testimonial { + margin-bottom: 22px; + font-size: 26px; + line-height: 33px; +} + +.from { + color: #ababab; + text-transform: uppercase; + margin-bottom: 0; + font-family: Montserrat, sans-serif; + font-size: 14px; + font-weight: 400; +} + +.icon-wrapper { + height: 95px; + margin-bottom: 10px; + padding-top: 13px; +} + +.icon-wrapper._2 { + padding-top: 20px; +} + +.footer-logo { + opacity: .4; + margin-bottom: 15px; +} + +.contact-text { + color: #212121; + font-family: Roboto, sans-serif; + font-size: 17px; +} + +.link { + color: #1c1c1c; +} + +.social-wrapper { + text-align: left; + margin-bottom: 11px; + margin-left: 33%; + text-decoration: none; + transition: opacity .3s; + display: block; +} + +.social-wrapper:hover { + opacity: .43; +} + +.footer-text { + color: #fff6; + font-family: Roboto, sans-serif; +} + +.social-link-text { + display: inline-block; +} + +.social-icon { + margin-top: -6px; + margin-right: 9px; +} + +.field { + color: #7ec4bd; + background-color: #fff3; + border: 0 solid #000; + height: 57px; + margin-bottom: 0; + padding-top: 17px; + padding-bottom: 17px; + font-size: 18px; + font-style: italic; + box-shadow: inset 3px 0 #0000; +} + +.field:focus { + box-shadow: inset 3px 0 #7ec4bd; +} + +.field.large { + height: 127px; +} + +.field.darker { + background-color: #ffffff2e; + transition: box-shadow .3s; +} + +.form-wrapper { + padding-left: 20%; + padding-right: 20%; +} + +.success-message { + color: #7ec4bd; + background-color: #0000; + border: 1px solid #7ec4bd; + border-bottom-width: 2px; + padding-top: 82px; + padding-bottom: 82px; +} + +.project-info { + background-color: #fff; + margin-bottom: 20px; + padding-top: 20px; + padding-bottom: 20px; +} + +.project-title { + margin-bottom: 4px; +} + +.grow-row { + margin-bottom: 42px; +} + +.screenshot { + margin-bottom: 43px; +} + +.face { + border-radius: 100%; + margin-bottom: 10px; +} + +.body { + background-color: #000; + font-family: Roboto, sans-serif; +} + +.container { + padding-top: 0; +} + +.image { + cursor: none; + object-fit: fill; + width: 100%; + max-width: 100%; + margin: auto; + display: block; + overflow: auto; +} + +.heading { + font-family: Roboto Mono, sans-serif; +} + +.container-2 { + font-family: Roboto, sans-serif; +} + +.heading-2, .heading-3, .heading-4 { + font-family: Roboto Mono, sans-serif; + font-weight: 600; +} + +.datapop-section { + text-align: center; + background-color: #e8f7fa; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-key-visual { + color: #47474f; + margin-bottom: 40px; + margin-left: auto; + margin-right: auto; + font-family: Roboto Mono, sans-serif; + font-size: 18px; + line-height: 25px; + display: block; +} + +.datapop-logo { + margin-bottom: 60px; +} + +.column, .column-2 { + padding-left: 0; + padding-right: 0; +} + +.body-2 { + background-color: #000; +} + +.image-2 { + -webkit-text-fill-color: inherit; + cursor: zoom-in; + object-position: 50% 50%; + background-clip: border-box; + border-radius: 0; +} + +.collection-item { + height: 100%; +} + +.item { + float: left; + clear: none; + cursor: none; + object-fit: fill; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + position: relative; + overflow: visible; +} + +.item:hover { + background-color: #fff; +} + +.collection-list { + padding: 30px 10px 10px; +} + +.identity { + object-fit: fill; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + font-family: Inconsolata, monospace; + font-size: 16px; + font-weight: 400; + text-decoration: none; + display: flex; + position: static; +} + +.headingblock { + z-index: 100; + color: #333; + background-color: #fff; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 100%; + margin-bottom: 0; + padding-bottom: 0; + padding-left: 20px; + padding-right: 20px; + font-family: Inconsolata, monospace; + display: flex; + position: fixed; + inset: 0% 0% auto; + overflow: auto; +} + +.collection-list-wrapper { + margin-top: 40px; + padding: 0 10px 10px; +} + +.collection-item-2 { + padding-left: 0; + padding-right: 0; +} + +.collection-list-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + cursor: none; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + display: block; + overflow: visible; +} + +.div-block { + cursor: none; + background-color: #fff; +} + +.image-3 { + width: 100%; +} + +.linkblock { + cursor: zoom-in; + display: block; +} + +.link-block-2 { + display: block; +} + +.text-span { + color: #888; + padding-left: 10px; + text-decoration: none; +} + +.p5canvas { + background-color: #000; + overflow: hidden; +} + +.bodyrosa { + clear: none; + object-fit: fill; + background-color: #ffade4; + padding: 0 40px 40px; + font-family: Inconsolata, monospace; + display: block; +} + +.text-block { + color: #242424; + text-align: center; + background-color: #fff; + margin-top: 40px; + padding: 20px; + font-size: 24px; + font-weight: 700; +} + +.image-4 { + z-index: auto; + object-fit: fill; + margin: 40px auto; + display: block; + position: static; + overflow: auto; +} + +.heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; +} + +.heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px 20px; + font-size: 26px; + line-height: 34px; +} + +.paragraph { + background-color: #fff; + margin-bottom: 0; + padding: 10px 20px; + font-family: Inconsolata, monospace; + font-size: 18px; + line-height: 26px; +} + +.body-3 { + background-color: #ffa1af; +} + +.body-4 { + cursor: none; +} + +.link-block-day { + color: #000; + cursor: none; + background-color: #fff; + border: 1px solid #000; + border-radius: 4px; + flex: 0 auto; + justify-content: center; + align-self: auto; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-day:hover { + color: #000; + background-color: #eee; +} + +.text-block-2 { + text-align: center; + flex: 1; + justify-content: space-between; + align-self: center; + width: 50%; + display: block; +} + +.body-5 { + height: 100%; + min-height: 100px; + margin-top: auto; + margin-bottom: auto; +} + +.columns-2 { + float: none; + clear: none; + flex-flow: column wrap; + place-content: space-around space-between; + align-items: center; + margin-top: auto; + margin-bottom: auto; + display: flex; +} + +.body-6 { + grid-column-gap: 20px; + grid-row-gap: 20px; + cursor: none; + object-fit: none; + flex-direction: row; + justify-content: space-around; + align-items: stretch; + height: 100vh; + padding: 20px; + display: flex; + overflow: auto; +} + +.link-block-night { + color: #fff; + cursor: none; + background-color: #000; + border-radius: 4px; + flex-wrap: nowrap; + flex: 0 auto; + justify-content: center; + align-self: center; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-night:hover { + background-color: #222; +} + +.image-5 { + color: #fff; + background-color: #0000; +} + +.icon-night { + color: #fff; + flex-direction: row; + align-items: stretch; +} + +.icon-day { + color: #000; + flex-direction: row; + align-items: stretch; +} + +.collection-item-3 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: flex-start; + width: 100%; + padding-left: 0; + padding-right: 0; + display: block; + position: absolute; +} + +.image-6 { + width: 100%; +} + +.body-7 { + cursor: none; + background-color: #000; + padding: 0; +} + +.collection-item-4 { + padding-top: 10px; + padding-bottom: 10px; +} + +.image-7 { + background-color: #000; +} + +.body-8 { + cursor: none; + background-color: #fff; +} + +.collection-list-wrapper-2 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-5 { + padding-top: 10px; + padding-bottom: 10px; +} + +.collection-list-wrapper-3 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-6 { + padding: 10px; +} + +.body-9 { + cursor: none; + background-color: #000; +} + +.image-8 { + width: 100%; + min-width: 100%; + margin: auto; + display: block; +} + +.link-block-3 { + display: block; +} + +.image-9 { + cursor: none; + width: 100%; +} + +.link-block-4 { + display: block; +} + +.image-10 { + cursor: zoom-in; +} + +.collection-list-wrapper-4 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; + display: block; +} + +.link-block-5 { + color: #333; + text-decoration: none; +} + +.link-block-5:active, .link-block-5:focus { + color: #000; +} + +.link-block-5:visited { + color: #333; +} + +.div-block-3 { + background-color: #fff; +} + +.paragraph-2 { + text-align: center; + letter-spacing: 2px; + flex-flow: row; + justify-content: space-around; + align-items: stretch; + margin-bottom: 0; + font-family: Roboto, sans-serif; + font-size: 72px; + font-weight: 400; + line-height: 72px; + display: block; +} + +.container-3 { + width: 4%; + max-width: 0; + margin-top: auto; + margin-bottom: auto; + display: block; +} + +.div-block-4 { + width: 50%; + margin: auto; + display: block; +} + +.section-2 { + grid-column-gap: 36px; + grid-row-gap: 36px; + color: #fff; + background-color: #fc0093; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + font-family: Inconsolata, monospace; + font-size: 36px; + line-height: 36px; + display: flex; +} + +.text-block-3 { + font-size: 72px; + line-height: 72px; +} + +.video { + aspect-ratio: 9 / 16; + margin-bottom: 4px; +} + +.collection-item-7 { + padding-bottom: 20px; + padding-left: 10px; +} + +.collection-list-3 { + padding-left: 10px; + padding-right: 10px; +} + +.link-2 { + color: #000; + font-family: Inconsolata, monospace; +} + +.collection-list-wrapper-5 { + padding-top: 44px; +} + +.bg { + box-sizing: border-box; + grid-column-gap: 11px; + grid-row-gap: 11px; + background-color: #000; + display: flex; +} + +.no1 { + clear: none; + grid-column-gap: 0px; + grid-row-gap: 0px; + aspect-ratio: 16 / 9; + outline-offset: 0px; + direction: ltr; + color: #fff; + text-align: center; + text-transform: none; + -webkit-text-fill-color: inherit; + vertical-align: super; + cursor: none; + background-color: #333; + background-clip: border-box; + border: 1px #000; + border-radius: 20px; + outline: 0 #fff; + flex-flow: row; + flex: 1; + order: 0; + justify-content: center; + align-self: auto; + align-items: center; + padding: 20px 30px; + font-family: Roboto Mono, sans-serif; + font-size: 16em; + text-decoration: none; + display: flex; + position: static; + inset: 0%; + overflow: visible; +} + +.no1:active { + background-color: #008d38; +} + +.no1-copy { + float: none; + clear: none; + color: #fff; + text-align: center; + vertical-align: super; + background-color: #3d3d3d; + border-radius: 20px; + justify-content: center; + align-items: center; + margin: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 15em; + display: flex; + position: fixed; + inset: 0%; + overflow: visible; +} + +.no1-copy:active { + background-color: #008d38; +} + +.numbers { + box-sizing: border-box; + grid-column-gap: 20px; + grid-row-gap: 20px; + flex-flow: row; + flex: 0 auto; + order: 0; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: center; + align-self: auto; + align-items: center; + margin: auto; + padding: 20px; + display: flex; + position: static; + overflow: visible; +} + +.text-span-2 { + font-weight: 700; +} + +.div-block-5 { + background-color: #000; + flex: 1; + justify-content: space-around; + align-items: center; + height: 100vh; + display: flex; +} + +.text-span-3 { + color: #fff; + text-align: left; + font-family: Lato, sans-serif; + font-size: 12em; + font-weight: 400; +} + +@media screen and (max-width: 991px) { + .nav-link { + margin: 0 auto; + padding-top: 20px; + padding-bottom: 20px; + } + + .nav-link:hover { + border-bottom-color: #0000; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .project-wrapper:hover { + transform: translate(0); + } + + .social-wrapper { + margin-left: 30%; + } + + .menu-button { + margin-top: 7px; + padding: 10px; + font-size: 32px; + } + + .menu-button.w--open { + color: #7ec4bd; + background-color: #0000; + } + + .nav-menu { + background-color: #f5f5f5; + } +} + +@media screen and (max-width: 767px) { + .header { + padding-top: 45px; + padding-bottom: 45px; + } + + .navbar { + padding-top: 10px; + padding-bottom: 10px; + } + + .nav-link { + padding-top: 15px; + padding-bottom: 15px; + padding-left: 10px; + } + + .logo-title { + margin-top: 6px; + } + + .logo-img { + width: 50px; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .about-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } + + .x-icon { + margin-bottom: 21px; + } + + .section { + padding-top: 30px; + padding-bottom: 30px; + } + + .grey-icon-wrapper { + margin-bottom: 16px; + padding: 34px 56px; + display: inline-block; + } + + .grey-icon-wrapper.push-top { + margin-top: 30px; + } + + .testimonial-slide { + width: 100%; + } + + .testimonial-slide.left-border { + border-left-width: 0; + } + + .icon-wrapper { + height: 85px; + } + + .icon-wrapper._2 { + margin-top: 37px; + } + + .social-wrapper { + text-align: center; + margin-left: 0%; + } + + .form-wrapper { + padding-left: 10%; + padding-right: 10%; + } + + .menu-button { + margin-top: 0; + } + + .member { + padding-bottom: 47px; + } + + .grow-row { + margin-bottom: 0; + } + + .screenshot { + width: 90%; + } + + .image { + margin-bottom: auto; + padding: 0; + } + + .datapop-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } +} + +@media screen and (max-width: 479px) { + .header { + padding-top: 40px; + padding-bottom: 40px; + } + + .brand-block { + padding-left: 12px; + } + + .main-heading { + float: right; + clear: none; + font-size: 28px; + line-height: 40px; + position: relative; + } + + .about-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .grey-icon-wrapper { + display: block; + } + + .form-wrapper { + padding-left: 5%; + padding-right: 5%; + } + + .image { + padding: 0; + } + + .datapop-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .datapop-logo { + margin-bottom: 40px; + } + + .column-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + } + + .bodyrosa { + margin-bottom: 0; + padding: 0 20px 20px; + } + + .text-block { + background-color: #fff; + margin-top: 20px; + line-height: 28px; + } + + .image-4 { + margin-top: 30px; + margin-bottom: 30px; + } + + .div-block-2 { + text-align: right; + background-color: #fff; + margin-top: 20px; + padding: 20px; + font-size: 16px; + } + + .heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; + } + + .heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + font-size: 26px; + line-height: 36px; + } + + .paragraph { + background-color: #fff; + padding: 10px 20px; + font-size: 20px; + line-height: 28px; + } + + .link-block-day { + border: 1px solid #000; + } + + .body-6 { + flex-direction: column; + padding: 20px; + } + + .collection-item-3 { + grid-column-gap: 0px; + grid-row-gap: 0px; + justify-content: space-between; + display: flex; + } + + .image-6 { + display: block; + position: static; + } + + .body-7 { + flex-direction: row; + justify-content: space-between; + align-items: stretch; + display: flex; + } + + .body-8 { + background-color: #000; + } + + .paragraph-2 { + font-size: 32px; + line-height: 32px; + } +} diff --git a/max-for-live/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js b/max-for-live/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js new file mode 100644 index 0000000..afca678 --- /dev/null +++ b/max-for-live/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js @@ -0,0 +1,12280 @@ + +/*! + * 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(module1) { + if (Webflow.env()) { + isFunction(module1.design) && $win.on("__wf_design", module1.design); + isFunction(module1.preview) && $win.on("__wf_preview", module1.preview); + } + isFunction(module1.destroy) && $win.on("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + addReady(module1); + } + } + function addReady(module1) { + if (domready) { + module1.ready(); + return; + } + if (_.contains(primary, module1.ready)) { + return; + } + primary.push(module1.ready); + } + function unbindModule(module1) { + isFunction(module1.design) && $win.off("__wf_design", module1.design); + isFunction(module1.preview) && $win.off("__wf_preview", module1.preview); + isFunction(module1.destroy) && $win.off("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + removeReady(module1); + } + } + function removeReady(module1) { + primary = _.filter(primary, function(readyFn) { + return readyFn !== module1.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-edit.js + var require_webflow_edit = __commonJS({ + "packages/shared/render/plugins/BaseSiteModules/webflow-edit.js"(exports, module) { + "use strict"; + var Webflow = require_webflow_lib(); + Webflow.define("edit", module.exports = function($, _, options) { + options = options || {}; + if (Webflow.env("test") || Webflow.env("frame")) { + if (!options.fixture && !inCypress()) { + return { + exit: 1 + }; + } + } + var api = {}; + var $win = $(window); + var $html = $(document.documentElement); + var location = document.location; + var hashchange = "hashchange"; + var loaded; + var loadEditor = options.load || load; + var hasLocalStorage = false; + try { + hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem("WebflowEditor"); + } catch (e) { + } + if (hasLocalStorage) { + loadEditor(); + } else if (location.search) { + if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) { + loadEditor(); + } + } else { + $win.on(hashchange, checkHash).triggerHandler(hashchange); + } + function checkHash() { + if (loaded) { + return; + } + if (/\?edit/.test(location.hash)) { + loadEditor(); + } + } + function load() { + loaded = true; + window.WebflowEditor = true; + $win.off(hashchange, checkHash); + checkThirdPartyCookieSupport(function(thirdPartyCookiesSupported) { + $.ajax({ + url: cleanSlashes("https://editor-api.webflow.com/api/editor/view"), + data: { + siteId: $html.attr("data-wf-site") + }, + xhrFields: { + withCredentials: true + }, + dataType: "json", + crossDomain: true, + success: success(thirdPartyCookiesSupported) + }); + }); + } + function success(thirdPartyCookiesSupported) { + return function(data) { + if (!data) { + console.error("Could not load editor data"); + return; + } + data.thirdPartyCookiesSupported = thirdPartyCookiesSupported; + getScript(prefix(data.scriptPath), function() { + window.WebflowEditor(data); + }); + }; + } + function getScript(url, done) { + $.ajax({ + type: "GET", + url, + dataType: "script", + cache: true + }).then(done, error); + } + function error(jqXHR, textStatus, errorThrown) { + console.error("Could not load editor script: " + textStatus); + throw errorThrown; + } + function prefix(url) { + return url.indexOf("//") >= 0 ? url : cleanSlashes("https://editor-api.webflow.com" + url); + } + function cleanSlashes(url) { + return url.replace(/([^:])\/\//g, "$1/"); + } + function checkThirdPartyCookieSupport(callback) { + var iframe = window.document.createElement("iframe"); + iframe.src = "https://webflow.com/site/third-party-cookie-check.html"; + iframe.style.display = "none"; + iframe.sandbox = "allow-scripts allow-same-origin"; + var handleMessage = function(event) { + if (event.data === "WF_third_party_cookies_unsupported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + } else if (event.data === "WF_third_party_cookies_supported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(true); + } + }; + iframe.onerror = function() { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + }; + window.addEventListener("message", handleMessage, false); + window.document.body.appendChild(iframe); + } + function cleanUpCookieCheckerIframe(iframe, listener) { + window.removeEventListener("message", listener, false); + iframe.remove(); + } + return api; + }); + function inCypress() { + try { + return window.top.__Cypress__; + } catch (e) { + return false; + } + } + } + }); + + // 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/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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var getPluginConfig2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + 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; + }; + var getPluginOrigin2 = (refState2) => { + return refState2 || { + value: 0 + }; + }; + var getPluginDestination2 = (actionItemConfig) => { + return { + value: actionItemConfig.value + }; + }; + var createPluginInstance3 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + instance.setSubframe(true); + return instance; + }; + var renderPlugin2 = (pluginInstance, refState2, actionItem) => { + if (!pluginInstance) { + return; + } + const percent = refState2[actionItem.actionTypeId].value / 100; + pluginInstance.goToFrame(pluginInstance.frames * percent); + }; + var clearPlugin2 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + }; + } + }); + + // 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + 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]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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; + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = (element, actionItem) => { + const pluginElementId = actionItem?.config?.target?.pluginElement; + return pluginElementId ? queryContainerElement(pluginElementId) : null; + }; + 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); + } + }; + var clearPlugin2 = () => { + return null; + }; + } + }); + + // 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 + }); + Object.defineProperty(exports, "normalizeColor", { + enumerable: true, + get: function() { + return 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 || hex.length === 4) { + red = parseInt(hex[0] + hex[0], 16); + green = parseInt(hex[1] + hex[1], 16); + blue = parseInt(hex[2] + hex[2], 16); + if (hex.length === 4) { + alpha = parseInt(hex[3] + hex[3], 16) / 255; + } + } else if (hex.length === 6 || hex.length === 8) { + red = parseInt(hex.substring(0, 2), 16); + green = parseInt(hex.substring(2, 4), 16); + blue = parseInt(hex.substring(4, 6), 16); + if (hex.length === 8) { + alpha = parseInt(hex.substring(6, 8), 16) / 255; + } + } + } 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var _normalizeColor = require_normalizeColor(); + var getPluginConfig2 = (actionItemConfig, key) => { + return actionItemConfig.value[key]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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); + } + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = () => { + return null; + }; + 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); + } + }; + var clearPlugin2 = (ref, actionItem) => { + const objectId = actionItem.config.target.objectId; + document.documentElement.style.removeProperty(objectId); + }; + } + }); + + // packages/systems/ix2/plugins/index.js + var require_plugins = __commonJS({ + "packages/systems/ix2/plugins/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "pluginMethodMap", { + enumerable: true, + get: function() { + return pluginMethodMap2; + } + }); + var _sharedconstants = (init_shared_constants(), __toCommonJS(shared_constants_exports)); + var _IX2Lottie = /* @__PURE__ */ _interop_require_wildcard(require_IX2Lottie()); + var _IX2Spline = /* @__PURE__ */ _interop_require_wildcard(require_IX2Spline()); + var _IX2Variable = /* @__PURE__ */ _interop_require_wildcard(require_IX2Variable()); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var pluginMethodMap2 = /* @__PURE__ */ new Map([ + [ + _sharedconstants.ActionTypeConsts.PLUGIN_LOTTIE, + { + ..._IX2Lottie + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_SPLINE, + { + ..._IX2Spline + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_VARIABLE, + { + ..._IX2Variable + } + ] + ]); + } + }); + + // 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 && actionItemGroups.some(({ actionItems }) => { + return actionItems.some(takeItemUntilMatch); + }); + continuousParameterGroups && 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_shared = __commonJS({ + "packages/systems/ix2/shared/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + // IX2Actions, + IX2BrowserSupport: function() { + return _IX2BrowserSupport; + }, + IX2EasingUtils: function() { + return _IX2EasingUtils; + }, + IX2Easings: function() { + return _IX2Easings; + }, + IX2ElementsReducer: function() { + return _IX2ElementsReducer; + }, + IX2VanillaPlugins: function() { + return _IX2VanillaPlugins; + }, + IX2VanillaUtils: function() { + return _IX2VanillaUtils; + } + }); + var _IX2BrowserSupport = /* @__PURE__ */ _interop_require_wildcard((init_IX2BrowserSupport(), __toCommonJS(IX2BrowserSupport_exports))); + var _IX2Easings = /* @__PURE__ */ _interop_require_wildcard((init_IX2Easings(), __toCommonJS(IX2Easings_exports))); + var _IX2EasingUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2EasingUtils(), __toCommonJS(IX2EasingUtils_exports))); + var _IX2ElementsReducer = /* @__PURE__ */ _interop_require_wildcard((init_IX2ElementsReducer(), __toCommonJS(IX2ElementsReducer_exports))); + var _IX2VanillaPlugins = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaPlugins(), __toCommonJS(IX2VanillaPlugins_exports))); + var _IX2VanillaUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaUtils(), __toCommonJS(IX2VanillaUtils_exports))); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + } + }); + + // 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_shared()); + 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 ( + // @ts-expect-error - Further investigation is needed as looks like IX2_RAW_DATA_IMPORTED is never triggered with ixParameters + 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_shared()); + init_IX2InstancesReducer(); + init_IX2ParametersReducer(); + ({ ixElements: ixElements2 } = import_shared2.IX2ElementsReducer); + IX2Reducer_default = (0, import_redux.combineReducers)({ + 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_shared()); + ({ + 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_shared()); + 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_shared()); + ({ + 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, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.preview, + onChange: handlePreviewRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.playback, + onChange: handlePlaybackRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.stop, + onChange: handleStopRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.clear, + onChange: handleClearRequest + }); + } + function observeMediaQueryChange(store) { + observeStore2({ + store, + 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, + 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({ + // @ts-expect-error - TS7031 - Binding element 'logic' implicitly has an 'any' type. + 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 + // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.useEventTarget === true && // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.objectId == null ? ( + // @ts-expect-error - TS18048 - 'event' is possibly 'undefined'. + { 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 && events[eventId] ? 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_shared()); + 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"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + actions: function() { + return _IX2EngineActions; + }, + destroy: function() { + return destroy; + }, + init: function() { + return init; + }, + setEnv: function() { + return setEnv; + }, + store: function() { + return store; + } + }); + var _redux = require_lib2(); + var _IX2Reducer = /* @__PURE__ */ _interop_require_default((init_IX2Reducer(), __toCommonJS(IX2Reducer_exports))); + var _IX2VanillaEngine = (init_IX2VanillaEngine(), __toCommonJS(IX2VanillaEngine_exports)); + var _IX2EngineActions = /* @__PURE__ */ _interop_require_wildcard((init_IX2EngineActions(), __toCommonJS(IX2EngineActions_exports))); + function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var 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/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_edit(); + 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_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 + *) +*/ diff --git "a/max-for-live/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" "b/max-for-live/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" new file mode 100644 index 0000000..b061403 --- /dev/null +++ "b/max-for-live/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 + + + youtube-placeholder + Created with Sketch. + + + + + + \ No newline at end of file diff --git "a/max-for-live/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" "b/max-for-live/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" new file mode 100644 index 0000000..8a4efe0 --- /dev/null +++ "b/max-for-live/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" @@ -0,0 +1,242 @@ +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} diff --git a/max-for-live/fonts.googleapis.com/robots.ssl.txt b/max-for-live/fonts.googleapis.com/robots.ssl.txt new file mode 100644 index 0000000..9e60f97 --- /dev/null +++ b/max-for-live/fonts.googleapis.com/robots.ssl.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/max-for-live/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 b/max-for-live/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 new file mode 100644 index 0000000..d560d34 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 new file mode 100644 index 0000000..5e2b24a Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..b3ec1b3 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..d315229 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..366dc80 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..95c63e0 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..03039fe Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 new file mode 100644 index 0000000..b49074b Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 new file mode 100644 index 0000000..d25560c Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 new file mode 100644 index 0000000..fad313b Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 b/max-for-live/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 new file mode 100644 index 0000000..56e968d Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 b/max-for-live/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 new file mode 100644 index 0000000..0773927 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 b/max-for-live/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 new file mode 100644 index 0000000..e9bd2e8 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 b/max-for-live/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 new file mode 100644 index 0000000..74bc295 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 b/max-for-live/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 new file mode 100644 index 0000000..daa4d3e Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff b/max-for-live/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff new file mode 100644 index 0000000..9394bc1 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff differ diff --git a/max-for-live/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 b/max-for-live/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 new file mode 100644 index 0000000..741341a Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff b/max-for-live/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff new file mode 100644 index 0000000..98c7eab Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff differ diff --git a/max-for-live/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 b/max-for-live/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 new file mode 100644 index 0000000..9ac07eb Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 differ diff --git a/max-for-live/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 b/max-for-live/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 new file mode 100644 index 0000000..8d7b415 Binary files /dev/null and b/max-for-live/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 differ diff --git a/max-for-live/www.instagram.com/robots.ssl.txt b/max-for-live/www.instagram.com/robots.ssl.txt new file mode 100644 index 0000000..df26d5e --- /dev/null +++ b/max-for-live/www.instagram.com/robots.ssl.txt @@ -0,0 +1,204 @@ +# Notice: Collection of data on Instagram through automated means is +# prohibited unless you have express written permission from Instagram +# and may only be conducted for the limited purpose contained in said +# permission. +User-agent: Amazonbot +Disallow: / + +User-agent: Applebot-Extended +Disallow: / + +User-agent: ClaudeBot +Disallow: / + +User-agent: Google-Extended +Disallow: / + +User-agent: GPTBot +Disallow: / + +User-agent: PetalBot +Disallow: / + +User-agent: viberbot +Disallow: / + +User-agent: YaK +Disallow: / + +User-agent: Yandex +Disallow: / + +User-agent: Applebot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Bingbot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Discordbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: DuckDuckBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: facebookexternalhit +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Googlebot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Googlebot-Image +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: LinkedInBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: msnbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Naverbot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Pinterestbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Screaming Frog SEO Spider +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: seznambot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Slurp +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: teoma +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: TelegramBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Twitterbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Yeti +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: * +Disallow: / diff --git a/max-for-live/www.nitrada.com/_downloads.html b/max-for-live/www.nitrada.com/_downloads.html new file mode 100644 index 0000000..f08d00b --- /dev/null +++ b/max-for-live/www.nitrada.com/_downloads.html @@ -0,0 +1,13 @@ + + + + + Downloads + + +

Downloads

+ + + diff --git a/max-for-live/www.nitrada.com/max-for-live.html b/max-for-live/www.nitrada.com/max-for-live.html new file mode 100644 index 0000000..3fe3c6b --- /dev/null +++ b/max-for-live/www.nitrada.com/max-for-live.html @@ -0,0 +1 @@ +nitrada — the beauty of max for live \ No newline at end of file diff --git a/plus/house-on-a-cliff/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js b/plus/house-on-a-cliff/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js new file mode 100644 index 0000000..3e95a6c --- /dev/null +++ b/plus/house-on-a-cliff/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js @@ -0,0 +1,33 @@ +/* + * Copyright 2016 Small Batch, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +/* Web Font Loader v1.6.26 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,d){setTimeout(d,b.f)});Promise.race([e,d]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a= +P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)}; +function ma(a,b,c){for(var d in S)if(S.hasOwnProperty(d)&&b===a.f[S[d]]&&c===a.f[S[d]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=U()&&ma(a,b,c));d?q()-a.A>=a.w?U()&&ma(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)}; +W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,d,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)}; +function ra(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=d||null||{};if(0===c.length&&f)M(b.a);else{b.f+=c.length;f&&(b.j=f);var h,m=[];for(h=0;h img { + visibility: visible !important; + opacity: 1 !important; + vertical-align: middle !important; + display: inline-block !important; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 10px; + font-weight: bold; +} + +h1 { + margin-top: 20px; + font-size: 38px; + line-height: 44px; +} + +h2 { + margin-top: 20px; + font-size: 32px; + line-height: 36px; +} + +h3 { + margin-top: 20px; + font-size: 24px; + line-height: 30px; +} + +h4 { + margin-top: 10px; + font-size: 18px; + line-height: 24px; +} + +h5 { + margin-top: 10px; + font-size: 14px; + line-height: 20px; +} + +h6 { + margin-top: 10px; + font-size: 12px; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 10px; +} + +blockquote { + border-left: 5px solid #e2e2e2; + margin: 0 0 10px; + padding: 10px 20px; + font-size: 18px; + line-height: 22px; +} + +figure { + margin: 0 0 10px; +} + +figcaption { + text-align: center; + margin-top: 5px; +} + +ul, ol { + margin-top: 0; + margin-bottom: 10px; + padding-left: 40px; +} + +.w-list-unstyled { + padding-left: 0; + list-style: none; +} + +.w-embed:before, .w-embed:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-embed:after { + clear: both; +} + +.w-video { + width: 100%; + padding: 0; + position: relative; +} + +.w-video iframe, .w-video object, .w-video embed { + border: none; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +button, [type="button"], [type="reset"] { + cursor: pointer; + -webkit-appearance: button; + border: 0; +} + +.w-form { + margin: 0 0 15px; +} + +.w-form-done { + text-align: center; + background-color: #ddd; + padding: 20px; + display: none; +} + +.w-form-fail { + background-color: #ffdede; + margin-top: 10px; + padding: 10px; + display: none; +} + +label { + margin-bottom: 5px; + font-weight: bold; + display: block; +} + +.w-input, .w-select { + color: #333; + vertical-align: middle; + background-color: #fff; + border: 1px solid #ccc; + width: 100%; + height: 38px; + margin-bottom: 10px; + padding: 8px 12px; + font-size: 14px; + line-height: 1.42857; + display: block; +} + +.w-input::placeholder, .w-select::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: #eee; +} + +textarea.w-input, textarea.w-select { + height: auto; +} + +.w-select { + background-color: #f3f3f3; +} + +.w-select[multiple] { + height: auto; +} + +.w-form-label { + cursor: pointer; + margin-bottom: 0; + font-weight: normal; + display: inline-block; +} + +.w-radio { + margin-bottom: 5px; + padding-left: 20px; + display: block; +} + +.w-radio:before, .w-radio:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-radio:after { + clear: both; +} + +.w-radio-input { + float: left; + margin: 3px 0 0 -20px; + line-height: normal; +} + +.w-file-upload { + margin-bottom: 10px; + display: block; +} + +.w-file-upload-input { + opacity: 0; + z-index: -100; + width: .1px; + height: .1px; + position: absolute; + overflow: hidden; +} + +.w-file-upload-default, .w-file-upload-uploading, .w-file-upload-success { + color: #333; + display: inline-block; +} + +.w-file-upload-error { + margin-top: 10px; + display: block; +} + +.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 { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: flex; +} + +.w-file-upload-file { + background-color: #fafafa; + border: 1px solid #ccc; + flex-grow: 1; + justify-content: space-between; + margin: 0; + padding: 8px 9px 8px 11px; + display: flex; +} + +.w-file-upload-file-name { + font-size: 14px; + font-weight: normal; + display: block; +} + +.w-file-remove-link { + cursor: pointer; + width: auto; + height: auto; + margin-top: 3px; + margin-left: 10px; + padding: 3px; + display: block; +} + +.w-icon-file-upload-remove { + margin: auto; + font-size: 10px; +} + +.w-file-upload-error-msg { + color: #ea384c; + padding: 2px 0; + display: inline-block; +} + +.w-file-upload-info { + padding: 0 12px; + line-height: 38px; + display: inline-block; +} + +.w-file-upload-label { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: inline-block; +} + +.w-icon-file-upload-icon, .w-icon-file-upload-uploading { + width: 20px; + margin-right: 8px; + display: inline-block; +} + +.w-icon-file-upload-uploading { + height: 20px; +} + +.w-container { + max-width: 940px; + margin-left: auto; + margin-right: auto; +} + +.w-container:before, .w-container:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-container:after { + clear: both; +} + +.w-container .w-row { + margin-left: -10px; + margin-right: -10px; +} + +.w-row:before, .w-row:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-row:after { + clear: both; +} + +.w-row .w-row { + margin-left: 0; + margin-right: 0; +} + +.w-col { + float: left; + width: 100%; + min-height: 1px; + padding-left: 10px; + padding-right: 10px; + position: relative; +} + +.w-col .w-col { + padding-left: 0; + padding-right: 0; +} + +.w-col-1 { + width: 8.33333%; +} + +.w-col-2 { + width: 16.6667%; +} + +.w-col-3 { + width: 25%; +} + +.w-col-4 { + width: 33.3333%; +} + +.w-col-5 { + width: 41.6667%; +} + +.w-col-6 { + width: 50%; +} + +.w-col-7 { + width: 58.3333%; +} + +.w-col-8 { + width: 66.6667%; +} + +.w-col-9 { + width: 75%; +} + +.w-col-10 { + width: 83.3333%; +} + +.w-col-11 { + width: 91.6667%; +} + +.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.33333%; + } + + .w-col-medium-2 { + width: 16.6667%; + } + + .w-col-medium-3 { + width: 25%; + } + + .w-col-medium-4 { + width: 33.3333%; + } + + .w-col-medium-5 { + width: 41.6667%; + } + + .w-col-medium-6 { + width: 50%; + } + + .w-col-medium-7 { + width: 58.3333%; + } + + .w-col-medium-8 { + width: 66.6667%; + } + + .w-col-medium-9 { + width: 75%; + } + + .w-col-medium-10 { + width: 83.3333%; + } + + .w-col-medium-11 { + width: 91.6667%; + } + + .w-col-medium-12 { + width: 100%; + } + + .w-col-stack { + width: 100%; + left: auto; + right: auto; + } +} + +@media screen and (max-width: 767px) { + .w-hidden-main, .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.33333%; + } + + .w-col-small-2 { + width: 16.6667%; + } + + .w-col-small-3 { + width: 25%; + } + + .w-col-small-4 { + width: 33.3333%; + } + + .w-col-small-5 { + width: 41.6667%; + } + + .w-col-small-6 { + width: 50%; + } + + .w-col-small-7 { + width: 58.3333%; + } + + .w-col-small-8 { + width: 66.6667%; + } + + .w-col-small-9 { + width: 75%; + } + + .w-col-small-10 { + width: 83.3333%; + } + + .w-col-small-11 { + width: 91.6667%; + } + + .w-col-small-12 { + width: 100%; + } +} + +@media screen and (max-width: 479px) { + .w-container { + max-width: none; + } + + .w-hidden-main, .w-hidden-medium, .w-hidden-small { + display: inherit !important; + } + + .w-hidden-tiny { + display: none !important; + } + + .w-col { + width: 100%; + } + + .w-col-tiny-1 { + width: 8.33333%; + } + + .w-col-tiny-2 { + width: 16.6667%; + } + + .w-col-tiny-3 { + width: 25%; + } + + .w-col-tiny-4 { + width: 33.3333%; + } + + .w-col-tiny-5 { + width: 41.6667%; + } + + .w-col-tiny-6 { + width: 50%; + } + + .w-col-tiny-7 { + width: 58.3333%; + } + + .w-col-tiny-8 { + width: 66.6667%; + } + + .w-col-tiny-9 { + width: 75%; + } + + .w-col-tiny-10 { + width: 83.3333%; + } + + .w-col-tiny-11 { + width: 91.6667%; + } + + .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 { + vertical-align: top; + text-align: center; + background: #fff; + border: 1px solid #758696; + border-radius: 3px; + width: 28px; + height: 20px; + display: inline-block; + position: relative; +} + +.w-widget-twitter-count-shim * { + pointer-events: none; + -webkit-user-select: none; + user-select: none; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-inner { + text-align: center; + color: #999; + font-family: serif; + font-size: 15px; + line-height: 12px; + position: relative; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-clear { + display: block; + position: relative; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 50%; + left: 0; +} + +.w-widget-twitter-count-shim:not(.w--vertical):before { + border-width: 4px; + border-color: #75869600 #5d6c7b #75869600 #75869600; + margin-top: -4px; + margin-left: -9px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:before { + border-width: 5px; + margin-top: -5px; + margin-left: -10px; +} + +.w-widget-twitter-count-shim:not(.w--vertical):after { + border-width: 4px; + border-color: #fff0 #fff #fff0 #fff0; + margin-top: -4px; + margin-left: -8px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:after { + border-width: 5px; + margin-top: -5px; + margin-left: -9px; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 100%; + left: 50%; +} + +.w-widget-twitter-count-shim.w--vertical:before { + border-width: 5px; + border-color: #5d6c7b #75869600 #75869600; + margin-left: -5px; +} + +.w-widget-twitter-count-shim.w--vertical:after { + border-width: 4px; + border-color: #fff #fff0 #fff0; + 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 { + color: #fff; + height: 500px; + position: relative; + overflow: hidden; +} + +.w-background-video > video { + object-fit: cover; + z-index: -100; + background-position: 50%; + background-size: cover; + width: 100%; + height: 100%; + margin: auto; + position: absolute; + inset: -100%; +} + +.w-background-video > video::-webkit-media-controls-start-playback-button { + -webkit-appearance: none; + display: none !important; +} + +.w-background-video--control { + background-color: #0000; + padding: 0; + position: absolute; + bottom: 1em; + right: 1em; +} + +.w-background-video--control > [hidden] { + display: none !important; +} + +.w-slider { + text-align: center; + clear: both; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + background: #ddd; + height: 300px; + position: relative; +} + +.w-slider-mask { + z-index: 1; + white-space: nowrap; + height: 100%; + display: block; + position: relative; + left: 0; + right: 0; + overflow: hidden; +} + +.w-slide { + vertical-align: top; + white-space: normal; + text-align: left; + width: 100%; + height: 100%; + display: inline-block; + position: relative; +} + +.w-slider-nav { + z-index: 2; + text-align: center; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + height: 40px; + margin: auto; + padding-top: 10px; + position: absolute; + inset: auto 0 0; +} + +.w-slider-nav.w-round > div { + border-radius: 100%; +} + +.w-slider-nav.w-num > div { + font-size: inherit; + line-height: inherit; + width: auto; + height: auto; + padding: .2em .5em; +} + +.w-slider-nav.w-shadow > div { + box-shadow: 0 0 3px #3336; +} + +.w-slider-nav-invert { + color: #fff; +} + +.w-slider-nav-invert > div { + background-color: #2226; +} + +.w-slider-nav-invert > div.w-active { + background-color: #222; +} + +.w-slider-dot { + cursor: pointer; + background-color: #fff6; + width: 1em; + height: 1em; + margin: 0 3px .5em; + transition: background-color .1s, color .1s; + display: inline-block; + position: relative; +} + +.w-slider-dot.w-active { + background-color: #fff; +} + +.w-slider-dot:focus { + outline: none; + box-shadow: 0 0 0 2px #fff; +} + +.w-slider-dot:focus.w-active { + box-shadow: none; +} + +.w-slider-arrow-left, .w-slider-arrow-right { + cursor: pointer; + color: #fff; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + width: 80px; + margin: auto; + font-size: 40px; + position: absolute; + inset: 0; + overflow: hidden; +} + +.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 { + width: 1em; + height: 1em; + margin: auto; + inset: 0; +} + +.w-slider-aria-label { + clip: rect(0 0 0 0); + border: 0; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + position: absolute; + overflow: hidden; +} + +.w-slider-force-show { + display: block !important; +} + +.w-dropdown { + text-align: left; + z-index: 900; + margin-left: auto; + margin-right: auto; + display: inline-block; + position: relative; +} + +.w-dropdown-btn, .w-dropdown-toggle, .w-dropdown-link { + vertical-align: top; + color: #222; + text-align: left; + white-space: nowrap; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + position: relative; +} + +.w-dropdown-toggle { + -webkit-user-select: none; + user-select: none; + cursor: pointer; + padding-right: 40px; + display: inline-block; +} + +.w-dropdown-toggle:focus { + outline: 0; +} + +.w-icon-dropdown-toggle { + width: 1em; + height: 1em; + margin: auto 20px auto auto; + position: absolute; + top: 0; + bottom: 0; + right: 0; +} + +.w-dropdown-list { + background: #ddd; + min-width: 100%; + display: none; + position: absolute; +} + +.w-dropdown-list.w--open { + display: block; +} + +.w-dropdown-link { + color: #222; + padding: 10px 20px; + display: block; +} + +.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; + } +} + +.w-lightbox-backdrop { + cursor: auto; + letter-spacing: normal; + text-indent: 0; + text-shadow: none; + text-transform: none; + visibility: visible; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + color: #fff; + text-align: center; + z-index: 2000; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -webkit-tap-highlight-color: transparent; + background: #000000e6; + outline: 0; + font-family: Helvetica Neue, Helvetica, Ubuntu, Segoe UI, Verdana, sans-serif; + font-size: 17px; + font-style: normal; + font-weight: 300; + line-height: 1.2; + list-style: disc; + position: fixed; + inset: 0; + -webkit-transform: translate(0); +} + +.w-lightbox-backdrop, .w-lightbox-container { + -webkit-overflow-scrolling: touch; + height: 100%; + overflow: auto; +} + +.w-lightbox-content { + height: 100vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-view { + opacity: 0; + width: 100vw; + height: 100vh; + position: absolute; +} + +.w-lightbox-view:before { + content: ""; + height: 100vh; +} + +.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 { + vertical-align: middle; + display: inline-block; +} + +.w-lightbox-figure { + margin: 0; + position: relative; +} + +.w-lightbox-group .w-lightbox-figure { + cursor: pointer; +} + +.w-lightbox-img { + width: auto; + max-width: none; + height: auto; +} + +.w-lightbox-image { + float: none; + max-width: 100vw; + max-height: 100vh; + display: block; +} + +.w-lightbox-group .w-lightbox-image { + max-height: 86vh; +} + +.w-lightbox-caption { + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + background: #0006; + padding: .5em 1em; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: hidden; +} + +.w-lightbox-embed { + width: 100%; + height: 100%; + position: absolute; + inset: 0; +} + +.w-lightbox-control { + cursor: pointer; + background-position: center; + background-repeat: no-repeat; + background-size: 24px; + width: 4em; + transition: all .3s; + position: absolute; + top: 0; +} + +.w-lightbox-left { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg=="); + display: none; + bottom: 0; + left: 0; +} + +.w-lightbox-right { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+"); + display: none; + bottom: 0; + right: 0; +} + +.w-lightbox-close { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4="); + background-size: 18px; + height: 2.6em; + right: 0; +} + +.w-lightbox-strip { + white-space: nowrap; + padding: 0 1vh; + line-height: 0; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: auto hidden; +} + +.w-lightbox-item { + box-sizing: content-box; + cursor: pointer; + width: 10vh; + padding: 2vh 1vh; + display: inline-block; + -webkit-transform: translate3d(0, 0, 0); +} + +.w-lightbox-active { + opacity: .3; +} + +.w-lightbox-thumbnail { + background: #222; + height: 10vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-thumbnail-image { + position: absolute; + top: 0; + left: 0; +} + +.w-lightbox-thumbnail .w-lightbox-tall { + width: 100%; + top: 50%; + transform: translate(0, -50%); +} + +.w-lightbox-thumbnail .w-lightbox-wide { + height: 100%; + left: 50%; + transform: translate(-50%); +} + +.w-lightbox-spinner { + box-sizing: border-box; + border: 5px solid #0006; + border-radius: 50%; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + animation: .8s linear infinite spin; + position: absolute; + top: 50%; + left: 50%; +} + +.w-lightbox-spinner:after { + content: ""; + border: 3px solid #0000; + border-bottom-color: #fff; + border-radius: 50%; + position: absolute; + inset: -4px; +} + +.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-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 { + opacity: .5; + display: block; + } + + .w-lightbox-close { + opacity: .8; + } + + .w-lightbox-control:hover { + opacity: 1; + } +} + +.w-lightbox-inactive, .w-lightbox-inactive:hover { + opacity: 0; +} + +.w-richtext:before, .w-richtext:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.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, .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: ""; + display: none; + position: absolute; + inset: 0; +} + +.w-richtext figure { + max-width: 60%; + position: relative; +} + +.w-richtext figure > div:before { + cursor: default !important; +} + +.w-richtext figure img { + width: 100%; +} + +.w-richtext figure figcaption.w-richtext-figcaption-placeholder { + opacity: .6; +} + +.w-richtext figure div { + color: #0000; + font-size: 0; +} + +.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 { + caption-side: bottom; + display: table-caption; +} + +.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 { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +.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 { + clear: both; + margin-left: auto; + margin-right: auto; +} + +.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 { + text-align: center; + clear: both; + width: 100%; + max-width: 100%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.w-richtext figure.w-richtext-align-fullwidth > div { + padding-bottom: inherit; + display: inline-block; +} + +.w-richtext figure.w-richtext-align-fullwidth > figcaption { + display: block; +} + +.w-richtext figure.w-richtext-align-floatleft { + float: left; + clear: none; + margin-right: 15px; +} + +.w-richtext figure.w-richtext-align-floatright { + float: right; + clear: none; + margin-left: 15px; +} + +.w-nav { + z-index: 1000; + background: #ddd; + position: relative; +} + +.w-nav:before, .w-nav:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-nav:after { + clear: both; +} + +.w-nav-brand { + float: left; + color: #333; + text-decoration: none; + position: relative; +} + +.w-nav-link { + vertical-align: top; + color: #222; + text-align: left; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-nav-link.w--current { + color: #0082f3; +} + +.w-nav-menu { + float: right; + position: relative; +} + +[data-nav-menu-open] { + text-align: center; + background: #c8c8c8; + min-width: 200px; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: visible; + display: block !important; +} + +.w--nav-link-open { + display: block; + position: relative; +} + +.w-nav-overlay { + width: 100%; + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: hidden; +} + +.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] { + z-index: 1; + top: 0; + right: auto; +} + +.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] { + z-index: 1; + top: 0; + left: auto; +} + +.w-nav-button { + float: right; + cursor: pointer; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + padding: 18px; + font-size: 24px; + display: none; + position: relative; +} + +.w-nav-button:focus { + outline: 0; +} + +.w-nav-button.w--open { + color: #fff; + background-color: #c8c8c8; +} + +.w-nav[data-collapse="all"] .w-nav-menu { + display: none; +} + +.w-nav[data-collapse="all"] .w-nav-button, .w--nav-dropdown-open, .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: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-tabs:after { + clear: both; +} + +.w-tab-menu { + position: relative; +} + +.w-tab-link { + vertical-align: top; + text-align: left; + cursor: pointer; + color: #222; + background-color: #ddd; + padding: 9px 30px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-tab-link.w--current { + background-color: #c8c8c8; +} + +.w-tab-link:focus { + outline: 0; +} + +.w-tab-content { + display: block; + position: relative; + overflow: hidden; +} + +.w-tab-pane { + display: none; + position: relative; +} + +.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(0); + } + + 100% { + transform: rotate(360deg); + } +} + +.w-dyn-empty { + background-color: #ddd; + padding: 10px; +} + +.w-dyn-hide, .w-dyn-bind-empty, .w-condition-invisible { + display: none !important; +} + +.wf-layout-layout { + display: grid; +} + +.w-code-component > * { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +:root { + --medium-aquamarine: #7ec4bd; + --white-smoke: whitesmoke; +} + +.w-embed-youtubevideo { + background-image: url("../../../d3e54v103j8qbb.cloudfront.net/static/youtube-placeholder.2b05e7d68d.svg"); + background-position: 50%; + background-size: cover; + width: 100%; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + position: relative; +} + +.w-embed-youtubevideo:empty { + min-height: 75px; + padding-bottom: 56.25%; +} + +body { + color: #333; + font-family: Vollkorn, serif; + font-size: 14px; + line-height: 20px; +} + +h1 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 32px; + font-weight: 700; + line-height: 38px; +} + +h2 { + text-align: center; + text-transform: uppercase; + margin: 10px 0; + font-family: Montserrat, sans-serif; + font-size: 23px; + font-weight: 400; + line-height: 36px; +} + +h3 { + text-transform: uppercase; + margin: 0 0 20px; + font-family: Montserrat, sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 20px; +} + +h4 { + margin: 10px 0; + font-size: 18px; + font-weight: 700; + line-height: 24px; +} + +h5 { + margin: 10px 0; + font-size: 14px; + font-weight: 700; + line-height: 20px; +} + +h6 { + margin: 10px 0; + font-size: 12px; + font-weight: 700; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 5px; + font-family: Vollkorn, serif; + font-size: 15px; + line-height: 22px; +} + +a { + text-decoration: underline; +} + +a:hover { + color: #111; +} + +a:active { + color: #000; +} + +a:visited { + color: #666; +} + +.button { + color: #fff; + text-align: center; + background-color: #13b7d8; + border: 1px #47474f; + border-radius: 6px; + padding: 12px 30px; + font-family: Roboto, sans-serif; + font-size: 18px; + font-style: normal; + text-decoration: none; + transition: background-color .3s; + display: inline-block; +} + +.button:hover { + background-color: #1296b1; +} + +.button.form { + color: #7ec4bd; + border-width: 1px 1px 2px; + border-color: #7ec4bd; + margin-top: 23px; + margin-bottom: 24px; + padding-left: 54px; + padding-right: 54px; +} + +.button.form:hover { + background-color: #7ec4bd57; +} + +.header { + color: #fff; + text-align: center; + background-color: #fffcba; + padding: 60px 20px; +} + +.header.project-page { + background-image: linear-gradient(#64d1c68c, #64d1c68c), url("../61cc329947770114fa07dcd2_lake.jpg"); + padding-top: 77px; + padding-bottom: 77px; +} + +.navbar { + background-color: #fff; + padding-top: 18px; + padding-bottom: 18px; +} + +.nav-link { + color: #404040; + text-transform: uppercase; + border-bottom: 2px solid #0000; + margin-top: 23px; + margin-left: 34px; + padding: 0; + font-family: Roboto, sans-serif; + font-size: 14px; + font-weight: 400; + transition: border-color .3s; +} + +.nav-link:hover { + border-bottom-color: #13b7d8; +} + +.nav-link.w--current { + font-family: Roboto, sans-serif; + font-size: 14px; +} + +.logo-title { + float: left; + text-transform: uppercase; + margin-top: 12px; + font-family: Roboto Condensed, sans-serif; + font-size: 22px; + font-weight: 400; +} + +.logo-img { + float: left; + margin-right: 18px; +} + +.main-heading { + color: #000; + text-align: left; + text-transform: none; + margin-top: 0; + margin-bottom: 0; + margin-left: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 36px; + font-weight: 400; + line-height: 48px; +} + +.divider { + background-color: #fff; + width: 80px; + height: 2px; + margin: 28px auto; + display: block; +} + +.divider.grey { + background-color: #00000017; + margin-bottom: 43px; +} + +.main-subtitle { + color: #ffffffcf; + font-family: Vollkorn, serif; + font-size: 18px; + font-style: italic; +} + +.about-section { + text-align: center; + background-color: #fffcba; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-text { + color: #47474f; + margin-bottom: 40px; + font-family: Roboto Mono, sans-serif; + font-size: 20px; + font-style: normal; + line-height: 30px; +} + +.x-icon { + margin-top: -26px; + margin-bottom: 34px; +} + +.section { + text-align: center; + padding-top: 69px; + padding-bottom: 69px; +} + +.section.grey { + background-color: #f5f5f5; +} + +.section.contact { + background-color: #9ac4cd; + background-image: linear-gradient(#9ac4cd, #9ac4cd); + padding-top: 40px; + padding-bottom: 60px; + font-family: Vollkorn, serif; +} + +.section.footer { + background-color: #393b3c; + padding-top: 40px; + padding-bottom: 40px; +} + +.grey-icon-wrapper { + background-color: #f5f5f5; + margin-bottom: 38px; + padding-top: 50px; + padding-bottom: 50px; +} + +.project-wrapper { + color: #333; + text-decoration: none; + transition: bottom .3s; + display: block; + position: relative; + bottom: 0; +} + +.project-wrapper:hover { + bottom: 8px; +} + +.team-image { + border-radius: 100%; + margin-bottom: 21px; +} + +.role { + margin-bottom: 16px; + font-family: Vollkorn, serif; + font-size: 17px; + font-style: italic; +} + +.social-link { + background-color: #f5f5f5; + border-radius: 100%; + width: 29px; + height: 29px; + margin: 3px; + padding-top: 5px; + padding-left: 1px; + transition: box-shadow .3s; + box-shadow: inset 0 0 0 1px #0000; +} + +.social-link:hover { + box-shadow: inset 0 0 0 2px #7ec4bd; +} + +.team-title { + margin-bottom: 7px; +} + +.testimonial-slider { + background-color: #0000; + height: auto; +} + +.quote-icon { + margin-bottom: 37px; +} + +.arrow { + color: #e3e3e3; + width: 40px; + font-size: 30px; + transition: color .3s; +} + +.arrow:hover { + color: #333; +} + +.testimonial-slide { + text-align: center; + width: 50%; + padding: 30px 34px 29px; +} + +.testimonial-slide.left-border { + border-left: 2px solid #0000000a; +} + +.mask { + width: 95%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.team-row { + margin-bottom: 20px; +} + +.testimonial { + margin-bottom: 22px; + font-size: 26px; + line-height: 33px; +} + +.from { + color: #ababab; + text-transform: uppercase; + margin-bottom: 0; + font-family: Montserrat, sans-serif; + font-size: 14px; + font-weight: 400; +} + +.icon-wrapper { + height: 95px; + margin-bottom: 10px; + padding-top: 13px; +} + +.icon-wrapper._2 { + padding-top: 20px; +} + +.footer-logo { + opacity: .4; + margin-bottom: 15px; +} + +.contact-text { + color: #212121; + font-family: Roboto, sans-serif; + font-size: 17px; +} + +.link { + color: #1c1c1c; +} + +.social-wrapper { + text-align: left; + margin-bottom: 11px; + margin-left: 33%; + text-decoration: none; + transition: opacity .3s; + display: block; +} + +.social-wrapper:hover { + opacity: .43; +} + +.footer-text { + color: #fff6; + font-family: Roboto, sans-serif; +} + +.social-link-text { + display: inline-block; +} + +.social-icon { + margin-top: -6px; + margin-right: 9px; +} + +.field { + color: #7ec4bd; + background-color: #fff3; + border: 0 solid #000; + height: 57px; + margin-bottom: 0; + padding-top: 17px; + padding-bottom: 17px; + font-size: 18px; + font-style: italic; + box-shadow: inset 3px 0 #0000; +} + +.field:focus { + box-shadow: inset 3px 0 #7ec4bd; +} + +.field.large { + height: 127px; +} + +.field.darker { + background-color: #ffffff2e; + transition: box-shadow .3s; +} + +.form-wrapper { + padding-left: 20%; + padding-right: 20%; +} + +.success-message { + color: #7ec4bd; + background-color: #0000; + border: 1px solid #7ec4bd; + border-bottom-width: 2px; + padding-top: 82px; + padding-bottom: 82px; +} + +.project-info { + background-color: #fff; + margin-bottom: 20px; + padding-top: 20px; + padding-bottom: 20px; +} + +.project-title { + margin-bottom: 4px; +} + +.grow-row { + margin-bottom: 42px; +} + +.screenshot { + margin-bottom: 43px; +} + +.face { + border-radius: 100%; + margin-bottom: 10px; +} + +.body { + background-color: #000; + font-family: Roboto, sans-serif; +} + +.container { + padding-top: 0; +} + +.image { + cursor: none; + object-fit: fill; + width: 100%; + max-width: 100%; + margin: auto; + display: block; + overflow: auto; +} + +.heading { + font-family: Roboto Mono, sans-serif; +} + +.container-2 { + font-family: Roboto, sans-serif; +} + +.heading-2, .heading-3, .heading-4 { + font-family: Roboto Mono, sans-serif; + font-weight: 600; +} + +.datapop-section { + text-align: center; + background-color: #e8f7fa; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-key-visual { + color: #47474f; + margin-bottom: 40px; + margin-left: auto; + margin-right: auto; + font-family: Roboto Mono, sans-serif; + font-size: 18px; + line-height: 25px; + display: block; +} + +.datapop-logo { + margin-bottom: 60px; +} + +.column, .column-2 { + padding-left: 0; + padding-right: 0; +} + +.body-2 { + background-color: #000; +} + +.image-2 { + -webkit-text-fill-color: inherit; + cursor: zoom-in; + object-position: 50% 50%; + background-clip: border-box; + border-radius: 0; +} + +.collection-item { + height: 100%; +} + +.item { + float: left; + clear: none; + cursor: none; + object-fit: fill; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + position: relative; + overflow: visible; +} + +.item:hover { + background-color: #fff; +} + +.collection-list { + padding: 30px 10px 10px; +} + +.identity { + object-fit: fill; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + font-family: Inconsolata, monospace; + font-size: 16px; + font-weight: 400; + text-decoration: none; + display: flex; + position: static; +} + +.headingblock { + z-index: 100; + color: #333; + background-color: #fff; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 100%; + margin-bottom: 0; + padding-bottom: 0; + padding-left: 20px; + padding-right: 20px; + font-family: Inconsolata, monospace; + display: flex; + position: fixed; + inset: 0% 0% auto; + overflow: auto; +} + +.collection-list-wrapper { + margin-top: 40px; + padding: 0 10px 10px; +} + +.collection-item-2 { + padding-left: 0; + padding-right: 0; +} + +.collection-list-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + cursor: none; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + display: block; + overflow: visible; +} + +.div-block { + cursor: none; + background-color: #fff; +} + +.image-3 { + width: 100%; +} + +.linkblock { + cursor: zoom-in; + display: block; +} + +.link-block-2 { + display: block; +} + +.text-span { + color: #888; + padding-left: 10px; + text-decoration: none; +} + +.p5canvas { + background-color: #000; + overflow: hidden; +} + +.bodyrosa { + clear: none; + object-fit: fill; + background-color: #ffade4; + padding: 0 40px 40px; + font-family: Inconsolata, monospace; + display: block; +} + +.text-block { + color: #242424; + text-align: center; + background-color: #fff; + margin-top: 40px; + padding: 20px; + font-size: 24px; + font-weight: 700; +} + +.image-4 { + z-index: auto; + object-fit: fill; + margin: 40px auto; + display: block; + position: static; + overflow: auto; +} + +.heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; +} + +.heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px 20px; + font-size: 26px; + line-height: 34px; +} + +.paragraph { + background-color: #fff; + margin-bottom: 0; + padding: 10px 20px; + font-family: Inconsolata, monospace; + font-size: 18px; + line-height: 26px; +} + +.body-3 { + background-color: #ffa1af; +} + +.link-block-day { + color: #000; + cursor: none; + background-color: #fff; + border: 1px solid #000; + border-radius: 4px; + flex: 0 auto; + justify-content: center; + align-self: auto; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-day:hover { + color: #000; + background-color: #eee; +} + +.text-block-2 { + text-align: center; + flex: 1; + justify-content: space-between; + align-self: center; + width: 50%; + display: block; +} + +.body-5 { + height: 100%; + min-height: 100px; + margin-top: auto; + margin-bottom: auto; +} + +.columns-2 { + float: none; + clear: none; + flex-flow: column wrap; + place-content: space-around space-between; + align-items: center; + margin-top: auto; + margin-bottom: auto; + display: flex; +} + +.body-6 { + grid-column-gap: 20px; + grid-row-gap: 20px; + object-fit: none; + flex-direction: row; + justify-content: space-around; + align-items: stretch; + height: 100vh; + padding: 20px; + display: flex; + overflow: auto; +} + +.link-block-night { + color: #fff; + cursor: none; + background-color: #000; + border-radius: 4px; + flex-wrap: nowrap; + flex: 0 auto; + justify-content: center; + align-self: center; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-night:hover { + background-color: #222; +} + +.image-5 { + color: #fff; + background-color: #0000; +} + +.icon-night { + color: #fff; + flex-direction: row; + align-items: stretch; +} + +.icon-day { + color: #000; + flex-direction: row; + align-items: stretch; +} + +.collection-item-3 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: flex-start; + width: 100%; + padding-left: 0; + padding-right: 0; + display: block; + position: absolute; +} + +.image-6 { + width: 100%; +} + +.body-7 { + cursor: none; + background-color: #000; + padding: 0; +} + +.collection-item-4 { + padding-top: 10px; + padding-bottom: 10px; +} + +.image-7 { + background-color: #000; +} + +.body-8 { + cursor: none; + background-color: #fff; +} + +.collection-list-wrapper-2 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-5 { + padding-top: 10px; + padding-bottom: 10px; +} + +.collection-list-wrapper-3 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-6 { + padding: 10px; +} + +.body-9 { + cursor: none; + background-color: #000; +} + +.image-8 { + width: 100%; + min-width: 100%; + margin: auto; + display: block; +} + +.link-block-3 { + display: block; +} + +.image-9 { + cursor: none; + width: 100%; +} + +.link-block-4 { + display: block; +} + +.image-10 { + cursor: zoom-in; +} + +.collection-list-wrapper-4 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; + display: block; +} + +.link-block-5 { + color: #333; + text-decoration: none; +} + +.link-block-5:active, .link-block-5:focus { + color: #000; +} + +.link-block-5:visited { + color: #333; +} + +.div-block-3 { + background-color: #fff; +} + +.paragraph-2 { + text-align: center; + letter-spacing: 2px; + flex-flow: row; + justify-content: space-around; + align-items: stretch; + margin-bottom: 0; + font-family: Roboto, sans-serif; + font-size: 72px; + font-weight: 400; + line-height: 72px; + display: block; +} + +.container-3 { + width: 4%; + max-width: 0; + margin-top: auto; + margin-bottom: auto; + display: block; +} + +.div-block-4 { + width: 50%; + margin: auto; + display: block; +} + +.section-2 { + grid-column-gap: 36px; + grid-row-gap: 36px; + color: #fff; + background-color: #fc0093; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + font-family: Inconsolata, monospace; + font-size: 36px; + line-height: 36px; + display: flex; +} + +.text-block-3 { + font-size: 72px; + line-height: 72px; +} + +.video { + aspect-ratio: 9 / 16; + margin-bottom: 4px; +} + +.collection-item-7 { + padding-bottom: 20px; + padding-left: 10px; +} + +.collection-list-3 { + padding-left: 10px; + padding-right: 10px; +} + +.link-2 { + color: #000; + font-family: Inconsolata, monospace; +} + +.collection-list-wrapper-5 { + padding-top: 44px; +} + +.bg { + box-sizing: border-box; + grid-column-gap: 11px; + grid-row-gap: 11px; + background-color: #000; + display: flex; +} + +.no1 { + clear: none; + grid-column-gap: 0px; + grid-row-gap: 0px; + aspect-ratio: 16 / 9; + outline-offset: 0px; + direction: ltr; + color: #fff; + text-align: center; + text-transform: none; + -webkit-text-fill-color: inherit; + vertical-align: super; + cursor: none; + background-color: #333; + background-clip: border-box; + border: 1px #000; + border-radius: 20px; + outline: 0 #fff; + flex-flow: row; + flex: 1; + order: 0; + justify-content: center; + align-self: auto; + align-items: center; + padding: 20px 30px; + font-family: Roboto Mono, sans-serif; + font-size: 16em; + text-decoration: none; + display: flex; + position: static; + inset: 0%; + overflow: visible; +} + +.no1:active { + background-color: #008d38; +} + +.no1-copy { + float: none; + clear: none; + color: #fff; + text-align: center; + vertical-align: super; + background-color: #3d3d3d; + border-radius: 20px; + justify-content: center; + align-items: center; + margin: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 15em; + display: flex; + position: fixed; + inset: 0%; + overflow: visible; +} + +.no1-copy:active { + background-color: #008d38; +} + +.numbers { + box-sizing: border-box; + grid-column-gap: 20px; + grid-row-gap: 20px; + flex-flow: row; + flex: 0 auto; + order: 0; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: center; + align-self: auto; + align-items: center; + margin: auto; + padding: 20px; + display: flex; + position: static; + overflow: visible; +} + +.text-span-2 { + font-weight: 700; +} + +.div-block-5 { + background-color: #000; + flex: 1; + justify-content: space-around; + align-items: center; + height: 100vh; + display: flex; +} + +.text-span-3 { + color: #fff; + text-align: left; + font-family: Lato, sans-serif; + font-size: 12em; + font-weight: 400; +} + +@media screen and (max-width: 991px) { + .nav-link { + margin: 0 auto; + padding-top: 20px; + padding-bottom: 20px; + } + + .nav-link:hover { + border-bottom-color: #0000; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .project-wrapper:hover { + transform: translate(0); + } + + .social-wrapper { + margin-left: 30%; + } + + .menu-button { + margin-top: 7px; + padding: 10px; + font-size: 32px; + } + + .menu-button.w--open { + color: #7ec4bd; + background-color: #0000; + } + + .nav-menu { + background-color: #f5f5f5; + } +} + +@media screen and (max-width: 767px) { + .header { + padding-top: 45px; + padding-bottom: 45px; + } + + .navbar { + padding-top: 10px; + padding-bottom: 10px; + } + + .nav-link { + padding-top: 15px; + padding-bottom: 15px; + padding-left: 10px; + } + + .logo-title { + margin-top: 6px; + } + + .logo-img { + width: 50px; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .about-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } + + .x-icon { + margin-bottom: 21px; + } + + .section { + padding-top: 30px; + padding-bottom: 30px; + } + + .grey-icon-wrapper { + margin-bottom: 16px; + padding: 34px 56px; + display: inline-block; + } + + .grey-icon-wrapper.push-top { + margin-top: 30px; + } + + .testimonial-slide { + width: 100%; + } + + .testimonial-slide.left-border { + border-left-width: 0; + } + + .icon-wrapper { + height: 85px; + } + + .icon-wrapper._2 { + margin-top: 37px; + } + + .social-wrapper { + text-align: center; + margin-left: 0%; + } + + .form-wrapper { + padding-left: 10%; + padding-right: 10%; + } + + .menu-button { + margin-top: 0; + } + + .member { + padding-bottom: 47px; + } + + .grow-row { + margin-bottom: 0; + } + + .screenshot { + width: 90%; + } + + .image { + margin-bottom: auto; + padding: 0; + } + + .datapop-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } +} + +@media screen and (max-width: 479px) { + .header { + padding-top: 40px; + padding-bottom: 40px; + } + + .brand-block { + padding-left: 12px; + } + + .main-heading { + float: right; + clear: none; + font-size: 28px; + line-height: 40px; + position: relative; + } + + .about-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .grey-icon-wrapper { + display: block; + } + + .form-wrapper { + padding-left: 5%; + padding-right: 5%; + } + + .image { + padding: 0; + } + + .datapop-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .datapop-logo { + margin-bottom: 40px; + } + + .column-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + } + + .bodyrosa { + margin-bottom: 0; + padding: 0 20px 20px; + } + + .text-block { + background-color: #fff; + margin-top: 20px; + line-height: 28px; + } + + .image-4 { + margin-top: 30px; + margin-bottom: 30px; + } + + .div-block-2 { + text-align: right; + background-color: #fff; + margin-top: 20px; + padding: 20px; + font-size: 16px; + } + + .heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; + } + + .heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + font-size: 26px; + line-height: 36px; + } + + .paragraph { + background-color: #fff; + padding: 10px 20px; + font-size: 20px; + line-height: 28px; + } + + .link-block-day { + border: 1px solid #000; + } + + .body-6 { + flex-direction: column; + padding: 20px; + } + + .collection-item-3 { + grid-column-gap: 0px; + grid-row-gap: 0px; + justify-content: space-between; + display: flex; + } + + .image-6 { + display: block; + position: static; + } + + .body-7 { + flex-direction: row; + justify-content: space-between; + align-items: stretch; + display: flex; + } + + .body-8 { + background-color: #000; + } + + .paragraph-2 { + font-size: 32px; + line-height: 32px; + } +} diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js b/plus/house-on-a-cliff/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js new file mode 100644 index 0000000..afca678 --- /dev/null +++ b/plus/house-on-a-cliff/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js @@ -0,0 +1,12280 @@ + +/*! + * 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(module1) { + if (Webflow.env()) { + isFunction(module1.design) && $win.on("__wf_design", module1.design); + isFunction(module1.preview) && $win.on("__wf_preview", module1.preview); + } + isFunction(module1.destroy) && $win.on("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + addReady(module1); + } + } + function addReady(module1) { + if (domready) { + module1.ready(); + return; + } + if (_.contains(primary, module1.ready)) { + return; + } + primary.push(module1.ready); + } + function unbindModule(module1) { + isFunction(module1.design) && $win.off("__wf_design", module1.design); + isFunction(module1.preview) && $win.off("__wf_preview", module1.preview); + isFunction(module1.destroy) && $win.off("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + removeReady(module1); + } + } + function removeReady(module1) { + primary = _.filter(primary, function(readyFn) { + return readyFn !== module1.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-edit.js + var require_webflow_edit = __commonJS({ + "packages/shared/render/plugins/BaseSiteModules/webflow-edit.js"(exports, module) { + "use strict"; + var Webflow = require_webflow_lib(); + Webflow.define("edit", module.exports = function($, _, options) { + options = options || {}; + if (Webflow.env("test") || Webflow.env("frame")) { + if (!options.fixture && !inCypress()) { + return { + exit: 1 + }; + } + } + var api = {}; + var $win = $(window); + var $html = $(document.documentElement); + var location = document.location; + var hashchange = "hashchange"; + var loaded; + var loadEditor = options.load || load; + var hasLocalStorage = false; + try { + hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem("WebflowEditor"); + } catch (e) { + } + if (hasLocalStorage) { + loadEditor(); + } else if (location.search) { + if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) { + loadEditor(); + } + } else { + $win.on(hashchange, checkHash).triggerHandler(hashchange); + } + function checkHash() { + if (loaded) { + return; + } + if (/\?edit/.test(location.hash)) { + loadEditor(); + } + } + function load() { + loaded = true; + window.WebflowEditor = true; + $win.off(hashchange, checkHash); + checkThirdPartyCookieSupport(function(thirdPartyCookiesSupported) { + $.ajax({ + url: cleanSlashes("https://editor-api.webflow.com/api/editor/view"), + data: { + siteId: $html.attr("data-wf-site") + }, + xhrFields: { + withCredentials: true + }, + dataType: "json", + crossDomain: true, + success: success(thirdPartyCookiesSupported) + }); + }); + } + function success(thirdPartyCookiesSupported) { + return function(data) { + if (!data) { + console.error("Could not load editor data"); + return; + } + data.thirdPartyCookiesSupported = thirdPartyCookiesSupported; + getScript(prefix(data.scriptPath), function() { + window.WebflowEditor(data); + }); + }; + } + function getScript(url, done) { + $.ajax({ + type: "GET", + url, + dataType: "script", + cache: true + }).then(done, error); + } + function error(jqXHR, textStatus, errorThrown) { + console.error("Could not load editor script: " + textStatus); + throw errorThrown; + } + function prefix(url) { + return url.indexOf("//") >= 0 ? url : cleanSlashes("https://editor-api.webflow.com" + url); + } + function cleanSlashes(url) { + return url.replace(/([^:])\/\//g, "$1/"); + } + function checkThirdPartyCookieSupport(callback) { + var iframe = window.document.createElement("iframe"); + iframe.src = "https://webflow.com/site/third-party-cookie-check.html"; + iframe.style.display = "none"; + iframe.sandbox = "allow-scripts allow-same-origin"; + var handleMessage = function(event) { + if (event.data === "WF_third_party_cookies_unsupported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + } else if (event.data === "WF_third_party_cookies_supported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(true); + } + }; + iframe.onerror = function() { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + }; + window.addEventListener("message", handleMessage, false); + window.document.body.appendChild(iframe); + } + function cleanUpCookieCheckerIframe(iframe, listener) { + window.removeEventListener("message", listener, false); + iframe.remove(); + } + return api; + }); + function inCypress() { + try { + return window.top.__Cypress__; + } catch (e) { + return false; + } + } + } + }); + + // 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/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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var getPluginConfig2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + 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; + }; + var getPluginOrigin2 = (refState2) => { + return refState2 || { + value: 0 + }; + }; + var getPluginDestination2 = (actionItemConfig) => { + return { + value: actionItemConfig.value + }; + }; + var createPluginInstance3 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + instance.setSubframe(true); + return instance; + }; + var renderPlugin2 = (pluginInstance, refState2, actionItem) => { + if (!pluginInstance) { + return; + } + const percent = refState2[actionItem.actionTypeId].value / 100; + pluginInstance.goToFrame(pluginInstance.frames * percent); + }; + var clearPlugin2 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + }; + } + }); + + // 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + 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]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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; + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = (element, actionItem) => { + const pluginElementId = actionItem?.config?.target?.pluginElement; + return pluginElementId ? queryContainerElement(pluginElementId) : null; + }; + 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); + } + }; + var clearPlugin2 = () => { + return null; + }; + } + }); + + // 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 + }); + Object.defineProperty(exports, "normalizeColor", { + enumerable: true, + get: function() { + return 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 || hex.length === 4) { + red = parseInt(hex[0] + hex[0], 16); + green = parseInt(hex[1] + hex[1], 16); + blue = parseInt(hex[2] + hex[2], 16); + if (hex.length === 4) { + alpha = parseInt(hex[3] + hex[3], 16) / 255; + } + } else if (hex.length === 6 || hex.length === 8) { + red = parseInt(hex.substring(0, 2), 16); + green = parseInt(hex.substring(2, 4), 16); + blue = parseInt(hex.substring(4, 6), 16); + if (hex.length === 8) { + alpha = parseInt(hex.substring(6, 8), 16) / 255; + } + } + } 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var _normalizeColor = require_normalizeColor(); + var getPluginConfig2 = (actionItemConfig, key) => { + return actionItemConfig.value[key]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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); + } + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = () => { + return null; + }; + 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); + } + }; + var clearPlugin2 = (ref, actionItem) => { + const objectId = actionItem.config.target.objectId; + document.documentElement.style.removeProperty(objectId); + }; + } + }); + + // packages/systems/ix2/plugins/index.js + var require_plugins = __commonJS({ + "packages/systems/ix2/plugins/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "pluginMethodMap", { + enumerable: true, + get: function() { + return pluginMethodMap2; + } + }); + var _sharedconstants = (init_shared_constants(), __toCommonJS(shared_constants_exports)); + var _IX2Lottie = /* @__PURE__ */ _interop_require_wildcard(require_IX2Lottie()); + var _IX2Spline = /* @__PURE__ */ _interop_require_wildcard(require_IX2Spline()); + var _IX2Variable = /* @__PURE__ */ _interop_require_wildcard(require_IX2Variable()); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var pluginMethodMap2 = /* @__PURE__ */ new Map([ + [ + _sharedconstants.ActionTypeConsts.PLUGIN_LOTTIE, + { + ..._IX2Lottie + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_SPLINE, + { + ..._IX2Spline + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_VARIABLE, + { + ..._IX2Variable + } + ] + ]); + } + }); + + // 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 && actionItemGroups.some(({ actionItems }) => { + return actionItems.some(takeItemUntilMatch); + }); + continuousParameterGroups && 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_shared = __commonJS({ + "packages/systems/ix2/shared/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + // IX2Actions, + IX2BrowserSupport: function() { + return _IX2BrowserSupport; + }, + IX2EasingUtils: function() { + return _IX2EasingUtils; + }, + IX2Easings: function() { + return _IX2Easings; + }, + IX2ElementsReducer: function() { + return _IX2ElementsReducer; + }, + IX2VanillaPlugins: function() { + return _IX2VanillaPlugins; + }, + IX2VanillaUtils: function() { + return _IX2VanillaUtils; + } + }); + var _IX2BrowserSupport = /* @__PURE__ */ _interop_require_wildcard((init_IX2BrowserSupport(), __toCommonJS(IX2BrowserSupport_exports))); + var _IX2Easings = /* @__PURE__ */ _interop_require_wildcard((init_IX2Easings(), __toCommonJS(IX2Easings_exports))); + var _IX2EasingUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2EasingUtils(), __toCommonJS(IX2EasingUtils_exports))); + var _IX2ElementsReducer = /* @__PURE__ */ _interop_require_wildcard((init_IX2ElementsReducer(), __toCommonJS(IX2ElementsReducer_exports))); + var _IX2VanillaPlugins = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaPlugins(), __toCommonJS(IX2VanillaPlugins_exports))); + var _IX2VanillaUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaUtils(), __toCommonJS(IX2VanillaUtils_exports))); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + } + }); + + // 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_shared()); + 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 ( + // @ts-expect-error - Further investigation is needed as looks like IX2_RAW_DATA_IMPORTED is never triggered with ixParameters + 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_shared()); + init_IX2InstancesReducer(); + init_IX2ParametersReducer(); + ({ ixElements: ixElements2 } = import_shared2.IX2ElementsReducer); + IX2Reducer_default = (0, import_redux.combineReducers)({ + 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_shared()); + ({ + 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_shared()); + 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_shared()); + ({ + 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, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.preview, + onChange: handlePreviewRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.playback, + onChange: handlePlaybackRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.stop, + onChange: handleStopRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.clear, + onChange: handleClearRequest + }); + } + function observeMediaQueryChange(store) { + observeStore2({ + store, + 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, + 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({ + // @ts-expect-error - TS7031 - Binding element 'logic' implicitly has an 'any' type. + 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 + // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.useEventTarget === true && // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.objectId == null ? ( + // @ts-expect-error - TS18048 - 'event' is possibly 'undefined'. + { 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 && events[eventId] ? 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_shared()); + 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"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + actions: function() { + return _IX2EngineActions; + }, + destroy: function() { + return destroy; + }, + init: function() { + return init; + }, + setEnv: function() { + return setEnv; + }, + store: function() { + return store; + } + }); + var _redux = require_lib2(); + var _IX2Reducer = /* @__PURE__ */ _interop_require_default((init_IX2Reducer(), __toCommonJS(IX2Reducer_exports))); + var _IX2VanillaEngine = (init_IX2VanillaEngine(), __toCommonJS(IX2VanillaEngine_exports)); + var _IX2EngineActions = /* @__PURE__ */ _interop_require_wildcard((init_IX2EngineActions(), __toCommonJS(IX2EngineActions_exports))); + function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var 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/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_edit(); + 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_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 + *) +*/ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-1080.png new file mode 100644 index 0000000..8315aeb Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-500.png new file mode 100644 index 0000000..3a1fa6f Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-800.png new file mode 100644 index 0000000..7948164 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba.png new file mode 100644 index 0000000..52ee694 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca1b776e114d00c13f5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c45264a0-6e3b-4cb8-9d85-c302bf80e9ba.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-1080.png new file mode 100644 index 0000000..7973ab0 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-500.png new file mode 100644 index 0000000..dd9e63d Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-800.png new file mode 100644 index 0000000..403b4c3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f.png new file mode 100644 index 0000000..97efd15 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca29f776d552f4b5266_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_56c6f763-1f21-4f6d-bd89-7e80e02cec6f.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-1080.png new file mode 100644 index 0000000..8dce973 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-500.png new file mode 100644 index 0000000..7f64ccd Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-800.png new file mode 100644 index 0000000..4002ba0 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f.png new file mode 100644 index 0000000..ecd2100 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347bca3827e6322fd792919_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f7bcb957-dcd0-419e-a856-fed935fa554f.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf-p-500.png new file mode 100644 index 0000000..1851b7c Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf-p-800.png new file mode 100644 index 0000000..38c0668 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf.png new file mode 100644 index 0000000..dc0a28a Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6347c9780bd409a9d48bf18c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f0a33178-efff-4b95-adab-179d9c6f40cf.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-1080.png new file mode 100644 index 0000000..61340be Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-500.png new file mode 100644 index 0000000..ece1fa3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-800.png new file mode 100644 index 0000000..21b79ec Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213.png new file mode 100644 index 0000000..9b2a201 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642c58e0502f87beaf35_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_fb3ffdab-9165-4eec-b1d8-c4e6a2943213.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-1080.png new file mode 100644 index 0000000..39c4a52 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-500.png new file mode 100644 index 0000000..fe3ad24 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-800.png new file mode 100644 index 0000000..1ae44e2 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa.png new file mode 100644 index 0000000..4aa244a Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642cfa6160855d3e3fbd_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92981003-57a2-4abd-b7c7-c8e7de8ea3fa.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-1080.png new file mode 100644 index 0000000..6272a4f Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-500.png new file mode 100644 index 0000000..89edb4a Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-800.png new file mode 100644 index 0000000..3fb915c Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d.png new file mode 100644 index 0000000..aa08d95 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642ea8f286d86ea8cb93_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_97e43cd1-2813-4556-81d5-d9a4e6f1fa9d.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-1080.png new file mode 100644 index 0000000..4bf7a0d Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-500.png new file mode 100644 index 0000000..7e3fe8a Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-800.png new file mode 100644 index 0000000..238c5aa Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998.png new file mode 100644 index 0000000..1036ce8 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348642f14634c18b1b5785f_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_7144fbbd-2405-4fc3-bca1-c3b3c185b998.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-1080.png new file mode 100644 index 0000000..87e3fe9 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-500.png new file mode 100644 index 0000000..4af0008 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-800.png new file mode 100644 index 0000000..61afdfa Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7.png new file mode 100644 index 0000000..6f09549 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b54f9088ec158e052af_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_13d18499-0e9f-49da-af38-8dedc94670f7.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-1080.png new file mode 100644 index 0000000..68357ca Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-500.png new file mode 100644 index 0000000..b273c1c Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-800.png new file mode 100644 index 0000000..0ad4091 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d.png new file mode 100644 index 0000000..c766104 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63486b56916df1200efb1ed7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f13cb7ce-7de2-4f52-93f5-c46b2304723d.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0-p-500.png new file mode 100644 index 0000000..e3dbb5d Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0-p-800.png new file mode 100644 index 0000000..f64e450 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0.png new file mode 100644 index 0000000..11b4e88 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63487464acc4625f004a75ee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_d4b7e5c9-73b8-4c1f-b6cc-a4b0861a3bb0.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9-p-500.png new file mode 100644 index 0000000..cfa2185 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9-p-800.png new file mode 100644 index 0000000..a5113bd Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9.png new file mode 100644 index 0000000..6b4c9df Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6348750b58e050a32ccac6da_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_434d7d3a-c64a-4dfd-a9ec-dc6e5be457a9.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-1080.png new file mode 100644 index 0000000..5c446e8 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-500.png new file mode 100644 index 0000000..399339e Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-800.png new file mode 100644 index 0000000..0017902 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2.png new file mode 100644 index 0000000..b18dba3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634968c7bf6c691c292bbaf6_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5b7649ee-6808-4597-9cc4-a2cd2827e6a2.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-1080.png new file mode 100644 index 0000000..a95ff07 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-500.png new file mode 100644 index 0000000..2523620 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-800.png new file mode 100644 index 0000000..c885b8a Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e.png new file mode 100644 index 0000000..1285b38 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634976c2c4280234170db8d3_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b485cce9-0ca3-4d6d-a7ea-125aa4d1cb2e.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-1080.png new file mode 100644 index 0000000..84cf7bb Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-500.png new file mode 100644 index 0000000..3385f44 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-800.png new file mode 100644 index 0000000..7704e73 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50.png new file mode 100644 index 0000000..f3de544 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aab3e432a9ba6e0fee7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_ca81eaeb-714f-45dd-a199-01df2cfb1c50.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-1080.png new file mode 100644 index 0000000..8b12c63 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-500.png new file mode 100644 index 0000000..129fb43 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-800.png new file mode 100644 index 0000000..e9866bf Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44.png new file mode 100644 index 0000000..687a0cc Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63497aac50700255c25294eb_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2cf103a9-1f62-4874-aaca-b489d07ceb44.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-1080.png new file mode 100644 index 0000000..40a2fa1 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-500.png new file mode 100644 index 0000000..11beaa5 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-800.png new file mode 100644 index 0000000..e9762ba Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac.png new file mode 100644 index 0000000..c4ba5dd Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/634985daab75d57d88034fee_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e6c958a-2880-4158-96af-4e95b56806ac.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f-p-500.png new file mode 100644 index 0000000..686dcf0 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f-p-800.png new file mode 100644 index 0000000..cb738f6 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f.png new file mode 100644 index 0000000..4be75b7 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b519928127914e4b8008_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f067e828-67f1-407d-b62f-01a1d8acd51f.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-1080.png new file mode 100644 index 0000000..ea5345f Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-500.png new file mode 100644 index 0000000..486afb7 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-800.png new file mode 100644 index 0000000..f8c47b5 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7.png new file mode 100644 index 0000000..dc77ea8 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b5d98901929b13d493b0_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c48d7219-f2a4-4cb4-9871-c78d167525f7.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-1080.png new file mode 100644 index 0000000..a8b42b4 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-500.png new file mode 100644 index 0000000..1b6179a Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-800.png new file mode 100644 index 0000000..fcc49a2 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62.png new file mode 100644 index 0000000..a0b0227 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349b6594ab9c03615d1abc7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_c929c82b-374a-477a-a46f-13c6a73ebf62.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37-p-500.png new file mode 100644 index 0000000..43fcfd4 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37-p-800.png new file mode 100644 index 0000000..d06ad87 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37.png new file mode 100644 index 0000000..e5d16df Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349ba8116ba1921fc59d35c_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5ea323a4-8cdd-4f74-8872-3e319d08bf37.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-1080.png new file mode 100644 index 0000000..90cd3a9 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-500.png new file mode 100644 index 0000000..1ad76c3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-800.png new file mode 100644 index 0000000..d258a30 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d.png new file mode 100644 index 0000000..f287d3f Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349bdb064eb5d0410fb6fb7_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_2e2a7ccf-c08e-44d9-9f27-c142d2cbc62d.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-1080.png new file mode 100644 index 0000000..c6aa9d7 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-500.png new file mode 100644 index 0000000..f75a431 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-800.png new file mode 100644 index 0000000..5e023b7 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79.png new file mode 100644 index 0000000..4ecbe95 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c3919bb9b07f33d86c06_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_b96ea965-6a41-43a0-bc47-b2e6efdb2f79.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-1080.png new file mode 100644 index 0000000..0de736f Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-500.png new file mode 100644 index 0000000..66b6579 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-800.png new file mode 100644 index 0000000..4af3af3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0.png new file mode 100644 index 0000000..a795c36 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6349c392812e6f2f84f6ba71_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_92ea1463-b9d0-4052-afb8-5badf87665a0.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-1080.png new file mode 100644 index 0000000..191b427 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-500.png new file mode 100644 index 0000000..6acfdf4 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-800.png new file mode 100644 index 0000000..612c35a Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f.png new file mode 100644 index 0000000..166b2cc Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/63838ed42b3827332d257b46_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_eae4db8a-21ef-4a2b-b0ba-9de5fd9ae18f.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-1080.png new file mode 100644 index 0000000..6e515c9 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-500.png new file mode 100644 index 0000000..9664e2d Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-800.png new file mode 100644 index 0000000..5deed1e Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51.png new file mode 100644 index 0000000..fcc8fbb Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383a7619f78ede14be2ab1a_98aedf5a-18a2-4a69-aeb3-3db3c06b2e51.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-1080.png new file mode 100644 index 0000000..83ea49c Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-500.png new file mode 100644 index 0000000..1dcb5f7 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-800.png new file mode 100644 index 0000000..26a19c6 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a.png new file mode 100644 index 0000000..668d71a Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee4a1614d650199a517_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_0b8c1e84-77c2-43ca-bbc7-647e7f0a439a.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-1080.png new file mode 100644 index 0000000..9efbab3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-500.png new file mode 100644 index 0000000..ce24867 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-800.png new file mode 100644 index 0000000..799c9fb Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2.png new file mode 100644 index 0000000..619d080 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6383aee5c16247c25e3e3aa8_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f08b5bdb-8a1b-40b6-af42-142fc2ea9ea2.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506c2592ad1ab9333070462_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_241a352a-7e7b-41b9-8d55-4eaa37daac14.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506c2592ad1ab9333070462_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_241a352a-7e7b-41b9-8d55-4eaa37daac14.png new file mode 100644 index 0000000..01832fc Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506c2592ad1ab9333070462_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_241a352a-7e7b-41b9-8d55-4eaa37daac14.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506c25b683ce0cda1dd09c5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5c1f9e71-5090-4780-a0ed-bb7ed3feaf3d.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506c25b683ce0cda1dd09c5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5c1f9e71-5090-4780-a0ed-bb7ed3feaf3d.png new file mode 100644 index 0000000..4e9eb83 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506c25b683ce0cda1dd09c5_nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_5c1f9e71-5090-4780-a0ed-bb7ed3feaf3d.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506e62e97c15f26a842c550_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506e62e97c15f26a842c550_file.png new file mode 100644 index 0000000..fbcc5d7 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506e62e97c15f26a842c550_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506e9e47f26fd7080543d72_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506e9e47f26fd7080543d72_file.png new file mode 100644 index 0000000..6b84cfa Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6506e9e47f26fd7080543d72_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65070049e75ebdff76943992_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65070049e75ebdff76943992_file.png new file mode 100644 index 0000000..6147bf6 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65070049e75ebdff76943992_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507004afa8f5135dc7c0cec_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507004afa8f5135dc7c0cec_file.png new file mode 100644 index 0000000..5c320ea Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507004afa8f5135dc7c0cec_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071564ec387af2e9a3c4b3_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071564ec387af2e9a3c4b3_file.png new file mode 100644 index 0000000..d963a97 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071564ec387af2e9a3c4b3_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071566fc0dadde32b35a72_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071566fc0dadde32b35a72_file.png new file mode 100644 index 0000000..ea0b185 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071566fc0dadde32b35a72_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650715676488373cfc3b5a65_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650715676488373cfc3b5a65_file.png new file mode 100644 index 0000000..385e947 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650715676488373cfc3b5a65_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071567e7ebccf8ac36913c_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071567e7ebccf8ac36913c_file.png new file mode 100644 index 0000000..a275223 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071567e7ebccf8ac36913c_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071568e7ebccf8ac369351_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071568e7ebccf8ac369351_file.png new file mode 100644 index 0000000..6b05f68 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071568e7ebccf8ac369351_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156911a836a176f9687f_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156911a836a176f9687f_file.png new file mode 100644 index 0000000..cb9d424 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156911a836a176f9687f_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156a746233271ef655ac_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156a746233271ef655ac_file.png new file mode 100644 index 0000000..3a5e363 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156a746233271ef655ac_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156c11a836a176f96938_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156c11a836a176f96938_file.png new file mode 100644 index 0000000..21d1de3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6507156c11a836a176f96938_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071579fbc1d9a288215d50_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071579fbc1d9a288215d50_file.png new file mode 100644 index 0000000..6d81968 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65071579fbc1d9a288215d50_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65072316efc9f555abeb47d4_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65072316efc9f555abeb47d4_file.png new file mode 100644 index 0000000..46799a3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65072316efc9f555abeb47d4_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650723175e01628edbcb952c_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650723175e01628edbcb952c_file.png new file mode 100644 index 0000000..943bcd8 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650723175e01628edbcb952c_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6508663ab8daed9b43243d5f_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6508663ab8daed9b43243d5f_file.png new file mode 100644 index 0000000..74789f3 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/6508663ab8daed9b43243d5f_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650866b8302a90adfb52ed7e_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650866b8302a90adfb52ed7e_file.png new file mode 100644 index 0000000..59457f4 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650866b8302a90adfb52ed7e_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502e4d041b86e58f48b1_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502e4d041b86e58f48b1_file.png new file mode 100644 index 0000000..3b3c01d Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502e4d041b86e58f48b1_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502e8d6888663a4401d7_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502e8d6888663a4401d7_file.png new file mode 100644 index 0000000..f884877 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502e8d6888663a4401d7_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502ef6ca3e0b03e592af_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502ef6ca3e0b03e592af_file.png new file mode 100644 index 0000000..8e12ce6 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b502ef6ca3e0b03e592af_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b50308480fac671502154_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b50308480fac671502154_file.png new file mode 100644 index 0000000..93a03d2 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b50308480fac671502154_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b5030c5d775914cf1ceeb_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b5030c5d775914cf1ceeb_file.png new file mode 100644 index 0000000..aa697a7 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650b5030c5d775914cf1ceeb_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650cb4a65051d424cb927e5f_file.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650cb4a65051d424cb927e5f_file.png new file mode 100644 index 0000000..c67f654 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/650cb4a65051d424cb927e5f_file.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-1080.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-1080.png new file mode 100644 index 0000000..d8e9462 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-1080.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-500.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-500.png new file mode 100644 index 0000000..e176308 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-500.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-800.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-800.png new file mode 100644 index 0000000..0c75eec Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819-p-800.png differ diff --git a/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819.png b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819.png new file mode 100644 index 0000000..f2a5ce4 Binary files /dev/null and b/plus/house-on-a-cliff/cdn.prod.website-files.com/63470efce625b300825300a0/65bf6af168c8f36db57ce4d0_nitrada_tadao_ando_79b53135-0315-43fa-b5a5-10b225e819.png differ diff --git "a/plus/house-on-a-cliff/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" "b/plus/house-on-a-cliff/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" new file mode 100644 index 0000000..b061403 --- /dev/null +++ "b/plus/house-on-a-cliff/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 + + + youtube-placeholder + Created with Sketch. + + + + + + \ No newline at end of file diff --git "a/plus/house-on-a-cliff/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" "b/plus/house-on-a-cliff/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" new file mode 100644 index 0000000..8a4efe0 --- /dev/null +++ "b/plus/house-on-a-cliff/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" @@ -0,0 +1,242 @@ +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} diff --git a/plus/house-on-a-cliff/fonts.googleapis.com/robots.ssl.txt b/plus/house-on-a-cliff/fonts.googleapis.com/robots.ssl.txt new file mode 100644 index 0000000..9e60f97 --- /dev/null +++ b/plus/house-on-a-cliff/fonts.googleapis.com/robots.ssl.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 new file mode 100644 index 0000000..d560d34 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 new file mode 100644 index 0000000..5e2b24a Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..b3ec1b3 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..d315229 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..366dc80 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..95c63e0 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..03039fe Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 new file mode 100644 index 0000000..b49074b Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 new file mode 100644 index 0000000..d25560c Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 new file mode 100644 index 0000000..fad313b Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 new file mode 100644 index 0000000..56e968d Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 new file mode 100644 index 0000000..0773927 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 new file mode 100644 index 0000000..e9bd2e8 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 new file mode 100644 index 0000000..74bc295 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 new file mode 100644 index 0000000..daa4d3e Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff b/plus/house-on-a-cliff/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff new file mode 100644 index 0000000..9394bc1 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 new file mode 100644 index 0000000..741341a Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff b/plus/house-on-a-cliff/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff new file mode 100644 index 0000000..98c7eab Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 new file mode 100644 index 0000000..9ac07eb Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 differ diff --git a/plus/house-on-a-cliff/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 b/plus/house-on-a-cliff/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 new file mode 100644 index 0000000..8d7b415 Binary files /dev/null and b/plus/house-on-a-cliff/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 differ diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015246217265202.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015246217265202.html new file mode 100644 index 0000000..524baf2 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015246217265202.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015276802129982.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015276802129982.html new file mode 100644 index 0000000..30caaeb --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015276802129982.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015315716870154.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015315716870154.html new file mode 100644 index 0000000..5b53964 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030015315716870154.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030030672254996522.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030030672254996522.html new file mode 100644 index 0000000..ec90757 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030030672254996522.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194670443180094.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194670443180094.html new file mode 100644 index 0000000..ffa3e5a --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194670443180094.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194677976141874.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194677976141874.html new file mode 100644 index 0000000..b8dce16 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194677976141874.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194680694059128.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194680694059128.html new file mode 100644 index 0000000..3fbfff9 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194680694059128.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194934831132692.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194934831132692.html new file mode 100644 index 0000000..a56d0ec --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030194934831132692.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030201922155712514.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030201922155712514.html new file mode 100644 index 0000000..c443b1d --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030201922155712514.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030202175994994719.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030202175994994719.html new file mode 100644 index 0000000..9b642aa --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030202175994994719.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030214761067069451.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030214761067069451.html new file mode 100644 index 0000000..86e8771 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030214761067069451.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030215173270671360.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030215173270671360.html new file mode 100644 index 0000000..910917b --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030215173270671360.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030473749604077618.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030473749604077618.html new file mode 100644 index 0000000..b390d5b --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030473749604077618.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030489627666165850.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030489627666165850.html new file mode 100644 index 0000000..2611f1b --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030489627666165850.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030495399183663204.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030495399183663204.html new file mode 100644 index 0000000..79ff3af --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030495399183663204.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030495747604488323.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030495747604488323.html new file mode 100644 index 0000000..c4e9782 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030495747604488323.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030504976323203093.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030504976323203093.html new file mode 100644 index 0000000..38a38c1 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030504976323203093.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030559096094597180.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030559096094597180.html new file mode 100644 index 0000000..37ef86e --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030559096094597180.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030559773940269167.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030559773940269167.html new file mode 100644 index 0000000..c234999 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030559773940269167.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030560467749453865.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030560467749453865.html new file mode 100644 index 0000000..17cda7f --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030560467749453865.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030564819708956713.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030564819708956713.html new file mode 100644 index 0000000..b5f2264 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030564819708956713.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Light) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030565539870932993.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030565539870932993.html new file mode 100644 index 0000000..0ca1ec5 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030565539870932993.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030574615233318953.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030574615233318953.html new file mode 100644 index 0000000..7aa2a49 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030574615233318953.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030574630190198804.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030574630190198804.html new file mode 100644 index 0000000..5fcd5f6 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1030574630190198804.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046457867819032608.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046457867819032608.html new file mode 100644 index 0000000..41bad2e --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046457867819032608.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046483756434866219.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046483756434866219.html new file mode 100644 index 0000000..f62e6ab --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046483756434866219.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046492877359951903.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046492877359951903.html new file mode 100644 index 0000000..862359f --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046492877359951903.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046492896653750363.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046492896653750363.html new file mode 100644 index 0000000..f1f4f0c --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1046492896653750363.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1152891841918816266.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1152891841918816266.html new file mode 100644 index 0000000..b4d3af3 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1152891841918816266.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --ar 9:16** - Image #4 <@956866923587596328>
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/1152891859463590018.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1152891859463590018.html new file mode 100644 index 0000000..bc40e0a --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/1152891859463590018.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --ar 9:16** - Image #2 <@956866923587596328>
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058c884b086d2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058c884b086d2282d594.html new file mode 100644 index 0000000..529c48f --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058c884b086d2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_3e65d000-faed-4e24-9bc5-4476a3991d7c
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058ca438d8692282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058ca438d8692282d594.html new file mode 100644 index 0000000..8ba8015 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058ca438d8692282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_043243ba-1f0c-4b8e-858d-bfe186da558c
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058df55c47e52282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058df55c47e52282d594.html new file mode 100644 index 0000000..f0e93ca --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058df55c47e52282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_abfb5ffa-8255-4432-bab5-7a0d71b78904
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058df7b623f32282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058df7b623f32282d594.html new file mode 100644 index 0000000..c9370a8 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058df7b623f32282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f814c9c5-f6d8-4bfc-9508-52f394c97375
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f202182cc2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f202182cc2282d594.html new file mode 100644 index 0000000..710391b --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f202182cc2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_edff1676-5334-49ba-a254-fed13a4aa73e
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f221a4b5c2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f221a4b5c2282d594.html new file mode 100644 index 0000000..ab07a5d --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f221a4b5c2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_649d2fe5-a6bc-4eb7-a930-de0c024b1b92
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f234919622282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f234919622282d594.html new file mode 100644 index 0000000..bdd1dc7 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f234919622282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_ecbbbb72-2303-4a4b-88ed-f2ead596d09c
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f248f46332282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f248f46332282d594.html new file mode 100644 index 0000000..218b27a --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f248f46332282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_e8dc0ddf-d0dd-456b-823b-4d699ae43146
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f25e343ed2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f25e343ed2282d594.html new file mode 100644 index 0000000..0f12b63 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f25e343ed2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_6d10c400-880a-4be2-afce-f56a358e3b93
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4c54507e2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4c54507e2282d594.html new file mode 100644 index 0000000..682395a --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4c54507e2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_d84767dd-706a-4dff-8208-f8eb88ef35b5
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4d4688642282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4d4688642282d594.html new file mode 100644 index 0000000..b14c07e --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4d4688642282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_83b903f6-adde-4f09-9c87-467ac821746a
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4e2c54612282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4e2c54612282d594.html new file mode 100644 index 0000000..ea473c8 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4e2c54612282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_43e6a230-cacd-4955-8573-1c8b9375249b
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4f7596292282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4f7596292282d594.html new file mode 100644 index 0000000..dfa6379 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6058f4f7596292282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_26007ccb-4515-466b-bcbb-12bf9ad9f77e
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/60590051fe2ad2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/60590051fe2ad2282d594.html new file mode 100644 index 0000000..88de6c8 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/60590051fe2ad2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_bright_pink_neon__3386b5f0-5633-4688-bcc1-5d1938d07d70
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605900631ac4f2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605900631ac4f2282d594.html new file mode 100644 index 0000000..ca60ce8 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605900631ac4f2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_bright_pink_neon__4024ae04-548b-4cfb-9229-c2de06112986
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605a3673958212282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605a3673958212282d594.html new file mode 100644 index 0000000..e0de8f5 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605a3673958212282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__f40b8149-93a4-44b9-9db4-a89e1e92dc12
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605a369d88c072282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605a369d88c072282d594.html new file mode 100644 index 0000000..2d4732b --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605a369d88c072282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a82740eb-bb59-46e4-9453-f4b668f0e4fe
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcbbb2bcb2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcbbb2bcb2282d594.html new file mode 100644 index 0000000..a9e8068 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcbbb2bcb2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__d45da7ca-3842-49b6-a537-7d94054bb74f
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfccc43c562282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfccc43c562282d594.html new file mode 100644 index 0000000..b463c9f --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfccc43c562282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a79f23f9-9a51-4ad3-94cc-9e523b920ad4
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcdbe40bb2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcdbe40bb2282d594.html new file mode 100644 index 0000000..5dcf5ce --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcdbe40bb2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__64c30bdf-0512-4cd4-b693-bc7be148a3b8
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfce8d46052282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfce8d46052282d594.html new file mode 100644 index 0000000..b7809c3 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfce8d46052282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__b381fa2b-1ef9-4465-88db-329e6afee0d7
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcf731afd2282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcf731afd2282d594.html new file mode 100644 index 0000000..898b230 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605cfcf731afd2282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a5a50b1d-54dc-406f-938c-3e7310a80752
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/605e50b361a812282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605e50b361a812282d594.html new file mode 100644 index 0000000..9a72c59 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/605e50b361a812282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_style_brutalism_house_on_a_cliff_in_the_dark_a561781b-9eab-4129-ae98-e58bdc0ef39a
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/6107ed8d602742282d594.html b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6107ed8d602742282d594.html new file mode 100644 index 0000000..d4ccb97 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/6107ed8d602742282d594.html @@ -0,0 +1,40 @@ +house on a cliff + + + + + + +
nitrada_tadao_ando_brutalism_style_house_on_a_cliff_in_the_dark_79b53135-0315-43fa-b5a5-10b225e819c9
\ No newline at end of file diff --git a/plus/house-on-a-cliff/imagine-house-on-a-cliff/rss.xml.rss b/plus/house-on-a-cliff/imagine-house-on-a-cliff/rss.xml.rss new file mode 100644 index 0000000..cc5bf67 --- /dev/null +++ b/plus/house-on-a-cliff/imagine-house-on-a-cliff/rss.xml.rss @@ -0,0 +1 @@ +nitrada+ imaginehttps://www.nitrada.comMon, 02 Sep 2024 19:17:13 GMTWebflownitrada_tadao_ando_brutalism_style_house_on_a_cliff_in_the_dark_79b53135-0315-43fa-b5a5-10b225e819c9https://www.nitrada.com/imagine-house-on-a-cliff/6107ed8d602742282d594https://www.nitrada.com/imagine-house-on-a-cliff/6107ed8d602742282d594Mon, 05 Aug 2024 18:02:09 GMTnitrada_tadao_ando_style_brutalism_house_on_a_cliff_in_the_dark_a561781b-9eab-4129-ae98-e58bdc0ef39ahttps://www.nitrada.com/imagine-house-on-a-cliff/605e50b361a812282d594https://www.nitrada.com/imagine-house-on-a-cliff/605e50b361a812282d594Thu, 21 Sep 2023 21:24:54 GMTnitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a79f23f9-9a51-4ad3-94cc-9e523b920ad4https://www.nitrada.com/imagine-house-on-a-cliff/605cfccc43c562282d594https://www.nitrada.com/imagine-house-on-a-cliff/605cfccc43c562282d594Wed, 20 Sep 2023 20:04:01 GMTnitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__d45da7ca-3842-49b6-a537-7d94054bb74fhttps://www.nitrada.com/imagine-house-on-a-cliff/605cfcbbb2bcb2282d594https://www.nitrada.com/imagine-house-on-a-cliff/605cfcbbb2bcb2282d594Wed, 20 Sep 2023 20:04:00 GMTnitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__64c30bdf-0512-4cd4-b693-bc7be148a3b8https://www.nitrada.com/imagine-house-on-a-cliff/605cfcdbe40bb2282d594https://www.nitrada.com/imagine-house-on-a-cliff/605cfcdbe40bb2282d594Wed, 20 Sep 2023 20:03:58 GMTnitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a5a50b1d-54dc-406f-938c-3e7310a80752https://www.nitrada.com/imagine-house-on-a-cliff/605cfcf731afd2282d594https://www.nitrada.com/imagine-house-on-a-cliff/605cfcf731afd2282d594Wed, 20 Sep 2023 20:03:58 GMTnitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__b381fa2b-1ef9-4465-88db-329e6afee0d7https://www.nitrada.com/imagine-house-on-a-cliff/605cfce8d46052282d594https://www.nitrada.com/imagine-house-on-a-cliff/605cfce8d46052282d594Wed, 20 Sep 2023 20:03:58 GMTnitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a82740eb-bb59-46e4-9453-f4b668f0e4fehttps://www.nitrada.com/imagine-house-on-a-cliff/605a369d88c072282d594https://www.nitrada.com/imagine-house-on-a-cliff/605a369d88c072282d594Mon, 18 Sep 2023 15:03:20 GMTnitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__f40b8149-93a4-44b9-9db4-a89e1e92dc12https://www.nitrada.com/imagine-house-on-a-cliff/605a3673958212282d594https://www.nitrada.com/imagine-house-on-a-cliff/605a3673958212282d594Mon, 18 Sep 2023 15:01:14 GMTnitrada_tadao_ando_style_brutalism_house_with_bright_pink_neon__3386b5f0-5633-4688-bcc1-5d1938d07d70https://www.nitrada.com/imagine-house-on-a-cliff/60590051fe2ad2282d594https://www.nitrada.com/imagine-house-on-a-cliff/60590051fe2ad2282d594Sun, 17 Sep 2023 16:02:31 GMTnitrada_tadao_ando_style_brutalism_house_with_bright_pink_neon__4024ae04-548b-4cfb-9229-c2de06112986https://www.nitrada.com/imagine-house-on-a-cliff/605900631ac4f2282d594https://www.nitrada.com/imagine-house-on-a-cliff/605900631ac4f2282d594Sun, 17 Sep 2023 16:02:30 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_ecbbbb72-2303-4a4b-88ed-f2ead596d09chttps://www.nitrada.com/imagine-house-on-a-cliff/6058f234919622282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f234919622282d594Sun, 17 Sep 2023 15:04:26 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_edff1676-5334-49ba-a254-fed13a4aa73ehttps://www.nitrada.com/imagine-house-on-a-cliff/6058f202182cc2282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f202182cc2282d594Sun, 17 Sep 2023 15:04:12 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_649d2fe5-a6bc-4eb7-a930-de0c024b1b92https://www.nitrada.com/imagine-house-on-a-cliff/6058f221a4b5c2282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f221a4b5c2282d594Sun, 17 Sep 2023 15:04:11 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_e8dc0ddf-d0dd-456b-823b-4d699ae43146https://www.nitrada.com/imagine-house-on-a-cliff/6058f248f46332282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f248f46332282d594Sun, 17 Sep 2023 15:04:09 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_6d10c400-880a-4be2-afce-f56a358e3b93https://www.nitrada.com/imagine-house-on-a-cliff/6058f25e343ed2282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f25e343ed2282d594Sun, 17 Sep 2023 15:04:08 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_43e6a230-cacd-4955-8573-1c8b9375249bhttps://www.nitrada.com/imagine-house-on-a-cliff/6058f4e2c54612282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f4e2c54612282d594Sun, 17 Sep 2023 15:04:07 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_d84767dd-706a-4dff-8208-f8eb88ef35b5https://www.nitrada.com/imagine-house-on-a-cliff/6058f4c54507e2282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f4c54507e2282d594Sun, 17 Sep 2023 15:04:07 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_83b903f6-adde-4f09-9c87-467ac821746ahttps://www.nitrada.com/imagine-house-on-a-cliff/6058f4d4688642282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f4d4688642282d594Sun, 17 Sep 2023 15:04:06 GMTnitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_26007ccb-4515-466b-bcbb-12bf9ad9f77ehttps://www.nitrada.com/imagine-house-on-a-cliff/6058f4f7596292282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058f4f7596292282d594Sun, 17 Sep 2023 15:04:04 GMTnitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_abfb5ffa-8255-4432-bab5-7a0d71b78904https://www.nitrada.com/imagine-house-on-a-cliff/6058df55c47e52282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058df55c47e52282d594Sun, 17 Sep 2023 13:34:02 GMTnitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f814c9c5-f6d8-4bfc-9508-52f394c97375https://www.nitrada.com/imagine-house-on-a-cliff/6058df7b623f32282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058df7b623f32282d594Sun, 17 Sep 2023 13:34:02 GMTnitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_043243ba-1f0c-4b8e-858d-bfe186da558chttps://www.nitrada.com/imagine-house-on-a-cliff/6058ca438d8692282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058ca438d8692282d594Sun, 17 Sep 2023 11:58:28 GMTnitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_3e65d000-faed-4e24-9bc5-4476a3991d7chttps://www.nitrada.com/imagine-house-on-a-cliff/6058c884b086d2282d594https://www.nitrada.com/imagine-house-on-a-cliff/6058c884b086d2282d594Sun, 17 Sep 2023 11:44:24 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --ar 9:16** - Image #4 <@956866923587596328>https://www.nitrada.com/imagine-house-on-a-cliff/1152891841918816266https://www.nitrada.com/imagine-house-on-a-cliff/1152891841918816266Sun, 17 Sep 2023 11:04:37 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030194934831132692https://www.nitrada.com/imagine-house-on-a-cliff/1030194934831132692Sun, 17 Sep 2023 09:19:28 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --ar 9:16** - Image #2 <@956866923587596328>https://www.nitrada.com/imagine-house-on-a-cliff/1152891859463590018https://www.nitrada.com/imagine-house-on-a-cliff/1152891859463590018Sun, 17 Sep 2023 09:09:46 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1046483756434866219https://www.nitrada.com/imagine-house-on-a-cliff/1046483756434866219Wed, 14 Dec 2022 10:22:07 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1046492877359951903https://www.nitrada.com/imagine-house-on-a-cliff/1046492877359951903Sun, 27 Nov 2022 18:39:33 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1046492896653750363https://www.nitrada.com/imagine-house-on-a-cliff/1046492896653750363Sun, 27 Nov 2022 18:39:32 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1046457867819032608https://www.nitrada.com/imagine-house-on-a-cliff/1046457867819032608Sun, 27 Nov 2022 16:22:44 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030574615233318953https://www.nitrada.com/imagine-house-on-a-cliff/1030574615233318953Fri, 14 Oct 2022 20:16:18 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030574630190198804https://www.nitrada.com/imagine-house-on-a-cliff/1030574630190198804Fri, 14 Oct 2022 20:16:17 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030565539870932993https://www.nitrada.com/imagine-house-on-a-cliff/1030565539870932993Fri, 14 Oct 2022 19:51:12 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Light) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030564819708956713https://www.nitrada.com/imagine-house-on-a-cliff/1030564819708956713Fri, 14 Oct 2022 19:37:37 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030560467749453865https://www.nitrada.com/imagine-house-on-a-cliff/1030560467749453865Fri, 14 Oct 2022 19:19:53 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030559773940269167https://www.nitrada.com/imagine-house-on-a-cliff/1030559773940269167Fri, 14 Oct 2022 19:17:45 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030559096094597180https://www.nitrada.com/imagine-house-on-a-cliff/1030559096094597180Fri, 14 Oct 2022 19:14:33 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030504976323203093https://www.nitrada.com/imagine-house-on-a-cliff/1030504976323203093Fri, 14 Oct 2022 15:52:58 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030495399183663204https://www.nitrada.com/imagine-house-on-a-cliff/1030495399183663204Fri, 14 Oct 2022 15:05:16 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030495747604488323https://www.nitrada.com/imagine-house-on-a-cliff/1030495747604488323Fri, 14 Oct 2022 15:05:15 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030489627666165850https://www.nitrada.com/imagine-house-on-a-cliff/1030489627666165850Fri, 14 Oct 2022 14:48:34 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030473749604077618https://www.nitrada.com/imagine-house-on-a-cliff/1030473749604077618Fri, 14 Oct 2022 13:48:56 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030215173270671360https://www.nitrada.com/imagine-house-on-a-cliff/1030215173270671360Thu, 13 Oct 2022 20:28:59 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030214761067069451https://www.nitrada.com/imagine-house-on-a-cliff/1030214761067069451Thu, 13 Oct 2022 20:26:12 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030201922155712514https://www.nitrada.com/imagine-house-on-a-cliff/1030201922155712514Thu, 13 Oct 2022 19:47:34 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030202175994994719https://www.nitrada.com/imagine-house-on-a-cliff/1030202175994994719Thu, 13 Oct 2022 19:47:32 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030194670443180094https://www.nitrada.com/imagine-house-on-a-cliff/1030194670443180094Thu, 13 Oct 2022 19:17:03 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030194677976141874https://www.nitrada.com/imagine-house-on-a-cliff/1030194677976141874Thu, 13 Oct 2022 19:17:02 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030194680694059128https://www.nitrada.com/imagine-house-on-a-cliff/1030194680694059128Thu, 13 Oct 2022 19:17:00 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030030672254996522https://www.nitrada.com/imagine-house-on-a-cliff/1030030672254996522Thu, 13 Oct 2022 08:16:56 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030015246217265202https://www.nitrada.com/imagine-house-on-a-cliff/1030015246217265202Thu, 13 Oct 2022 07:22:11 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030015276802129982https://www.nitrada.com/imagine-house-on-a-cliff/1030015276802129982Thu, 13 Oct 2022 07:22:10 GMT**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)https://www.nitrada.com/imagine-house-on-a-cliff/1030015315716870154https://www.nitrada.com/imagine-house-on-a-cliff/1030015315716870154Thu, 13 Oct 2022 07:22:09 GMT \ No newline at end of file diff --git a/plus/house-on-a-cliff/index.html b/plus/house-on-a-cliff/index.html new file mode 100644 index 0000000..9453387 --- /dev/null +++ b/plus/house-on-a-cliff/index.html @@ -0,0 +1,38 @@ +nitrada+ /imagine house on a cliff + + + + + + + +

nitrada+ house on a cliff

Instagram
nitrada_tadao_ando_brutalism_style_house_on_a_cliff_in_the_dark_79b53135-0315-43fa-b5a5-10b225e819c9
nitrada_tadao_ando_style_brutalism_house_on_a_cliff_in_the_dark_a561781b-9eab-4129-ae98-e58bdc0ef39a
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a79f23f9-9a51-4ad3-94cc-9e523b920ad4
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__d45da7ca-3842-49b6-a537-7d94054bb74f
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__64c30bdf-0512-4cd4-b693-bc7be148a3b8
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a5a50b1d-54dc-406f-938c-3e7310a80752
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__b381fa2b-1ef9-4465-88db-329e6afee0d7
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__a82740eb-bb59-46e4-9453-f4b668f0e4fe
nitrada_tadao_ando_style_brutalism_house_with_pink_neon_lights__f40b8149-93a4-44b9-9db4-a89e1e92dc12
nitrada_tadao_ando_style_brutalism_house_with_bright_pink_neon__3386b5f0-5633-4688-bcc1-5d1938d07d70
nitrada_tadao_ando_style_brutalism_house_with_bright_pink_neon__4024ae04-548b-4cfb-9229-c2de06112986
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_ecbbbb72-2303-4a4b-88ed-f2ead596d09c
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_edff1676-5334-49ba-a254-fed13a4aa73e
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_649d2fe5-a6bc-4eb7-a930-de0c024b1b92
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_e8dc0ddf-d0dd-456b-823b-4d699ae43146
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_6d10c400-880a-4be2-afce-f56a358e3b93
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_43e6a230-cacd-4955-8573-1c8b9375249b
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_d84767dd-706a-4dff-8208-f8eb88ef35b5
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_83b903f6-adde-4f09-9c87-467ac821746a
nitrada_tadao_ando_style_brutalism_house_with_matte_neon_lights_26007ccb-4515-466b-bcbb-12bf9ad9f77e
nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_abfb5ffa-8255-4432-bab5-7a0d71b78904
nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_f814c9c5-f6d8-4bfc-9508-52f394c97375
nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_043243ba-1f0c-4b8e-858d-bfe186da558c
nitrada_tadao_ando_brutalism_house_on_a_cliff_in_the_dark_surro_3e65d000-faed-4e24-9bc5-4476a3991d7c
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --ar 9:16** - Image #4 <@956866923587596328>
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --ar 9:16** - Image #2 <@956866923587596328>
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Light) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
**tadao ando brutalism house on a cliff in the dark surrounded by foggy lights --w 1080 --h 1920 --upbeta --v 3** - Upscaled (Beta) by <@956866923587596328> (fast)
\ No newline at end of file diff --git a/plus/house-on-a-cliff/www.instagram.com/robots.ssl.txt b/plus/house-on-a-cliff/www.instagram.com/robots.ssl.txt new file mode 100644 index 0000000..df26d5e --- /dev/null +++ b/plus/house-on-a-cliff/www.instagram.com/robots.ssl.txt @@ -0,0 +1,204 @@ +# Notice: Collection of data on Instagram through automated means is +# prohibited unless you have express written permission from Instagram +# and may only be conducted for the limited purpose contained in said +# permission. +User-agent: Amazonbot +Disallow: / + +User-agent: Applebot-Extended +Disallow: / + +User-agent: ClaudeBot +Disallow: / + +User-agent: Google-Extended +Disallow: / + +User-agent: GPTBot +Disallow: / + +User-agent: PetalBot +Disallow: / + +User-agent: viberbot +Disallow: / + +User-agent: YaK +Disallow: / + +User-agent: Yandex +Disallow: / + +User-agent: Applebot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Bingbot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Discordbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: DuckDuckBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: facebookexternalhit +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Googlebot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Googlebot-Image +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: LinkedInBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: msnbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Naverbot +Disallow: /*/c/ +Disallow: /*/comments/ +Disallow: /*/liked_by/ +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Pinterestbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Screaming Frog SEO Spider +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: seznambot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Slurp +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: teoma +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: TelegramBot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Twitterbot +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: Yeti +Disallow: /ajax/ +Disallow: /client_error/ +Disallow: /direct/ +Disallow: /logging/ +Disallow: /publicapi/ +Disallow: /qp/batch_fetch_web/ +Disallow: /query/ + +User-agent: * +Disallow: / diff --git a/plus/webmidi.html b/plus/webmidi.html new file mode 100644 index 0000000..c607bd8 --- /dev/null +++ b/plus/webmidi.html @@ -0,0 +1,40 @@ + + + + + webmidi + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rosa/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js b/rosa/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js new file mode 100644 index 0000000..3e95a6c --- /dev/null +++ b/rosa/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js @@ -0,0 +1,33 @@ +/* + * Copyright 2016 Small Batch, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +/* Web Font Loader v1.6.26 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,d){setTimeout(d,b.f)});Promise.race([e,d]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a= +P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)}; +function ma(a,b,c){for(var d in S)if(S.hasOwnProperty(d)&&b===a.f[S[d]]&&c===a.f[S[d]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=U()&&ma(a,b,c));d?q()-a.A>=a.w?U()&&ma(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)}; +W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,d,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)}; +function ra(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=d||null||{};if(0===c.length&&f)M(b.a);else{b.f+=c.length;f&&(b.j=f);var h,m=[];for(h=0;h + + + + + + diff --git a/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/63c8f0c7dd02fa59bcabfad4_rosa.svg b/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/63c8f0c7dd02fa59bcabfad4_rosa.svg new file mode 100644 index 0000000..dbfdafd --- /dev/null +++ b/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/63c8f0c7dd02fa59bcabfad4_rosa.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/css/data-literate.webflow.03a667cd7.css b/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/css/data-literate.webflow.03a667cd7.css new file mode 100644 index 0000000..a99256c --- /dev/null +++ b/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/css/data-literate.webflow.03a667cd7.css @@ -0,0 +1,3469 @@ +html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + font-family: sans-serif; +} + +body { + margin: 0; +} + +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block; +} + +audio, canvas, progress, video { + vertical-align: baseline; + display: inline-block; +} + +audio:not([controls]) { + height: 0; + display: none; +} + +[hidden], template { + display: none; +} + +a { + background-color: #0000; +} + +a:active, a:hover { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +h1 { + margin: .67em 0; + font-size: 2em; +} + +mark { + color: #000; + background: #ff0; +} + +small { + font-size: 80%; +} + +sub, sup { + vertical-align: baseline; + font-size: 75%; + line-height: 0; + position: relative; +} + +sup { + top: -.5em; +} + +sub { + bottom: -.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +hr { + box-sizing: content-box; + height: 0; +} + +pre { + overflow: auto; +} + +code, kbd, pre, samp { + font-family: monospace; + font-size: 1em; +} + +button, input, optgroup, select, textarea { + color: inherit; + font: inherit; + margin: 0; +} + +button { + overflow: visible; +} + +button, select { + text-transform: none; +} + +button, html input[type="button"], input[type="reset"] { + -webkit-appearance: button; + cursor: pointer; +} + +button[disabled], html input[disabled] { + cursor: default; +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} + +input { + line-height: normal; +} + +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + padding: 0; +} + +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +input[type="search"] { + -webkit-appearance: none; +} + +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +legend { + border: 0; + padding: 0; +} + +textarea { + overflow: auto; +} + +optgroup { + font-weight: bold; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, th { + padding: 0; +} + +@font-face { + font-family: webflow-icons; + src: url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBiUAAAC8AAAAYGNtYXDpP+a4AAABHAAAAFxnYXNwAAAAEAAAAXgAAAAIZ2x5ZmhS2XEAAAGAAAADHGhlYWQTFw3HAAAEnAAAADZoaGVhCXYFgQAABNQAAAAkaG10eCe4A1oAAAT4AAAAMGxvY2EDtALGAAAFKAAAABptYXhwABAAPgAABUQAAAAgbmFtZSoCsMsAAAVkAAABznBvc3QAAwAAAAAHNAAAACAAAwP4AZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAwPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAQAAAAAwACAACAAQAAQAg5gPpA//9//8AAAAAACDmAOkA//3//wAB/+MaBBcIAAMAAQAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEBIAAAAyADgAAFAAAJAQcJARcDIP5AQAGA/oBAAcABwED+gP6AQAABAOAAAALgA4AABQAAEwEXCQEH4AHAQP6AAYBAAcABwED+gP6AQAAAAwDAAOADQALAAA8AHwAvAAABISIGHQEUFjMhMjY9ATQmByEiBh0BFBYzITI2PQE0JgchIgYdARQWMyEyNj0BNCYDIP3ADRMTDQJADRMTDf3ADRMTDQJADRMTDf3ADRMTDQJADRMTAsATDSANExMNIA0TwBMNIA0TEw0gDRPAEw0gDRMTDSANEwAAAAABAJ0AtAOBApUABQAACQIHCQEDJP7r/upcAXEBcgKU/usBFVz+fAGEAAAAAAL//f+9BAMDwwAEAAkAABcBJwEXAwE3AQdpA5ps/GZsbAOabPxmbEMDmmz8ZmwDmvxmbAOabAAAAgAA/8AEAAPAAB0AOwAABSInLgEnJjU0Nz4BNzYzMTIXHgEXFhUUBw4BBwYjNTI3PgE3NjU0Jy4BJyYjMSIHDgEHBhUUFx4BFxYzAgBqXV6LKCgoKIteXWpqXV6LKCgoKIteXWpVSktvICEhIG9LSlVVSktvICEhIG9LSlVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoZiEgb0tKVVVKS28gISEgb0tKVVVKS28gIQABAAABwAIAA8AAEgAAEzQ3PgE3NjMxFSIHDgEHBhUxIwAoKIteXWpVSktvICFmAcBqXV6LKChmISBvS0pVAAAAAgAA/8AFtgPAADIAOgAAARYXHgEXFhUUBw4BBwYHIxUhIicuAScmNTQ3PgE3NjMxOAExNDc+ATc2MzIXHgEXFhcVATMJATMVMzUEjD83NlAXFxYXTjU1PQL8kz01Nk8XFxcXTzY1PSIjd1BQWlJJSXInJw3+mdv+2/7c25MCUQYcHFg5OUA/ODlXHBwIAhcXTzY1PTw1Nk8XF1tQUHcjIhwcYUNDTgL+3QFt/pOTkwABAAAAAQAAmM7nP18PPPUACwQAAAAAANciZKUAAAAA1yJkpf/9/70FtgPDAAAACAACAAAAAAAAAAEAAAPA/8AAAAW3//3//QW2AAEAAAAAAAAAAAAAAAAAAAAMBAAAAAAAAAAAAAAAAgAAAAQAASAEAADgBAAAwAQAAJ0EAP/9BAAAAAQAAAAFtwAAAAAAAAAKABQAHgAyAEYAjACiAL4BFgE2AY4AAAABAAAADAA8AAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADQAAAAEAAAAAAAIABwCWAAEAAAAAAAMADQBIAAEAAAAAAAQADQCrAAEAAAAAAAUACwAnAAEAAAAAAAYADQBvAAEAAAAAAAoAGgDSAAMAAQQJAAEAGgANAAMAAQQJAAIADgCdAAMAAQQJAAMAGgBVAAMAAQQJAAQAGgC4AAMAAQQJAAUAFgAyAAMAAQQJAAYAGgB8AAMAAQQJAAoANADsd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzUmVndWxhcgBSAGUAZwB1AGwAYQByd2ViZmxvdy1pY29ucwB3AGUAYgBmAGwAbwB3AC0AaQBjAG8AbgBzRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==") format("truetype"); + font-weight: normal; + font-style: normal; +} + +[class^="w-icon-"], [class*=" w-icon-"] { + speak: none; + font-variant: normal; + text-transform: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-style: normal; + font-weight: normal; + line-height: 1; + font-family: webflow-icons !important; +} + +.w-icon-slider-right:before { + content: ""; +} + +.w-icon-slider-left:before { + content: ""; +} + +.w-icon-nav-menu:before { + content: ""; +} + +.w-icon-arrow-down:before, .w-icon-dropdown-toggle:before { + content: ""; +} + +.w-icon-file-upload-remove:before { + content: ""; +} + +.w-icon-file-upload-icon:before { + content: ""; +} + +* { + box-sizing: border-box; +} + +html { + height: 100%; +} + +body { + color: #333; + background-color: #fff; + min-height: 100%; + margin: 0; + font-family: Arial, sans-serif; + font-size: 14px; + line-height: 20px; +} + +img { + vertical-align: middle; + max-width: 100%; + 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: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-clearfix:after { + clear: both; +} + +.w-hidden { + display: none; +} + +.w-button { + color: #fff; + line-height: inherit; + cursor: pointer; + background-color: #3898ec; + border: 0; + border-radius: 0; + padding: 9px 15px; + text-decoration: none; + display: inline-block; +} + +input.w-button { + -webkit-appearance: button; +} + +html[data-w-dynpage] [data-w-cloak] { + color: #0000 !important; +} + +.w-code-block { + margin: unset; +} + +pre.w-code-block code { + all: inherit; +} + +.w-optimization { + display: contents; +} + +.w-webflow-badge, .w-webflow-badge * { + z-index: auto; + visibility: visible; + box-sizing: border-box; + float: none; + clear: none; + box-shadow: none; + opacity: 1; + 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; + -webkit-text-decoration: inherit; + text-decoration: inherit; + text-indent: 0; + text-transform: inherit; + text-shadow: none; + font-smoothing: auto; + vertical-align: baseline; + cursor: inherit; + white-space: inherit; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + background: none; + border: 0 #0000; + border-radius: 0; + width: auto; + min-width: 0; + max-width: none; + height: auto; + min-height: 0; + max-height: none; + margin: 0; + padding: 0; + list-style-type: disc; + transition: none; + display: block; + position: static; + inset: auto; + overflow: visible; + transform: none; +} + +.w-webflow-badge { + white-space: nowrap; + cursor: pointer; + box-shadow: 0 0 0 1px #0000001a, 0 1px 3px #0000001a; + visibility: visible !important; + z-index: 2147483647 !important; + color: #aaadb0 !important; + opacity: 1 !important; + background-color: #fff !important; + border-radius: 3px !important; + width: auto !important; + height: auto !important; + margin: 0 !important; + padding: 6px !important; + font-size: 12px !important; + line-height: 14px !important; + text-decoration: none !important; + display: inline-block !important; + position: fixed !important; + inset: auto 12px 12px auto !important; + overflow: visible !important; + transform: none !important; +} + +.w-webflow-badge > img { + visibility: visible !important; + opacity: 1 !important; + vertical-align: middle !important; + display: inline-block !important; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 10px; + font-weight: bold; +} + +h1 { + margin-top: 20px; + font-size: 38px; + line-height: 44px; +} + +h2 { + margin-top: 20px; + font-size: 32px; + line-height: 36px; +} + +h3 { + margin-top: 20px; + font-size: 24px; + line-height: 30px; +} + +h4 { + margin-top: 10px; + font-size: 18px; + line-height: 24px; +} + +h5 { + margin-top: 10px; + font-size: 14px; + line-height: 20px; +} + +h6 { + margin-top: 10px; + font-size: 12px; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 10px; +} + +blockquote { + border-left: 5px solid #e2e2e2; + margin: 0 0 10px; + padding: 10px 20px; + font-size: 18px; + line-height: 22px; +} + +figure { + margin: 0 0 10px; +} + +figcaption { + text-align: center; + margin-top: 5px; +} + +ul, ol { + margin-top: 0; + margin-bottom: 10px; + padding-left: 40px; +} + +.w-list-unstyled { + padding-left: 0; + list-style: none; +} + +.w-embed:before, .w-embed:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-embed:after { + clear: both; +} + +.w-video { + width: 100%; + padding: 0; + position: relative; +} + +.w-video iframe, .w-video object, .w-video embed { + border: none; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +button, [type="button"], [type="reset"] { + cursor: pointer; + -webkit-appearance: button; + border: 0; +} + +.w-form { + margin: 0 0 15px; +} + +.w-form-done { + text-align: center; + background-color: #ddd; + padding: 20px; + display: none; +} + +.w-form-fail { + background-color: #ffdede; + margin-top: 10px; + padding: 10px; + display: none; +} + +label { + margin-bottom: 5px; + font-weight: bold; + display: block; +} + +.w-input, .w-select { + color: #333; + vertical-align: middle; + background-color: #fff; + border: 1px solid #ccc; + width: 100%; + height: 38px; + margin-bottom: 10px; + padding: 8px 12px; + font-size: 14px; + line-height: 1.42857; + display: block; +} + +.w-input::placeholder, .w-select::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: #eee; +} + +textarea.w-input, textarea.w-select { + height: auto; +} + +.w-select { + background-color: #f3f3f3; +} + +.w-select[multiple] { + height: auto; +} + +.w-form-label { + cursor: pointer; + margin-bottom: 0; + font-weight: normal; + display: inline-block; +} + +.w-radio { + margin-bottom: 5px; + padding-left: 20px; + display: block; +} + +.w-radio:before, .w-radio:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-radio:after { + clear: both; +} + +.w-radio-input { + float: left; + margin: 3px 0 0 -20px; + line-height: normal; +} + +.w-file-upload { + margin-bottom: 10px; + display: block; +} + +.w-file-upload-input { + opacity: 0; + z-index: -100; + width: .1px; + height: .1px; + position: absolute; + overflow: hidden; +} + +.w-file-upload-default, .w-file-upload-uploading, .w-file-upload-success { + color: #333; + display: inline-block; +} + +.w-file-upload-error { + margin-top: 10px; + display: block; +} + +.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 { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: flex; +} + +.w-file-upload-file { + background-color: #fafafa; + border: 1px solid #ccc; + flex-grow: 1; + justify-content: space-between; + margin: 0; + padding: 8px 9px 8px 11px; + display: flex; +} + +.w-file-upload-file-name { + font-size: 14px; + font-weight: normal; + display: block; +} + +.w-file-remove-link { + cursor: pointer; + width: auto; + height: auto; + margin-top: 3px; + margin-left: 10px; + padding: 3px; + display: block; +} + +.w-icon-file-upload-remove { + margin: auto; + font-size: 10px; +} + +.w-file-upload-error-msg { + color: #ea384c; + padding: 2px 0; + display: inline-block; +} + +.w-file-upload-info { + padding: 0 12px; + line-height: 38px; + display: inline-block; +} + +.w-file-upload-label { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: inline-block; +} + +.w-icon-file-upload-icon, .w-icon-file-upload-uploading { + width: 20px; + margin-right: 8px; + display: inline-block; +} + +.w-icon-file-upload-uploading { + height: 20px; +} + +.w-container { + max-width: 940px; + margin-left: auto; + margin-right: auto; +} + +.w-container:before, .w-container:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-container:after { + clear: both; +} + +.w-container .w-row { + margin-left: -10px; + margin-right: -10px; +} + +.w-row:before, .w-row:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-row:after { + clear: both; +} + +.w-row .w-row { + margin-left: 0; + margin-right: 0; +} + +.w-col { + float: left; + width: 100%; + min-height: 1px; + padding-left: 10px; + padding-right: 10px; + position: relative; +} + +.w-col .w-col { + padding-left: 0; + padding-right: 0; +} + +.w-col-1 { + width: 8.33333%; +} + +.w-col-2 { + width: 16.6667%; +} + +.w-col-3 { + width: 25%; +} + +.w-col-4 { + width: 33.3333%; +} + +.w-col-5 { + width: 41.6667%; +} + +.w-col-6 { + width: 50%; +} + +.w-col-7 { + width: 58.3333%; +} + +.w-col-8 { + width: 66.6667%; +} + +.w-col-9 { + width: 75%; +} + +.w-col-10 { + width: 83.3333%; +} + +.w-col-11 { + width: 91.6667%; +} + +.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.33333%; + } + + .w-col-medium-2 { + width: 16.6667%; + } + + .w-col-medium-3 { + width: 25%; + } + + .w-col-medium-4 { + width: 33.3333%; + } + + .w-col-medium-5 { + width: 41.6667%; + } + + .w-col-medium-6 { + width: 50%; + } + + .w-col-medium-7 { + width: 58.3333%; + } + + .w-col-medium-8 { + width: 66.6667%; + } + + .w-col-medium-9 { + width: 75%; + } + + .w-col-medium-10 { + width: 83.3333%; + } + + .w-col-medium-11 { + width: 91.6667%; + } + + .w-col-medium-12 { + width: 100%; + } + + .w-col-stack { + width: 100%; + left: auto; + right: auto; + } +} + +@media screen and (max-width: 767px) { + .w-hidden-main, .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.33333%; + } + + .w-col-small-2 { + width: 16.6667%; + } + + .w-col-small-3 { + width: 25%; + } + + .w-col-small-4 { + width: 33.3333%; + } + + .w-col-small-5 { + width: 41.6667%; + } + + .w-col-small-6 { + width: 50%; + } + + .w-col-small-7 { + width: 58.3333%; + } + + .w-col-small-8 { + width: 66.6667%; + } + + .w-col-small-9 { + width: 75%; + } + + .w-col-small-10 { + width: 83.3333%; + } + + .w-col-small-11 { + width: 91.6667%; + } + + .w-col-small-12 { + width: 100%; + } +} + +@media screen and (max-width: 479px) { + .w-container { + max-width: none; + } + + .w-hidden-main, .w-hidden-medium, .w-hidden-small { + display: inherit !important; + } + + .w-hidden-tiny { + display: none !important; + } + + .w-col { + width: 100%; + } + + .w-col-tiny-1 { + width: 8.33333%; + } + + .w-col-tiny-2 { + width: 16.6667%; + } + + .w-col-tiny-3 { + width: 25%; + } + + .w-col-tiny-4 { + width: 33.3333%; + } + + .w-col-tiny-5 { + width: 41.6667%; + } + + .w-col-tiny-6 { + width: 50%; + } + + .w-col-tiny-7 { + width: 58.3333%; + } + + .w-col-tiny-8 { + width: 66.6667%; + } + + .w-col-tiny-9 { + width: 75%; + } + + .w-col-tiny-10 { + width: 83.3333%; + } + + .w-col-tiny-11 { + width: 91.6667%; + } + + .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 { + vertical-align: top; + text-align: center; + background: #fff; + border: 1px solid #758696; + border-radius: 3px; + width: 28px; + height: 20px; + display: inline-block; + position: relative; +} + +.w-widget-twitter-count-shim * { + pointer-events: none; + -webkit-user-select: none; + user-select: none; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-inner { + text-align: center; + color: #999; + font-family: serif; + font-size: 15px; + line-height: 12px; + position: relative; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-clear { + display: block; + position: relative; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 50%; + left: 0; +} + +.w-widget-twitter-count-shim:not(.w--vertical):before { + border-width: 4px; + border-color: #75869600 #5d6c7b #75869600 #75869600; + margin-top: -4px; + margin-left: -9px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:before { + border-width: 5px; + margin-top: -5px; + margin-left: -10px; +} + +.w-widget-twitter-count-shim:not(.w--vertical):after { + border-width: 4px; + border-color: #fff0 #fff #fff0 #fff0; + margin-top: -4px; + margin-left: -8px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:after { + border-width: 5px; + margin-top: -5px; + margin-left: -9px; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 100%; + left: 50%; +} + +.w-widget-twitter-count-shim.w--vertical:before { + border-width: 5px; + border-color: #5d6c7b #75869600 #75869600; + margin-left: -5px; +} + +.w-widget-twitter-count-shim.w--vertical:after { + border-width: 4px; + border-color: #fff #fff0 #fff0; + 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 { + color: #fff; + height: 500px; + position: relative; + overflow: hidden; +} + +.w-background-video > video { + object-fit: cover; + z-index: -100; + background-position: 50%; + background-size: cover; + width: 100%; + height: 100%; + margin: auto; + position: absolute; + inset: -100%; +} + +.w-background-video > video::-webkit-media-controls-start-playback-button { + -webkit-appearance: none; + display: none !important; +} + +.w-background-video--control { + background-color: #0000; + padding: 0; + position: absolute; + bottom: 1em; + right: 1em; +} + +.w-background-video--control > [hidden] { + display: none !important; +} + +.w-slider { + text-align: center; + clear: both; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + background: #ddd; + height: 300px; + position: relative; +} + +.w-slider-mask { + z-index: 1; + white-space: nowrap; + height: 100%; + display: block; + position: relative; + left: 0; + right: 0; + overflow: hidden; +} + +.w-slide { + vertical-align: top; + white-space: normal; + text-align: left; + width: 100%; + height: 100%; + display: inline-block; + position: relative; +} + +.w-slider-nav { + z-index: 2; + text-align: center; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + height: 40px; + margin: auto; + padding-top: 10px; + position: absolute; + inset: auto 0 0; +} + +.w-slider-nav.w-round > div { + border-radius: 100%; +} + +.w-slider-nav.w-num > div { + font-size: inherit; + line-height: inherit; + width: auto; + height: auto; + padding: .2em .5em; +} + +.w-slider-nav.w-shadow > div { + box-shadow: 0 0 3px #3336; +} + +.w-slider-nav-invert { + color: #fff; +} + +.w-slider-nav-invert > div { + background-color: #2226; +} + +.w-slider-nav-invert > div.w-active { + background-color: #222; +} + +.w-slider-dot { + cursor: pointer; + background-color: #fff6; + width: 1em; + height: 1em; + margin: 0 3px .5em; + transition: background-color .1s, color .1s; + display: inline-block; + position: relative; +} + +.w-slider-dot.w-active { + background-color: #fff; +} + +.w-slider-dot:focus { + outline: none; + box-shadow: 0 0 0 2px #fff; +} + +.w-slider-dot:focus.w-active { + box-shadow: none; +} + +.w-slider-arrow-left, .w-slider-arrow-right { + cursor: pointer; + color: #fff; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + width: 80px; + margin: auto; + font-size: 40px; + position: absolute; + inset: 0; + overflow: hidden; +} + +.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 { + width: 1em; + height: 1em; + margin: auto; + inset: 0; +} + +.w-slider-aria-label { + clip: rect(0 0 0 0); + border: 0; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + position: absolute; + overflow: hidden; +} + +.w-slider-force-show { + display: block !important; +} + +.w-dropdown { + text-align: left; + z-index: 900; + margin-left: auto; + margin-right: auto; + display: inline-block; + position: relative; +} + +.w-dropdown-btn, .w-dropdown-toggle, .w-dropdown-link { + vertical-align: top; + color: #222; + text-align: left; + white-space: nowrap; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + position: relative; +} + +.w-dropdown-toggle { + -webkit-user-select: none; + user-select: none; + cursor: pointer; + padding-right: 40px; + display: inline-block; +} + +.w-dropdown-toggle:focus { + outline: 0; +} + +.w-icon-dropdown-toggle { + width: 1em; + height: 1em; + margin: auto 20px auto auto; + position: absolute; + top: 0; + bottom: 0; + right: 0; +} + +.w-dropdown-list { + background: #ddd; + min-width: 100%; + display: none; + position: absolute; +} + +.w-dropdown-list.w--open { + display: block; +} + +.w-dropdown-link { + color: #222; + padding: 10px 20px; + display: block; +} + +.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; + } +} + +.w-lightbox-backdrop { + cursor: auto; + letter-spacing: normal; + text-indent: 0; + text-shadow: none; + text-transform: none; + visibility: visible; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + color: #fff; + text-align: center; + z-index: 2000; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -webkit-tap-highlight-color: transparent; + background: #000000e6; + outline: 0; + font-family: Helvetica Neue, Helvetica, Ubuntu, Segoe UI, Verdana, sans-serif; + font-size: 17px; + font-style: normal; + font-weight: 300; + line-height: 1.2; + list-style: disc; + position: fixed; + inset: 0; + -webkit-transform: translate(0); +} + +.w-lightbox-backdrop, .w-lightbox-container { + -webkit-overflow-scrolling: touch; + height: 100%; + overflow: auto; +} + +.w-lightbox-content { + height: 100vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-view { + opacity: 0; + width: 100vw; + height: 100vh; + position: absolute; +} + +.w-lightbox-view:before { + content: ""; + height: 100vh; +} + +.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 { + vertical-align: middle; + display: inline-block; +} + +.w-lightbox-figure { + margin: 0; + position: relative; +} + +.w-lightbox-group .w-lightbox-figure { + cursor: pointer; +} + +.w-lightbox-img { + width: auto; + max-width: none; + height: auto; +} + +.w-lightbox-image { + float: none; + max-width: 100vw; + max-height: 100vh; + display: block; +} + +.w-lightbox-group .w-lightbox-image { + max-height: 86vh; +} + +.w-lightbox-caption { + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + background: #0006; + padding: .5em 1em; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: hidden; +} + +.w-lightbox-embed { + width: 100%; + height: 100%; + position: absolute; + inset: 0; +} + +.w-lightbox-control { + cursor: pointer; + background-position: center; + background-repeat: no-repeat; + background-size: 24px; + width: 4em; + transition: all .3s; + position: absolute; + top: 0; +} + +.w-lightbox-left { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg=="); + display: none; + bottom: 0; + left: 0; +} + +.w-lightbox-right { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+"); + display: none; + bottom: 0; + right: 0; +} + +.w-lightbox-close { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4="); + background-size: 18px; + height: 2.6em; + right: 0; +} + +.w-lightbox-strip { + white-space: nowrap; + padding: 0 1vh; + line-height: 0; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: auto hidden; +} + +.w-lightbox-item { + box-sizing: content-box; + cursor: pointer; + width: 10vh; + padding: 2vh 1vh; + display: inline-block; + -webkit-transform: translate3d(0, 0, 0); +} + +.w-lightbox-active { + opacity: .3; +} + +.w-lightbox-thumbnail { + background: #222; + height: 10vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-thumbnail-image { + position: absolute; + top: 0; + left: 0; +} + +.w-lightbox-thumbnail .w-lightbox-tall { + width: 100%; + top: 50%; + transform: translate(0, -50%); +} + +.w-lightbox-thumbnail .w-lightbox-wide { + height: 100%; + left: 50%; + transform: translate(-50%); +} + +.w-lightbox-spinner { + box-sizing: border-box; + border: 5px solid #0006; + border-radius: 50%; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + animation: .8s linear infinite spin; + position: absolute; + top: 50%; + left: 50%; +} + +.w-lightbox-spinner:after { + content: ""; + border: 3px solid #0000; + border-bottom-color: #fff; + border-radius: 50%; + position: absolute; + inset: -4px; +} + +.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-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 { + opacity: .5; + display: block; + } + + .w-lightbox-close { + opacity: .8; + } + + .w-lightbox-control:hover { + opacity: 1; + } +} + +.w-lightbox-inactive, .w-lightbox-inactive:hover { + opacity: 0; +} + +.w-richtext:before, .w-richtext:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.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, .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: ""; + display: none; + position: absolute; + inset: 0; +} + +.w-richtext figure { + max-width: 60%; + position: relative; +} + +.w-richtext figure > div:before { + cursor: default !important; +} + +.w-richtext figure img { + width: 100%; +} + +.w-richtext figure figcaption.w-richtext-figcaption-placeholder { + opacity: .6; +} + +.w-richtext figure div { + color: #0000; + font-size: 0; +} + +.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 { + caption-side: bottom; + display: table-caption; +} + +.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 { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +.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 { + clear: both; + margin-left: auto; + margin-right: auto; +} + +.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 { + text-align: center; + clear: both; + width: 100%; + max-width: 100%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.w-richtext figure.w-richtext-align-fullwidth > div { + padding-bottom: inherit; + display: inline-block; +} + +.w-richtext figure.w-richtext-align-fullwidth > figcaption { + display: block; +} + +.w-richtext figure.w-richtext-align-floatleft { + float: left; + clear: none; + margin-right: 15px; +} + +.w-richtext figure.w-richtext-align-floatright { + float: right; + clear: none; + margin-left: 15px; +} + +.w-nav { + z-index: 1000; + background: #ddd; + position: relative; +} + +.w-nav:before, .w-nav:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-nav:after { + clear: both; +} + +.w-nav-brand { + float: left; + color: #333; + text-decoration: none; + position: relative; +} + +.w-nav-link { + vertical-align: top; + color: #222; + text-align: left; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-nav-link.w--current { + color: #0082f3; +} + +.w-nav-menu { + float: right; + position: relative; +} + +[data-nav-menu-open] { + text-align: center; + background: #c8c8c8; + min-width: 200px; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: visible; + display: block !important; +} + +.w--nav-link-open { + display: block; + position: relative; +} + +.w-nav-overlay { + width: 100%; + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: hidden; +} + +.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] { + z-index: 1; + top: 0; + right: auto; +} + +.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] { + z-index: 1; + top: 0; + left: auto; +} + +.w-nav-button { + float: right; + cursor: pointer; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + padding: 18px; + font-size: 24px; + display: none; + position: relative; +} + +.w-nav-button:focus { + outline: 0; +} + +.w-nav-button.w--open { + color: #fff; + background-color: #c8c8c8; +} + +.w-nav[data-collapse="all"] .w-nav-menu { + display: none; +} + +.w-nav[data-collapse="all"] .w-nav-button, .w--nav-dropdown-open, .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: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-tabs:after { + clear: both; +} + +.w-tab-menu { + position: relative; +} + +.w-tab-link { + vertical-align: top; + text-align: left; + cursor: pointer; + color: #222; + background-color: #ddd; + padding: 9px 30px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-tab-link.w--current { + background-color: #c8c8c8; +} + +.w-tab-link:focus { + outline: 0; +} + +.w-tab-content { + display: block; + position: relative; + overflow: hidden; +} + +.w-tab-pane { + display: none; + position: relative; +} + +.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(0); + } + + 100% { + transform: rotate(360deg); + } +} + +.w-dyn-empty { + background-color: #ddd; + padding: 10px; +} + +.w-dyn-hide, .w-dyn-bind-empty, .w-condition-invisible { + display: none !important; +} + +.wf-layout-layout { + display: grid; +} + +.w-code-component > * { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +:root { + --medium-aquamarine: #7ec4bd; + --white-smoke: whitesmoke; +} + +.w-embed-youtubevideo { + background-image: url("../../../d3e54v103j8qbb.cloudfront.net/static/youtube-placeholder.2b05e7d68d.svg"); + background-position: 50%; + background-size: cover; + width: 100%; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + position: relative; +} + +.w-embed-youtubevideo:empty { + min-height: 75px; + padding-bottom: 56.25%; +} + +body { + color: #333; + font-family: Vollkorn, serif; + font-size: 14px; + line-height: 20px; +} + +h1 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 32px; + font-weight: 700; + line-height: 38px; +} + +h2 { + text-align: center; + text-transform: uppercase; + margin: 10px 0; + font-family: Montserrat, sans-serif; + font-size: 23px; + font-weight: 400; + line-height: 36px; +} + +h3 { + text-transform: uppercase; + margin: 0 0 20px; + font-family: Montserrat, sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 20px; +} + +h4 { + margin: 10px 0; + font-size: 18px; + font-weight: 700; + line-height: 24px; +} + +h5 { + margin: 10px 0; + font-size: 14px; + font-weight: 700; + line-height: 20px; +} + +h6 { + margin: 10px 0; + font-size: 12px; + font-weight: 700; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 5px; + font-family: Vollkorn, serif; + font-size: 15px; + line-height: 22px; +} + +a { + text-decoration: underline; +} + +a:hover { + color: #111; +} + +a:active { + color: #000; +} + +a:visited { + color: #666; +} + +.button { + color: #fff; + text-align: center; + background-color: #13b7d8; + border: 1px #47474f; + border-radius: 6px; + padding: 12px 30px; + font-family: Roboto, sans-serif; + font-size: 18px; + font-style: normal; + text-decoration: none; + transition: background-color .3s; + display: inline-block; +} + +.button:hover { + background-color: #1296b1; +} + +.button.form { + color: #7ec4bd; + border-width: 1px 1px 2px; + border-color: #7ec4bd; + margin-top: 23px; + margin-bottom: 24px; + padding-left: 54px; + padding-right: 54px; +} + +.button.form:hover { + background-color: #7ec4bd57; +} + +.header { + color: #fff; + text-align: center; + background-color: #fffcba; + padding: 60px 20px; +} + +.header.project-page { + background-image: linear-gradient(#64d1c68c, #64d1c68c), url("../61cc329947770114fa07dcd2_lake.jpg"); + padding-top: 77px; + padding-bottom: 77px; +} + +.navbar { + background-color: #fff; + padding-top: 18px; + padding-bottom: 18px; +} + +.nav-link { + color: #404040; + text-transform: uppercase; + border-bottom: 2px solid #0000; + margin-top: 23px; + margin-left: 34px; + padding: 0; + font-family: Roboto, sans-serif; + font-size: 14px; + font-weight: 400; + transition: border-color .3s; +} + +.nav-link:hover { + border-bottom-color: #13b7d8; +} + +.nav-link.w--current { + font-family: Roboto, sans-serif; + font-size: 14px; +} + +.logo-title { + float: left; + text-transform: uppercase; + margin-top: 12px; + font-family: Roboto Condensed, sans-serif; + font-size: 22px; + font-weight: 400; +} + +.logo-img { + float: left; + margin-right: 18px; +} + +.main-heading { + color: #000; + text-align: left; + text-transform: none; + margin-top: 0; + margin-bottom: 0; + margin-left: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 36px; + font-weight: 400; + line-height: 48px; +} + +.divider { + background-color: #fff; + width: 80px; + height: 2px; + margin: 28px auto; + display: block; +} + +.divider.grey { + background-color: #00000017; + margin-bottom: 43px; +} + +.main-subtitle { + color: #ffffffcf; + font-family: Vollkorn, serif; + font-size: 18px; + font-style: italic; +} + +.about-section { + text-align: center; + background-color: #fffcba; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-text { + color: #47474f; + margin-bottom: 40px; + font-family: Roboto Mono, sans-serif; + font-size: 20px; + font-style: normal; + line-height: 30px; +} + +.x-icon { + margin-top: -26px; + margin-bottom: 34px; +} + +.section { + text-align: center; + padding-top: 69px; + padding-bottom: 69px; +} + +.section.grey { + background-color: #f5f5f5; +} + +.section.contact { + background-color: #9ac4cd; + background-image: linear-gradient(#9ac4cd, #9ac4cd); + padding-top: 40px; + padding-bottom: 60px; + font-family: Vollkorn, serif; +} + +.section.footer { + background-color: #393b3c; + padding-top: 40px; + padding-bottom: 40px; +} + +.grey-icon-wrapper { + background-color: #f5f5f5; + margin-bottom: 38px; + padding-top: 50px; + padding-bottom: 50px; +} + +.project-wrapper { + color: #333; + text-decoration: none; + transition: bottom .3s; + display: block; + position: relative; + bottom: 0; +} + +.project-wrapper:hover { + bottom: 8px; +} + +.team-image { + border-radius: 100%; + margin-bottom: 21px; +} + +.role { + margin-bottom: 16px; + font-family: Vollkorn, serif; + font-size: 17px; + font-style: italic; +} + +.social-link { + background-color: #f5f5f5; + border-radius: 100%; + width: 29px; + height: 29px; + margin: 3px; + padding-top: 5px; + padding-left: 1px; + transition: box-shadow .3s; + box-shadow: inset 0 0 0 1px #0000; +} + +.social-link:hover { + box-shadow: inset 0 0 0 2px #7ec4bd; +} + +.team-title { + margin-bottom: 7px; +} + +.testimonial-slider { + background-color: #0000; + height: auto; +} + +.quote-icon { + margin-bottom: 37px; +} + +.arrow { + color: #e3e3e3; + width: 40px; + font-size: 30px; + transition: color .3s; +} + +.arrow:hover { + color: #333; +} + +.testimonial-slide { + text-align: center; + width: 50%; + padding: 30px 34px 29px; +} + +.testimonial-slide.left-border { + border-left: 2px solid #0000000a; +} + +.mask { + width: 95%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.team-row { + margin-bottom: 20px; +} + +.testimonial { + margin-bottom: 22px; + font-size: 26px; + line-height: 33px; +} + +.from { + color: #ababab; + text-transform: uppercase; + margin-bottom: 0; + font-family: Montserrat, sans-serif; + font-size: 14px; + font-weight: 400; +} + +.icon-wrapper { + height: 95px; + margin-bottom: 10px; + padding-top: 13px; +} + +.icon-wrapper._2 { + padding-top: 20px; +} + +.footer-logo { + opacity: .4; + margin-bottom: 15px; +} + +.contact-text { + color: #212121; + font-family: Roboto, sans-serif; + font-size: 17px; +} + +.link { + color: #1c1c1c; +} + +.social-wrapper { + text-align: left; + margin-bottom: 11px; + margin-left: 33%; + text-decoration: none; + transition: opacity .3s; + display: block; +} + +.social-wrapper:hover { + opacity: .43; +} + +.footer-text { + color: #fff6; + font-family: Roboto, sans-serif; +} + +.social-link-text { + display: inline-block; +} + +.social-icon { + margin-top: -6px; + margin-right: 9px; +} + +.field { + color: #7ec4bd; + background-color: #fff3; + border: 0 solid #000; + height: 57px; + margin-bottom: 0; + padding-top: 17px; + padding-bottom: 17px; + font-size: 18px; + font-style: italic; + box-shadow: inset 3px 0 #0000; +} + +.field:focus { + box-shadow: inset 3px 0 #7ec4bd; +} + +.field.large { + height: 127px; +} + +.field.darker { + background-color: #ffffff2e; + transition: box-shadow .3s; +} + +.form-wrapper { + padding-left: 20%; + padding-right: 20%; +} + +.success-message { + color: #7ec4bd; + background-color: #0000; + border: 1px solid #7ec4bd; + border-bottom-width: 2px; + padding-top: 82px; + padding-bottom: 82px; +} + +.project-info { + background-color: #fff; + margin-bottom: 20px; + padding-top: 20px; + padding-bottom: 20px; +} + +.project-title { + margin-bottom: 4px; +} + +.grow-row { + margin-bottom: 42px; +} + +.screenshot { + margin-bottom: 43px; +} + +.face { + border-radius: 100%; + margin-bottom: 10px; +} + +.body { + background-color: #000; + font-family: Roboto, sans-serif; +} + +.container { + padding-top: 0; +} + +.image { + cursor: none; + object-fit: fill; + width: 100%; + max-width: 100%; + margin: auto; + display: block; + overflow: auto; +} + +.heading { + font-family: Roboto Mono, sans-serif; +} + +.container-2 { + font-family: Roboto, sans-serif; +} + +.heading-2, .heading-3, .heading-4 { + font-family: Roboto Mono, sans-serif; + font-weight: 600; +} + +.datapop-section { + text-align: center; + background-color: #e8f7fa; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-key-visual { + color: #47474f; + margin-bottom: 40px; + margin-left: auto; + margin-right: auto; + font-family: Roboto Mono, sans-serif; + font-size: 18px; + line-height: 25px; + display: block; +} + +.datapop-logo { + margin-bottom: 60px; +} + +.column, .column-2 { + padding-left: 0; + padding-right: 0; +} + +.body-2 { + background-color: #000; +} + +.image-2 { + -webkit-text-fill-color: inherit; + cursor: zoom-in; + object-position: 50% 50%; + background-clip: border-box; + border-radius: 0; +} + +.collection-item { + height: 100%; +} + +.item { + float: left; + clear: none; + cursor: none; + object-fit: fill; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + position: relative; + overflow: visible; +} + +.item:hover { + background-color: #fff; +} + +.collection-list { + padding: 30px 10px 10px; +} + +.identity { + object-fit: fill; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + font-family: Inconsolata, monospace; + font-size: 16px; + font-weight: 400; + text-decoration: none; + display: flex; + position: static; +} + +.headingblock { + z-index: 100; + color: #333; + background-color: #fff; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 100%; + margin-bottom: 0; + padding-bottom: 0; + padding-left: 20px; + padding-right: 20px; + font-family: Inconsolata, monospace; + display: flex; + position: fixed; + inset: 0% 0% auto; + overflow: auto; +} + +.collection-list-wrapper { + margin-top: 40px; + padding: 0 10px 10px; +} + +.collection-item-2 { + padding-left: 0; + padding-right: 0; +} + +.collection-list-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + cursor: none; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + display: block; + overflow: visible; +} + +.div-block { + cursor: none; + background-color: #fff; +} + +.image-3 { + width: 100%; +} + +.linkblock { + cursor: zoom-in; + display: block; +} + +.link-block-2 { + display: block; +} + +.text-span { + color: #888; + padding-left: 10px; + text-decoration: none; +} + +.p5canvas { + background-color: #000; + overflow: hidden; +} + +.bodyrosa { + clear: none; + object-fit: fill; + background-color: #ffade4; + padding: 0 40px 40px; + font-family: Inconsolata, monospace; + display: block; +} + +.text-block { + color: #242424; + text-align: center; + background-color: #fff; + margin-top: 40px; + padding: 20px; + font-size: 24px; + font-weight: 700; +} + +.image-4 { + z-index: auto; + object-fit: fill; + margin: 40px auto; + display: block; + position: static; + overflow: auto; +} + +.heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; +} + +.heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px 20px; + font-size: 26px; + line-height: 34px; +} + +.paragraph { + background-color: #fff; + margin-bottom: 0; + padding: 10px 20px; + font-family: Inconsolata, monospace; + font-size: 18px; + line-height: 26px; +} + +.body-3 { + background-color: #ffa1af; +} + +.body-4 { + cursor: none; +} + +.link-block-day { + color: #000; + cursor: none; + background-color: #fff; + border: 1px solid #000; + border-radius: 4px; + flex: 0 auto; + justify-content: center; + align-self: auto; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-day:hover { + color: #000; + background-color: #eee; +} + +.text-block-2 { + text-align: center; + flex: 1; + justify-content: space-between; + align-self: center; + width: 50%; + display: block; +} + +.body-5 { + height: 100%; + min-height: 100px; + margin-top: auto; + margin-bottom: auto; +} + +.columns-2 { + float: none; + clear: none; + flex-flow: column wrap; + place-content: space-around space-between; + align-items: center; + margin-top: auto; + margin-bottom: auto; + display: flex; +} + +.body-6 { + grid-column-gap: 20px; + grid-row-gap: 20px; + cursor: none; + object-fit: none; + flex-direction: row; + justify-content: space-around; + align-items: stretch; + height: 100vh; + padding: 20px; + display: flex; + overflow: auto; +} + +.link-block-night { + color: #fff; + cursor: none; + background-color: #000; + border-radius: 4px; + flex-wrap: nowrap; + flex: 0 auto; + justify-content: center; + align-self: center; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-night:hover { + background-color: #222; +} + +.image-5 { + color: #fff; + background-color: #0000; +} + +.icon-night { + color: #fff; + flex-direction: row; + align-items: stretch; +} + +.icon-day { + color: #000; + flex-direction: row; + align-items: stretch; +} + +.collection-item-3 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: flex-start; + width: 100%; + padding-left: 0; + padding-right: 0; + display: block; + position: absolute; +} + +.image-6 { + width: 100%; +} + +.body-7 { + cursor: none; + background-color: #000; + padding: 0; +} + +.collection-item-4 { + padding-top: 10px; + padding-bottom: 10px; +} + +.image-7 { + background-color: #000; +} + +.body-8 { + cursor: none; + background-color: #fff; +} + +.collection-list-wrapper-2 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-5 { + padding-top: 10px; + padding-bottom: 10px; +} + +.collection-list-wrapper-3 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-6 { + padding: 10px; +} + +.body-9 { + cursor: none; + background-color: #000; +} + +.image-8 { + width: 100%; + min-width: 100%; + margin: auto; + display: block; +} + +.link-block-3 { + display: block; +} + +.image-9 { + cursor: none; + width: 100%; +} + +.link-block-4 { + display: block; +} + +.image-10 { + cursor: zoom-in; +} + +.collection-list-wrapper-4 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; + display: block; +} + +.link-block-5 { + color: #333; + text-decoration: none; +} + +.link-block-5:active, .link-block-5:focus { + color: #000; +} + +.link-block-5:visited { + color: #333; +} + +.div-block-3 { + background-color: #fff; +} + +.paragraph-2 { + text-align: center; + letter-spacing: 2px; + flex-flow: row; + justify-content: space-around; + align-items: stretch; + margin-bottom: 0; + font-family: Roboto, sans-serif; + font-size: 72px; + font-weight: 400; + line-height: 72px; + display: block; +} + +.container-3 { + width: 4%; + max-width: 0; + margin-top: auto; + margin-bottom: auto; + display: block; +} + +.div-block-4 { + width: 50%; + margin: auto; + display: block; +} + +.section-2 { + grid-column-gap: 36px; + grid-row-gap: 36px; + color: #fff; + background-color: #fc0093; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + font-family: Inconsolata, monospace; + font-size: 36px; + line-height: 36px; + display: flex; +} + +.text-block-3 { + font-size: 72px; + line-height: 72px; +} + +.video { + aspect-ratio: 9 / 16; + margin-bottom: 4px; +} + +.collection-item-7 { + padding-bottom: 20px; + padding-left: 10px; +} + +.collection-list-3 { + padding-left: 10px; + padding-right: 10px; +} + +.link-2 { + color: #000; + font-family: Inconsolata, monospace; +} + +.collection-list-wrapper-5 { + padding-top: 44px; +} + +.bg { + box-sizing: border-box; + grid-column-gap: 11px; + grid-row-gap: 11px; + background-color: #000; + display: flex; +} + +.no1 { + clear: none; + grid-column-gap: 0px; + grid-row-gap: 0px; + aspect-ratio: 16 / 9; + outline-offset: 0px; + direction: ltr; + color: #fff; + text-align: center; + text-transform: none; + -webkit-text-fill-color: inherit; + vertical-align: super; + cursor: none; + background-color: #333; + background-clip: border-box; + border: 1px #000; + border-radius: 20px; + outline: 0 #fff; + flex-flow: row; + flex: 1; + order: 0; + justify-content: center; + align-self: auto; + align-items: center; + padding: 20px 30px; + font-family: Roboto Mono, sans-serif; + font-size: 16em; + text-decoration: none; + display: flex; + position: static; + inset: 0%; + overflow: visible; +} + +.no1:active { + background-color: #008d38; +} + +.no1-copy { + float: none; + clear: none; + color: #fff; + text-align: center; + vertical-align: super; + background-color: #3d3d3d; + border-radius: 20px; + justify-content: center; + align-items: center; + margin: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 15em; + display: flex; + position: fixed; + inset: 0%; + overflow: visible; +} + +.no1-copy:active { + background-color: #008d38; +} + +.numbers { + box-sizing: border-box; + grid-column-gap: 20px; + grid-row-gap: 20px; + flex-flow: row; + flex: 0 auto; + order: 0; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: center; + align-self: auto; + align-items: center; + margin: auto; + padding: 20px; + display: flex; + position: static; + overflow: visible; +} + +.text-span-2 { + font-weight: 700; +} + +.div-block-5 { + background-color: #000; + flex: 1; + justify-content: space-around; + align-items: center; + height: 100vh; + display: flex; +} + +.text-span-3 { + color: #fff; + text-align: left; + font-family: Lato, sans-serif; + font-size: 12em; + font-weight: 400; +} + +@media screen and (max-width: 991px) { + .nav-link { + margin: 0 auto; + padding-top: 20px; + padding-bottom: 20px; + } + + .nav-link:hover { + border-bottom-color: #0000; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .project-wrapper:hover { + transform: translate(0); + } + + .social-wrapper { + margin-left: 30%; + } + + .menu-button { + margin-top: 7px; + padding: 10px; + font-size: 32px; + } + + .menu-button.w--open { + color: #7ec4bd; + background-color: #0000; + } + + .nav-menu { + background-color: #f5f5f5; + } +} + +@media screen and (max-width: 767px) { + .header { + padding-top: 45px; + padding-bottom: 45px; + } + + .navbar { + padding-top: 10px; + padding-bottom: 10px; + } + + .nav-link { + padding-top: 15px; + padding-bottom: 15px; + padding-left: 10px; + } + + .logo-title { + margin-top: 6px; + } + + .logo-img { + width: 50px; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .about-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } + + .x-icon { + margin-bottom: 21px; + } + + .section { + padding-top: 30px; + padding-bottom: 30px; + } + + .grey-icon-wrapper { + margin-bottom: 16px; + padding: 34px 56px; + display: inline-block; + } + + .grey-icon-wrapper.push-top { + margin-top: 30px; + } + + .testimonial-slide { + width: 100%; + } + + .testimonial-slide.left-border { + border-left-width: 0; + } + + .icon-wrapper { + height: 85px; + } + + .icon-wrapper._2 { + margin-top: 37px; + } + + .social-wrapper { + text-align: center; + margin-left: 0%; + } + + .form-wrapper { + padding-left: 10%; + padding-right: 10%; + } + + .menu-button { + margin-top: 0; + } + + .member { + padding-bottom: 47px; + } + + .grow-row { + margin-bottom: 0; + } + + .screenshot { + width: 90%; + } + + .image { + margin-bottom: auto; + padding: 0; + } + + .datapop-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } +} + +@media screen and (max-width: 479px) { + .header { + padding-top: 40px; + padding-bottom: 40px; + } + + .brand-block { + padding-left: 12px; + } + + .main-heading { + float: right; + clear: none; + font-size: 28px; + line-height: 40px; + position: relative; + } + + .about-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .grey-icon-wrapper { + display: block; + } + + .form-wrapper { + padding-left: 5%; + padding-right: 5%; + } + + .image { + padding: 0; + } + + .datapop-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .datapop-logo { + margin-bottom: 40px; + } + + .column-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + } + + .bodyrosa { + margin-bottom: 0; + padding: 0 20px 20px; + } + + .text-block { + background-color: #fff; + margin-top: 20px; + line-height: 28px; + } + + .image-4 { + margin-top: 30px; + margin-bottom: 30px; + } + + .div-block-2 { + text-align: right; + background-color: #fff; + margin-top: 20px; + padding: 20px; + font-size: 16px; + } + + .heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; + } + + .heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + font-size: 26px; + line-height: 36px; + } + + .paragraph { + background-color: #fff; + padding: 10px 20px; + font-size: 20px; + line-height: 28px; + } + + .link-block-day { + border: 1px solid #000; + } + + .body-6 { + flex-direction: column; + padding: 20px; + } + + .collection-item-3 { + grid-column-gap: 0px; + grid-row-gap: 0px; + justify-content: space-between; + display: flex; + } + + .image-6 { + display: block; + position: static; + } + + .body-7 { + flex-direction: row; + justify-content: space-between; + align-items: stretch; + display: flex; + } + + .body-8 { + background-color: #000; + } + + .paragraph-2 { + font-size: 32px; + line-height: 32px; + } +} diff --git a/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js b/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js new file mode 100644 index 0000000..afca678 --- /dev/null +++ b/rosa/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js @@ -0,0 +1,12280 @@ + +/*! + * 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(module1) { + if (Webflow.env()) { + isFunction(module1.design) && $win.on("__wf_design", module1.design); + isFunction(module1.preview) && $win.on("__wf_preview", module1.preview); + } + isFunction(module1.destroy) && $win.on("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + addReady(module1); + } + } + function addReady(module1) { + if (domready) { + module1.ready(); + return; + } + if (_.contains(primary, module1.ready)) { + return; + } + primary.push(module1.ready); + } + function unbindModule(module1) { + isFunction(module1.design) && $win.off("__wf_design", module1.design); + isFunction(module1.preview) && $win.off("__wf_preview", module1.preview); + isFunction(module1.destroy) && $win.off("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + removeReady(module1); + } + } + function removeReady(module1) { + primary = _.filter(primary, function(readyFn) { + return readyFn !== module1.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-edit.js + var require_webflow_edit = __commonJS({ + "packages/shared/render/plugins/BaseSiteModules/webflow-edit.js"(exports, module) { + "use strict"; + var Webflow = require_webflow_lib(); + Webflow.define("edit", module.exports = function($, _, options) { + options = options || {}; + if (Webflow.env("test") || Webflow.env("frame")) { + if (!options.fixture && !inCypress()) { + return { + exit: 1 + }; + } + } + var api = {}; + var $win = $(window); + var $html = $(document.documentElement); + var location = document.location; + var hashchange = "hashchange"; + var loaded; + var loadEditor = options.load || load; + var hasLocalStorage = false; + try { + hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem("WebflowEditor"); + } catch (e) { + } + if (hasLocalStorage) { + loadEditor(); + } else if (location.search) { + if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) { + loadEditor(); + } + } else { + $win.on(hashchange, checkHash).triggerHandler(hashchange); + } + function checkHash() { + if (loaded) { + return; + } + if (/\?edit/.test(location.hash)) { + loadEditor(); + } + } + function load() { + loaded = true; + window.WebflowEditor = true; + $win.off(hashchange, checkHash); + checkThirdPartyCookieSupport(function(thirdPartyCookiesSupported) { + $.ajax({ + url: cleanSlashes("https://editor-api.webflow.com/api/editor/view"), + data: { + siteId: $html.attr("data-wf-site") + }, + xhrFields: { + withCredentials: true + }, + dataType: "json", + crossDomain: true, + success: success(thirdPartyCookiesSupported) + }); + }); + } + function success(thirdPartyCookiesSupported) { + return function(data) { + if (!data) { + console.error("Could not load editor data"); + return; + } + data.thirdPartyCookiesSupported = thirdPartyCookiesSupported; + getScript(prefix(data.scriptPath), function() { + window.WebflowEditor(data); + }); + }; + } + function getScript(url, done) { + $.ajax({ + type: "GET", + url, + dataType: "script", + cache: true + }).then(done, error); + } + function error(jqXHR, textStatus, errorThrown) { + console.error("Could not load editor script: " + textStatus); + throw errorThrown; + } + function prefix(url) { + return url.indexOf("//") >= 0 ? url : cleanSlashes("https://editor-api.webflow.com" + url); + } + function cleanSlashes(url) { + return url.replace(/([^:])\/\//g, "$1/"); + } + function checkThirdPartyCookieSupport(callback) { + var iframe = window.document.createElement("iframe"); + iframe.src = "https://webflow.com/site/third-party-cookie-check.html"; + iframe.style.display = "none"; + iframe.sandbox = "allow-scripts allow-same-origin"; + var handleMessage = function(event) { + if (event.data === "WF_third_party_cookies_unsupported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + } else if (event.data === "WF_third_party_cookies_supported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(true); + } + }; + iframe.onerror = function() { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + }; + window.addEventListener("message", handleMessage, false); + window.document.body.appendChild(iframe); + } + function cleanUpCookieCheckerIframe(iframe, listener) { + window.removeEventListener("message", listener, false); + iframe.remove(); + } + return api; + }); + function inCypress() { + try { + return window.top.__Cypress__; + } catch (e) { + return false; + } + } + } + }); + + // 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/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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var getPluginConfig2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + 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; + }; + var getPluginOrigin2 = (refState2) => { + return refState2 || { + value: 0 + }; + }; + var getPluginDestination2 = (actionItemConfig) => { + return { + value: actionItemConfig.value + }; + }; + var createPluginInstance3 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + instance.setSubframe(true); + return instance; + }; + var renderPlugin2 = (pluginInstance, refState2, actionItem) => { + if (!pluginInstance) { + return; + } + const percent = refState2[actionItem.actionTypeId].value / 100; + pluginInstance.goToFrame(pluginInstance.frames * percent); + }; + var clearPlugin2 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + }; + } + }); + + // 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + 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]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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; + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = (element, actionItem) => { + const pluginElementId = actionItem?.config?.target?.pluginElement; + return pluginElementId ? queryContainerElement(pluginElementId) : null; + }; + 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); + } + }; + var clearPlugin2 = () => { + return null; + }; + } + }); + + // 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 + }); + Object.defineProperty(exports, "normalizeColor", { + enumerable: true, + get: function() { + return 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 || hex.length === 4) { + red = parseInt(hex[0] + hex[0], 16); + green = parseInt(hex[1] + hex[1], 16); + blue = parseInt(hex[2] + hex[2], 16); + if (hex.length === 4) { + alpha = parseInt(hex[3] + hex[3], 16) / 255; + } + } else if (hex.length === 6 || hex.length === 8) { + red = parseInt(hex.substring(0, 2), 16); + green = parseInt(hex.substring(2, 4), 16); + blue = parseInt(hex.substring(4, 6), 16); + if (hex.length === 8) { + alpha = parseInt(hex.substring(6, 8), 16) / 255; + } + } + } 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var _normalizeColor = require_normalizeColor(); + var getPluginConfig2 = (actionItemConfig, key) => { + return actionItemConfig.value[key]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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); + } + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = () => { + return null; + }; + 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); + } + }; + var clearPlugin2 = (ref, actionItem) => { + const objectId = actionItem.config.target.objectId; + document.documentElement.style.removeProperty(objectId); + }; + } + }); + + // packages/systems/ix2/plugins/index.js + var require_plugins = __commonJS({ + "packages/systems/ix2/plugins/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "pluginMethodMap", { + enumerable: true, + get: function() { + return pluginMethodMap2; + } + }); + var _sharedconstants = (init_shared_constants(), __toCommonJS(shared_constants_exports)); + var _IX2Lottie = /* @__PURE__ */ _interop_require_wildcard(require_IX2Lottie()); + var _IX2Spline = /* @__PURE__ */ _interop_require_wildcard(require_IX2Spline()); + var _IX2Variable = /* @__PURE__ */ _interop_require_wildcard(require_IX2Variable()); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var pluginMethodMap2 = /* @__PURE__ */ new Map([ + [ + _sharedconstants.ActionTypeConsts.PLUGIN_LOTTIE, + { + ..._IX2Lottie + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_SPLINE, + { + ..._IX2Spline + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_VARIABLE, + { + ..._IX2Variable + } + ] + ]); + } + }); + + // 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 && actionItemGroups.some(({ actionItems }) => { + return actionItems.some(takeItemUntilMatch); + }); + continuousParameterGroups && 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_shared = __commonJS({ + "packages/systems/ix2/shared/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + // IX2Actions, + IX2BrowserSupport: function() { + return _IX2BrowserSupport; + }, + IX2EasingUtils: function() { + return _IX2EasingUtils; + }, + IX2Easings: function() { + return _IX2Easings; + }, + IX2ElementsReducer: function() { + return _IX2ElementsReducer; + }, + IX2VanillaPlugins: function() { + return _IX2VanillaPlugins; + }, + IX2VanillaUtils: function() { + return _IX2VanillaUtils; + } + }); + var _IX2BrowserSupport = /* @__PURE__ */ _interop_require_wildcard((init_IX2BrowserSupport(), __toCommonJS(IX2BrowserSupport_exports))); + var _IX2Easings = /* @__PURE__ */ _interop_require_wildcard((init_IX2Easings(), __toCommonJS(IX2Easings_exports))); + var _IX2EasingUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2EasingUtils(), __toCommonJS(IX2EasingUtils_exports))); + var _IX2ElementsReducer = /* @__PURE__ */ _interop_require_wildcard((init_IX2ElementsReducer(), __toCommonJS(IX2ElementsReducer_exports))); + var _IX2VanillaPlugins = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaPlugins(), __toCommonJS(IX2VanillaPlugins_exports))); + var _IX2VanillaUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaUtils(), __toCommonJS(IX2VanillaUtils_exports))); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + } + }); + + // 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_shared()); + 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 ( + // @ts-expect-error - Further investigation is needed as looks like IX2_RAW_DATA_IMPORTED is never triggered with ixParameters + 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_shared()); + init_IX2InstancesReducer(); + init_IX2ParametersReducer(); + ({ ixElements: ixElements2 } = import_shared2.IX2ElementsReducer); + IX2Reducer_default = (0, import_redux.combineReducers)({ + 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_shared()); + ({ + 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_shared()); + 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_shared()); + ({ + 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, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.preview, + onChange: handlePreviewRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.playback, + onChange: handlePlaybackRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.stop, + onChange: handleStopRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.clear, + onChange: handleClearRequest + }); + } + function observeMediaQueryChange(store) { + observeStore2({ + store, + 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, + 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({ + // @ts-expect-error - TS7031 - Binding element 'logic' implicitly has an 'any' type. + 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 + // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.useEventTarget === true && // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.objectId == null ? ( + // @ts-expect-error - TS18048 - 'event' is possibly 'undefined'. + { 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 && events[eventId] ? 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_shared()); + 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"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + actions: function() { + return _IX2EngineActions; + }, + destroy: function() { + return destroy; + }, + init: function() { + return init; + }, + setEnv: function() { + return setEnv; + }, + store: function() { + return store; + } + }); + var _redux = require_lib2(); + var _IX2Reducer = /* @__PURE__ */ _interop_require_default((init_IX2Reducer(), __toCommonJS(IX2Reducer_exports))); + var _IX2VanillaEngine = (init_IX2VanillaEngine(), __toCommonJS(IX2VanillaEngine_exports)); + var _IX2EngineActions = /* @__PURE__ */ _interop_require_wildcard((init_IX2EngineActions(), __toCommonJS(IX2EngineActions_exports))); + function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var 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/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_edit(); + 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_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 + *) +*/ diff --git "a/rosa/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" "b/rosa/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" new file mode 100644 index 0000000..b061403 --- /dev/null +++ "b/rosa/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 + + + youtube-placeholder + Created with Sketch. + + + + + + \ No newline at end of file diff --git "a/rosa/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" "b/rosa/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" new file mode 100644 index 0000000..8a4efe0 --- /dev/null +++ "b/rosa/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" @@ -0,0 +1,242 @@ +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} diff --git a/rosa/fonts.googleapis.com/robots.ssl.txt b/rosa/fonts.googleapis.com/robots.ssl.txt new file mode 100644 index 0000000..9e60f97 --- /dev/null +++ b/rosa/fonts.googleapis.com/robots.ssl.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/rosa/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 b/rosa/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 new file mode 100644 index 0000000..d560d34 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 new file mode 100644 index 0000000..5e2b24a Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..b3ec1b3 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..d315229 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..366dc80 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..95c63e0 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..03039fe Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 new file mode 100644 index 0000000..b49074b Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 new file mode 100644 index 0000000..d25560c Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 new file mode 100644 index 0000000..fad313b Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 b/rosa/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 new file mode 100644 index 0000000..56e968d Binary files /dev/null and b/rosa/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 b/rosa/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 new file mode 100644 index 0000000..0773927 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 b/rosa/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 new file mode 100644 index 0000000..e9bd2e8 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 b/rosa/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 new file mode 100644 index 0000000..74bc295 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 b/rosa/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 new file mode 100644 index 0000000..daa4d3e Binary files /dev/null and b/rosa/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff b/rosa/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff new file mode 100644 index 0000000..9394bc1 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff differ diff --git a/rosa/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 b/rosa/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 new file mode 100644 index 0000000..741341a Binary files /dev/null and b/rosa/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff b/rosa/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff new file mode 100644 index 0000000..98c7eab Binary files /dev/null and b/rosa/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff differ diff --git a/rosa/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 b/rosa/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 new file mode 100644 index 0000000..9ac07eb Binary files /dev/null and b/rosa/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 differ diff --git a/rosa/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 b/rosa/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 new file mode 100644 index 0000000..8d7b415 Binary files /dev/null and b/rosa/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 differ diff --git a/rosa/nitrada.s3-eu-west-2.amazonaws.com/rosa/10.gif b/rosa/nitrada.s3-eu-west-2.amazonaws.com/rosa/10.gif new file mode 100644 index 0000000..58c8dd9 Binary files /dev/null and b/rosa/nitrada.s3-eu-west-2.amazonaws.com/rosa/10.gif differ diff --git a/rosa/nitrada.s3-eu-west-2.amazonaws.com/rosa/happy.gif b/rosa/nitrada.s3-eu-west-2.amazonaws.com/rosa/happy.gif new file mode 100644 index 0000000..4b82dfd Binary files /dev/null and b/rosa/nitrada.s3-eu-west-2.amazonaws.com/rosa/happy.gif differ diff --git a/rosa/www.aeara.com/_downloads.html b/rosa/www.aeara.com/_downloads.html new file mode 100644 index 0000000..a54e4cf --- /dev/null +++ b/rosa/www.aeara.com/_downloads.html @@ -0,0 +1,15 @@ + + + + + Downloads + + +

Downloads

+ + + diff --git a/rosa/www.aeara.com/rosa/10.html b/rosa/www.aeara.com/rosa/10.html new file mode 100644 index 0000000..05927a2 --- /dev/null +++ b/rosa/www.aeara.com/rosa/10.html @@ -0,0 +1 @@ +Rosa – 10

19.01.2023

Liebe Rosa,

ich bin's wieder, dein digitaler Patenonkel aus Hamburg! Ich wünsche dir alles Liebe und Gute zu deinem 10. Geburtstag! Happy Rosa Day! 💕 Ihr feiert sicher eine tolle Party mit deinen Freundinnen und Freunden, oder?

Ich bin zwar heute auch in Berlin, aber ich habe leider so viele Termine… deswegen möchte ich lieber an einem der kommenden Wochenenden zu euch kommen und dann einen ganzen Tag in Ruhe mit dir und deinen Eltern verbringen! Wir können ja noch mal sprechen, was wir dann unternehmen – auf jeden Fall entscheidest du das, die Erwachsenen haben da eher nix zu melden (naja, vielleicht ein bisschen was)…

Ich drücke dich und deine Eltern, die sicher ganz stolz sind schon so eine große Tochter zu haben, aus wenigen Kilometern Luftlinie und wünsche dir einen tollen Geburtstag – oder wie dein Papa zu sagen pflegt: eine tolle Geburtstagswoche!

Bis ganz bald,
dein Christophe
💕

\ No newline at end of file diff --git a/rosa/www.aeara.com/rosa/rosa-weihnachten-2023.html b/rosa/www.aeara.com/rosa/rosa-weihnachten-2023.html new file mode 100644 index 0000000..6fea414 --- /dev/null +++ b/rosa/www.aeara.com/rosa/rosa-weihnachten-2023.html @@ -0,0 +1 @@ +Rosa – Weihnachten 2023

24.12.2023

Liebe Rosa,

heute fasse ich mich einigermaßen kurz – wir sehen uns ja ganz bald (wenn auch erst nächstes Jahr!) und darauf freuen wir uns hier alle sehr!

Wir sind dieses Jahr in Hamburg geblieben über Weihnachten. Sina's Mutter und Schwester sind hier, ganz kleiner Kreis, ganz entspannt. Es gibt Gans, ganz und gar ohne Gans zubereitet! Meine einzige Verantwortung ist jedoch der Cremant, Rotwein und – der Rosenkohl, darauf habe ich mich irgendwie spezialisiert in den letzten Wochen. Magst du Rosenkohl? Ich habe ihn früher ehrlich gesagt gehasst und plötzlich – bam – fand ich ihn lecker!

Ich wünsche euch ein schönes Weihnachtsfest in Gölsenbach. Liebe Grüße an deine Eltern, Cousin, Cousine, Tante, Onkel!

Bis in ein paar Tagen,
dein Christophe
💕

\ No newline at end of file diff --git a/rosa/www.aeara.com/rosa/weihnachten-2022.html b/rosa/www.aeara.com/rosa/weihnachten-2022.html new file mode 100644 index 0000000..e7f0247 --- /dev/null +++ b/rosa/www.aeara.com/rosa/weihnachten-2022.html @@ -0,0 +1 @@ +Rosa – Weihnachten 2022

24.12.2022

Liebe Rosa,

ich wünsche dir und deinen Eltern, sowie allen die sonst noch bei euch sind, wunderschöne Weihnachten! Ich hoffe ihr habt es schön unterm Baum. Leider haben wir uns neulich ja nur gaaaanz kurz und im Halbschlaf gesehen – kommt ihr uns bald mal in Hamburg besuchen? Wir würden uns sehr freuen!

Ich hoffe, du kannst etwas anfangen mit den Geschenken. Das eine kannst du ja zusammen mit deinem Papa zusammenbauen und dann könnt ihr damit gemeinsam deine Mama nerven! Hihihi.

Das andere behandelt ein Thema, das mir persönlich sehr nah und wichtig ist. Und das für die meisten Menschen immer relevanter werden wird in Zukunft. Daher halte ich es für sinnvoll, aber vor allem spannend und interessant, sich offen und neugierig, aber immer auch kritisch hinterfragend damit auseinander zu setzen.

Ich wünsche euch allen eine rauschende Silvestersause und einen guten Rutsch ins neue Jahr! Viel Glück und Freude, aber vor allem ganz viel Gesundheit, viel Spaß und Erfolg in der Schule (es ist übrigens, davon bin ich ganz fest überzeugt, wissenschaftlich erwiesen, dass Mathe doof ist – aber leider ist Mathe auch überall und daher nicht ganz unwichtig).

Bis bald,
dein Christophe
💕

\ No newline at end of file diff --git a/x/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js b/x/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js new file mode 100644 index 0000000..3e95a6c --- /dev/null +++ b/x/ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js @@ -0,0 +1,33 @@ +/* + * Copyright 2016 Small Batch, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +/* Web Font Loader v1.6.26 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,d){setTimeout(d,b.f)});Promise.race([e,d]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a= +P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)}; +function ma(a,b,c){for(var d in S)if(S.hasOwnProperty(d)&&b===a.f[S[d]]&&c===a.f[S[d]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=U()&&ma(a,b,c));d?q()-a.A>=a.w?U()&&ma(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)}; +W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,d,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)}; +function ra(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=d||null||{};if(0===c.length&&f)M(b.a);else{b.f+=c.length;f&&(b.j=f);var h,m=[];for(h=0;h img { + visibility: visible !important; + opacity: 1 !important; + vertical-align: middle !important; + display: inline-block !important; +} + +h1, h2, h3, h4, h5, h6 { + margin-bottom: 10px; + font-weight: bold; +} + +h1 { + margin-top: 20px; + font-size: 38px; + line-height: 44px; +} + +h2 { + margin-top: 20px; + font-size: 32px; + line-height: 36px; +} + +h3 { + margin-top: 20px; + font-size: 24px; + line-height: 30px; +} + +h4 { + margin-top: 10px; + font-size: 18px; + line-height: 24px; +} + +h5 { + margin-top: 10px; + font-size: 14px; + line-height: 20px; +} + +h6 { + margin-top: 10px; + font-size: 12px; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 10px; +} + +blockquote { + border-left: 5px solid #e2e2e2; + margin: 0 0 10px; + padding: 10px 20px; + font-size: 18px; + line-height: 22px; +} + +figure { + margin: 0 0 10px; +} + +figcaption { + text-align: center; + margin-top: 5px; +} + +ul, ol { + margin-top: 0; + margin-bottom: 10px; + padding-left: 40px; +} + +.w-list-unstyled { + padding-left: 0; + list-style: none; +} + +.w-embed:before, .w-embed:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-embed:after { + clear: both; +} + +.w-video { + width: 100%; + padding: 0; + position: relative; +} + +.w-video iframe, .w-video object, .w-video embed { + border: none; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +button, [type="button"], [type="reset"] { + cursor: pointer; + -webkit-appearance: button; + border: 0; +} + +.w-form { + margin: 0 0 15px; +} + +.w-form-done { + text-align: center; + background-color: #ddd; + padding: 20px; + display: none; +} + +.w-form-fail { + background-color: #ffdede; + margin-top: 10px; + padding: 10px; + display: none; +} + +label { + margin-bottom: 5px; + font-weight: bold; + display: block; +} + +.w-input, .w-select { + color: #333; + vertical-align: middle; + background-color: #fff; + border: 1px solid #ccc; + width: 100%; + height: 38px; + margin-bottom: 10px; + padding: 8px 12px; + font-size: 14px; + line-height: 1.42857; + display: block; +} + +.w-input::placeholder, .w-select::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: #eee; +} + +textarea.w-input, textarea.w-select { + height: auto; +} + +.w-select { + background-color: #f3f3f3; +} + +.w-select[multiple] { + height: auto; +} + +.w-form-label { + cursor: pointer; + margin-bottom: 0; + font-weight: normal; + display: inline-block; +} + +.w-radio { + margin-bottom: 5px; + padding-left: 20px; + display: block; +} + +.w-radio:before, .w-radio:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-radio:after { + clear: both; +} + +.w-radio-input { + float: left; + margin: 3px 0 0 -20px; + line-height: normal; +} + +.w-file-upload { + margin-bottom: 10px; + display: block; +} + +.w-file-upload-input { + opacity: 0; + z-index: -100; + width: .1px; + height: .1px; + position: absolute; + overflow: hidden; +} + +.w-file-upload-default, .w-file-upload-uploading, .w-file-upload-success { + color: #333; + display: inline-block; +} + +.w-file-upload-error { + margin-top: 10px; + display: block; +} + +.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 { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: flex; +} + +.w-file-upload-file { + background-color: #fafafa; + border: 1px solid #ccc; + flex-grow: 1; + justify-content: space-between; + margin: 0; + padding: 8px 9px 8px 11px; + display: flex; +} + +.w-file-upload-file-name { + font-size: 14px; + font-weight: normal; + display: block; +} + +.w-file-remove-link { + cursor: pointer; + width: auto; + height: auto; + margin-top: 3px; + margin-left: 10px; + padding: 3px; + display: block; +} + +.w-icon-file-upload-remove { + margin: auto; + font-size: 10px; +} + +.w-file-upload-error-msg { + color: #ea384c; + padding: 2px 0; + display: inline-block; +} + +.w-file-upload-info { + padding: 0 12px; + line-height: 38px; + display: inline-block; +} + +.w-file-upload-label { + cursor: pointer; + background-color: #fafafa; + border: 1px solid #ccc; + margin: 0; + padding: 8px 12px; + font-size: 14px; + font-weight: normal; + display: inline-block; +} + +.w-icon-file-upload-icon, .w-icon-file-upload-uploading { + width: 20px; + margin-right: 8px; + display: inline-block; +} + +.w-icon-file-upload-uploading { + height: 20px; +} + +.w-container { + max-width: 940px; + margin-left: auto; + margin-right: auto; +} + +.w-container:before, .w-container:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-container:after { + clear: both; +} + +.w-container .w-row { + margin-left: -10px; + margin-right: -10px; +} + +.w-row:before, .w-row:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-row:after { + clear: both; +} + +.w-row .w-row { + margin-left: 0; + margin-right: 0; +} + +.w-col { + float: left; + width: 100%; + min-height: 1px; + padding-left: 10px; + padding-right: 10px; + position: relative; +} + +.w-col .w-col { + padding-left: 0; + padding-right: 0; +} + +.w-col-1 { + width: 8.33333%; +} + +.w-col-2 { + width: 16.6667%; +} + +.w-col-3 { + width: 25%; +} + +.w-col-4 { + width: 33.3333%; +} + +.w-col-5 { + width: 41.6667%; +} + +.w-col-6 { + width: 50%; +} + +.w-col-7 { + width: 58.3333%; +} + +.w-col-8 { + width: 66.6667%; +} + +.w-col-9 { + width: 75%; +} + +.w-col-10 { + width: 83.3333%; +} + +.w-col-11 { + width: 91.6667%; +} + +.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.33333%; + } + + .w-col-medium-2 { + width: 16.6667%; + } + + .w-col-medium-3 { + width: 25%; + } + + .w-col-medium-4 { + width: 33.3333%; + } + + .w-col-medium-5 { + width: 41.6667%; + } + + .w-col-medium-6 { + width: 50%; + } + + .w-col-medium-7 { + width: 58.3333%; + } + + .w-col-medium-8 { + width: 66.6667%; + } + + .w-col-medium-9 { + width: 75%; + } + + .w-col-medium-10 { + width: 83.3333%; + } + + .w-col-medium-11 { + width: 91.6667%; + } + + .w-col-medium-12 { + width: 100%; + } + + .w-col-stack { + width: 100%; + left: auto; + right: auto; + } +} + +@media screen and (max-width: 767px) { + .w-hidden-main, .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.33333%; + } + + .w-col-small-2 { + width: 16.6667%; + } + + .w-col-small-3 { + width: 25%; + } + + .w-col-small-4 { + width: 33.3333%; + } + + .w-col-small-5 { + width: 41.6667%; + } + + .w-col-small-6 { + width: 50%; + } + + .w-col-small-7 { + width: 58.3333%; + } + + .w-col-small-8 { + width: 66.6667%; + } + + .w-col-small-9 { + width: 75%; + } + + .w-col-small-10 { + width: 83.3333%; + } + + .w-col-small-11 { + width: 91.6667%; + } + + .w-col-small-12 { + width: 100%; + } +} + +@media screen and (max-width: 479px) { + .w-container { + max-width: none; + } + + .w-hidden-main, .w-hidden-medium, .w-hidden-small { + display: inherit !important; + } + + .w-hidden-tiny { + display: none !important; + } + + .w-col { + width: 100%; + } + + .w-col-tiny-1 { + width: 8.33333%; + } + + .w-col-tiny-2 { + width: 16.6667%; + } + + .w-col-tiny-3 { + width: 25%; + } + + .w-col-tiny-4 { + width: 33.3333%; + } + + .w-col-tiny-5 { + width: 41.6667%; + } + + .w-col-tiny-6 { + width: 50%; + } + + .w-col-tiny-7 { + width: 58.3333%; + } + + .w-col-tiny-8 { + width: 66.6667%; + } + + .w-col-tiny-9 { + width: 75%; + } + + .w-col-tiny-10 { + width: 83.3333%; + } + + .w-col-tiny-11 { + width: 91.6667%; + } + + .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 { + vertical-align: top; + text-align: center; + background: #fff; + border: 1px solid #758696; + border-radius: 3px; + width: 28px; + height: 20px; + display: inline-block; + position: relative; +} + +.w-widget-twitter-count-shim * { + pointer-events: none; + -webkit-user-select: none; + user-select: none; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-inner { + text-align: center; + color: #999; + font-family: serif; + font-size: 15px; + line-height: 12px; + position: relative; +} + +.w-widget-twitter-count-shim .w-widget-twitter-count-clear { + display: block; + position: relative; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 50%; + left: 0; +} + +.w-widget-twitter-count-shim:not(.w--vertical):before { + border-width: 4px; + border-color: #75869600 #5d6c7b #75869600 #75869600; + margin-top: -4px; + margin-left: -9px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:before { + border-width: 5px; + margin-top: -5px; + margin-left: -10px; +} + +.w-widget-twitter-count-shim:not(.w--vertical):after { + border-width: 4px; + border-color: #fff0 #fff #fff0 #fff0; + margin-top: -4px; + margin-left: -8px; +} + +.w-widget-twitter-count-shim:not(.w--vertical).w--large:after { + border-width: 5px; + margin-top: -5px; + margin-left: -9px; +} + +.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 { + content: " "; + pointer-events: none; + border: solid #0000; + width: 0; + height: 0; + position: absolute; + top: 100%; + left: 50%; +} + +.w-widget-twitter-count-shim.w--vertical:before { + border-width: 5px; + border-color: #5d6c7b #75869600 #75869600; + margin-left: -5px; +} + +.w-widget-twitter-count-shim.w--vertical:after { + border-width: 4px; + border-color: #fff #fff0 #fff0; + 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 { + color: #fff; + height: 500px; + position: relative; + overflow: hidden; +} + +.w-background-video > video { + object-fit: cover; + z-index: -100; + background-position: 50%; + background-size: cover; + width: 100%; + height: 100%; + margin: auto; + position: absolute; + inset: -100%; +} + +.w-background-video > video::-webkit-media-controls-start-playback-button { + -webkit-appearance: none; + display: none !important; +} + +.w-background-video--control { + background-color: #0000; + padding: 0; + position: absolute; + bottom: 1em; + right: 1em; +} + +.w-background-video--control > [hidden] { + display: none !important; +} + +.w-slider { + text-align: center; + clear: both; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + background: #ddd; + height: 300px; + position: relative; +} + +.w-slider-mask { + z-index: 1; + white-space: nowrap; + height: 100%; + display: block; + position: relative; + left: 0; + right: 0; + overflow: hidden; +} + +.w-slide { + vertical-align: top; + white-space: normal; + text-align: left; + width: 100%; + height: 100%; + display: inline-block; + position: relative; +} + +.w-slider-nav { + z-index: 2; + text-align: center; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + height: 40px; + margin: auto; + padding-top: 10px; + position: absolute; + inset: auto 0 0; +} + +.w-slider-nav.w-round > div { + border-radius: 100%; +} + +.w-slider-nav.w-num > div { + font-size: inherit; + line-height: inherit; + width: auto; + height: auto; + padding: .2em .5em; +} + +.w-slider-nav.w-shadow > div { + box-shadow: 0 0 3px #3336; +} + +.w-slider-nav-invert { + color: #fff; +} + +.w-slider-nav-invert > div { + background-color: #2226; +} + +.w-slider-nav-invert > div.w-active { + background-color: #222; +} + +.w-slider-dot { + cursor: pointer; + background-color: #fff6; + width: 1em; + height: 1em; + margin: 0 3px .5em; + transition: background-color .1s, color .1s; + display: inline-block; + position: relative; +} + +.w-slider-dot.w-active { + background-color: #fff; +} + +.w-slider-dot:focus { + outline: none; + box-shadow: 0 0 0 2px #fff; +} + +.w-slider-dot:focus.w-active { + box-shadow: none; +} + +.w-slider-arrow-left, .w-slider-arrow-right { + cursor: pointer; + color: #fff; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + width: 80px; + margin: auto; + font-size: 40px; + position: absolute; + inset: 0; + overflow: hidden; +} + +.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 { + width: 1em; + height: 1em; + margin: auto; + inset: 0; +} + +.w-slider-aria-label { + clip: rect(0 0 0 0); + border: 0; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + position: absolute; + overflow: hidden; +} + +.w-slider-force-show { + display: block !important; +} + +.w-dropdown { + text-align: left; + z-index: 900; + margin-left: auto; + margin-right: auto; + display: inline-block; + position: relative; +} + +.w-dropdown-btn, .w-dropdown-toggle, .w-dropdown-link { + vertical-align: top; + color: #222; + text-align: left; + white-space: nowrap; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + position: relative; +} + +.w-dropdown-toggle { + -webkit-user-select: none; + user-select: none; + cursor: pointer; + padding-right: 40px; + display: inline-block; +} + +.w-dropdown-toggle:focus { + outline: 0; +} + +.w-icon-dropdown-toggle { + width: 1em; + height: 1em; + margin: auto 20px auto auto; + position: absolute; + top: 0; + bottom: 0; + right: 0; +} + +.w-dropdown-list { + background: #ddd; + min-width: 100%; + display: none; + position: absolute; +} + +.w-dropdown-list.w--open { + display: block; +} + +.w-dropdown-link { + color: #222; + padding: 10px 20px; + display: block; +} + +.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; + } +} + +.w-lightbox-backdrop { + cursor: auto; + letter-spacing: normal; + text-indent: 0; + text-shadow: none; + text-transform: none; + visibility: visible; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + color: #fff; + text-align: center; + z-index: 2000; + opacity: 0; + -webkit-user-select: none; + -moz-user-select: none; + -webkit-tap-highlight-color: transparent; + background: #000000e6; + outline: 0; + font-family: Helvetica Neue, Helvetica, Ubuntu, Segoe UI, Verdana, sans-serif; + font-size: 17px; + font-style: normal; + font-weight: 300; + line-height: 1.2; + list-style: disc; + position: fixed; + inset: 0; + -webkit-transform: translate(0); +} + +.w-lightbox-backdrop, .w-lightbox-container { + -webkit-overflow-scrolling: touch; + height: 100%; + overflow: auto; +} + +.w-lightbox-content { + height: 100vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-view { + opacity: 0; + width: 100vw; + height: 100vh; + position: absolute; +} + +.w-lightbox-view:before { + content: ""; + height: 100vh; +} + +.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 { + vertical-align: middle; + display: inline-block; +} + +.w-lightbox-figure { + margin: 0; + position: relative; +} + +.w-lightbox-group .w-lightbox-figure { + cursor: pointer; +} + +.w-lightbox-img { + width: auto; + max-width: none; + height: auto; +} + +.w-lightbox-image { + float: none; + max-width: 100vw; + max-height: 100vh; + display: block; +} + +.w-lightbox-group .w-lightbox-image { + max-height: 86vh; +} + +.w-lightbox-caption { + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; + background: #0006; + padding: .5em 1em; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: hidden; +} + +.w-lightbox-embed { + width: 100%; + height: 100%; + position: absolute; + inset: 0; +} + +.w-lightbox-control { + cursor: pointer; + background-position: center; + background-repeat: no-repeat; + background-size: 24px; + width: 4em; + transition: all .3s; + position: absolute; + top: 0; +} + +.w-lightbox-left { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0yMCAwIDI0IDQwIiB3aWR0aD0iMjQiIGhlaWdodD0iNDAiPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1KSI+PHBhdGggZD0ibTAgMGg1djIzaDIzdjVoLTI4eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDN2MjNoMjN2M2gtMjZ6IiBmaWxsPSIjZmZmIi8+PC9nPjwvc3ZnPg=="); + display: none; + bottom: 0; + left: 0; +} + +.w-lightbox-right { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMjQgNDAiIHdpZHRoPSIyNCIgaGVpZ2h0PSI0MCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMC0waDI4djI4aC01di0yM2gtMjN6IiBvcGFjaXR5PSIuNCIvPjxwYXRoIGQ9Im0xIDFoMjZ2MjZoLTN2LTIzaC0yM3oiIGZpbGw9IiNmZmYiLz48L2c+PC9zdmc+"); + display: none; + bottom: 0; + right: 0; +} + +.w-lightbox-close { + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii00IDAgMTggMTciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNyI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUpIj48cGF0aCBkPSJtMCAwaDd2LTdoNXY3aDd2NWgtN3Y3aC01di03aC03eiIgb3BhY2l0eT0iLjQiLz48cGF0aCBkPSJtMSAxaDd2LTdoM3Y3aDd2M2gtN3Y3aC0zdi03aC03eiIgZmlsbD0iI2ZmZiIvPjwvZz48L3N2Zz4="); + background-size: 18px; + height: 2.6em; + right: 0; +} + +.w-lightbox-strip { + white-space: nowrap; + padding: 0 1vh; + line-height: 0; + position: absolute; + bottom: 0; + left: 0; + right: 0; + overflow: auto hidden; +} + +.w-lightbox-item { + box-sizing: content-box; + cursor: pointer; + width: 10vh; + padding: 2vh 1vh; + display: inline-block; + -webkit-transform: translate3d(0, 0, 0); +} + +.w-lightbox-active { + opacity: .3; +} + +.w-lightbox-thumbnail { + background: #222; + height: 10vh; + position: relative; + overflow: hidden; +} + +.w-lightbox-thumbnail-image { + position: absolute; + top: 0; + left: 0; +} + +.w-lightbox-thumbnail .w-lightbox-tall { + width: 100%; + top: 50%; + transform: translate(0, -50%); +} + +.w-lightbox-thumbnail .w-lightbox-wide { + height: 100%; + left: 50%; + transform: translate(-50%); +} + +.w-lightbox-spinner { + box-sizing: border-box; + border: 5px solid #0006; + border-radius: 50%; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + animation: .8s linear infinite spin; + position: absolute; + top: 50%; + left: 50%; +} + +.w-lightbox-spinner:after { + content: ""; + border: 3px solid #0000; + border-bottom-color: #fff; + border-radius: 50%; + position: absolute; + inset: -4px; +} + +.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-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 { + opacity: .5; + display: block; + } + + .w-lightbox-close { + opacity: .8; + } + + .w-lightbox-control:hover { + opacity: 1; + } +} + +.w-lightbox-inactive, .w-lightbox-inactive:hover { + opacity: 0; +} + +.w-richtext:before, .w-richtext:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.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, .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: ""; + display: none; + position: absolute; + inset: 0; +} + +.w-richtext figure { + max-width: 60%; + position: relative; +} + +.w-richtext figure > div:before { + cursor: default !important; +} + +.w-richtext figure img { + width: 100%; +} + +.w-richtext figure figcaption.w-richtext-figcaption-placeholder { + opacity: .6; +} + +.w-richtext figure div { + color: #0000; + font-size: 0; +} + +.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 { + caption-side: bottom; + display: table-caption; +} + +.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 { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +.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 { + clear: both; + margin-left: auto; + margin-right: auto; +} + +.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 { + text-align: center; + clear: both; + width: 100%; + max-width: 100%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.w-richtext figure.w-richtext-align-fullwidth > div { + padding-bottom: inherit; + display: inline-block; +} + +.w-richtext figure.w-richtext-align-fullwidth > figcaption { + display: block; +} + +.w-richtext figure.w-richtext-align-floatleft { + float: left; + clear: none; + margin-right: 15px; +} + +.w-richtext figure.w-richtext-align-floatright { + float: right; + clear: none; + margin-left: 15px; +} + +.w-nav { + z-index: 1000; + background: #ddd; + position: relative; +} + +.w-nav:before, .w-nav:after { + content: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-nav:after { + clear: both; +} + +.w-nav-brand { + float: left; + color: #333; + text-decoration: none; + position: relative; +} + +.w-nav-link { + vertical-align: top; + color: #222; + text-align: left; + margin-left: auto; + margin-right: auto; + padding: 20px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-nav-link.w--current { + color: #0082f3; +} + +.w-nav-menu { + float: right; + position: relative; +} + +[data-nav-menu-open] { + text-align: center; + background: #c8c8c8; + min-width: 200px; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: visible; + display: block !important; +} + +.w--nav-link-open { + display: block; + position: relative; +} + +.w-nav-overlay { + width: 100%; + display: none; + position: absolute; + top: 100%; + left: 0; + right: 0; + overflow: hidden; +} + +.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] { + z-index: 1; + top: 0; + right: auto; +} + +.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] { + z-index: 1; + top: 0; + left: auto; +} + +.w-nav-button { + float: right; + cursor: pointer; + -webkit-tap-highlight-color: #0000; + tap-highlight-color: #0000; + -webkit-user-select: none; + user-select: none; + padding: 18px; + font-size: 24px; + display: none; + position: relative; +} + +.w-nav-button:focus { + outline: 0; +} + +.w-nav-button.w--open { + color: #fff; + background-color: #c8c8c8; +} + +.w-nav[data-collapse="all"] .w-nav-menu { + display: none; +} + +.w-nav[data-collapse="all"] .w-nav-button, .w--nav-dropdown-open, .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: " "; + grid-area: 1 / 1 / 2 / 2; + display: table; +} + +.w-tabs:after { + clear: both; +} + +.w-tab-menu { + position: relative; +} + +.w-tab-link { + vertical-align: top; + text-align: left; + cursor: pointer; + color: #222; + background-color: #ddd; + padding: 9px 30px; + text-decoration: none; + display: inline-block; + position: relative; +} + +.w-tab-link.w--current { + background-color: #c8c8c8; +} + +.w-tab-link:focus { + outline: 0; +} + +.w-tab-content { + display: block; + position: relative; + overflow: hidden; +} + +.w-tab-pane { + display: none; + position: relative; +} + +.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(0); + } + + 100% { + transform: rotate(360deg); + } +} + +.w-dyn-empty { + background-color: #ddd; + padding: 10px; +} + +.w-dyn-hide, .w-dyn-bind-empty, .w-condition-invisible { + display: none !important; +} + +.wf-layout-layout { + display: grid; +} + +.w-code-component > * { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +:root { + --medium-aquamarine: #7ec4bd; + --white-smoke: whitesmoke; +} + +.w-embed-youtubevideo { + background-image: url("../../../d3e54v103j8qbb.cloudfront.net/static/youtube-placeholder.2b05e7d68d.svg"); + background-position: 50%; + background-size: cover; + width: 100%; + padding-bottom: 0; + padding-left: 0; + padding-right: 0; + position: relative; +} + +.w-embed-youtubevideo:empty { + min-height: 75px; + padding-bottom: 56.25%; +} + +body { + color: #333; + font-family: Vollkorn, serif; + font-size: 14px; + line-height: 20px; +} + +h1 { + margin-top: 10px; + margin-bottom: 10px; + font-size: 32px; + font-weight: 700; + line-height: 38px; +} + +h2 { + text-align: center; + text-transform: uppercase; + margin: 10px 0; + font-family: Montserrat, sans-serif; + font-size: 23px; + font-weight: 400; + line-height: 36px; +} + +h3 { + text-transform: uppercase; + margin: 0 0 20px; + font-family: Montserrat, sans-serif; + font-size: 16px; + font-weight: 400; + line-height: 20px; +} + +h4 { + margin: 10px 0; + font-size: 18px; + font-weight: 700; + line-height: 24px; +} + +h5 { + margin: 10px 0; + font-size: 14px; + font-weight: 700; + line-height: 20px; +} + +h6 { + margin: 10px 0; + font-size: 12px; + font-weight: 700; + line-height: 18px; +} + +p { + margin-top: 0; + margin-bottom: 5px; + font-family: Vollkorn, serif; + font-size: 15px; + line-height: 22px; +} + +a { + text-decoration: underline; +} + +a:hover { + color: #111; +} + +a:active { + color: #000; +} + +a:visited { + color: #666; +} + +.button { + color: #fff; + text-align: center; + background-color: #13b7d8; + border: 1px #47474f; + border-radius: 6px; + padding: 12px 30px; + font-family: Roboto, sans-serif; + font-size: 18px; + font-style: normal; + text-decoration: none; + transition: background-color .3s; + display: inline-block; +} + +.button:hover { + background-color: #1296b1; +} + +.button.form { + color: #7ec4bd; + border-width: 1px 1px 2px; + border-color: #7ec4bd; + margin-top: 23px; + margin-bottom: 24px; + padding-left: 54px; + padding-right: 54px; +} + +.button.form:hover { + background-color: #7ec4bd57; +} + +.header { + color: #fff; + text-align: center; + background-color: #fffcba; + padding: 60px 20px; +} + +.header.project-page { + background-image: linear-gradient(#64d1c68c, #64d1c68c), url("../61cc329947770114fa07dcd2_lake.jpg"); + padding-top: 77px; + padding-bottom: 77px; +} + +.navbar { + background-color: #fff; + padding-top: 18px; + padding-bottom: 18px; +} + +.nav-link { + color: #404040; + text-transform: uppercase; + border-bottom: 2px solid #0000; + margin-top: 23px; + margin-left: 34px; + padding: 0; + font-family: Roboto, sans-serif; + font-size: 14px; + font-weight: 400; + transition: border-color .3s; +} + +.nav-link:hover { + border-bottom-color: #13b7d8; +} + +.nav-link.w--current { + font-family: Roboto, sans-serif; + font-size: 14px; +} + +.logo-title { + float: left; + text-transform: uppercase; + margin-top: 12px; + font-family: Roboto Condensed, sans-serif; + font-size: 22px; + font-weight: 400; +} + +.logo-img { + float: left; + margin-right: 18px; +} + +.main-heading { + color: #000; + text-align: left; + text-transform: none; + margin-top: 0; + margin-bottom: 0; + margin-left: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 36px; + font-weight: 400; + line-height: 48px; +} + +.divider { + background-color: #fff; + width: 80px; + height: 2px; + margin: 28px auto; + display: block; +} + +.divider.grey { + background-color: #00000017; + margin-bottom: 43px; +} + +.main-subtitle { + color: #ffffffcf; + font-family: Vollkorn, serif; + font-size: 18px; + font-style: italic; +} + +.about-section { + text-align: center; + background-color: #fffcba; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-text { + color: #47474f; + margin-bottom: 40px; + font-family: Roboto Mono, sans-serif; + font-size: 20px; + font-style: normal; + line-height: 30px; +} + +.x-icon { + margin-top: -26px; + margin-bottom: 34px; +} + +.section { + text-align: center; + padding-top: 69px; + padding-bottom: 69px; +} + +.section.grey { + background-color: #f5f5f5; +} + +.section.contact { + background-color: #9ac4cd; + background-image: linear-gradient(#9ac4cd, #9ac4cd); + padding-top: 40px; + padding-bottom: 60px; + font-family: Vollkorn, serif; +} + +.section.footer { + background-color: #393b3c; + padding-top: 40px; + padding-bottom: 40px; +} + +.grey-icon-wrapper { + background-color: #f5f5f5; + margin-bottom: 38px; + padding-top: 50px; + padding-bottom: 50px; +} + +.project-wrapper { + color: #333; + text-decoration: none; + transition: bottom .3s; + display: block; + position: relative; + bottom: 0; +} + +.project-wrapper:hover { + bottom: 8px; +} + +.team-image { + border-radius: 100%; + margin-bottom: 21px; +} + +.role { + margin-bottom: 16px; + font-family: Vollkorn, serif; + font-size: 17px; + font-style: italic; +} + +.social-link { + background-color: #f5f5f5; + border-radius: 100%; + width: 29px; + height: 29px; + margin: 3px; + padding-top: 5px; + padding-left: 1px; + transition: box-shadow .3s; + box-shadow: inset 0 0 0 1px #0000; +} + +.social-link:hover { + box-shadow: inset 0 0 0 2px #7ec4bd; +} + +.team-title { + margin-bottom: 7px; +} + +.testimonial-slider { + background-color: #0000; + height: auto; +} + +.quote-icon { + margin-bottom: 37px; +} + +.arrow { + color: #e3e3e3; + width: 40px; + font-size: 30px; + transition: color .3s; +} + +.arrow:hover { + color: #333; +} + +.testimonial-slide { + text-align: center; + width: 50%; + padding: 30px 34px 29px; +} + +.testimonial-slide.left-border { + border-left: 2px solid #0000000a; +} + +.mask { + width: 95%; + margin-left: auto; + margin-right: auto; + display: block; +} + +.team-row { + margin-bottom: 20px; +} + +.testimonial { + margin-bottom: 22px; + font-size: 26px; + line-height: 33px; +} + +.from { + color: #ababab; + text-transform: uppercase; + margin-bottom: 0; + font-family: Montserrat, sans-serif; + font-size: 14px; + font-weight: 400; +} + +.icon-wrapper { + height: 95px; + margin-bottom: 10px; + padding-top: 13px; +} + +.icon-wrapper._2 { + padding-top: 20px; +} + +.footer-logo { + opacity: .4; + margin-bottom: 15px; +} + +.contact-text { + color: #212121; + font-family: Roboto, sans-serif; + font-size: 17px; +} + +.link { + color: #1c1c1c; +} + +.social-wrapper { + text-align: left; + margin-bottom: 11px; + margin-left: 33%; + text-decoration: none; + transition: opacity .3s; + display: block; +} + +.social-wrapper:hover { + opacity: .43; +} + +.footer-text { + color: #fff6; + font-family: Roboto, sans-serif; +} + +.social-link-text { + display: inline-block; +} + +.social-icon { + margin-top: -6px; + margin-right: 9px; +} + +.field { + color: #7ec4bd; + background-color: #fff3; + border: 0 solid #000; + height: 57px; + margin-bottom: 0; + padding-top: 17px; + padding-bottom: 17px; + font-size: 18px; + font-style: italic; + box-shadow: inset 3px 0 #0000; +} + +.field:focus { + box-shadow: inset 3px 0 #7ec4bd; +} + +.field.large { + height: 127px; +} + +.field.darker { + background-color: #ffffff2e; + transition: box-shadow .3s; +} + +.form-wrapper { + padding-left: 20%; + padding-right: 20%; +} + +.success-message { + color: #7ec4bd; + background-color: #0000; + border: 1px solid #7ec4bd; + border-bottom-width: 2px; + padding-top: 82px; + padding-bottom: 82px; +} + +.project-info { + background-color: #fff; + margin-bottom: 20px; + padding-top: 20px; + padding-bottom: 20px; +} + +.project-title { + margin-bottom: 4px; +} + +.grow-row { + margin-bottom: 42px; +} + +.screenshot { + margin-bottom: 43px; +} + +.face { + border-radius: 100%; + margin-bottom: 10px; +} + +.body { + background-color: #000; + font-family: Roboto, sans-serif; +} + +.container { + padding-top: 0; +} + +.image { + cursor: none; + object-fit: fill; + width: 100%; + max-width: 100%; + margin: auto; + display: block; + overflow: auto; +} + +.heading { + font-family: Roboto Mono, sans-serif; +} + +.container-2 { + font-family: Roboto, sans-serif; +} + +.heading-2, .heading-3, .heading-4 { + font-family: Roboto Mono, sans-serif; + font-weight: 600; +} + +.datapop-section { + text-align: center; + background-color: #e8f7fa; + padding-top: 60px; + padding-bottom: 60px; +} + +.datapop-key-visual { + color: #47474f; + margin-bottom: 40px; + margin-left: auto; + margin-right: auto; + font-family: Roboto Mono, sans-serif; + font-size: 18px; + line-height: 25px; + display: block; +} + +.datapop-logo { + margin-bottom: 60px; +} + +.column, .column-2 { + padding-left: 0; + padding-right: 0; +} + +.body-2 { + background-color: #000; +} + +.image-2 { + -webkit-text-fill-color: inherit; + cursor: zoom-in; + object-position: 50% 50%; + background-clip: border-box; + border-radius: 0; +} + +.collection-item { + height: 100%; +} + +.item { + float: left; + clear: none; + cursor: none; + object-fit: fill; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + position: relative; + overflow: visible; +} + +.item:hover { + background-color: #fff; +} + +.collection-list { + padding: 30px 10px 10px; +} + +.identity { + object-fit: fill; + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + font-family: Inconsolata, monospace; + font-size: 16px; + font-weight: 400; + text-decoration: none; + display: flex; + position: static; +} + +.headingblock { + z-index: 100; + color: #333; + background-color: #fff; + flex-direction: row; + justify-content: space-between; + align-items: center; + width: 100%; + margin-bottom: 0; + padding-bottom: 0; + padding-left: 20px; + padding-right: 20px; + font-family: Inconsolata, monospace; + display: flex; + position: fixed; + inset: 0% 0% auto; + overflow: auto; +} + +.collection-list-wrapper { + margin-top: 40px; + padding: 0 10px 10px; +} + +.collection-item-2 { + padding-left: 0; + padding-right: 0; +} + +.collection-list-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + cursor: none; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + display: block; + overflow: visible; +} + +.div-block { + cursor: none; + background-color: #fff; +} + +.image-3 { + width: 100%; +} + +.linkblock { + cursor: zoom-in; + display: block; +} + +.link-block-2 { + display: block; +} + +.text-span { + color: #888; + padding-left: 10px; + text-decoration: none; +} + +.p5canvas { + background-color: #000; + overflow: hidden; +} + +.bodyrosa { + clear: none; + object-fit: fill; + background-color: #ffade4; + padding: 0 40px 40px; + font-family: Inconsolata, monospace; + display: block; +} + +.text-block { + color: #242424; + text-align: center; + background-color: #fff; + margin-top: 40px; + padding: 20px; + font-size: 24px; + font-weight: 700; +} + +.image-4 { + z-index: auto; + object-fit: fill; + margin: 40px auto; + display: block; + position: static; + overflow: auto; +} + +.heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; +} + +.heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px 20px; + font-size: 26px; + line-height: 34px; +} + +.paragraph { + background-color: #fff; + margin-bottom: 0; + padding: 10px 20px; + font-family: Inconsolata, monospace; + font-size: 18px; + line-height: 26px; +} + +.body-3 { + background-color: #ffa1af; +} + +.link-block-day { + color: #000; + cursor: none; + background-color: #fff; + border: 1px solid #000; + border-radius: 4px; + flex: 0 auto; + justify-content: center; + align-self: auto; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-day:hover { + color: #000; + background-color: #eee; +} + +.text-block-2 { + text-align: center; + flex: 1; + justify-content: space-between; + align-self: center; + width: 50%; + display: block; +} + +.body-5 { + height: 100%; + min-height: 100px; + margin-top: auto; + margin-bottom: auto; +} + +.columns-2 { + float: none; + clear: none; + flex-flow: column wrap; + place-content: space-around space-between; + align-items: center; + margin-top: auto; + margin-bottom: auto; + display: flex; +} + +.body-6 { + grid-column-gap: 20px; + grid-row-gap: 20px; + object-fit: none; + flex-direction: row; + justify-content: space-around; + align-items: stretch; + height: 100vh; + padding: 20px; + display: flex; + overflow: auto; +} + +.link-block-night { + color: #fff; + cursor: none; + background-color: #000; + border-radius: 4px; + flex-wrap: nowrap; + flex: 0 auto; + justify-content: center; + align-self: center; + align-items: center; + width: 100%; + height: 100%; + display: flex; +} + +.link-block-night:hover { + background-color: #222; +} + +.image-5 { + color: #fff; + background-color: #0000; +} + +.icon-night { + color: #fff; + flex-direction: row; + align-items: stretch; +} + +.icon-day { + color: #000; + flex-direction: row; + align-items: stretch; +} + +.collection-item-3 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: flex-start; + width: 100%; + padding-left: 0; + padding-right: 0; + display: block; + position: absolute; +} + +.image-6 { + width: 100%; +} + +.body-7 { + cursor: none; + background-color: #000; + padding: 0; +} + +.collection-item-4 { + padding-top: 10px; + padding-bottom: 10px; +} + +.image-7 { + background-color: #000; +} + +.body-8 { + cursor: none; + background-color: #fff; +} + +.collection-list-wrapper-2 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-5 { + padding-top: 10px; + padding-bottom: 10px; +} + +.collection-list-wrapper-3 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; +} + +.collection-item-6 { + padding: 10px; +} + +.body-9 { + cursor: none; + background-color: #000; +} + +.image-8 { + width: 100%; + min-width: 100%; + margin: auto; + display: block; +} + +.link-block-3 { + display: block; +} + +.image-9 { + cursor: none; + width: 100%; +} + +.link-block-4 { + display: block; +} + +.image-10 { + cursor: zoom-in; +} + +.collection-list-wrapper-4 { + margin-top: 40px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; + display: block; +} + +.link-block-5 { + color: #333; + text-decoration: none; +} + +.link-block-5:active, .link-block-5:focus { + color: #000; +} + +.link-block-5:visited { + color: #333; +} + +.div-block-3 { + background-color: #fff; +} + +.paragraph-2 { + text-align: center; + letter-spacing: 2px; + flex-flow: row; + justify-content: space-around; + align-items: stretch; + margin-bottom: 0; + font-family: Roboto, sans-serif; + font-size: 72px; + font-weight: 400; + line-height: 72px; + display: block; +} + +.container-3 { + width: 4%; + max-width: 0; + margin-top: auto; + margin-bottom: auto; + display: block; +} + +.div-block-4 { + width: 50%; + margin: auto; + display: block; +} + +.section-2 { + grid-column-gap: 36px; + grid-row-gap: 36px; + color: #fff; + background-color: #fc0093; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + font-family: Inconsolata, monospace; + font-size: 36px; + line-height: 36px; + display: flex; +} + +.text-block-3 { + font-size: 72px; + line-height: 72px; +} + +.video { + aspect-ratio: 9 / 16; + margin-bottom: 4px; +} + +.collection-item-7 { + padding-bottom: 20px; + padding-left: 10px; +} + +.collection-list-3 { + padding-left: 10px; + padding-right: 10px; +} + +.link-2 { + color: #000; + font-family: Inconsolata, monospace; +} + +.collection-list-wrapper-5 { + padding-top: 44px; +} + +.bg { + box-sizing: border-box; + grid-column-gap: 11px; + grid-row-gap: 11px; + background-color: #000; + display: flex; +} + +.no1 { + clear: none; + grid-column-gap: 0px; + grid-row-gap: 0px; + aspect-ratio: 16 / 9; + outline-offset: 0px; + direction: ltr; + color: #fff; + text-align: center; + text-transform: none; + -webkit-text-fill-color: inherit; + vertical-align: super; + cursor: none; + background-color: #333; + background-clip: border-box; + border: 1px #000; + border-radius: 20px; + outline: 0 #fff; + flex-flow: row; + flex: 1; + order: 0; + justify-content: center; + align-self: auto; + align-items: center; + padding: 20px 30px; + font-family: Roboto Mono, sans-serif; + font-size: 16em; + text-decoration: none; + display: flex; + position: static; + inset: 0%; + overflow: visible; +} + +.no1:active { + background-color: #008d38; +} + +.no1-copy { + float: none; + clear: none; + color: #fff; + text-align: center; + vertical-align: super; + background-color: #3d3d3d; + border-radius: 20px; + justify-content: center; + align-items: center; + margin: 20px; + font-family: Roboto Mono, sans-serif; + font-size: 15em; + display: flex; + position: fixed; + inset: 0%; + overflow: visible; +} + +.no1-copy:active { + background-color: #008d38; +} + +.numbers { + box-sizing: border-box; + grid-column-gap: 20px; + grid-row-gap: 20px; + flex-flow: row; + flex: 0 auto; + order: 0; + grid-template-rows: auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + justify-content: center; + align-self: auto; + align-items: center; + margin: auto; + padding: 20px; + display: flex; + position: static; + overflow: visible; +} + +.text-span-2 { + font-weight: 700; +} + +.div-block-5 { + background-color: #000; + flex: 1; + justify-content: space-around; + align-items: center; + height: 100vh; + display: flex; +} + +.text-span-3 { + color: #fff; + text-align: left; + font-family: Lato, sans-serif; + font-size: 12em; + font-weight: 400; +} + +@media screen and (max-width: 991px) { + .nav-link { + margin: 0 auto; + padding-top: 20px; + padding-bottom: 20px; + } + + .nav-link:hover { + border-bottom-color: #0000; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .project-wrapper:hover { + transform: translate(0); + } + + .social-wrapper { + margin-left: 30%; + } + + .menu-button { + margin-top: 7px; + padding: 10px; + font-size: 32px; + } + + .menu-button.w--open { + color: #7ec4bd; + background-color: #0000; + } + + .nav-menu { + background-color: #f5f5f5; + } +} + +@media screen and (max-width: 767px) { + .header { + padding-top: 45px; + padding-bottom: 45px; + } + + .navbar { + padding-top: 10px; + padding-bottom: 10px; + } + + .nav-link { + padding-top: 15px; + padding-bottom: 15px; + padding-left: 10px; + } + + .logo-title { + margin-top: 6px; + } + + .logo-img { + width: 50px; + } + + .main-heading { + font-size: 36px; + line-height: 48px; + } + + .about-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } + + .x-icon { + margin-bottom: 21px; + } + + .section { + padding-top: 30px; + padding-bottom: 30px; + } + + .grey-icon-wrapper { + margin-bottom: 16px; + padding: 34px 56px; + display: inline-block; + } + + .grey-icon-wrapper.push-top { + margin-top: 30px; + } + + .testimonial-slide { + width: 100%; + } + + .testimonial-slide.left-border { + border-left-width: 0; + } + + .icon-wrapper { + height: 85px; + } + + .icon-wrapper._2 { + margin-top: 37px; + } + + .social-wrapper { + text-align: center; + margin-left: 0%; + } + + .form-wrapper { + padding-left: 10%; + padding-right: 10%; + } + + .menu-button { + margin-top: 0; + } + + .member { + padding-bottom: 47px; + } + + .grow-row { + margin-bottom: 0; + } + + .screenshot { + width: 90%; + } + + .image { + margin-bottom: auto; + padding: 0; + } + + .datapop-section { + padding-bottom: 60px; + padding-left: 20px; + padding-right: 20px; + } +} + +@media screen and (max-width: 479px) { + .header { + padding-top: 40px; + padding-bottom: 40px; + } + + .brand-block { + padding-left: 12px; + } + + .main-heading { + float: right; + clear: none; + font-size: 28px; + line-height: 40px; + position: relative; + } + + .about-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .grey-icon-wrapper { + display: block; + } + + .form-wrapper { + padding-left: 5%; + padding-right: 5%; + } + + .image { + padding: 0; + } + + .datapop-section { + padding-top: 40px; + padding-bottom: 40px; + } + + .datapop-logo { + margin-bottom: 40px; + } + + .column-2 { + grid-column-gap: 16px; + grid-row-gap: 16px; + grid-template-rows: auto auto; + grid-template-columns: 1fr 1fr; + grid-auto-columns: 1fr; + } + + .bodyrosa { + margin-bottom: 0; + padding: 0 20px 20px; + } + + .text-block { + background-color: #fff; + margin-top: 20px; + line-height: 28px; + } + + .image-4 { + margin-top: 30px; + margin-bottom: 30px; + } + + .div-block-2 { + text-align: right; + background-color: #fff; + margin-top: 20px; + padding: 20px; + font-size: 16px; + } + + .heading-5 { + text-align: right; + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding: 10px 20px; + font-weight: 400; + } + + .heading-6 { + background-color: #fff; + margin-top: 0; + margin-bottom: 0; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + font-size: 26px; + line-height: 36px; + } + + .paragraph { + background-color: #fff; + padding: 10px 20px; + font-size: 20px; + line-height: 28px; + } + + .link-block-day { + border: 1px solid #000; + } + + .body-6 { + flex-direction: column; + padding: 20px; + } + + .collection-item-3 { + grid-column-gap: 0px; + grid-row-gap: 0px; + justify-content: space-between; + display: flex; + } + + .image-6 { + display: block; + position: static; + } + + .body-7 { + flex-direction: row; + justify-content: space-between; + align-items: stretch; + display: flex; + } + + .body-8 { + background-color: #000; + } + + .paragraph-2 { + font-size: 32px; + line-height: 32px; + } +} diff --git a/x/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js b/x/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js new file mode 100644 index 0000000..afca678 --- /dev/null +++ b/x/cdn.prod.website-files.com/61cc3299477701283507dc98/js/webflow.03670e8d4.js @@ -0,0 +1,12280 @@ + +/*! + * 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(module1) { + if (Webflow.env()) { + isFunction(module1.design) && $win.on("__wf_design", module1.design); + isFunction(module1.preview) && $win.on("__wf_preview", module1.preview); + } + isFunction(module1.destroy) && $win.on("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + addReady(module1); + } + } + function addReady(module1) { + if (domready) { + module1.ready(); + return; + } + if (_.contains(primary, module1.ready)) { + return; + } + primary.push(module1.ready); + } + function unbindModule(module1) { + isFunction(module1.design) && $win.off("__wf_design", module1.design); + isFunction(module1.preview) && $win.off("__wf_preview", module1.preview); + isFunction(module1.destroy) && $win.off("__wf_destroy", module1.destroy); + if (module1.ready && isFunction(module1.ready)) { + removeReady(module1); + } + } + function removeReady(module1) { + primary = _.filter(primary, function(readyFn) { + return readyFn !== module1.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-edit.js + var require_webflow_edit = __commonJS({ + "packages/shared/render/plugins/BaseSiteModules/webflow-edit.js"(exports, module) { + "use strict"; + var Webflow = require_webflow_lib(); + Webflow.define("edit", module.exports = function($, _, options) { + options = options || {}; + if (Webflow.env("test") || Webflow.env("frame")) { + if (!options.fixture && !inCypress()) { + return { + exit: 1 + }; + } + } + var api = {}; + var $win = $(window); + var $html = $(document.documentElement); + var location = document.location; + var hashchange = "hashchange"; + var loaded; + var loadEditor = options.load || load; + var hasLocalStorage = false; + try { + hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem("WebflowEditor"); + } catch (e) { + } + if (hasLocalStorage) { + loadEditor(); + } else if (location.search) { + if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) { + loadEditor(); + } + } else { + $win.on(hashchange, checkHash).triggerHandler(hashchange); + } + function checkHash() { + if (loaded) { + return; + } + if (/\?edit/.test(location.hash)) { + loadEditor(); + } + } + function load() { + loaded = true; + window.WebflowEditor = true; + $win.off(hashchange, checkHash); + checkThirdPartyCookieSupport(function(thirdPartyCookiesSupported) { + $.ajax({ + url: cleanSlashes("https://editor-api.webflow.com/api/editor/view"), + data: { + siteId: $html.attr("data-wf-site") + }, + xhrFields: { + withCredentials: true + }, + dataType: "json", + crossDomain: true, + success: success(thirdPartyCookiesSupported) + }); + }); + } + function success(thirdPartyCookiesSupported) { + return function(data) { + if (!data) { + console.error("Could not load editor data"); + return; + } + data.thirdPartyCookiesSupported = thirdPartyCookiesSupported; + getScript(prefix(data.scriptPath), function() { + window.WebflowEditor(data); + }); + }; + } + function getScript(url, done) { + $.ajax({ + type: "GET", + url, + dataType: "script", + cache: true + }).then(done, error); + } + function error(jqXHR, textStatus, errorThrown) { + console.error("Could not load editor script: " + textStatus); + throw errorThrown; + } + function prefix(url) { + return url.indexOf("//") >= 0 ? url : cleanSlashes("https://editor-api.webflow.com" + url); + } + function cleanSlashes(url) { + return url.replace(/([^:])\/\//g, "$1/"); + } + function checkThirdPartyCookieSupport(callback) { + var iframe = window.document.createElement("iframe"); + iframe.src = "https://webflow.com/site/third-party-cookie-check.html"; + iframe.style.display = "none"; + iframe.sandbox = "allow-scripts allow-same-origin"; + var handleMessage = function(event) { + if (event.data === "WF_third_party_cookies_unsupported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + } else if (event.data === "WF_third_party_cookies_supported") { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(true); + } + }; + iframe.onerror = function() { + cleanUpCookieCheckerIframe(iframe, handleMessage); + callback(false); + }; + window.addEventListener("message", handleMessage, false); + window.document.body.appendChild(iframe); + } + function cleanUpCookieCheckerIframe(iframe, listener) { + window.removeEventListener("message", listener, false); + iframe.remove(); + } + return api; + }); + function inCypress() { + try { + return window.top.__Cypress__; + } catch (e) { + return false; + } + } + } + }); + + // 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/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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var getPluginConfig2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + 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; + }; + var getPluginOrigin2 = (refState2) => { + return refState2 || { + value: 0 + }; + }; + var getPluginDestination2 = (actionItemConfig) => { + return { + value: actionItemConfig.value + }; + }; + var createPluginInstance3 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + instance.setSubframe(true); + return instance; + }; + var renderPlugin2 = (pluginInstance, refState2, actionItem) => { + if (!pluginInstance) { + return; + } + const percent = refState2[actionItem.actionTypeId].value / 100; + pluginInstance.goToFrame(pluginInstance.frames * percent); + }; + var clearPlugin2 = (element) => { + const instance = window.Webflow.require("lottie").createInstance(element); + instance.stop(); + }; + } + }); + + // 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + 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]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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; + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = (element, actionItem) => { + const pluginElementId = actionItem?.config?.target?.pluginElement; + return pluginElementId ? queryContainerElement(pluginElementId) : null; + }; + 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); + } + }; + var clearPlugin2 = () => { + return null; + }; + } + }); + + // 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 + }); + Object.defineProperty(exports, "normalizeColor", { + enumerable: true, + get: function() { + return 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 || hex.length === 4) { + red = parseInt(hex[0] + hex[0], 16); + green = parseInt(hex[1] + hex[1], 16); + blue = parseInt(hex[2] + hex[2], 16); + if (hex.length === 4) { + alpha = parseInt(hex[3] + hex[3], 16) / 255; + } + } else if (hex.length === 6 || hex.length === 8) { + red = parseInt(hex.substring(0, 2), 16); + green = parseInt(hex.substring(2, 4), 16); + blue = parseInt(hex.substring(4, 6), 16); + if (hex.length === 8) { + alpha = parseInt(hex.substring(6, 8), 16) / 255; + } + } + } 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 + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + clearPlugin: function() { + return clearPlugin2; + }, + createPluginInstance: function() { + return createPluginInstance3; + }, + getPluginConfig: function() { + return getPluginConfig2; + }, + getPluginDestination: function() { + return getPluginDestination2; + }, + getPluginDuration: function() { + return getPluginDuration3; + }, + getPluginOrigin: function() { + return getPluginOrigin2; + }, + renderPlugin: function() { + return renderPlugin2; + } + }); + var _normalizeColor = require_normalizeColor(); + var getPluginConfig2 = (actionItemConfig, key) => { + return actionItemConfig.value[key]; + }; + var getPluginDuration3 = () => { + return null; + }; + 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); + } + }; + var getPluginDestination2 = (actionItemConfig) => { + return actionItemConfig.value; + }; + var createPluginInstance3 = () => { + return null; + }; + 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); + } + }; + var clearPlugin2 = (ref, actionItem) => { + const objectId = actionItem.config.target.objectId; + document.documentElement.style.removeProperty(objectId); + }; + } + }); + + // packages/systems/ix2/plugins/index.js + var require_plugins = __commonJS({ + "packages/systems/ix2/plugins/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "pluginMethodMap", { + enumerable: true, + get: function() { + return pluginMethodMap2; + } + }); + var _sharedconstants = (init_shared_constants(), __toCommonJS(shared_constants_exports)); + var _IX2Lottie = /* @__PURE__ */ _interop_require_wildcard(require_IX2Lottie()); + var _IX2Spline = /* @__PURE__ */ _interop_require_wildcard(require_IX2Spline()); + var _IX2Variable = /* @__PURE__ */ _interop_require_wildcard(require_IX2Variable()); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var pluginMethodMap2 = /* @__PURE__ */ new Map([ + [ + _sharedconstants.ActionTypeConsts.PLUGIN_LOTTIE, + { + ..._IX2Lottie + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_SPLINE, + { + ..._IX2Spline + } + ], + [ + _sharedconstants.ActionTypeConsts.PLUGIN_VARIABLE, + { + ..._IX2Variable + } + ] + ]); + } + }); + + // 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 && actionItemGroups.some(({ actionItems }) => { + return actionItems.some(takeItemUntilMatch); + }); + continuousParameterGroups && 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_shared = __commonJS({ + "packages/systems/ix2/shared/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + // IX2Actions, + IX2BrowserSupport: function() { + return _IX2BrowserSupport; + }, + IX2EasingUtils: function() { + return _IX2EasingUtils; + }, + IX2Easings: function() { + return _IX2Easings; + }, + IX2ElementsReducer: function() { + return _IX2ElementsReducer; + }, + IX2VanillaPlugins: function() { + return _IX2VanillaPlugins; + }, + IX2VanillaUtils: function() { + return _IX2VanillaUtils; + } + }); + var _IX2BrowserSupport = /* @__PURE__ */ _interop_require_wildcard((init_IX2BrowserSupport(), __toCommonJS(IX2BrowserSupport_exports))); + var _IX2Easings = /* @__PURE__ */ _interop_require_wildcard((init_IX2Easings(), __toCommonJS(IX2Easings_exports))); + var _IX2EasingUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2EasingUtils(), __toCommonJS(IX2EasingUtils_exports))); + var _IX2ElementsReducer = /* @__PURE__ */ _interop_require_wildcard((init_IX2ElementsReducer(), __toCommonJS(IX2ElementsReducer_exports))); + var _IX2VanillaPlugins = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaPlugins(), __toCommonJS(IX2VanillaPlugins_exports))); + var _IX2VanillaUtils = /* @__PURE__ */ _interop_require_wildcard((init_IX2VanillaUtils(), __toCommonJS(IX2VanillaUtils_exports))); + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + } + }); + + // 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_shared()); + 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 ( + // @ts-expect-error - Further investigation is needed as looks like IX2_RAW_DATA_IMPORTED is never triggered with ixParameters + 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_shared()); + init_IX2InstancesReducer(); + init_IX2ParametersReducer(); + ({ ixElements: ixElements2 } = import_shared2.IX2ElementsReducer); + IX2Reducer_default = (0, import_redux.combineReducers)({ + 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_shared()); + ({ + 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_shared()); + 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_shared()); + ({ + 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, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.preview, + onChange: handlePreviewRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.playback, + onChange: handlePlaybackRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.stop, + onChange: handleStopRequest + }); + observeStore2({ + store, + select: ({ + ixRequest: ixRequest2 + }) => ixRequest2.clear, + onChange: handleClearRequest + }); + } + function observeMediaQueryChange(store) { + observeStore2({ + store, + 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, + 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({ + // @ts-expect-error - TS7031 - Binding element 'logic' implicitly has an 'any' type. + 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 + // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.useEventTarget === true && // @ts-expect-error - Property 'target' does not exist on type 'never'. + itemConfig?.target?.objectId == null ? ( + // @ts-expect-error - TS18048 - 'event' is possibly 'undefined'. + { 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 && events[eventId] ? 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_shared()); + 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"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _export(target, all) { + for (var name in all) + Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); + } + _export(exports, { + actions: function() { + return _IX2EngineActions; + }, + destroy: function() { + return destroy; + }, + init: function() { + return init; + }, + setEnv: function() { + return setEnv; + }, + store: function() { + return store; + } + }); + var _redux = require_lib2(); + var _IX2Reducer = /* @__PURE__ */ _interop_require_default((init_IX2Reducer(), __toCommonJS(IX2Reducer_exports))); + var _IX2VanillaEngine = (init_IX2VanillaEngine(), __toCommonJS(IX2VanillaEngine_exports)); + var _IX2EngineActions = /* @__PURE__ */ _interop_require_wildcard((init_IX2EngineActions(), __toCommonJS(IX2EngineActions_exports))); + function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") + return null; + var cacheBabelInterop = /* @__PURE__ */ new WeakMap(); + var cacheNodeInterop = /* @__PURE__ */ new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop2) { + return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); + } + function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; + } + var 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/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_edit(); + 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_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 + *) +*/ diff --git "a/x/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" "b/x/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" new file mode 100644 index 0000000..b061403 --- /dev/null +++ "b/x/d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8\357\271\226site=61cc3299477701283507dc98.js" @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 + + + youtube-placeholder + Created with Sketch. + + + + + + \ No newline at end of file diff --git "a/x/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" "b/x/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" new file mode 100644 index 0000000..8a4efe0 --- /dev/null +++ "b/x/fonts.googleapis.com/css\357\271\226family=Vollkorn\357\271\225400,400italic,700,700italic\357\275\234Montserrat\357\271\225100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic\357\275\234Inconsolata\357\271\225400,700\357\275\234Lato\357\271\225100,100italic,300,300ita_71dac9aee4d37feb.css" @@ -0,0 +1,242 @@ +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 400; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Inconsolata'; + font-style: normal; + font-weight: 700; + font-stretch: 100%; + src: url(../fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: italic; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 100; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 200; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 300; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 800; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 900; + src: url(../fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Condensed'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff) format('woff'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Roboto Mono'; + font-style: normal; + font-weight: 600; + src: url(../fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: italic; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 400; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} +@font-face { + font-family: 'Vollkorn'; + font-style: normal; + font-weight: 700; + src: url(../fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2) format('woff2'); +} diff --git a/x/fonts.googleapis.com/robots.ssl.txt b/x/fonts.googleapis.com/robots.ssl.txt new file mode 100644 index 0000000..9e60f97 --- /dev/null +++ b/x/fonts.googleapis.com/robots.ssl.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/x/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 b/x/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 new file mode 100644 index 0000000..d560d34 Binary files /dev/null and b/x/fonts.gstatic.com/s/inconsolata/v32/QlddNThLqRwH-OJ1UHjlKENVzkWGVkL3GZQmAwLyya15IDhunA.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 new file mode 100644 index 0000000..5e2b24a Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u-w4BMUTPHjxsIPx-oPCLC79U1.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..b3ec1b3 Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHh30AXC-qNiXg7Q.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 new file mode 100644 index 0000000..d315229 Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u8w4BMUTPHjxsAXC-qNiXg7Q.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..366dc80 Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh50XSwiPGQ3q5d0.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..95c63e0 Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPGQ3q5d0.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 new file mode 100644 index 0000000..03039fe Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPGQ3q5d0.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 new file mode 100644 index 0000000..b49074b Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI3wi_Gwftx9897g.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 new file mode 100644 index 0000000..d25560c Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI5wq_Gwftx9897g.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 new file mode 100644 index 0000000..fad313b Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6u_w4BMUTPHjxsI9w2_Gwftx9897g.woff2 differ diff --git a/x/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 b/x/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 new file mode 100644 index 0000000..56e968d Binary files /dev/null and b/x/fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wXiWtFCc.woff2 differ diff --git a/x/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 b/x/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 new file mode 100644 index 0000000..0773927 Binary files /dev/null and b/x/fonts.gstatic.com/s/montserrat/v26/JTUQjIg1_i6t8kCHKm459WxRyS7m0dR9pA.woff2 differ diff --git a/x/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 b/x/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 new file mode 100644 index 0000000..e9bd2e8 Binary files /dev/null and b/x/fonts.gstatic.com/s/montserrat/v26/JTUSjIg1_i6t8kCHKm459WlhyyTh89Y.woff2 differ diff --git a/x/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 b/x/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 new file mode 100644 index 0000000..74bc295 Binary files /dev/null and b/x/fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2 differ diff --git a/x/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 b/x/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 new file mode 100644 index 0000000..daa4d3e Binary files /dev/null and b/x/fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2 differ diff --git a/x/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff b/x/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff new file mode 100644 index 0000000..9394bc1 Binary files /dev/null and b/x/fonts.gstatic.com/s/robotocondensed/v27/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyosBO5XpjLdSL17o.woff differ diff --git a/x/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 b/x/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 new file mode 100644 index 0000000..741341a Binary files /dev/null and b/x/fonts.gstatic.com/s/robotomono/v23/L0xTDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vrtSM1J-gEPT5Ese6hmHSh0me8iUI0.woff2 differ diff --git a/x/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff b/x/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff new file mode 100644 index 0000000..98c7eab Binary files /dev/null and b/x/fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cp-eTIwsa4Y.woff differ diff --git a/x/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 b/x/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 new file mode 100644 index 0000000..9ac07eb Binary files /dev/null and b/x/fonts.gstatic.com/s/vollkorn/v23/0yb7GDoxxrvAnPhYGxksWE8eqTo29Tc.woff2 differ diff --git a/x/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 b/x/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 new file mode 100644 index 0000000..8d7b415 Binary files /dev/null and b/x/fonts.gstatic.com/s/vollkorn/v23/0yb9GDoxxrvAnPhYGxkpaE0Urhg0.woff2 differ diff --git a/x/www.aeara.com/_downloads.html b/x/www.aeara.com/_downloads.html new file mode 100644 index 0000000..5753f67 --- /dev/null +++ b/x/www.aeara.com/_downloads.html @@ -0,0 +1,13 @@ + + + + + Downloads + + +

Downloads

+ + + diff --git a/x/www.aeara.com/x.html b/x/www.aeara.com/x.html new file mode 100644 index 0000000..e19795b --- /dev/null +++ b/x/www.aeara.com/x.html @@ -0,0 +1,32 @@ +x
594
497
532
+ + + + + \ No newline at end of file