From 9b20717336078100c11413b6131f84c9631f8231 Mon Sep 17 00:00:00 2001 From: jndaniels Date: Wed, 6 Nov 2024 20:20:07 -0600 Subject: [PATCH] UI/UX update - Datastore fixed --- .../targets/Development/databases/DB.json | 45 +++++++ app/api/qUpsert.json | 110 ++++++++++++++++++ app/config/routes.json | 5 + public/ERTSQlite.db | Bin 57344 -> 61440 bytes public/dmxAppConnect/config.js | 62 ++++++++++ .../dmxBootstrap5Offcanvas.js | 8 ++ .../dmxBootstrap5Offcanvas.js.map | 1 + public/dmxAppConnect/dmxSwiper/dmxSwiper.js | 8 ++ .../dmxAppConnect/dmxSwiper/dmxSwiper.js.map | 1 + public/dmxAppConnect/dmxSwiper/swiper.min.css | 13 +++ public/dmxAppConnect/dmxSwiper/swiper.min.js | 14 +++ .../dmxValidator/dmxValidator.css | 35 ++++++ .../dmxValidator/dmxValidator.js | 8 ++ .../dmxValidator/dmxValidator.js.map | 1 + views/.wappler_folder.json | 4 + views/DAPage1.ejs | 16 ++- views/ERTScoring.ejs | 5 + views/layouts/main.ejs | 7 ++ views/observationPage.ejs | 74 ++++++++++-- 19 files changed, 409 insertions(+), 8 deletions(-) create mode 100644 app/api/qUpsert.json create mode 100644 public/dmxAppConnect/dmxBootstrap5Offcanvas/dmxBootstrap5Offcanvas.js create mode 100644 public/dmxAppConnect/dmxBootstrap5Offcanvas/dmxBootstrap5Offcanvas.js.map create mode 100644 public/dmxAppConnect/dmxSwiper/dmxSwiper.js create mode 100644 public/dmxAppConnect/dmxSwiper/dmxSwiper.js.map create mode 100644 public/dmxAppConnect/dmxSwiper/swiper.min.css create mode 100644 public/dmxAppConnect/dmxSwiper/swiper.min.js create mode 100644 public/dmxAppConnect/dmxValidator/dmxValidator.css create mode 100644 public/dmxAppConnect/dmxValidator/dmxValidator.js create mode 100644 public/dmxAppConnect/dmxValidator/dmxValidator.js.map create mode 100644 views/ERTScoring.ejs diff --git a/.wappler/targets/Development/databases/DB.json b/.wappler/targets/Development/databases/DB.json index 5b56c6a..c616012 100644 --- a/.wappler/targets/Development/databases/DB.json +++ b/.wappler/targets/Development/databases/DB.json @@ -107,6 +107,51 @@ } } } + }, + "ertPointData": { + "db": {}, + "columns": { + "ID": { + "db": { + "type": "integer", + "primary": true, + "unique": false, + "nullable": false + } + }, + "Owner": { + "db": { + "type": "text", + "primary": false, + "unique": false, + "nullable": true + } + }, + "numSection": { + "db": { + "type": "text", + "primary": false, + "unique": false, + "nullable": true + } + }, + "numSectionValue": { + "db": { + "type": "text", + "primary": false, + "unique": false, + "nullable": true + } + }, + "remove": { + "db": { + "type": "text", + "primary": false, + "unique": false, + "nullable": true + } + } + } } }, "views": {} diff --git a/app/api/qUpsert.json b/app/api/qUpsert.json new file mode 100644 index 0000000..4d09b6c --- /dev/null +++ b/app/api/qUpsert.json @@ -0,0 +1,110 @@ +{ + "meta": { + "$_GET": [ + { + "type": "text", + "name": "sort" + }, + { + "type": "text", + "name": "dir" + } + ], + "$_POST": [ + { + "type": "text", + "name": "Owner" + }, + { + "type": "text", + "name": "numSection" + }, + { + "type": "text", + "name": "numSectionValue" + }, + { + "type": "text", + "name": "remove" + } + ] + }, + "exec": { + "steps": { + "name": "insert", + "module": "dbupdater", + "action": "insert", + "options": { + "connection": "DB", + "sql": { + "type": "insert", + "values": [ + { + "table": "ertPointData", + "column": "Owner", + "type": "text", + "value": "{{$_POST.Owner}}" + }, + { + "table": "ertPointData", + "column": "numSection", + "type": "text", + "value": "{{$_POST.numSection}}" + }, + { + "table": "ertPointData", + "column": "numSectionValue", + "type": "text", + "value": "{{$_POST.numSectionValue}}" + }, + { + "table": "ertPointData", + "column": "remove", + "type": "text", + "value": "{{$_POST.remove}}" + } + ], + "table": "ertPointData", + "returning": "ID", + "query": "insert into `ertPointData` (`Owner`, `numSection`, `numSectionValue`, `remove`) values (?, ?, ?, ?) returning `ID`", + "params": [ + { + "name": ":P1", + "type": "expression", + "value": "{{$_POST.Owner}}", + "test": "" + }, + { + "name": ":P2", + "type": "expression", + "value": "{{$_POST.numSection}}", + "test": "" + }, + { + "name": ":P3", + "type": "expression", + "value": "{{$_POST.numSectionValue}}", + "test": "" + }, + { + "name": ":P4", + "type": "expression", + "value": "{{$_POST.remove}}", + "test": "" + } + ] + } + }, + "meta": [ + { + "name": "identity", + "type": "text" + }, + { + "name": "affected", + "type": "number" + } + ] + } + } +} \ No newline at end of file diff --git a/app/config/routes.json b/app/config/routes.json index 6d7f55a..4a15bca 100644 --- a/app/config/routes.json +++ b/app/config/routes.json @@ -15,6 +15,11 @@ "path": "/observationPage", "page": "observationPage", "layout": "main" + }, + { + "path": "/ERTScoring", + "page": "ERTScoring", + "layout": "main" } ] } \ No newline at end of file diff --git a/public/ERTSQlite.db b/public/ERTSQlite.db index 1d946d9dee3f180a901792ba81e07bb5035466ac..192934492c680183ab30d37ac4c75ad88db825c7 100644 GIT binary patch delta 203 zcmZoTz})bFd4jZH3j+fKKM=!!=tLc3)fNUl>yNzL4;XmZ*D~=l^Xc;5<`w2i<$A!` z%Von|!O6-|$-Z{uL``<5Mo%7gaaC2urqGhaq@2{$qLP68%)Anp#F9j0HotR_t7C|( zLWrZ2kE?yNzL4;Z*PDw+71`E+@2^9u8%ay{Ve X<+9Yoqcm9NBeaEP8Jb> diff --git a/public/dmxAppConnect/config.js b/public/dmxAppConnect/config.js index 1c90a40..a9f4adc 100644 --- a/public/dmxAppConnect/config.js +++ b/public/dmxAppConnect/config.js @@ -1,5 +1,63 @@ dmx.config({ "observationPage": { + "repeat2": { + "meta": [ + { + "type": "number", + "name": "ID" + }, + { + "type": "text", + "name": "db_fullName" + }, + { + "type": "text", + "name": "db_licenseNumber" + }, + { + "type": "text", + "name": "db_stateIssue" + }, + { + "type": "number", + "name": "db_employeeID" + }, + { + "type": "text", + "name": "owner" + } + ], + "outputType": "array" + }, + "data_view1": { + "meta": [ + { + "type": "number", + "name": "ID" + }, + { + "type": "text", + "name": "db_fullName" + }, + { + "type": "text", + "name": "db_licenseNumber" + }, + { + "type": "text", + "name": "db_stateIssue" + }, + { + "type": "number", + "name": "db_employeeID" + }, + { + "type": "text", + "name": "owner" + } + ], + "outputType": "array" + }, "datastore1": [ { "type": "number", @@ -8,6 +66,10 @@ dmx.config({ { "type": "number", "name": "Points" + }, + { + "type": "text", + "name": "description" } ] } diff --git a/public/dmxAppConnect/dmxBootstrap5Offcanvas/dmxBootstrap5Offcanvas.js b/public/dmxAppConnect/dmxBootstrap5Offcanvas/dmxBootstrap5Offcanvas.js new file mode 100644 index 0000000..9af695e --- /dev/null +++ b/public/dmxAppConnect/dmxBootstrap5Offcanvas/dmxBootstrap5Offcanvas.js @@ -0,0 +1,8 @@ +/*! + App Connect Bootstrap 5 Offcanvas + Version: 2.0.1 + (c) 2024 Wappler.io + @build 2024-06-19 12:06:49 + */ +dmx.Component("bs5-offcanvas",{initialData:{visible:!1},attributes:{show:{type:Boolean,default:!1},backdrop:{type:[Boolean,String],default:!0},nokeyboard:{type:Boolean,default:!1},scroll:{type:Boolean,default:!1}},methods:{toggle(){requestAnimationFrame((()=>this._instance.toggle()))},show(){requestAnimationFrame((()=>this._instance.show()))},hide(){requestAnimationFrame((()=>this._instance.hide()))}},events:{show:Event,shown:Event,hide:Event,hidden:Event},init(s){s.addEventListener("show.bs.offcanvas",this.dispatchEvent.bind(this,"show")),s.addEventListener("shown.bs.offcanvas",this.dispatchEvent.bind(this,"shown")),s.addEventListener("hide.bs.offcanvas",this.dispatchEvent.bind(this,"hide")),s.addEventListener("hidden.bs.offcanvas",this.dispatchEvent.bind(this,"hidden")),s.addEventListener("show.bs.offcanvas",(()=>this.set("visible",!0))),s.addEventListener("hidden.bs.offcanvas",(()=>this.set("visible",!1))),s.classList.toggle("show",this.props.show),this.set("visible",this.props.show);let t=this.props.backdrop;"static"!=t&&(t="false"!=t),this._instance=new bootstrap.Offcanvas(s,{backdrop:t,keyboard:!this.props.nokeyboard,scroll:this.props.scroll})},destroy(){this._instance.dispose()},performUpdate(s){s.has("show")&&(this.$node.classList.toggle("show",this.props.show),this.set("visible",this.props.show))}}); +//# sourceMappingURL=dmxBootstrap5Offcanvas.js.map diff --git a/public/dmxAppConnect/dmxBootstrap5Offcanvas/dmxBootstrap5Offcanvas.js.map b/public/dmxAppConnect/dmxBootstrap5Offcanvas/dmxBootstrap5Offcanvas.js.map new file mode 100644 index 0000000..491de5d --- /dev/null +++ b/public/dmxAppConnect/dmxBootstrap5Offcanvas/dmxBootstrap5Offcanvas.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["components/offcanvas.js"],"names":["dmx","Component","initialData","visible","attributes","show","type","Boolean","default","backdrop","String","nokeyboard","scroll","methods","toggle","requestAnimationFrame","this","_instance","hide","events","Event","shown","hidden","init","node","addEventListener","dispatchEvent","bind","set","classList","props","bootstrap","Offcanvas","keyboard","destroy","dispose","performUpdate","updatedProps","has","$node"],"mappings":";;;;;;AAAAA,IAAAC,UAAA,gBAAA,CAEAC,YAAA,CACAC,SAAA,GAGAC,WAAA,CACAC,KAAA,CACAC,KAAAC,QACAC,SAAA,GAGAC,SAAA,CACAH,KAAA,CAAAC,QAAAG,QACAF,SAAA,GAGAG,WAAA,CACAL,KAAAC,QACAC,SAAA,GAGAI,OAAA,CACAN,KAAAC,QACAC,SAAA,IAIAK,QAAA,CACAC,SACAC,uBAAA,IAAAC,KAAAC,UAAAH,UACA,EAEAT,OACAU,uBAAA,IAAAC,KAAAC,UAAAZ,QACA,EAEAa,OACAH,uBAAA,IAAAC,KAAAC,UAAAC,QACA,GAGAC,OAAA,CACAd,KAAAe,MACAC,MAAAD,MACAF,KAAAE,MACAE,OAAAF,OAGAG,KAAAC,GACAA,EAAAC,iBAAA,oBAAAT,KAAAU,cAAAC,KAAAX,KAAA,SACAQ,EAAAC,iBAAA,qBAAAT,KAAAU,cAAAC,KAAAX,KAAA,UACAQ,EAAAC,iBAAA,oBAAAT,KAAAU,cAAAC,KAAAX,KAAA,SACAQ,EAAAC,iBAAA,sBAAAT,KAAAU,cAAAC,KAAAX,KAAA,WAEAQ,EAAAC,iBAAA,qBAAA,IAAAT,KAAAY,IAAA,WAAA,KACAJ,EAAAC,iBAAA,uBAAA,IAAAT,KAAAY,IAAA,WAAA,KAEAJ,EAAAK,UAAAf,OAAA,OAAAE,KAAAc,MAAAzB,MACAW,KAAAY,IAAA,UAAAZ,KAAAc,MAAAzB,MAEA,IAAAI,EAAAO,KAAAc,MAAArB,SACA,UAAAA,IACAA,EAAA,SAAAA,GAGAO,KAAAC,UAAA,IAAAc,UAAAC,UAAAR,EAAA,CACAf,SAAAA,EACAwB,UAAAjB,KAAAc,MAAAnB,WACAC,OAAAI,KAAAc,MAAAlB,QAEA,EAEAsB,UACAlB,KAAAC,UAAAkB,SACA,EAEAC,cAAAC,GACAA,EAAAC,IAAA,UACAtB,KAAAuB,MAAAV,UAAAf,OAAA,OAAAE,KAAAc,MAAAzB,MACAW,KAAAY,IAAA,UAAAZ,KAAAc,MAAAzB,MAEA","file":"dmxBootstrap5Offcanvas.js","sourcesContent":["dmx.Component('bs5-offcanvas', {\r\n\r\n initialData: {\r\n visible: false\r\n },\r\n\r\n attributes: {\r\n show: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n backdrop: {\r\n type: [Boolean, String],\r\n default: true\r\n },\r\n\r\n nokeyboard: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n scroll: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n methods: {\r\n toggle () {\r\n requestAnimationFrame(() => this._instance.toggle());\r\n },\r\n\r\n show () {\r\n requestAnimationFrame(() => this._instance.show());\r\n },\r\n\r\n hide () {\r\n requestAnimationFrame(() => this._instance.hide());\r\n }\r\n },\r\n\r\n events: {\r\n show: Event,\r\n shown: Event,\r\n hide: Event,\r\n hidden: Event\r\n },\r\n\r\n init (node) {\r\n node.addEventListener('show.bs.offcanvas', this.dispatchEvent.bind(this, 'show'));\r\n node.addEventListener('shown.bs.offcanvas', this.dispatchEvent.bind(this, 'shown'));\r\n node.addEventListener('hide.bs.offcanvas', this.dispatchEvent.bind(this, 'hide'));\r\n node.addEventListener('hidden.bs.offcanvas', this.dispatchEvent.bind(this, 'hidden'));\r\n\r\n node.addEventListener('show.bs.offcanvas', () => this.set('visible', true));\r\n node.addEventListener('hidden.bs.offcanvas', () => this.set('visible', false));\r\n\r\n node.classList.toggle('show', this.props.show);\r\n this.set('visible', this.props.show);\r\n\r\n let backdrop = this.props.backdrop;\r\n if (backdrop != 'static') {\r\n backdrop = backdrop != 'false';\r\n }\r\n\r\n this._instance = new bootstrap.Offcanvas(node, {\r\n backdrop: backdrop,\r\n keyboard: !this.props.nokeyboard,\r\n scroll: this.props.scroll\r\n });\r\n },\r\n\r\n destroy () {\r\n this._instance.dispose();\r\n },\r\n\r\n performUpdate (updatedProps) {\r\n if (updatedProps.has('show')) {\r\n this.$node.classList.toggle('show', this.props.show);\r\n this.set('visible', this.props.show);\r\n }\r\n },\r\n\r\n});"]} \ No newline at end of file diff --git a/public/dmxAppConnect/dmxSwiper/dmxSwiper.js b/public/dmxAppConnect/dmxSwiper/dmxSwiper.js new file mode 100644 index 0000000..babd911 --- /dev/null +++ b/public/dmxAppConnect/dmxSwiper/dmxSwiper.js @@ -0,0 +1,8 @@ +/*! + App Connect Swiper + Version: 2.0.0 + (c) 2024 Wappler.io + @build 2024-04-15 17:48:46 + */ +dmx.Component("swiper",{initialData:{index:0,total:0,isBeginning:!1,isEnd:!1},attributes:{vertical:{type:Boolean,default:!1},speed:{type:Number,default:300},autoHeight:{type:Boolean,default:!1},effect:{type:String,default:"slide"},initialSlide:{type:Number,default:0},spaceBetween:{type:Number,default:0},slidesPerView:{type:Number,default:1},slidesPerGroup:{type:Number,default:1},spaceBetweenSm:{type:Number,default:void 0},slidesPerViewSm:{type:Number,default:void 0},slidesPerGroupSm:{type:Number,default:void 0},spaceBetweenMd:{type:Number,default:void 0},slidesPerViewMd:{type:Number,default:void 0},slidesPerGroupMd:{type:Number,default:void 0},spaceBetweenLg:{type:Number,default:void 0},slidesPerViewLg:{type:Number,default:void 0},slidesPerGroupLg:{type:Number,default:void 0},spaceBetweenXl:{type:Number,default:void 0},slidesPerViewXl:{type:Number,default:void 0},slidesPerGroupXl:{type:Number,default:void 0},centeredSlides:{type:Boolean,default:!1},slidesOffsetBefore:{type:Number,default:0},slidesOffsetAfter:{type:Number,default:0},grabCursor:{type:Boolean,default:!1},freeMode:{type:Boolean,default:!1},freeModeSticky:{type:Boolean,default:!1},loop:{type:Boolean,default:!1},pagination:{type:String,default:void 0},navigation:{type:Boolean,default:!1},scrollbar:{type:Boolean,default:!1},autoplay:{type:Boolean,default:!1},parallax:{type:Boolean,default:!1},keyboard:{type:Boolean,default:!1},mousewheel:{type:Boolean,default:!1},observer:{type:Boolean,default:!1},dynamicBullets:{type:Boolean,default:!1},rewind:{type:Boolean,default:!1},hashNavigation:{type:Boolean,default:!1},watchState:{type:Boolean,default:!1},slides:{type:[Array,Object,Number],default:!1}},methods:{slideNext(e,t){this._swiper.slideNext(e,t)},slidePrev(e,t){this._swiper.slidePrev(e,t)},slideTo(e,t,s){this._swiper.slideTo(e,t,s)},slideToLoop(e,t,s){this._swiper.slideToLoop(e,t,s)},slideReset(e,t){this._swiper.slideReset(e,t)},slideToClosest(e,t){this._swiper.slideToClosest(e,t)},autoplayStart(){this._swiper.autoplay.start()},autoplayStop(){this._swiper.autoplay.stop()},update(){this._update()}},events:{change:Event,rendered:Event},init(e){this._dynamic=e.hasAttribute("dmx-bind:slides"),this._updateData=this._updateData.bind(this)},render(e){this._template=e.innerHTML,this._container=e,this._container.classList.add("swiper"),this._container.innerHTML="",this._wrapper=document.createElement("div"),this._wrapper.className="swiper-wrapper",this._pagination=document.createElement("div"),this._pagination.className="swiper-pagination",this._buttonPrev=document.createElement("div"),this._buttonPrev.className="swiper-button-prev",this._buttonNext=document.createElement("div"),this._buttonNext.className="swiper-button-next",this._scrollbar=document.createElement("div"),this._scrollbar.className="swiper-scrollbar",this._container.appendChild(this._wrapper),this.props.pagination&&this._container.appendChild(this._pagination),this.props.navigation&&(this._container.appendChild(this._buttonPrev),this._container.appendChild(this._buttonNext)),this.props.scrollbar&&this._container.appendChild(this._scrollbar),this._dynamic?this._renderChildren():(this._wrapper.innerHTML=this._template,this.$parse(this._wrapper)),this._update()},performUpdate(e){e.has("slides")&&this._renderChildren(),e.has("pagination")&&(this.props.pagination?this._container.appendChild(this._pagination):this._pagination.remove()),e.has("navigation")&&(this.props.navigation?(this._container.appendChild(this._buttonPrev),this._container.appendChild(this._buttonNext)):(this._buttonPrev.remove(),this._buttonNext.remove())),e.has("scrollbar")&&(this.props.scrollbar?this._container.appendChild(this._scrollbar):this._scrollbar.remove()),this._update()},destroy(){this._swiper&&this._swiper.destroy()},_renderChildren(){this._wrapper.innerHTML="",this.$destroyChildren();const e=dmx.repeatItems(this.props.slides);if(e.length){const t=document.createElement("div");t.innerHTML=this._template;const s=dmx.Component("repeat-item"),i=document.createDocumentFragment();for(let r=0;r{i.appendChild(e),a.$parse(e)})),this.children.push(a)}this._wrapper.appendChild(i)}},_update(){this._swiper&&this._swiper.destroy();const e={direction:this.props.vertical?"vertical":"horizontal",speed:this.props.speed,autoHeight:this.props.autoHeight,effect:this.props.effect,spaceBetween:this.props.spaceBetween,slidesPerView:this.props.slidesPerView,slidesPerGroup:this.props.slidesPerGroup,centeredSlides:this.props.centeredSlides,slidesOffsetBefore:this.props.slidesOffsetBefore,slidesOffsetAfter:this.props.slidesOffsetAfter,grabCursor:this.props.grabCursor,freeMode:{enabled:this.props.freeMode,sticky:this.props.freeModeSticky},loop:this.props.loop,loopFillGroupWithBlank:this.props.loopFillGroupWithBlank,pagination:{el:this.props.pagination?".swiper-pagination":null,type:this.props.pagination,clickable:!0,dynamicBullets:this.props.dynamicBullets},navigation:{prevEl:this.props.navigation?".swiper-button-prev":null,nextEl:this.props.navigation?".swiper-button-next":null},scrollbar:{el:this.props.scrollbar?".swiper-scrollbar":null,draggable:!0,snapOnRelease:!0},autoplay:this.props.autoplay,parallax:this.props.parallax,keyboard:this.props.keyboard,mousewheel:this.props.mousewheel,breakpointsInverse:!0,breakpoints:{},observer:this.props.observer,observeParents:this.props.observer,rewind:this.props.rewind,hashNavigation:{enabled:this.props.hashNavigation,watchState:this.props.watchState},initialSlide:this.props.initialSlide,eventsPrefix:""};this._spaceBetween=this.props.spaceBetween,this._slidesPerView=this.props.slidesPerView,this._slidesPerGroup=this.props.slidesPerGroup,e.breakpoints[576]=this._getBreakpointProps("Sm"),e.breakpoints[768]=this._getBreakpointProps("Md"),e.breakpoints[992]=this._getBreakpointProps("Lg"),e.breakpoints[1200]=this._getBreakpointProps("Xl"),window.__WAPPLER__&&(e.simulateTouch=!1),this._swiper=new Swiper(this._container,e),this._swiper.on("realIndexChange",this._updateData),this._swiper.on("observerUpdate",this._updateData),this._swiper.on("slideChange",this._updateData),this._swiper.on("slideChange",this.dispatchEvent.bind(this,"change")),this._updateData(),this.dispatchEvent("rendered"),requestAnimationFrame((()=>{this._swiper.updateSize()}))},_getBreakpointProps(e){return null!=this.props["spaceBetween"+e]&&(this._spaceBetween=this.props["spaceBetween"+e]),null!=this.props["slidesPerView"+e]&&(this._slidesPerView=this.props["slidesPerView"+e]),null!=this.props["slidesPerGroup"+e]&&(this._slidesPerGroup=this.props["slidesPerGroup"+e]),{spaceBetween:this._spaceBetween,slidesPerView:this._slidesPerView,slidesPerGroup:this._slidesPerGroup}},_updateData:function(){if(this._swiper&&!this._swiper.destroyed){var e=this._swiper.slides.length;this.set("index",e>0?this._swiper.realIndex%e:0),this.set("total",e),this.set("isBeginning",this._swiper.isBeginning),this.set("isEnd",this._swiper.isEnd)}}}); +//# sourceMappingURL=dmxSwiper.js.map diff --git a/public/dmxAppConnect/dmxSwiper/dmxSwiper.js.map b/public/dmxAppConnect/dmxSwiper/dmxSwiper.js.map new file mode 100644 index 0000000..2073239 --- /dev/null +++ b/public/dmxAppConnect/dmxSwiper/dmxSwiper.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["components/swiper.js"],"names":["dmx","Component","initialData","index","total","isBeginning","isEnd","attributes","vertical","type","Boolean","default","speed","Number","autoHeight","effect","String","initialSlide","spaceBetween","slidesPerView","slidesPerGroup","spaceBetweenSm","undefined","slidesPerViewSm","slidesPerGroupSm","spaceBetweenMd","slidesPerViewMd","slidesPerGroupMd","spaceBetweenLg","slidesPerViewLg","slidesPerGroupLg","spaceBetweenXl","slidesPerViewXl","slidesPerGroupXl","centeredSlides","slidesOffsetBefore","slidesOffsetAfter","grabCursor","freeMode","freeModeSticky","loop","pagination","navigation","scrollbar","autoplay","parallax","keyboard","mousewheel","observer","dynamicBullets","rewind","hashNavigation","watchState","slides","Array","Object","methods","slideNext","runCallbacks","this","_swiper","slidePrev","slideTo","slideToLoop","slideReset","slideToClosest","autoplayStart","start","autoplayStop","stop","update","_update","events","change","Event","rendered","init","node","_dynamic","hasAttribute","_updateData","bind","render","_template","innerHTML","_container","classList","add","_wrapper","document","createElement","className","_pagination","_buttonPrev","_buttonNext","_scrollbar","appendChild","props","_renderChildren","$parse","performUpdate","updatedProps","has","remove","destroy","$destroyChildren","repeatItems","length","template","RepeatItem","fragment","createDocumentFragment","i","child","cloneNode","$nodes","forEach","children","push","params","direction","enabled","sticky","loopFillGroupWithBlank","el","clickable","prevEl","nextEl","draggable","snapOnRelease","breakpointsInverse","breakpoints","observeParents","eventsPrefix","_spaceBetween","_slidesPerView","_slidesPerGroup","_getBreakpointProps","window","__WAPPLER__","simulateTouch","Swiper","on","dispatchEvent","requestAnimationFrame","updateSize","suffix","destroyed","set","realIndex"],"mappings":";;;;;;AAAAA,IAAAC,UAAA,SAAA,CAEAC,YAAA,CACAC,MAAA,EACAC,MAAA,EACAC,aAAA,EACAC,OAAA,GAGAC,WAAA,CAGAC,SAAA,CACAC,KAAAC,QACAC,SAAA,GAGAC,MAAA,CACAH,KAAAI,OACAF,QAAA,KAGAG,WAAA,CACAL,KAAAC,QACAC,SAAA,GAGAI,OAAA,CACAN,KAAAO,OACAL,QAAA,SAGAM,aAAA,CACAR,KAAAI,OACAF,QAAA,GAIAO,aAAA,CACAT,KAAAI,OACAF,QAAA,GAGAQ,cAAA,CACAV,KAAAI,OACAF,QAAA,GAGAS,eAAA,CACAX,KAAAI,OACAF,QAAA,GAGAU,eAAA,CACAZ,KAAAI,OACAF,aAAAW,GAGAC,gBAAA,CACAd,KAAAI,OACAF,aAAAW,GAGAE,iBAAA,CACAf,KAAAI,OACAF,aAAAW,GAGAG,eAAA,CACAhB,KAAAI,OACAF,aAAAW,GAGAI,gBAAA,CACAjB,KAAAI,OACAF,aAAAW,GAGAK,iBAAA,CACAlB,KAAAI,OACAF,aAAAW,GAGAM,eAAA,CACAnB,KAAAI,OACAF,aAAAW,GAGAO,gBAAA,CACApB,KAAAI,OACAF,aAAAW,GAGAQ,iBAAA,CACArB,KAAAI,OACAF,aAAAW,GAGAS,eAAA,CACAtB,KAAAI,OACAF,aAAAW,GAGAU,gBAAA,CACAvB,KAAAI,OACAF,aAAAW,GAGAW,iBAAA,CACAxB,KAAAI,OACAF,aAAAW,GAGAY,eAAA,CACAzB,KAAAC,QACAC,SAAA,GAGAwB,mBAAA,CACA1B,KAAAI,OACAF,QAAA,GAGAyB,kBAAA,CACA3B,KAAAI,OACAF,QAAA,GAKA0B,WAAA,CACA5B,KAAAC,QACAC,SAAA,GAKA2B,SAAA,CACA7B,KAAAC,QACAC,SAAA,GAGA4B,eAAA,CACA9B,KAAAC,QACAC,SAAA,GAKA6B,KAAA,CACA/B,KAAAC,QACAC,SAAA,GAKA8B,WAAA,CACAhC,KAAAO,OACAL,aAAAW,GAGAoB,WAAA,CACAjC,KAAAC,QACAC,SAAA,GAGAgC,UAAA,CACAlC,KAAAC,QACAC,SAAA,GAGAiC,SAAA,CACAnC,KAAAC,QACAC,SAAA,GAGAkC,SAAA,CACApC,KAAAC,QACAC,SAAA,GAGAmC,SAAA,CACArC,KAAAC,QACAC,SAAA,GAGAoC,WAAA,CACAtC,KAAAC,QACAC,SAAA,GAGAqC,SAAA,CACAvC,KAAAC,QACAC,SAAA,GAGAsC,eAAA,CACAxC,KAAAC,QACAC,SAAA,GAGAuC,OAAA,CACAzC,KAAAC,QACAC,SAAA,GAGAwC,eAAA,CACA1C,KAAAC,QACAC,SAAA,GAGAyC,WAAA,CACA3C,KAAAC,QACAC,SAAA,GAKA0C,OAAA,CACA5C,KAAA,CAAA6C,MAAAC,OAAA1C,QACAF,SAAA,IAIA6C,QAAA,CACAC,UAAA7C,EAAA8C,GACAC,KAAAC,QAAAH,UAAA7C,EAAA8C,EACA,EAEAG,UAAAjD,EAAA8C,GACAC,KAAAC,QAAAC,UAAAjD,EAAA8C,EACA,EAEAI,QAAA3D,EAAAS,EAAA8C,GACAC,KAAAC,QAAAE,QAAA3D,EAAAS,EAAA8C,EACA,EAEAK,YAAA5D,EAAAS,EAAA8C,GACAC,KAAAC,QAAAG,YAAA5D,EAAAS,EAAA8C,EACA,EAEAM,WAAApD,EAAA8C,GACAC,KAAAC,QAAAI,WAAApD,EAAA8C,EACA,EAEAO,eAAArD,EAAA8C,GACAC,KAAAC,QAAAK,eAAArD,EAAA8C,EACA,EAEAQ,gBACAP,KAAAC,QAAAhB,SAAAuB,OACA,EAEAC,eACAT,KAAAC,QAAAhB,SAAAyB,MACA,EAEAC,SACAX,KAAAY,SACA,GAGAC,OAAA,CACAC,OAAAC,MACAC,SAAAD,OAGAE,KAAAC,GACAlB,KAAAmB,SAAAD,EAAAE,aAAA,mBACApB,KAAAqB,YAAArB,KAAAqB,YAAAC,KAAAtB,KACA,EAEAuB,OAAAL,GACAlB,KAAAwB,UAAAN,EAAAO,UAEAzB,KAAA0B,WAAAR,EACAlB,KAAA0B,WAAAC,UAAAC,IAAA,UACA5B,KAAA0B,WAAAD,UAAA,GAEAzB,KAAA6B,SAAAC,SAAAC,cAAA,OACA/B,KAAA6B,SAAAG,UAAA,iBAEAhC,KAAAiC,YAAAH,SAAAC,cAAA,OACA/B,KAAAiC,YAAAD,UAAA,oBAEAhC,KAAAkC,YAAAJ,SAAAC,cAAA,OACA/B,KAAAkC,YAAAF,UAAA,qBAEAhC,KAAAmC,YAAAL,SAAAC,cAAA,OACA/B,KAAAmC,YAAAH,UAAA,qBAEAhC,KAAAoC,WAAAN,SAAAC,cAAA,OACA/B,KAAAoC,WAAAJ,UAAA,mBAEAhC,KAAA0B,WAAAW,YAAArC,KAAA6B,UAEA7B,KAAAsC,MAAAxD,YACAkB,KAAA0B,WAAAW,YAAArC,KAAAiC,aAGAjC,KAAAsC,MAAAvD,aACAiB,KAAA0B,WAAAW,YAAArC,KAAAkC,aACAlC,KAAA0B,WAAAW,YAAArC,KAAAmC,cAGAnC,KAAAsC,MAAAtD,WACAgB,KAAA0B,WAAAW,YAAArC,KAAAoC,YAGApC,KAAAmB,SAIAnB,KAAAuC,mBAHAvC,KAAA6B,SAAAJ,UAAAzB,KAAAwB,UACAxB,KAAAwC,OAAAxC,KAAA6B,WAKA7B,KAAAY,SACA,EAEA6B,cAAAC,GACAA,EAAAC,IAAA,WACA3C,KAAAuC,kBAGAG,EAAAC,IAAA,gBACA3C,KAAAsC,MAAAxD,WACAkB,KAAA0B,WAAAW,YAAArC,KAAAiC,aAEAjC,KAAAiC,YAAAW,UAIAF,EAAAC,IAAA,gBACA3C,KAAAsC,MAAAvD,YACAiB,KAAA0B,WAAAW,YAAArC,KAAAkC,aACAlC,KAAA0B,WAAAW,YAAArC,KAAAmC,eAEAnC,KAAAkC,YAAAU,SACA5C,KAAAmC,YAAAS,WAIAF,EAAAC,IAAA,eACA3C,KAAAsC,MAAAtD,UACAgB,KAAA0B,WAAAW,YAAArC,KAAAoC,YAEApC,KAAAoC,WAAAQ,UAIA5C,KAAAY,SACA,EAEAiC,UACA7C,KAAAC,SACAD,KAAAC,QAAA4C,SAEA,EAEAN,kBACAvC,KAAA6B,SAAAJ,UAAA,GACAzB,KAAA8C,mBAEA,MAAApD,EAAArD,IAAA0G,YAAA/C,KAAAsC,MAAA5C,QAEA,GAAAA,EAAAsD,OAAA,CACA,MAAAC,EAAAnB,SAAAC,cAAA,OACAkB,EAAAxB,UAAAzB,KAAAwB,UAEA,MAAA0B,EAAA7G,IAAAC,UAAA,eACA6G,EAAArB,SAAAsB,yBAEA,IAAA,IAAAC,EAAA,EAAAA,EAAA3D,EAAAsD,OAAAK,IAAA,CACA,MAAAC,EAAA,IAAAJ,EAAAD,EAAAM,WAAA,GAAAvD,KAAAN,EAAA2D,IACAC,EAAAE,OAAAC,SAAAvC,IACAiC,EAAAd,YAAAnB,GACAoC,EAAAd,OAAAtB,EAAA,IAEAlB,KAAA0D,SAAAC,KAAAL,EACA,CAEAtD,KAAA6B,SAAAQ,YAAAc,EACA,CACA,EAEAvC,UACAZ,KAAAC,SAAAD,KAAAC,QAAA4C,UAEA,MAAAe,EAAA,CACAC,UAAA7D,KAAAsC,MAAAzF,SAAA,WAAA,aACAI,MAAA+C,KAAAsC,MAAArF,MACAE,WAAA6C,KAAAsC,MAAAnF,WACAC,OAAA4C,KAAAsC,MAAAlF,OACAG,aAAAyC,KAAAsC,MAAA/E,aACAC,cAAAwC,KAAAsC,MAAA9E,cACAC,eAAAuC,KAAAsC,MAAA7E,eACAc,eAAAyB,KAAAsC,MAAA/D,eACAC,mBAAAwB,KAAAsC,MAAA9D,mBACAC,kBAAAuB,KAAAsC,MAAA7D,kBACAC,WAAAsB,KAAAsC,MAAA5D,WACAC,SAAA,CACAmF,QAAA9D,KAAAsC,MAAA3D,SACAoF,OAAA/D,KAAAsC,MAAA1D,gBAEAC,KAAAmB,KAAAsC,MAAAzD,KACAmF,uBAAAhE,KAAAsC,MAAA0B,uBACAlF,WAAA,CACAmF,GAAAjE,KAAAsC,MAAAxD,WAAA,qBAAA,KACAhC,KAAAkD,KAAAsC,MAAAxD,WACAoF,WAAA,EACA5E,eAAAU,KAAAsC,MAAAhD,gBAEAP,WAAA,CACAoF,OAAAnE,KAAAsC,MAAAvD,WAAA,sBAAA,KACAqF,OAAApE,KAAAsC,MAAAvD,WAAA,sBAAA,MAEAC,UAAA,CACAiF,GAAAjE,KAAAsC,MAAAtD,UAAA,oBAAA,KACAqF,WAAA,EACAC,eAAA,GAEArF,SAAAe,KAAAsC,MAAArD,SACAC,SAAAc,KAAAsC,MAAApD,SACAC,SAAAa,KAAAsC,MAAAnD,SACAC,WAAAY,KAAAsC,MAAAlD,WACAmF,oBAAA,EACAC,YAAA,CAAA,EACAnF,SAAAW,KAAAsC,MAAAjD,SACAoF,eAAAzE,KAAAsC,MAAAjD,SACAE,OAAAS,KAAAsC,MAAA/C,OACAC,eAAA,CACAsE,QAAA9D,KAAAsC,MAAA9C,eACAC,WAAAO,KAAAsC,MAAA7C,YAEAnC,aAAA0C,KAAAsC,MAAAhF,aACAoH,aAAA,IAGA1E,KAAA2E,cAAA3E,KAAAsC,MAAA/E,aACAyC,KAAA4E,eAAA5E,KAAAsC,MAAA9E,cACAwC,KAAA6E,gBAAA7E,KAAAsC,MAAA7E,eAEAmG,EAAAY,YAAA,KAAAxE,KAAA8E,oBAAA,MACAlB,EAAAY,YAAA,KAAAxE,KAAA8E,oBAAA,MACAlB,EAAAY,YAAA,KAAAxE,KAAA8E,oBAAA,MACAlB,EAAAY,YAAA,MAAAxE,KAAA8E,oBAAA,MAEAC,OAAAC,cACApB,EAAAqB,eAAA,GAGAjF,KAAAC,QAAA,IAAAiF,OAAAlF,KAAA0B,WAAAkC,GACA5D,KAAAC,QAAAkF,GAAA,kBAAAnF,KAAAqB,aACArB,KAAAC,QAAAkF,GAAA,iBAAAnF,KAAAqB,aACArB,KAAAC,QAAAkF,GAAA,cAAAnF,KAAAqB,aACArB,KAAAC,QAAAkF,GAAA,cAAAnF,KAAAoF,cAAA9D,KAAAtB,KAAA,WAEAA,KAAAqB,cAEArB,KAAAoF,cAAA,YAEAC,uBAAA,KACArF,KAAAC,QAAAqF,YAAA,GAEA,EAEAR,oBAAAS,GAaA,OAZA,MAAAvF,KAAAsC,MAAA,eAAAiD,KACAvF,KAAA2E,cAAA3E,KAAAsC,MAAA,eAAAiD,IAGA,MAAAvF,KAAAsC,MAAA,gBAAAiD,KACAvF,KAAA4E,eAAA5E,KAAAsC,MAAA,gBAAAiD,IAGA,MAAAvF,KAAAsC,MAAA,iBAAAiD,KACAvF,KAAA6E,gBAAA7E,KAAAsC,MAAA,iBAAAiD,IAGA,CACAhI,aAAAyC,KAAA2E,cACAnH,cAAAwC,KAAA4E,eACAnH,eAAAuC,KAAA6E,gBAEA,EAEAxD,YAAA,WACA,GAAArB,KAAAC,UAAAD,KAAAC,QAAAuF,UAAA,CACA,IAAA/I,EAAAuD,KAAAC,QAAAP,OAAAsD,OAEAhD,KAAAyF,IAAA,QAAAhJ,EAAA,EAAAuD,KAAAC,QAAAyF,UAAAjJ,EAAA,GACAuD,KAAAyF,IAAA,QAAAhJ,GACAuD,KAAAyF,IAAA,cAAAzF,KAAAC,QAAAvD,aACAsD,KAAAyF,IAAA,QAAAzF,KAAAC,QAAAtD,MACA,CACA","file":"dmxSwiper.js","sourcesContent":["dmx.Component('swiper', {\r\n\r\n initialData: {\r\n index: 0,\r\n total: 0,\r\n isBeginning: false,\r\n isEnd: false,\r\n },\r\n\r\n attributes: {\r\n // General\r\n\r\n vertical: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n speed: {\r\n type: Number,\r\n default: 300, // Duration of transition between slides (in ms)\r\n },\r\n\r\n autoHeight: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n effect: {\r\n type: String,\r\n default: 'slide', // slide, fade, cube, coverflow, flip, cards, creative\r\n },\r\n\r\n initialSlide: {\r\n type: Number,\r\n default: 0,\r\n },\r\n // Slides Grid\r\n\r\n spaceBetween: {\r\n type: Number,\r\n default: 0,\r\n },\r\n\r\n slidesPerView: {\r\n type: Number,\r\n default: 1,\r\n },\r\n\r\n slidesPerGroup: {\r\n type: Number,\r\n default: 1,\r\n },\r\n\r\n spaceBetweenSm: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n slidesPerViewSm: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n slidesPerGroupSm: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n spaceBetweenMd: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n slidesPerViewMd: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n slidesPerGroupMd: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n spaceBetweenLg: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n slidesPerViewLg: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n slidesPerGroupLg: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n spaceBetweenXl: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n slidesPerViewXl: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n slidesPerGroupXl: {\r\n type: Number,\r\n default: undefined,\r\n },\r\n\r\n centeredSlides: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n slidesOffsetBefore: {\r\n type: Number,\r\n default: 0,\r\n },\r\n\r\n slidesOffsetAfter: {\r\n type: Number,\r\n default: 0,\r\n },\r\n\r\n // Grab Cursor\r\n\r\n grabCursor: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n // Freemode\r\n\r\n freeMode: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n freeModeSticky: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n // Loop\r\n\r\n loop: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n // Components\r\n\r\n pagination: {\r\n type: String,\r\n default: undefined, // bullets, fraction, progressbar\r\n },\r\n\r\n navigation: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n scrollbar: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n autoplay: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n parallax: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n keyboard: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n mousewheel: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n observer: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n dynamicBullets: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n rewind: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n hashNavigation: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n watchState: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n\r\n // Dynamic Data\r\n\r\n slides: {\r\n type: [Array, Object, Number],\r\n default: false,\r\n },\r\n },\r\n\r\n methods: {\r\n slideNext (speed, runCallbacks) {\r\n this._swiper.slideNext(speed, runCallbacks);\r\n },\r\n\r\n slidePrev (speed, runCallbacks) {\r\n this._swiper.slidePrev(speed, runCallbacks);\r\n },\r\n\r\n slideTo (index, speed, runCallbacks) {\r\n this._swiper.slideTo(index, speed, runCallbacks);\r\n },\r\n\r\n slideToLoop (index, speed, runCallbacks) {\r\n this._swiper.slideToLoop(index, speed, runCallbacks);\r\n },\r\n\r\n slideReset (speed, runCallbacks) {\r\n this._swiper.slideReset(speed, runCallbacks);\r\n },\r\n\r\n slideToClosest (speed, runCallbacks) {\r\n this._swiper.slideToClosest(speed, runCallbacks);\r\n },\r\n\r\n autoplayStart () {\r\n this._swiper.autoplay.start();\r\n },\r\n\r\n autoplayStop () {\r\n this._swiper.autoplay.stop();\r\n },\r\n\r\n update () {\r\n this._update();\r\n },\r\n },\r\n\r\n events: {\r\n change: Event,\r\n rendered: Event,\r\n },\r\n\r\n init (node) {\r\n this._dynamic = node.hasAttribute('dmx-bind:slides');\r\n this._updateData = this._updateData.bind(this);\r\n },\r\n\r\n render (node) {\r\n this._template = node.innerHTML;\r\n\r\n this._container = node;\r\n this._container.classList.add('swiper');\r\n this._container.innerHTML = '';\r\n\r\n this._wrapper = document.createElement('div');\r\n this._wrapper.className = 'swiper-wrapper';\r\n\r\n this._pagination = document.createElement('div');\r\n this._pagination.className = 'swiper-pagination';\r\n\r\n this._buttonPrev = document.createElement('div');\r\n this._buttonPrev.className = 'swiper-button-prev';\r\n\r\n this._buttonNext = document.createElement('div');\r\n this._buttonNext.className = 'swiper-button-next';\r\n\r\n this._scrollbar = document.createElement('div');\r\n this._scrollbar.className = 'swiper-scrollbar';\r\n\r\n this._container.appendChild(this._wrapper);\r\n\r\n if (this.props.pagination) {\r\n this._container.appendChild(this._pagination);\r\n }\r\n\r\n if (this.props.navigation) {\r\n this._container.appendChild(this._buttonPrev);\r\n this._container.appendChild(this._buttonNext);\r\n }\r\n\r\n if (this.props.scrollbar) {\r\n this._container.appendChild(this._scrollbar);\r\n }\r\n\r\n if (!this._dynamic) {\r\n this._wrapper.innerHTML = this._template;\r\n this.$parse(this._wrapper);\r\n } else {\r\n this._renderChildren();\r\n }\r\n\r\n this._update();\r\n },\r\n\r\n performUpdate (updatedProps) {\r\n if (updatedProps.has('slides')) {\r\n this._renderChildren();\r\n }\r\n\r\n if (updatedProps.has('pagination')) {\r\n if (this.props.pagination) {\r\n this._container.appendChild(this._pagination);\r\n } else {\r\n this._pagination.remove();\r\n }\r\n }\r\n\r\n if (updatedProps.has('navigation')) {\r\n if (this.props.navigation) {\r\n this._container.appendChild(this._buttonPrev);\r\n this._container.appendChild(this._buttonNext);\r\n } else {\r\n this._buttonPrev.remove();\r\n this._buttonNext.remove();\r\n }\r\n }\r\n\r\n if (updatedProps.has('scrollbar')) {\r\n if (this.props.scrollbar) {\r\n this._container.appendChild(this._scrollbar);\r\n } else {\r\n this._scrollbar.remove();\r\n }\r\n }\r\n\r\n this._update();\r\n },\r\n\r\n destroy () {\r\n if (this._swiper) {\r\n this._swiper.destroy();\r\n }\r\n },\r\n\r\n _renderChildren () {\r\n this._wrapper.innerHTML = '';\r\n this.$destroyChildren();\r\n\r\n const slides = dmx.repeatItems(this.props.slides);\r\n\r\n if (slides.length) {\r\n const template = document.createElement('div');\r\n template.innerHTML = this._template;\r\n\r\n const RepeatItem = dmx.Component('repeat-item');\r\n const fragment = document.createDocumentFragment();\r\n\r\n for (let i = 0; i < slides.length; i++) {\r\n const child = new RepeatItem(template.cloneNode(true), this, slides[i]);\r\n child.$nodes.forEach(node => {\r\n fragment.appendChild(node);\r\n child.$parse(node);\r\n });\r\n this.children.push(child);\r\n }\r\n\r\n this._wrapper.appendChild(fragment);\r\n }\r\n },\r\n\r\n _update () {\r\n if (this._swiper) this._swiper.destroy();\r\n\r\n const params = {\r\n direction: this.props.vertical ? 'vertical' : 'horizontal',\r\n speed: this.props.speed,\r\n autoHeight: this.props.autoHeight,\r\n effect: this.props.effect,\r\n spaceBetween: this.props.spaceBetween,\r\n slidesPerView: this.props.slidesPerView,\r\n slidesPerGroup: this.props.slidesPerGroup,\r\n centeredSlides: this.props.centeredSlides,\r\n slidesOffsetBefore: this.props.slidesOffsetBefore,\r\n slidesOffsetAfter: this.props.slidesOffsetAfter,\r\n grabCursor: this.props.grabCursor,\r\n freeMode: {\r\n enabled: this.props.freeMode,\r\n sticky: this.props.freeModeSticky,\r\n },\r\n loop: this.props.loop,\r\n loopFillGroupWithBlank: this.props.loopFillGroupWithBlank,\r\n pagination: {\r\n el: this.props.pagination ? '.swiper-pagination' : null,\r\n type: this.props.pagination,\r\n clickable: true,\r\n dynamicBullets: this.props.dynamicBullets,\r\n },\r\n navigation: {\r\n prevEl: this.props.navigation ? '.swiper-button-prev' : null,\r\n nextEl: this.props.navigation ? '.swiper-button-next' : null,\r\n },\r\n scrollbar: {\r\n el: this.props.scrollbar ? '.swiper-scrollbar' : null,\r\n draggable: true,\r\n snapOnRelease: true,\r\n },\r\n autoplay: this.props.autoplay,\r\n parallax: this.props.parallax,\r\n keyboard: this.props.keyboard,\r\n mousewheel: this.props.mousewheel,\r\n breakpointsInverse: true,\r\n breakpoints: {},\r\n observer: this.props.observer,\r\n observeParents: this.props.observer,\r\n rewind: this.props.rewind,\r\n hashNavigation: {\r\n enabled: this.props.hashNavigation,\r\n watchState: this.props.watchState,\r\n },\r\n initialSlide: this.props.initialSlide,\r\n eventsPrefix: '',\r\n };\r\n\r\n this._spaceBetween = this.props.spaceBetween;\r\n this._slidesPerView = this.props.slidesPerView;\r\n this._slidesPerGroup = this.props.slidesPerGroup;\r\n\r\n params.breakpoints[576] = this._getBreakpointProps('Sm');\r\n params.breakpoints[768] = this._getBreakpointProps('Md');\r\n params.breakpoints[992] = this._getBreakpointProps('Lg');\r\n params.breakpoints[1200] = this._getBreakpointProps('Xl');\r\n\r\n if (window.__WAPPLER__) {\r\n params.simulateTouch = false;\r\n }\r\n\r\n this._swiper = new Swiper(this._container, params);\r\n this._swiper.on('realIndexChange', this._updateData);\r\n this._swiper.on('observerUpdate', this._updateData);\r\n this._swiper.on('slideChange', this._updateData);\r\n this._swiper.on('slideChange', this.dispatchEvent.bind(this, 'change'));\r\n \r\n this._updateData();\r\n\r\n this.dispatchEvent('rendered');\r\n\r\n requestAnimationFrame(() => {\r\n this._swiper.updateSize();\r\n });\r\n },\r\n\r\n _getBreakpointProps (suffix) {\r\n if (this.props['spaceBetween' + suffix] != null) {\r\n this._spaceBetween = this.props['spaceBetween' + suffix];\r\n }\r\n\r\n if (this.props['slidesPerView' + suffix] != null) {\r\n this._slidesPerView = this.props['slidesPerView' + suffix];\r\n }\r\n\r\n if (this.props['slidesPerGroup' + suffix] != null) {\r\n this._slidesPerGroup = this.props['slidesPerGroup' + suffix];\r\n }\r\n\r\n return {\r\n spaceBetween: this._spaceBetween,\r\n slidesPerView: this._slidesPerView,\r\n slidesPerGroup: this._slidesPerGroup,\r\n };\r\n },\r\n\r\n _updateData: function () {\r\n if (this._swiper && !this._swiper.destroyed) {\r\n var total = this._swiper.slides.length;\r\n\r\n this.set('index', total > 0 ? this._swiper.realIndex % total : 0);\r\n this.set('total', total);\r\n this.set('isBeginning', this._swiper.isBeginning);\r\n this.set('isEnd', this._swiper.isEnd);\r\n }\r\n },\r\n});\r\n"]} \ No newline at end of file diff --git a/public/dmxAppConnect/dmxSwiper/swiper.min.css b/public/dmxAppConnect/dmxSwiper/swiper.min.css new file mode 100644 index 0000000..519ed77 --- /dev/null +++ b/public/dmxAppConnect/dmxSwiper/swiper.min.css @@ -0,0 +1,13 @@ +/** + * Swiper 11.0.5 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2023 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 22, 2023 + */ + +@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/public/dmxAppConnect/dmxSwiper/swiper.min.js b/public/dmxAppConnect/dmxSwiper/swiper.min.js new file mode 100644 index 0000000..436b921 --- /dev/null +++ b/public/dmxAppConnect/dmxSwiper/swiper.min.js @@ -0,0 +1,14 @@ +/** + * Swiper 11.0.5 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2023 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 22, 2023 + */ + +var Swiper=function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function l(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function o(){return Date.now()}function d(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function c(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let a=1;at.indexOf(e)<0));for(let t=0,a=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function g(e){try{return void console.warn(e)}catch(e){}}function v(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:n(t)),s}function w(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function b(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function y(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function E(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function x(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function S(e,t,s){const a=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let T,M,C;function P(){return T||(T=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),T}function L(e){return void 0===e&&(e={}),M||(M=function(e){let{userAgent:t}=void 0===e?{}:e;const s=P(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),M}function A(){return C||(C=function(){const e=r();let t=!1;function s(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(s()){const s=String(e.navigator.userAgent);if(s.includes("Version/")){const[e,a]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&a<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),C}var I={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const z=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},$=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},k=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+a+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&$(e,s)}))}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(tr)&&$(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a=0?x=parseFloat(x.replace("%",""))/100*r:"string"==typeof x&&(x=parseFloat(x)),e.virtualSize=-x,c.forEach((e=>{n?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(u(a,"--swiper-centered-offset-before",""),u(a,"--swiper-centered-offset-after",""));const P=s.grid&&s.grid.rows>1&&e.grid;let L;P?e.grid.initSlides(c):e.grid&&e.grid.unsetSlides();const A="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let a=0;a1&&m.push(e.virtualSize-r)}if(o&&s.loop){const t=g[0]+x;if(s.slidesPerGroup>1){const a=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),i=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${x}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(x||0)})),e-=x;const t=e-r;m=m.map((e=>e<=0?-v:e>t?t+w:e))}if(s.centerInsufficientSlides){let e=0;if(g.forEach((t=>{e+=t+(x||0)})),e-=x,e{m[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:m,slidesGrid:h,slidesSizesGrid:g}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){u(a,"--swiper-centered-offset-before",-m[0]+"px"),u(a,"--swiper-centered-offset-after",e.size/2-g[g.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),m.length!==y&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==E&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(o||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,a=e.el.classList.contains(t);p<=s.maxBackfaceHiddenSlides?a||e.el.classList.add(t):a&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a{e.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];let l=s.spaceBetween;"string"==typeof l&&l.indexOf("%")>=0?l=parseFloat(l.replace("%",""))/100*t.size:"string"==typeof l&&(l=parseFloat(l));for(let e=0;e=0&&u<=t.size-t.slidesSizesGrid[e];(u>=0&&u1&&m<=t.size||u<=0&&m>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),a[e].classList.add(s.slideVisibleClass)),h&&a[e].classList.add(s.slideFullyVisibleClass),o.progress=i?-c:c,o.originalProgress=i?-p:p}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e.grid&&s.grid&&s.grid.rows>1,l=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let o,d,c;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=l(`[data-swiper-slide-index="${t}"]`)}else o=l(`[data-swiper-slide-index="${i}"]`);else n?(o=t.filter((e=>e.column===i))[0],c=t.filter((e=>e.column===i+1))[0],d=t.filter((e=>e.column===i-1))[0]):o=t[i];o&&(o.classList.add(s.slideActiveClass),n?(c&&c.classList.add(s.slideNextClass),d&&d.classList.add(s.slidePrevClass)):(c=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),c&&c.classList.add(s.slideNextClass),d=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]),d&&d.classList.add(s.slidePrevClass))),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r&&!t.params.loop)return void(o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")));if(d===r&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&i.grid&&i.grid.rows>1;let u;if(t.virtual&&i.virtual.enabled&&i.loop)u=c(d);else if(p){const e=t.slides.filter((e=>e.column===d))[0];let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/i.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:u,previousIndex:r,activeIndex:d}),t.initialized&&k(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(n!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,a=s.params;let i=e.closest(`.${a.slideClass}, swiper-slide`);!i&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!i&&e.matches&&e.matches(`.${a.slideClass}, swiper-slide`)&&(i=e)}));let r,n=!1;if(i)for(let e=0;eo?o:a&&en?"next":r=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&(u?w>r.translate&&w>r.minTranslate():wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this,r=i.grid&&i.params.grid&&i.params.grid.rows>1;let n=e;if(i.params.loop)if(i.virtual&&i.params.virtual.enabled)n+=i.virtual.slidesBefore;else{let e;if(r){const t=n*i.params.grid.rows;e=i.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=i.getSlideIndexByData(n);const t=r?Math.ceil(i.slides.length/i.params.grid.rows):i.slides.length,{centeredSlides:s}=i.params;let a=i.params.slidesPerView;"auto"===a?a=i.slidesPerViewDynamic():(a=Math.ceil(parseFloat(i.params.slidesPerView,10)),s&&a%2==0&&(a+=1));let l=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else n=i.getSlideIndexByData(n)}return requestAnimationFrame((()=>{i.slideTo(n,t,s,a)})),i},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i)return a;let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex{a.slideTo(a.activeIndex+o,e,t,s)})),!0}return r.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{params:i,snapGrid:r,slidesGrid:n,rtlTranslate:l,enabled:o,animating:d}=a;if(!o)return a;const c=a.virtual&&i.virtual.enabled;if(i.loop){if(d&&!c&&i.loopPreventsSliding)return!1;a.loopFix({direction:"prev"}),a._clientLeft=a.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(l?a.translate:-a.translate),m=r.map((e=>p(e)));let h=r[m.indexOf(u)-1];if(void 0===h&&i.cssMode){let e;r.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(h=r[e>0?e-1:e])}let f=0;if(void 0!==h&&(f=n.indexOf(h),f<0&&(f=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(f=f-a.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return i.loop&&0===a.activeIndex&&i.cssMode?(requestAnimationFrame((()=>{a.slideTo(f,e,t,s)})),!0):a.slideTo(f,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;const n=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=e.getSlideIndex(f(s,`${n}[data-swiper-slide-index="${i}"]`)[0]),l((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=e.getSlideIndex(f(s,`${n}[data-swiper-slide-index="${i}"]`)[0]),l((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var H={loopCreate:function(e){const t=this,{params:s,slidesEl:a}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;const i=()=>{f(a,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},r=t.grid&&s.grid&&s.grid.rows>1,n=s.slidesPerGroup*(r?s.grid.rows:1),l=t.slides.length%n!=0,o=r&&t.slides.length%s.grid.rows!=0,d=e=>{for(let a=0;a1;d.lengthe.classList.contains(m.slideActiveClass)))[0]):x=r;const S="next"===a||!a,T="prev"===a||!a;let M=0,C=0;const P=b?Math.ceil(d.length/m.grid.rows):d.length,L=(b?d[r].column:r)+(h&&void 0===i?-f/2+.5:0);if(L=0;t-=1)d[t].column===e&&y.push(t)}else y.push(P-t-1)}}else if(L+f>P-w){C=Math.max(L-(P-2*w),v);for(let e=0;e{e.column===t&&E.push(s)})):E.push(t)}}if(o.__preventObserver__=!0,requestAnimationFrame((()=>{o.__preventObserver__=!1})),T&&y.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.prepend(d[e]),d[e].swiperLoopMoveDOM=!1})),S&&E.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.append(d[e]),d[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===m.slidesPerView?o.updateSlides():b&&(y.length>0&&T||E.length>0&&S)&&o.slides.forEach(((e,t)=>{o.grid.updateSlide(t,e,o.slides)})),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(y.length>0&&T){if(void 0===t){const e=o.slidesGrid[x],t=o.slidesGrid[x+M]-e;l?o.setTranslate(o.translate-t):(o.slideTo(x+M,0,!1,!0),i&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else if(i){const e=b?y.length/m.grid.rows:y.length;o.slideTo(o.activeIndex+e,0,!1,!0),o.touchEventsData.currentTranslate=o.translate}}else if(E.length>0&&S)if(void 0===t){const e=o.slidesGrid[x],t=o.slidesGrid[x-C]-e;l?o.setTranslate(o.translate-t):(o.slideTo(x-C,0,!1,!0),i&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else{const e=b?E.length/m.grid.rows:E.length;o.slideTo(o.activeIndex-e,0,!1,!0)}if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===m.slidesPerView&&s})})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix({...e,slideTo:o.controller.control.params.slidesPerView===m.slidesPerView&&s})}o.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),a.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function N(e,t,s){const a=r(),{params:i}=e,n=i.edgeSwipeDetection,l=i.edgeSwipeThreshold;return!n||!(s<=l||s>=a.innerWidth-l)||"prevent"===n&&(t.preventDefault(),!0)}function Y(e){const t=this,s=a();let i=e;i.originalEvent&&(i=i.originalEvent);const n=t.touchEventsData;if("pointerdown"===i.type){if(null!==n.pointerId&&n.pointerId!==i.pointerId)return;n.pointerId=i.pointerId}else"touchstart"===i.type&&1===i.targetTouches.length&&(n.touchId=i.targetTouches[0].identifier);if("touchstart"===i.type)return void N(t,i,i.targetTouches[0].pageX);const{params:l,touches:d,enabled:c}=t;if(!c)return;if(!l.simulateTouch&&"mouse"===i.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=i.target;if("wrapper"===l.touchEventsTarget&&!t.wrapperEl.contains(p))return;if("which"in i&&3===i.which)return;if("button"in i&&i.button>0)return;if(n.isTouched&&n.isMoved)return;const u=!!l.noSwipingClass&&""!==l.noSwipingClass,m=i.composedPath?i.composedPath():i.path;u&&i.target&&i.target.shadowRoot&&m&&(p=m[0]);const h=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!i.target||!i.target.shadowRoot);if(l.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(h,p):p.closest(h)))return void(t.allowClick=!0);if(l.swipeHandler&&!p.closest(l.swipeHandler))return;d.currentX=i.pageX,d.currentY=i.pageY;const g=d.currentX,v=d.currentY;if(!N(t,i,g))return;Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=g,d.startY=v,n.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1);let w=!0;p.matches(n.focusableElements)&&(w=!1,"SELECT"===p.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==p&&s.activeElement.blur();const b=w&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!b||p.isContentEditable||i.preventDefault(),l.freeMode&&l.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",i)}function B(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c,p=e;if(p.originalEvent&&(p=p.originalEvent),"pointermove"===p.type){if(null!==i.touchId)return;if(p.pointerId!==i.pointerId)return}if("touchmove"===p.type){if(c=[...p.changedTouches].filter((e=>e.identifier===i.touchId))[0],!c||c.identifier!==i.touchId)return}else c=p;if(!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",p));const u=c.pageX,m=c.pageY;if(p.preventedByNestedSwiper)return n.startX=u,void(n.startY=m);if(!s.allowTouchMove)return p.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m}),i.touchStartTime=o()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(mn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(un.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&p.target===t.activeElement&&p.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);i.allowTouchCallbacks&&s.emit("touchMove",p),n.previousX=n.currentX,n.previousY=n.currentY,n.currentX=u,n.currentY=m;const h=n.currentX-n.startX,f=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(h**2+f**2)=25&&(e=180*Math.atan2(Math.abs(f),Math.abs(h))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",p),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&p.cancelable&&p.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&p.stopPropagation();let g=s.isHorizontal()?h:f,v=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(g=Math.abs(g)*(l?1:-1),v=Math.abs(v)*(l?1:-1)),n.diff=g,g*=r.touchRatio,l&&(g=-g,v=-v);const w=s.touchesDirection;s.swipeDirection=g>0?"prev":"next",s.touchesDirection=v>0?"prev":"next";const b=s.params.loop&&!r.cssMode,y="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!i.isMoved){if(b&&y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",p)}if((new Date).getTime(),i.isMoved&&i.allowThresholdMove&&w!==s.touchesDirection&&b&&y&&Math.abs(g)>=1)return Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,void(i.startTranslate=i.currentTranslate);s.emit("sliderMove",p),i.isMoved=!0,i.currentTranslate=g+i.startTranslate;let E=!0,x=r.resistanceRatio;if(r.touchReleaseOnEdges&&(x=0),g>0?(b&&y&&i.allowThresholdMove&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(E=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+g)**x))):g<0&&(b&&y&&i.allowThresholdMove&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(g)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),r.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function R(e){const t=this,s=t.touchEventsData;let a,i=e;i.originalEvent&&(i=i.originalEvent);if("touchend"===i.type||"touchcancel"===i.type){if(a=[...i.changedTouches].filter((e=>e.identifier===s.touchId))[0],!a||a.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(i.pointerId!==s.pointerId)return;a=i}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(i.type)){if(!(["pointercancel","contextmenu"].includes(i.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:r,touches:n,rtlTranslate:d,slidesGrid:c,enabled:p}=t;if(!p)return;if(!r.simulateTouch&&"mouse"===i.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",i),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&r.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);r.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),m=u-s.touchStartTime;if(t.allowClick){const e=i.path||i.composedPath&&i.composedPath();t.updateClickedSlide(e&&e[0]||i.target,e),t.emit("tap click",i),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",i)}if(s.lastClickTime=o(),l((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===n.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=r.followFinger?d?t.translate:-t.translate:-s.currentTranslate,r.cssMode)return;if(r.freeMode&&r.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});const f=h>=-t.maxTranslate()&&!t.params.loop;let g=0,v=t.slidesSizesGrid[0];for(let e=0;e=c[e]&&h=c[e])&&(g=e,v=c[c.length-1]-c[c.length-2])}let w=null,b=null;r.rewind&&(t.isBeginning?b=r.virtual&&r.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const y=(h-c[g])/v,E=gr.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(y>=r.longSwipesRatio?t.slideTo(r.rewind&&t.isEnd?w:g+E):t.slideTo(g)),"prev"===t.swipeDirection&&(y>1-r.longSwipesRatio?t.slideTo(g+E):null!==b&&y<0&&Math.abs(y)>r.longSwipesRatio?t.slideTo(b):t.slideTo(g))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(i.target===t.navigation.nextEl||i.target===t.navigation.prevEl)?i.target===t.navigation.nextEl?t.slideTo(g+E):t.slideTo(g):("next"===t.swipeDirection&&t.slideTo(null!==w?w:g+E),"prev"===t.swipeDirection&&t.slideTo(null!==b?b:g))}}function q(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function V(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function _(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function F(e){const t=this;z(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function j(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const W=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;s[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:o}),r[d]("touchstart",e.onTouchStart,{passive:!1}),r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("touchmove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("touchend",e.onTouchEnd,{passive:!0}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("touchcancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),s[d]("contextmenu",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",q,!0):e[c]("observerUpdate",q,!0),r[d]("load",e.onLoad,{capture:!0})};const U=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var K={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function Z(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(!0===e[a]&&(e[a]={enabled:!0}),"navigation"===a&&e[a]&&e[a].enabled&&!e[a].prevEl&&!e[a].nextEl&&(e[a].auto=!0),["pagination","scrollbar"].indexOf(a)>=0&&e[a]&&e[a].enabled&&!e[a].el&&(e[a].auto=!0),a in e&&"enabled"in i?("object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),p(t,s)):p(t,s)):p(t,s)}}const Q={eventsEmitter:I,update:O,translate:D,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),G({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),G({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:X,loop:H,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,{params:t}=e;e.onTouchStart=Y.bind(e),e.onTouchMove=B.bind(e),e.onTouchEnd=R.bind(e),e.onDocumentTouchStart=j.bind(e),t.cssMode&&(e.onScroll=_.bind(e)),e.onClick=V.bind(e),e.onLoad=F.bind(e),W(e,"on")},detachEvents:function(){W(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:a,el:i}=e,r=a.breakpoints;if(!r||r&&0===Object.keys(r).length)return;const n=e.getBreakpoint(r,e.params.breakpointsBase,e.el);if(!n||e.currentBreakpoint===n)return;const l=(n in r?r[n]:void 0)||e.originalParams,o=U(e,a),d=U(e,l),c=a.enabled;o&&!d?(i.classList.remove(`${a.containerModifierClass}grid`,`${a.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&d&&(i.classList.add(`${a.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===a.grid.fill)&&i.classList.add(`${a.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===l[t])return;const s=a[t]&&a[t].enabled,i=l[t]&&l[t].enabled;s&&!i&&e[t].disable(),!s&&i&&e[t].enable()}));const u=l.direction&&l.direction!==a.direction,m=a.loop&&(l.slidesPerView!==a.slidesPerView||u),h=a.loop;u&&s&&e.changeDirection(),p(e.params,l);const f=e.params.enabled,g=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!f?e.disable():!c&&f&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),s&&(m?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!h&&g?(e.loopCreate(t),e.updateSlides()):h&&!g&&e.loopDestroy()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},J={};class ee{constructor(){let e,t;for(var s=arguments.length,i=new Array(s),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new ee(a))})),e}const l=this;l.__swiper__=!0,l.support=P(),l.device=L({userAgent:t.userAgent}),l.browser=A(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:Z(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=p({},K,o);return l.params=p({},d,J,t),l.originalParams=p({},l.params),l.passedParams=p({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=y(f(t,`.${s.slideClass}, swiper-slide`)[0]);return y(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=a[l]?a[l].swiperSlideSize:0;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]{t.complete&&z(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)a(),s.autoHeight&&e.updateAutoHeight();else{if(("auto"===s.slidesPerView||s.slidesPerView>1)&&e.isEnd&&!s.centeredSlides){const t=e.virtual&&s.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(t.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||a()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.parentNode&&s.parentNode.host&&"SWIPER-CONTAINER"===s.parentNode.host.nodeName&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return f(s,a())[0]})();return!i&&t.params.createElements&&(i=v("div",t.params.wrapperClass),s.append(i),f(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:i,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction")),wrongRTL:"-webkit-box"===b(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(),t.attachEvents();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?z(t,e):e.addEventListener("load",(e=>{z(t,e.target)}))})),k(t),t.initialized=!0,k(t),t.emit("init"),t.emit("afterInit"),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideFullyVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el.swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){p(J,e)}static get extendedDefaults(){return J}static get defaults(){return K}static installModule(e){ee.prototype.__modules__||(ee.prototype.__modules__=[]);const t=ee.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>ee.installModule(e))),ee):(ee.installModule(e),ee)}}function te(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=f(e.el,`.${a[i]}`)[0];r||(r=v("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function se(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function ae(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,a.append(t.children[0]),t.innerHTML=""}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.prepend(t.children[0]),t.innerHTML=""}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function de(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function ce(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.filter((t=>t.shadowRoot&&t.shadowRoot===e.parentNode))[0];return e.parentElement})(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{x(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function pe(e,t,s){const a=`swiper-slide-shadow${s?`-${s}`:""}${e?` swiper-slide-shadow-${e}`:""}`,i=h(t);let r=i.querySelector(`.${a.split(" ").join(".")}`);return r||(r=v("div",a.split(" ")),i.append(r)),r}Object.keys(Q).forEach((e=>{Object.keys(Q[e]).forEach((t=>{ee.prototype[t]=Q[e][t]}))})),ee.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,s){void 0===s&&(s={});const a=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void i("observerUpdate",e[0]);const s=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));a.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:void 0===s.childList||s.childList,characterData:void 0===s.characterData||s.characterData}),n.push(a)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=E(t.hostEl);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const ue=[function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;i({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=a();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];let i;return a.renderSlide?(i=a.renderSlide.call(s,e,t),"string"==typeof i&&(o.innerHTML=i,i=o.children[0])):i=s.isElement?v("swiper-slide"):v("div",s.params.slideClass),i.setAttribute("data-swiper-slide-index",t),a.renderSlide||(i.innerHTML=e),a.cache&&(s.virtual.cache[t]=i),i}function c(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i,loop:r}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:c,to:p,slides:u,slidesGrid:m,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const g=s.activeIndex||0;let v,w,b;v=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(w=Math.floor(t/2)+a+o,b=Math.floor(t/2)+a+l):(w=t+(a-1)+o,b=(r?t:a)+l);let y=g-b,E=g+w;r||(y=Math.max(y,0),E=Math.min(E,u.length-1));let x=(s.slidesGrid[y]||0)-(s.slidesGrid[0]||0);function S(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(r&&g>=b?(y-=b,i||(x+=s.slidesGrid[0])):r&&g{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:y,to:E,slides:function(){const e=[];for(let t=y;t<=E;t+=1)e.push(u[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?S():n("virtualUpdate"));const T=[],M=[],C=e=>{let t=e;return e<0?t=u.length+e:t>=u.length&&(t-=u.length),t};if(e)s.slides.filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`))).forEach((e=>{e.remove()}));else for(let e=c;e<=p;e+=1)if(eE){const t=C(e);s.slides.filter((e=>e.matches(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`))).forEach((e=>{e.remove()}))}const P=r?-u.length:0,L=r?2*u.length:u.length;for(let t=P;t=y&&t<=E){const s=C(t);void 0===p||e?M.push(s):(t>p&&M.push(s),t{s.slidesEl.append(d(u[e],e))})),r)for(let e=T.length-1;e>=0;e-=1){const t=T[e];s.slidesEl.prepend(d(u[t],t))}else T.sort(((e,t)=>t-e)),T.forEach((e=>{s.slidesEl.prepend(d(u[e],e))}));f(s.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),S()}r("beforeInit",(()=>{if(!s.params.virtual.enabled)return;let e;if(void 0===s.passedParams.virtual.slides){const t=[...s.slidesEl.children].filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`)));t&&t.length&&(s.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),s.virtual.cache[t]=e,e.remove()})))}e||(s.virtual.slides=s.params.virtual.slides),s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,c()})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{c()}),100)):c())})),r("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&u(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}c(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.params.virtual.cache&&(delete s.virtual.cache[e[a]],Object.keys(s.virtual.cache).forEach((t=>{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e[a],1),e[a]{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e,1),e0&&0===E(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=w(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",i)}}function c(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function p(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&c()})),i("destroy",(()=>{t.keyboard.enabled&&p()})),Object.assign(t.keyboard,{enable:c,disable:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let d;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),t.mousewheel={enabled:!1};let c,p=o();const u=[];function m(){t.enabled&&(t.mouseEntered=!0)}function h(){t.enabled&&(t.mouseEntered=!1)}function f(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&o()-p<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),p=(new n.Date).getTime(),!1)))}function g(e){let s=e,a=!0;if(!t.enabled)return;if(e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.el;"container"!==t.params.mousewheel.eventsTarget&&(n=document.querySelector(t.params.mousewheel.eventsTarget));const p=n&&n.contains(s.target);if(!t.mouseEntered&&!p&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const h=t.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*h}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*h:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=t.getTranslate()+m*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:o(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!p&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(d),d=void 0,u.length>=15&&u.shift();const s=u.length?u[u.length-1]:void 0,a=u[0];if(u.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))u.splice(0);else if(u.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;c=e,u.splice(0),d=l((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=l((()=>{c=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),r.releaseOnEdges&&(n===t.minTranslate()||n===t.maxTranslate()))return!0}}else{const s={time:o(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const a=u.length?u[u.length-1]:void 0;if(u.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(e){let s=t.el;"container"!==t.params.mousewheel.eventsTarget&&(s=document.querySelector(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",h),s[e]("wheel",g)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",g),!0):!t.mousewheel.enabled&&(v("addEventListener"),t.mousewheel.enabled=!0,!0)}function b(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,g),!0):!!t.mousewheel.enabled&&(v("removeEventListener"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),a("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&b()})),Object.assign(t.mousewheel,{enable:w,disable:b})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null};const r=e=>(Array.isArray(e)?e:[e]).filter((e=>!!e));function n(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.querySelector(e),s)?s:(e&&("string"==typeof e&&(s=[...document.querySelectorAll(e)]),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.el.querySelectorAll(e).length&&(s=t.el.querySelector(e))),e&&!s?e:s)}function l(e,s){const a=t.params.navigation;(e=r(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](a.lockClass))}))}function o(){const{nextEl:e,prevEl:s}=t.navigation;if(t.params.loop)return l(s,!1),void l(e,!1);l(s,t.isBeginning&&!t.params.rewind),l(e,t.isEnd&&!t.params.rewind)}function d(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=te(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=n(e.nextEl),a=n(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:a}),s=r(s),a=r(a);const i=(s,a)=>{s&&s.addEventListener("click","next"===a?c:d),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};s.forEach((e=>i(e,"next"))),a.forEach((e=>i(e,"prev")))}function u(){let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s);const a=(e,s)=>{e.removeEventListener("click","next"===s?c:d),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>a(e,"next"))),s.forEach((e=>a(e,"prev")))}a("init",(()=>{!1===t.params.navigation.enabled?m():(p(),o())})),a("toEdge fromEdge lock unlock",(()=>{o()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s),t.enabled?o():[...e,...s].filter((e=>!!e)).forEach((e=>e.classList.add(t.params.navigation.lockClass)))})),a("click",((e,s)=>{let{nextEl:a,prevEl:n}=t.navigation;a=r(a),n=r(n);const l=s.target;if(t.params.navigation.hideOnClick&&!n.includes(l)&&!a.includes(l)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===l||t.pagination.el.contains(l)))return;let e;a.length?e=a[0].classList.contains(t.params.navigation.hiddenClass):n.length&&(e=n[0].classList.contains(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),[...a,...n].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const m=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),u()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),p(),o()},disable:m,update:o,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,bullets:[]};let l=0;const o=e=>(Array.isArray(e)?e:[e]).filter((e=>!!e));function d(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${a}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${a}-${s}-${s}`))}function p(e){const s=e.target.closest(se(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=y(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===a)return;t.slideToLoop(a)}else t.slideTo(a)}function u(){const e=t.rtl,s=t.params.pagination;if(d())return;let a,r,p=t.pagination.el;p=o(p);const u=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,m=t.params.loop?Math.ceil(u/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(r=t.previousRealIndex||0,a=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):void 0!==t.snapIndex?(a=t.snapIndex,r=t.previousSnapIndex):(r=t.previousIndex||0,a=t.activeIndex||0),"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const i=t.pagination.bullets;let o,d,u;if(s.dynamicBullets&&(n=S(i[0],t.isHorizontal()?"width":"height",!0),p.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==r&&(l+=a-(r||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(a-l,0),d=o+(Math.min(i.length,s.dynamicMainBullets)-1),u=(d+o)/2),i.forEach((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),p.length>1)i.forEach((e=>{const i=y(e);i===a?e.classList.add(...s.bulletActiveClass.split(" ")):t.isElement&&e.setAttribute("part","bullet"),s.dynamicBullets&&(i>=o&&i<=d&&e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),i===o&&c(e,"prev"),i===d&&c(e,"next"))}));else{const e=i[a];if(e&&e.classList.add(...s.bulletActiveClass.split(" ")),t.isElement&&i.forEach(((e,t)=>{e.setAttribute("part",t===a?"bullet-active":"bullet")})),s.dynamicBullets){const e=i[o],t=i[d];for(let e=o;e<=d;e+=1)i[e]&&i[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));c(e,"prev"),c(t,"next")}}if(s.dynamicBullets){const a=Math.min(i.length,s.dynamicMainBullets+4),r=(n*a-n)/2-u*n,l=e?"right":"left";i.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}p.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(se(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(se(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(m)}))),"progressbar"===s.type){let i;i=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(a+1)/m;let n=1,l=1;"horizontal"===i?n=r:l=r,e.querySelectorAll(se(s.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,e.style.transitionDuration=`${t.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(e.innerHTML=s.renderCustom(t,a+1,m),0===r&&i("paginationRender",e)):(0===r&&i("paginationRender",e),i("paginationUpdate",e)),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](s.lockClass)}))}function m(){const e=t.params.pagination;if(d())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.grid&&t.params.grid.rows>1?t.slides.length/Math.ceil(t.params.grid.rows):t.slides.length;let a=t.pagination.el;a=o(a);let r="";if("bullets"===e.type){let a=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s`}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``),t.pagination.bullets=[],a.forEach((s=>{"custom"!==e.type&&(s.innerHTML=r||""),"bullets"===e.type&&t.pagination.bullets.push(...s.querySelectorAll(se(e.bulletClass)))})),"custom"!==e.type&&i("paginationRender",a[0])}function h(){t.params.pagination=te(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s;"string"==typeof e.el&&t.isElement&&(s=t.el.querySelector(e.el)),s||"string"!=typeof e.el||(s=[...document.querySelectorAll(e.el)]),s||(s=e.el),s&&0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(s)&&s.length>1&&(s=[...t.el.querySelectorAll(e.el)],s.length>1&&(s=s.filter((e=>E(e,".swiper")[0]===t.el))[0])),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(t.pagination,{el:s}),s=o(s),s.forEach((s=>{"bullets"===e.type&&e.clickable&&s.classList.add(...(e.clickableClass||"").split(" ")),s.classList.add(e.modifierClass+e.type),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.classList.add(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.classList.add(e.progressbarOppositeClass),e.clickable&&s.addEventListener("click",p),t.enabled||s.classList.add(e.lockClass)})))}function f(){const e=t.params.pagination;if(d())return;let s=t.pagination.el;s&&(s=o(s),s.forEach((s=>{s.classList.remove(e.hiddenClass),s.classList.remove(e.modifierClass+e.type),s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&(s.classList.remove(...(e.clickableClass||"").split(" ")),s.removeEventListener("click",p))}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}a("changeDirection",(()=>{if(!t.pagination||!t.pagination.el)return;const e=t.params.pagination;let{el:s}=t.pagination;s=o(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),a("init",(()=>{!1===t.params.pagination.enabled?g():(h(),m(),u())})),a("activeIndexChange",(()=>{void 0===t.snapIndex&&u()})),a("snapIndexChange",(()=>{u()})),a("snapGridLengthChange",(()=>{m(),u()})),a("destroy",(()=>{f()})),a("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),a("lock unlock",(()=>{u()})),a("click",((e,s)=>{const a=s.target,r=o(t.pagination.el);if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.forEach((e=>e.classList.toggle(t.params.pagination.hiddenClass)))}}));const g=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.add(t.params.pagination.paginationDisabledClass)))),f()};Object.assign(t.pagination,{enable:()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.remove(t.params.pagination.paginationDisabledClass)))),h(),m(),u()},disable:g,render:m,update:u,init:h,destroy:f})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const o=a();let d,c,p,u,m=!1,h=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:a,el:i}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=c,o=(p-c)*n;s?(o=-o,o>0?(l=c-o,o=0):-o+c>p&&(l=p+o)):o<0?(l=c+o,o=0):o+c>p&&(l=p-o),t.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(h),i.style.opacity=1,h=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function b(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",p=t.isHorizontal()?a.offsetWidth:a.offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),c="auto"===t.params.scrollbar.dragSize?p*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${c}px`:s.style.height=`${c}px`,a.style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function y(e){return t.isHorizontal()?e.clientX:e.clientY}function E(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(y(e)-w(i)[t.isHorizontal()?"left":"top"]-(null!==d?d:c/2))/(p-c),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;m=!0,d=e.target===l?y(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",E(e),clearTimeout(f),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function S(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;m&&(e.preventDefault?e.preventDefault():e.returnValue=!1,E(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function T(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n}=a;m&&(m=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(f),f=l((()=>{n.style.opacity=0,n.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function M(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},l=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",x,n),o[d]("pointermove",S,n),o[d]("pointerup",T,l)}function C(){const{scrollbar:e,el:s}=t;t.params.scrollbar=te(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;if("string"==typeof a.el&&t.isElement&&(i=t.el.querySelector(a.el)),i||"string"!=typeof a.el)i||(i=a.el);else if(i=o.querySelectorAll(a.el),!i.length)return;t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(t.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(r=i.querySelector(se(t.params.scrollbar.dragClass)),r||(r=v("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&M("on"),i&&i.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))}function P(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(...n(t.isHorizontal()?e.horizontalClass:e.verticalClass)),t.params.scrollbar.el&&t.scrollbar.el&&M("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?L():(C(),b(),g())})),i("update resize observerUpdate lock unlock",(()=>{b()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),i("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))})),i("destroy",(()=>{P()}));const L=()=>{t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),P()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),C(),b(),g()},disable:L,updateSize:b,setTranslate:g,init:C,destroy:P})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",r=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}e.style.transform=p},n=()=>{const{el:e,slides:s,progress:a,snapGrid:n,isElement:l}=t,o=f(e,i);t.isElement&&o.push(...f(t.hostEl,i)),o.forEach((e=>{r(e,a)})),s.forEach(((e,s)=>{let l=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(l+=Math.ceil(s/2)-a*(n.length-1)),l=Math.min(Math.max(l,-1),1),e.querySelectorAll(`${i}, [data-swiper-parallax-rotate]`).forEach((e=>{r(e,l)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&n()})),a("setTranslate",(()=>{t.params.parallax.enabled&&n()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s,hostEl:a}=t,r=[...s.querySelectorAll(i)];t.isElement&&r.push(...a.querySelectorAll(i)),r.forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,o,c=1,p=!1;const u=[],m={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},h={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let v=1;function b(){if(u.length<2)return 1;const e=u[0].pageX,t=u[0].pageY,s=u[1].pageX,a=u[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function y(e){const s=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(s)||t.slides.filter((t=>t.contains(e.target))).length>0}function x(e){if("mouse"===e.pointerType&&u.splice(0,u.length),!y(e))return;const s=t.params.zoom;if(l=!1,o=!1,u.push(e),!(u.length<2)){if(l=!0,m.scaleStart=b(),!m.slideEl){m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),m.slideEl||(m.slideEl=t.slides[t.activeIndex]);let a=m.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=a,m.imageWrapEl=a?E(m.imageEl,`.${s.containerClass}`)[0]:void 0,!m.imageWrapEl)return void(m.imageEl=void 0);m.maxRatio=m.imageWrapEl.getAttribute("data-swiper-zoom")||s.maxRatio}if(m.imageEl){const[e,t]=function(){if(u.length<2)return{x:null,y:null};const e=m.imageEl.getBoundingClientRect();return[(u[0].pageX+(u[1].pageX-u[0].pageX)/2-e.x-n.scrollX)/c,(u[0].pageY+(u[1].pageY-u[0].pageY)/2-e.y-n.scrollY)/c]}();m.originX=e,m.originY=t,m.imageEl.style.transitionDuration="0ms"}p=!0}}function S(e){if(!y(e))return;const s=t.params.zoom,a=t.zoom,i=u.findIndex((t=>t.pointerId===e.pointerId));i>=0&&(u[i]=e),u.length<2||(o=!0,m.scaleMove=b(),m.imageEl&&(a.scale=m.scaleMove/m.scaleStart*c,a.scale>m.maxRatio&&(a.scale=m.maxRatio-1+(a.scale-m.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));i>=0&&u.splice(i,1),l&&o&&(l=!1,o=!1,m.imageEl&&(a.scale=Math.max(Math.min(a.scale,m.maxRatio),s.minRatio),m.imageEl.style.transitionDuration=`${t.params.speed}ms`,m.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,c=a.scale,p=!1,a.scale>1&&m.slideEl?m.slideEl.classList.add(`${s.zoomedSlideClass}`):a.scale<=1&&m.slideEl&&m.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===a.scale&&(m.originX=0,m.originY=0,m.slideEl=void 0)))}function M(e){if(!y(e)||!function(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.hostEl.querySelectorAll(s)].filter((t=>t.contains(e.target))).length>0}(e))return;const s=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!m.slideEl)return;h.isMoved||(h.width=m.imageEl.offsetWidth,h.height=m.imageEl.offsetHeight,h.startX=d(m.imageWrapEl,"x")||0,h.startY=d(m.imageWrapEl,"y")||0,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight,m.imageWrapEl.style.transitionDuration="0ms");const a=h.width*s.scale,i=h.height*s.scale;if(a0?u[0].pageX:e.pageX,h.touchesCurrent.y=u.length>0?u[0].pageY:e.pageY;if(Math.max(Math.abs(h.touchesCurrent.x-h.touchesStart.x),Math.abs(h.touchesCurrent.y-h.touchesStart.y))>5&&(t.allowClick=!1),!h.isMoved&&!p){if(t.isHorizontal()&&(Math.floor(h.minX)===Math.floor(h.startX)&&h.touchesCurrent.xh.touchesStart.x))return void(h.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(h.minY)===Math.floor(h.startY)&&h.touchesCurrent.yh.touchesStart.y))return void(h.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),h.isMoved=!0;const r=(s.scale-c)/(m.maxRatio-t.params.zoom.minRatio),{originX:n,originY:l}=m;h.currentX=h.touchesCurrent.x-h.touchesStart.x+h.startX+r*(h.width-2*n),h.currentY=h.touchesCurrent.y-h.touchesStart.y+h.startY+r*(h.height-2*l),h.currentXh.maxX&&(h.currentX=h.maxX-1+(h.currentX-h.maxX+1)**.8),h.currentYh.maxY&&(h.currentY=h.maxY-1+(h.currentY-h.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=h.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=h.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(h.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(h.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(h.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(h.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=h.touchesCurrent.x,g.prevPositionY=h.touchesCurrent.y,g.prevTime=Date.now(),m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}function C(){const e=t.zoom;m.slideEl&&t.activeIndex!==t.slides.indexOf(m.slideEl)&&(m.imageEl&&(m.imageEl.style.transform="translate3d(0,0,0) scale(1)"),m.imageWrapEl&&(m.imageWrapEl.style.transform="translate3d(0,0,0)"),m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),e.scale=1,c=1,m.slideEl=void 0,m.imageEl=void 0,m.imageWrapEl=void 0,m.originX=0,m.originY=0)}function P(e){const s=t.zoom,a=t.params.zoom;if(!m.slideEl){e&&e.target&&(m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),m.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex]);let s=m.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=s,m.imageWrapEl=s?E(m.imageEl,`.${a.containerClass}`)[0]:void 0}if(!m.imageEl||!m.imageWrapEl)return;let i,r,l,o,d,p,u,g,v,b,y,x,S,T,M,C,P,L;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===h.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=h.touchesStart.x,r=h.touchesStart.y);const A="number"==typeof e?e:null;1===c&&A&&(i=void 0,r=void 0),s.scale=A||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,c=A||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,!e||1===c&&A?(u=0,g=0):(P=m.slideEl.offsetWidth,L=m.slideEl.offsetHeight,l=w(m.slideEl).left+n.scrollX,o=w(m.slideEl).top+n.scrollY,d=l+P/2-i,p=o+L/2-r,v=m.imageEl.offsetWidth,b=m.imageEl.offsetHeight,y=v*s.scale,x=b*s.scale,S=Math.min(P/2-y/2,0),T=Math.min(L/2-x/2,0),M=-S,C=-T,u=d*s.scale,g=p*s.scale,uM&&(u=M),gC&&(g=C)),A&&1===s.scale&&(m.originX=0,m.originY=0),m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform=`translate3d(${u}px, ${g}px,0)`,m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function L(){const e=t.zoom,s=t.params.zoom;if(!m.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex];let e=m.slideEl.querySelector(`.${s.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=e,m.imageWrapEl=e?E(m.imageEl,`.${s.containerClass}`)[0]:void 0}m.imageEl&&m.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,c=1,m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform="translate3d(0,0,0)",m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform="translate3d(0,0,0) scale(1)",m.slideEl.classList.remove(`${s.zoomedSlideClass}`),m.slideEl=void 0,m.originX=0,m.originY=0)}function A(e){const s=t.zoom;s.scale&&1!==s.scale?L():P(e)}function I(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function z(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=I();t.wrapperEl.addEventListener("pointerdown",x,s),t.wrapperEl.addEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,T,s)})),t.wrapperEl.addEventListener("pointermove",M,a)}function $(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=I();t.wrapperEl.removeEventListener("pointerdown",x,s),t.wrapperEl.removeEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,T,s)})),t.wrapperEl.removeEventListener("pointermove",M,a)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.imageEl,s=m.slideEl;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&z()})),a("destroy",(()=>{$()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;if(!m.imageEl)return;if(h.isTouched)return;s.android&&e.cancelable&&e.preventDefault(),h.isTouched=!0;const a=u.length>0?u[0]:e;h.touchesStart.x=a.pageX,h.touchesStart.y=a.pageY}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!h.isMoved)return h.isTouched=!1,void(h.isMoved=!1);h.isTouched=!1,h.isMoved=!1;let s=300,a=300;const i=g.x*s,r=h.currentX+i,n=g.y*a,l=h.currentY+n;0!==g.x&&(s=Math.abs((r-h.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-h.currentY)/g.y));const o=Math.max(s,a);h.currentX=r,h.currentY=l;const d=h.width*e.scale,c=h.height*e.scale;h.minX=Math.min(m.slideWidth/2-d/2,0),h.maxX=-h.minX,h.minY=Math.min(m.slideHeight/2-c/2,0),h.maxY=-h.minY,h.currentX=Math.max(Math.min(h.currentX,h.maxX),h.minX),h.currentY=Math.max(Math.min(h.currentY,h.maxY),h.minY),m.imageWrapEl.style.transitionDuration=`${o}ms`,m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&A(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:z,disable:$,in:P,out:L,toggle:A})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof t.params.controller.control||t.params.controller.control instanceof HTMLElement)){const e=document.querySelector(t.params.controller.control);if(e&&e.swiper)t.controller.control=e.swiper;else if(e){const s=a=>{t.controller.control=a.detail[0],t.update(),e.removeEventListener("init",s)};e.addEventListener("init",s)}}else t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){if(e.destroyed)return;const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid)}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),!Number.isNaN(r)&&Number.isFinite(r)||(r=1),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),x(s.wrapperEl,(()=>{i&&s.transitionEnd()}))))}if(Array.isArray(i))for(r=0;r(Array.isArray(e)?e:[e]).filter((e=>!!e));function l(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function o(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function d(e,t){(e=n(e)).forEach((e=>{e.setAttribute("role",t)}))}function c(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function p(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function u(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function m(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function h(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=e.target;t.pagination&&t.pagination.el&&(a===t.pagination.el||t.pagination.el.contains(e.target))&&!e.target.matches(se(t.params.pagination.bulletClass))||(t.navigation&&t.navigation.nextEl&&a===t.navigation.nextEl&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.prevEl&&a===t.navigation.prevEl&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.matches(se(t.params.pagination.bulletClass))&&a.click())}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function g(){return f()&&t.params.pagination.clickable}const w=(e,t,s)=>{l(e),"BUTTON"!==e.tagName&&(d(e,"button"),e.addEventListener("keydown",h)),p(e,s),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},b=()=>{t.a11y.clicked=!0},E=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},S=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&d(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((a,i)=>{const r=t.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;p(a,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},T=()=>{const e=t.params.a11y;t.el.append(i);const s=t.el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.wrapperEl,r=e.id||a.getAttribute("id")||`swiper-wrapper-${l=16,void 0===l&&(l=16),"x".repeat(l).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var l;const o=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var d;d=r,n(a).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(a,o),S();let{nextEl:u,prevEl:m}=t.navigation?t.navigation:{};if(u=n(u),m=n(m),u&&u.forEach((t=>w(t,r,e.nextSlideMessage))),m&&m.forEach((t=>w(t,r,e.prevSlideMessage))),g()){n(t.pagination.el).forEach((e=>{e.addEventListener("keydown",h)}))}t.el.addEventListener("focus",x,!0),t.el.addEventListener("pointerdown",b,!0),t.el.addEventListener("pointerup",E,!0)};a("beforeInit",(()=>{i=v("span",t.params.a11y.notificationClass),i.setAttribute("aria-live","assertive"),i.setAttribute("aria-atomic","true")})),a("afterInit",(()=>{t.params.a11y.enabled&&T()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&S()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:e,prevEl:s}=t.navigation;s&&(t.isBeginning?(u(s),o(s)):(m(s),l(s))),e&&(t.isEnd?(u(e),o(e)):(m(e),l(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.forEach((s=>{t.params.pagination.clickable&&(l(s),t.params.pagination.renderBullet||(d(s,"button"),p(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,y(s)+1)))),s.matches(se(t.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){i&&i.remove();let{nextEl:e,prevEl:s}=t.navigation?t.navigation:{};e=n(e),s=n(s),e&&e.forEach((e=>e.removeEventListener("keydown",h))),s&&s.forEach((e=>e.removeEventListener("keydown",h))),g()&&n(t.pagination.el).forEach((e=>{e.removeEventListener("keydown",h)}));t.el.removeEventListener("focus",x,!0),t.el.removeEventListener("pointerdown",b,!0),t.el.removeEventListener("pointerup",E,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),d=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(e,s){if(t.virtual&&t.params.virtual.enabled){const e=t.slides.filter((e=>e.getAttribute("data-hash")===s))[0];if(!e)return 0;return parseInt(e.getAttribute("data-swiper-slide-index"),10)}return t.getSlideIndex(f(t.slidesEl,`.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const c=()=>{i("hashChange");const e=o.location.hash.replace("#",""),s=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex];if(e!==(s?s.getAttribute("data-hash"):"")){const s=t.params.hashNavigation.getSlideIndex(t,e);if(void 0===s||Number.isNaN(s))return;t.slideTo(s)}},p=()=>{if(!l||!t.params.hashNavigation.enabled)return;const e=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],s=e?e.getAttribute("data-hash")||e.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState?(d.history.replaceState(null,null,`#${s}`||""),i("hashSet")):(o.location.hash=s||"",i("hashSet"))};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0,a=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(a||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",c)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){let t,s,{swiper:i,extendParams:r,on:n,emit:l,params:o}=e;i.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g,v=o&&o.autoplay?o.autoplay.delay:3e3,w=o&&o.autoplay?o.autoplay.delay:3e3,b=(new Date).getTime();function y(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",y),g||C())}const E=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(w=d,c=!1);const e=i.autoplay.paused?d:b+w-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/v),s=requestAnimationFrame((()=>{E()}))},x=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),E();let a=void 0===e?i.params.autoplay.delay:e;v=i.params.autoplay.delay,w=i.params.autoplay.delay;const r=(()=>{let e;if(e=i.virtual&&i.params.virtual.enabled?i.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:i.slides[i.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(a=r,v=r,w=r),d=a;const n=i.params.speed,o=()=>{i&&!i.destroyed&&(i.params.autoplay.reverseDirection?!i.isBeginning||i.params.loop||i.params.rewind?(i.slidePrev(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(i.slides.length-1,n,!0,!0),l("autoplay")):!i.isEnd||i.params.loop||i.params.rewind?(i.slideNext(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(0,n,!0,!0),l("autoplay")),i.params.cssMode&&(b=(new Date).getTime(),requestAnimationFrame((()=>{x()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},S=()=>{b=(new Date).getTime(),i.autoplay.running=!0,x(),l("autoplayStart")},T=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},M=(e,s)=>{if(i.destroyed||!i.autoplay.running)return;clearTimeout(t),e||(f=!0);const a=()=>{l("autoplayPause"),i.params.autoplay.waitForTransition?i.wrapperEl.addEventListener("transitionend",y):C()};if(i.autoplay.paused=!0,s)return h&&(d=i.params.autoplay.delay),h=!1,void a();const r=d||i.params.autoplay.delay;d=r-((new Date).getTime()-b),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},C=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(b=(new Date).getTime(),f?(f=!1,x(d)):x(),i.autoplay.paused=!1,l("autoplayResume"))},P=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,M(!0)),"visible"===e.visibilityState&&C()},L=e=>{"mouse"===e.pointerType&&(f=!0,g=!0,i.animating||i.autoplay.paused||M(!0))},A=e=>{"mouse"===e.pointerType&&(g=!1,i.autoplay.paused&&C())};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",L),i.el.addEventListener("pointerleave",A)),a().addEventListener("visibilitychange",P),S())})),n("destroy",(()=>{i.el.removeEventListener("pointerenter",L),i.el.removeEventListener("pointerleave",A),a().removeEventListener("visibilitychange",P),i.autoplay.running&&T()})),n("_freeModeStaticRelease",(()=>{(u||f)&&C()})),n("_freeModeNoMomentumRelease",(()=>{i.params.autoplay.disableOnInteraction?T():M(!0,!0)})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?M(!0,!0):T())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?T():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,M(!0)}),200)))})),n("touchEnd",(()=>{if(!i.destroyed&&i.autoplay.running&&p){if(clearTimeout(m),clearTimeout(t),i.params.autoplay.disableOnInteraction)return u=!1,void(p=!1);u&&i.params.cssMode&&C(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:S,stop:T,pause:M,resume:C})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,n=!1;function l(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&a.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(i):t.slideTo(i)}function o(){const{thumbs:e}=t.params;if(r)return!1;r=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update();else if(c(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function d(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.forEach((e=>e.classList.remove(r))),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e{e.classList.add(r)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${t.realIndex}`))[0];r=s.slides.indexOf(e),o=t.activeIndex>t.previousIndex?"next":"prev"}else r=t.realIndex,o=r>t.previousIndex?"next":"prev";l&&(r+="next"===o?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(r)<0&&(s.params.centeredSlides?r=r>i?r-Math.floor(a/2)+1:r+Math.floor(a/2)-1:r>i&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},i("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(a&&a.swiper)e.swiper=a.swiper,o(),d(!0);else if(a){const s=i=>{e.swiper=i.detail[0],a.removeEventListener("init",s),o(),d(!0),e.swiper.update(),t.update()};a.addEventListener("init",s)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),d(!0)})),i("slideChange update resize observerUpdate",(()=>{d()})),i("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),i("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:d})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){if(t.params.cssMode)return;const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){if(t.params.cssMode)return;const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:o()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:n,rtlTranslate:l,snapGrid:d,touchEventsData:c}=t,p=o()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||o()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;l&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(pt.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-p){e=t;break}p=Math.abs(d[e]-p){t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),x(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,x(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(a("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,i,{swiper:r,extendParams:n,on:l}=e;n({grid:{rows:1,fill:"column"}});const o=()=>{let e=r.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*r.size:"string"==typeof e&&(e=parseFloat(e)),e};l("init",(()=>{i=r.params.grid&&r.params.grid.rows>1})),l("update",(()=>{const{params:e,el:t}=r,s=e.grid&&e.grid.rows>1;i&&!s?(t.classList.remove(`${e.containerModifierClass}grid`,`${e.containerModifierClass}grid-column`),a=1,r.emitContainerClasses()):!i&&s&&(t.classList.add(`${e.containerModifierClass}grid`),"column"===e.grid.fill&&t.classList.add(`${e.containerModifierClass}grid-column`),r.emitContainerClasses()),i=s})),r.grid={initSlides:e=>{const{slidesPerView:i}=r.params,{rows:n,fill:l}=r.params.grid,o=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:e.length;a=Math.floor(o/n),t=Math.floor(o/n)===o/n?o:Math.ceil(o/n)*n,"auto"!==i&&"row"===l&&(t=Math.max(t,i*n)),s=t/n},unsetSlides:()=>{r.slides&&r.slides.forEach((e=>{e.swiperSlideGridSet&&(e.style.height="",e.style[r.getDirectionLabel("margin-top")]="")}))},updateSlide:(e,i,n)=>{const{slidesPerGroup:l}=r.params,d=o(),{rows:c,fill:p}=r.params.grid,u=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:n.length;let m,h,f;if("row"===p&&l>1){const s=Math.floor(e/(l*c)),a=e-c*l*s,r=0===s?l:Math.min(Math.ceil((u-s*c*l)/c),l);f=Math.floor(a/r),h=a-f*r+s*l,m=h+f*t/c,i.style.order=m}else"column"===p?(h=Math.floor(e/c),f=e-h*c,(h>a||h===a&&f===c-1)&&(f+=1,f>=c&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);i.row=f,i.column=h,i.style.height=`calc((100% - ${(c-1)*d}px) / ${c})`,i.style[r.getDirectionLabel("margin-top")]=0!==f?d&&`${d}px`:"",i.swiperSlideGridSet=!0},updateWrapperSize:(e,s)=>{const{centeredSlides:a,roundLengths:i}=r.params,n=o(),{rows:l}=r.params.grid;if(r.virtualSize=(e+n)*t,r.virtualSize=Math.ceil(r.virtualSize/l)-n,r.params.cssMode||(r.wrapperEl.style[r.getDirectionLabel("width")]=`${r.virtualSize+n}px`),a){const e=[];for(let t=0;t{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),ce({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"left":"top")).split(" ")),e.append(a)),i||(i=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"right":"bottom")).split(" ")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};oe({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=t.params.cubeEffect,p=t.isHorizontal(),u=t.virtual&&t.params.virtual.enabled;let m,h=0;c.shadow&&(p?(m=t.wrapperEl.querySelector(".swiper-cube-shadow"),m||(m=v("div","swiper-cube-shadow"),t.wrapperEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=v("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*r+90*m,l&&(h=90*-r-90*m),t.browser&&t.browser.isSafari&&Math.abs(h)/90%2==1&&(h+=.001)),s.style.transform=w,c.slideShadows&&i(s,m,p)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,c.shadow)if(p)m.style.transform=`translate3d(0px, ${r/2+c.shadowOffset}px, ${-r/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${c.shadowScale})`;else{const e=Math.abs(h)-90*Math.floor(Math.abs(h)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;m.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-89.99deg)`}const f=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${f}px) rotateX(${t.isHorizontal()?0:h}deg) rotateY(${t.isHorizontal()?-h:0}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${f}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s)=>{let a=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=pe("flip",e,t.isHorizontal()?"left":"top")),i||(i=pe("flip",e,t.isHorizontal()?"right":"bottom")),a&&(a.style.opacity=Math.max(-s,0)),i&&(i.style.opacity=Math.max(s,0))};oe({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),ce({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect,t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),oe({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,s=a.length;e0?u:0),t&&(t.style.opacity=-u>0?-u:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;oe({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s0&&(f=r.prev,h=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),m.forEach(((e,s)=>{let a=f.rotate[s]*Math.abs(d*n);t.browser&&t.browser.isSafari&&Math.abs(a)/90%2==1&&(a+=.001),m[s]=a})),a.style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,y=`translate3d(${g}) ${v} ${w}`;if(h&&f.shadow||!h){let e=a.querySelector(".swiper-slide-shadow");if(!e&&f.shadow&&(e=pe("creative",a)),e){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const E=de(0,a);E.style.transform=y,E.style.opacity=b,f.origin&&(E.style.transformOrigin=f.origin)}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),ce({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),oe({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s,rtlTranslate:a}=t,i=t.params.cardsEffect,{startTranslate:r,isTouched:n}=t.touchEventsData,l=a?-t.translate:t.translate;for(let o=0;o0&&p<1&&(n||t.params.cssMode)&&l-1&&(n||t.params.cssMode)&&l>r;if(y||E){const e=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;v+=-28*p*e,g+=-.5*e,w+=96*e,h=-25*e*Math.abs(p)+"%"}if(m=p<0?`calc(${m}px ${a?"-":"+"} (${w*Math.abs(p)}%))`:p>0?`calc(${m}px ${a?"-":"+"} (-${w*Math.abs(p)}%))`:`${m}px`,!t.isHorizontal()){const e=h;h=m,m=e}const x=p<0?""+(1+(1-g)*p):""+(1-(1-g)*p),S=`\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${i.rotate?a?-v:v:0}deg)\n scale(${x})\n `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=pe("cards",d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(c))+e.length;de(0,d).style.transform=S}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),ce({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return ee.use(ue),ee}(); +//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/public/dmxAppConnect/dmxValidator/dmxValidator.css b/public/dmxAppConnect/dmxValidator/dmxValidator.css new file mode 100644 index 0000000..1a9f2c5 --- /dev/null +++ b/public/dmxAppConnect/dmxValidator/dmxValidator.css @@ -0,0 +1,35 @@ +/* CSS Document */ + +input.dmxValidator-invalid, +select.dmxValidator-invalid, +textarea.dmxValidator-invalid { + border-color: #C80000; + outline: none; + border-style:solid; + border-width: 1px; +} +input.dmxValidator-invalid:focus, +select.dmxValidator-invalid:focus, +textarea.dmxValidator-invalid:focus { +-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} + +input.dmxValidator-valid, +select.dmxValidator-valid, +textarea.dmxValidator-valid { + border-color: #3c763d; + outline: none; + border-style:solid; + border-width: 1px; +} +input.dmxValidator-valid:focus, +select.dmxValidator-valid:focus, +textarea.dmxValidator-valid:focus { +-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px #67b168; +} +span.dmxValidator-error { + color: #C80000; + padding-left: 5px; +} diff --git a/public/dmxAppConnect/dmxValidator/dmxValidator.js b/public/dmxAppConnect/dmxValidator/dmxValidator.js new file mode 100644 index 0000000..3638646 --- /dev/null +++ b/public/dmxAppConnect/dmxValidator/dmxValidator.js @@ -0,0 +1,8 @@ +/*! + App Connect Validator + Version: 2.0.1 + (c) 2024 Wappler.io + @build 2024-05-15 16:18:43 + */ +!function(){const e={email:"email",url:"url",date:"date",time:"time",week:"week",month:"month",number:"number",color:"color",range:"number"},u=["min","max","accept","pattern","minlength","maxlength"];function t(e,u,t){var a=!0;return dmx.rules[u]?(a=dmx.rules[u].validity(e,t))||function(e,u,t){var a=e.getAttribute("data-msg-"+u)||dmx.rules[u].message;a=Array.isArray(t)?a.replace(/\{(\d)\}/g,(function(e,u){return t[u]})):a.replace(/\{0\}/g,t);dmx.validate.setMessage(e,a)}(e,u,t):console.warn("Validation rule "+u+" not found!"),a&&dmx.validate.setMessage(e,""),a}dmx.bootstrapVersion=0,dmx.bootstrap4forms=!1,dmx.bootstrap5forms=!1,dmx.rules={},dmx.ready((()=>{dmx.bootstrapVersion=window.bootstrap&&bootstrap.Alert?parseInt(bootstrap.Alert.VERSION):0,dmx.bootstrap4forms=4==dmx.bootstrapVersion,dmx.bootstrap5forms=5==dmx.bootstrapVersion})),dmx.validate=function(a){if(!a)return console.warn("dmx.validate() called without a node!"),!0;if("FORM"==a.tagName){let e=!0;for(var i=0;i]*>\s*]*>\s*<\/p>\s*$/.test(e.value)):!(!e.value||!e.value.length)}},email:{message:"Please enter a valid email address.",validity:function(e){return/^(?!\.)((?!.*\.{2})[a-zA-Z0-9\u0080-\u00FF\u0100-\u017F\u0180-\u024F\u0250-\u02AF\u0300-\u036F\u0370-\u03FF\u0400-\u04FF\u0500-\u052F\u0530-\u058F\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u0780-\u07BF\u07C0-\u07FF\u0900-\u097F\u0980-\u09FF\u0A00-\u0A7F\u0A80-\u0AFF\u0B00-\u0B7F\u0B80-\u0BFF\u0C00-\u0C7F\u0C80-\u0CFF\u0D00-\u0D7F\u0D80-\u0DFF\u0E00-\u0E7F\u0E80-\u0EFF\u0F00-\u0FFF\u1000-\u109F\u10A0-\u10FF\u1100-\u11FF\u1200-\u137F\u1380-\u139F\u13A0-\u13FF\u1400-\u167F\u1680-\u169F\u16A0-\u16FF\u1700-\u171F\u1720-\u173F\u1740-\u175F\u1760-\u177F\u1780-\u17FF\u1800-\u18AF\u1900-\u194F\u1950-\u197F\u1980-\u19DF\u19E0-\u19FF\u1A00-\u1A1F\u1B00-\u1B7F\u1D00-\u1D7F\u1D80-\u1DBF\u1DC0-\u1DFF\u1E00-\u1EFF\u1F00-\u1FFFu20D0-\u20FF\u2100-\u214F\u2C00-\u2C5F\u2C60-\u2C7F\u2C80-\u2CFF\u2D00-\u2D2F\u2D30-\u2D7F\u2D80-\u2DDF\u2F00-\u2FDF\u2FF0-\u2FFF\u3040-\u309F\u30A0-\u30FF\u3100-\u312F\u3130-\u318F\u3190-\u319F\u31C0-\u31EF\u31F0-\u31FF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FFF\uA000-\uA48F\uA490-\uA4CF\uA700-\uA71F\uA800-\uA82F\uA840-\uA87F\uAC00-\uD7AF\uF900-\uFAFF\.!#$%&'*+-/=?^_`{|}~\-\d]+)@(?!\.)([a-zA-Z0-9\u0080-\u00FF\u0100-\u017F\u0180-\u024F\u0250-\u02AF\u0300-\u036F\u0370-\u03FF\u0400-\u04FF\u0500-\u052F\u0530-\u058F\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u0780-\u07BF\u07C0-\u07FF\u0900-\u097F\u0980-\u09FF\u0A00-\u0A7F\u0A80-\u0AFF\u0B00-\u0B7F\u0B80-\u0BFF\u0C00-\u0C7F\u0C80-\u0CFF\u0D00-\u0D7F\u0D80-\u0DFF\u0E00-\u0E7F\u0E80-\u0EFF\u0F00-\u0FFF\u1000-\u109F\u10A0-\u10FF\u1100-\u11FF\u1200-\u137F\u1380-\u139F\u13A0-\u13FF\u1400-\u167F\u1680-\u169F\u16A0-\u16FF\u1700-\u171F\u1720-\u173F\u1740-\u175F\u1760-\u177F\u1780-\u17FF\u1800-\u18AF\u1900-\u194F\u1950-\u197F\u1980-\u19DF\u19E0-\u19FF\u1A00-\u1A1F\u1B00-\u1B7F\u1D00-\u1D7F\u1D80-\u1DBF\u1DC0-\u1DFF\u1E00-\u1EFF\u1F00-\u1FFF\u20D0-\u20FF\u2100-\u214F\u2C00-\u2C5F\u2C60-\u2C7F\u2C80-\u2CFF\u2D00-\u2D2F\u2D30-\u2D7F\u2D80-\u2DDF\u2F00-\u2FDF\u2FF0-\u2FFF\u3040-\u309F\u30A0-\u30FF\u3100-\u312F\u3130-\u318F\u3190-\u319F\u31C0-\u31EF\u31F0-\u31FF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FFF\uA000-\uA48F\uA490-\uA4CF\uA700-\uA71F\uA800-\uA82F\uA840-\uA87F\uAC00-\uD7AF\uF900-\uFAFF\-\.\d]+)((\.([a-zA-Z\u0080-\u00FF\u0100-\u017F\u0180-\u024F\u0250-\u02AF\u0300-\u036F\u0370-\u03FF\u0400-\u04FF\u0500-\u052F\u0530-\u058F\u0590-\u05FF\u0600-\u06FF\u0700-\u074F\u0750-\u077F\u0780-\u07BF\u07C0-\u07FF\u0900-\u097F\u0980-\u09FF\u0A00-\u0A7F\u0A80-\u0AFF\u0B00-\u0B7F\u0B80-\u0BFF\u0C00-\u0C7F\u0C80-\u0CFF\u0D00-\u0D7F\u0D80-\u0DFF\u0E00-\u0E7F\u0E80-\u0EFF\u0F00-\u0FFF\u1000-\u109F\u10A0-\u10FF\u1100-\u11FF\u1200-\u137F\u1380-\u139F\u13A0-\u13FF\u1400-\u167F\u1680-\u169F\u16A0-\u16FF\u1700-\u171F\u1720-\u173F\u1740-\u175F\u1760-\u177F\u1780-\u17FF\u1800-\u18AF\u1900-\u194F\u1950-\u197F\u1980-\u19DF\u19E0-\u19FF\u1A00-\u1A1F\u1B00-\u1B7F\u1D00-\u1D7F\u1D80-\u1DBF\u1DC0-\u1DFF\u1E00-\u1EFF\u1F00-\u1FFF\u20D0-\u20FF\u2100-\u214F\u2C00-\u2C5F\u2C60-\u2C7F\u2C80-\u2CFF\u2D00-\u2D2F\u2D30-\u2D7F\u2D80-\u2DDF\u2F00-\u2FDF\u2FF0-\u2FFF\u3040-\u309F\u30A0-\u30FF\u3100-\u312F\u3130-\u318F\u3190-\u319F\u31C0-\u31EF\u31F0-\u31FF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FFF\uA000-\uA48F\uA490-\uA4CF\uA700-\uA71F\uA800-\uA82F\uA840-\uA87F\uAC00-\uD7AF\uF900-\uFAFF]){2,63})+)$/i.test(e.value)}},url:{message:"Please enter a valid URL.",validity:function(e){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(e.value)}},datetime:{message:"Please enter a valid datetime.",validity:function(e){return/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])[T ]([01][0-9]|2[0-4]):[0-5][0-9](:([0-5][0-9]|60))?Z?$/.test(e.value)}},date:{message:"Please enter a valid date.",validity:function(e){return/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(e.value)}},time:{message:"Please enter a valid time.",validity:function(e){return/^([01][0-9]|2[0-4]):[0-5][0-9](:([0-5][0-9]|60))?$/.test(e.value)}},month:{message:"Please enter a valid month.",validity:function(e){return/^\d{4}-(0[1-9]|1[012])$/.test(e.value)}},week:{message:"Please enter a valid week.",validity:function(e){return/^\d{4}-W(0[1-9]|[1-4][0-9]|5[0-3])$/.test(e.value)}},color:{message:"Please enter a color in the format #xxxxxx.",validity:function(e){return/^#[a-fA-F0-9]{6}$/.test(e.value)}},number:{message:"Please enter a valid number.",validity:function(e){return/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(e.value)}},min:{message:"Please enter a value greater than or equal to {0}.",validity:function(e,u){return"number"==e.type||"range"==e.type?+e.value>=u:e.value>=u}},max:{message:"Please enter a value less than or equal to {0}.",validity:function(e,u){return"number"==e.type||"range"==e.type?+e.value<=u:e.value<=u}},pattern:{message:"Invalid format.",validity:function(e,u){return!/^text|search|url|tel|email|password$/i.test(e.type)||("string"==typeof u&&(u=new RegExp("^(?:"+u+")$")),u.test(e.value))}},minlength:{message:"Please enter at least {0} characters.",validity:function(e,u){return e.value.length>=u}},maxlength:{message:"Please enter no more than {0} characters.",validity:function(e,u){return e.value.length<=u}},alphanumeric:{message:"Letters, numbers, and underscores only please.",validity:function(e){return/^\w+$/i.test(e.value)}},lettersonly:{message:"Letters only please.",validity:function(e){return/^[a-z]+$/i.test(e.value)}},letterswithbasicpunc:{message:"Letters or punctuation only please.",validity:function(e){return/^[a-z\-.,()'"\s]+$/i.test(e.value)}},nowhitespace:{message:"No white space please.",validity:function(e){return/^\S+$/i.test(e.value)}},digits:{message:"Please enter only digits.",validity:function(e){return/^\d+$/.test(e.value)}},creditcard:{message:"Please enter a valid credit card number.",validity:function(e){var u=e.value;if(/[^0-9 \-]+/.test(u))return!1;var t,a,i=0,r=0,s=!1;if((u=u.replace(/\D/g,"")).length<13||u.length>19)return!1;for(t=u.length-1;t>=0;t--)a=u.charAt(t),r=parseInt(a,10),s&&(r*=2)>9&&(r-=9),i+=r,s=!s;return i%10==0}},bic:{message:"Please specify a valid BIC code.",validity:function(e){return/^([A-Z]{6}[A-Z2-9][A-NP-Z1-2])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(e.value)}},iban:{message:"Please specify a valid IBAN.",validity:function(e){var u,t,a,i,r,s=e.value.replace(/ /g,"").toUpperCase(),d="",n=!0,F="";if(void 0!==(a={AL:"\\d{8}[\\dA-Z]{16}",AD:"\\d{8}[\\dA-Z]{12}",AT:"\\d{16}",AZ:"[\\dA-Z]{4}\\d{20}",BE:"\\d{12}",BH:"[A-Z]{4}[\\dA-Z]{14}",BA:"\\d{16}",BR:"\\d{23}[A-Z][\\dA-Z]",BG:"[A-Z]{4}\\d{6}[\\dA-Z]{8}",CR:"\\d{17}",HR:"\\d{17}",CY:"\\d{8}[\\dA-Z]{16}",CZ:"\\d{20}",DK:"\\d{14}",DO:"[A-Z]{4}\\d{20}",EE:"\\d{16}",FO:"\\d{14}",FI:"\\d{14}",FR:"\\d{10}[\\dA-Z]{11}\\d{2}",GE:"[\\dA-Z]{2}\\d{16}",DE:"\\d{18}",GI:"[A-Z]{4}[\\dA-Z]{15}",GR:"\\d{7}[\\dA-Z]{16}",GL:"\\d{14}",GT:"[\\dA-Z]{4}[\\dA-Z]{20}",HU:"\\d{24}",IS:"\\d{22}",IE:"[\\dA-Z]{4}\\d{14}",IL:"\\d{19}",IT:"[A-Z]\\d{10}[\\dA-Z]{12}",KZ:"\\d{3}[\\dA-Z]{13}",KW:"[A-Z]{4}[\\dA-Z]{22}",LV:"[A-Z]{4}[\\dA-Z]{13}",LB:"\\d{4}[\\dA-Z]{20}",LI:"\\d{5}[\\dA-Z]{12}",LT:"\\d{16}",LU:"\\d{3}[\\dA-Z]{13}",MK:"\\d{3}[\\dA-Z]{10}\\d{2}",MT:"[A-Z]{4}\\d{5}[\\dA-Z]{18}",MR:"\\d{23}",MU:"[A-Z]{4}\\d{19}[A-Z]{3}",MC:"\\d{10}[\\dA-Z]{11}\\d{2}",MD:"[\\dA-Z]{2}\\d{18}",ME:"\\d{18}",NL:"[A-Z]{4}\\d{10}",NO:"\\d{11}",PK:"[\\dA-Z]{4}\\d{16}",PS:"[\\dA-Z]{4}\\d{21}",PL:"\\d{24}",PT:"\\d{21}",RO:"[A-Z]{4}[\\dA-Z]{16}",SM:"[A-Z]\\d{10}[\\dA-Z]{12}",SA:"\\d{2}[\\dA-Z]{18}",RS:"\\d{18}",SK:"\\d{20}",SI:"\\d{15}",ES:"\\d{20}",SE:"\\d{20}",CH:"\\d{5}[\\dA-Z]{12}",TN:"\\d{20}",TR:"\\d{5}[\\dA-Z]{17}",AE:"\\d{3}\\d{16}",GB:"[A-Z]{4}\\d{14}",VG:"[\\dA-Z]{4}\\d{16}"}[s.substring(0,2)])&&!new RegExp("^[A-Z]{2}\\d{2}"+a+"$","").test(s))return!1;for(u=s.substring(4,s.length)+s.substring(0,4),i=0;i=t}},maxitems:{message:"Please select no more tham {0} items.",validity:function(u,t){return e(u)<=t}},equalto:{message:"Please enter the same value again.",validity:function(e,u){"#"!=u[0]&&(u='[name="'+u+'"]');var t=e.form.querySelector(u);return t?e.value==t.value:(console.warn("Target element "+u+" for equalTo rule not found."),!0)}},notequalto:{message:"Please enter a different value, values must not be the same.",validity:function(e,u){"#"!=u[0]&&(u='[name="'+u+'"]');var t=e.form.querySelector(u);return t?e.value!=t.value:(console.warn("Target element "+u+" for equalTo rule not found."),!0)}}})}(),Object.assign(dmx.rules,{accept:{message:"This file type is not allowed for upload.",validity:function(e,u){if("file"!=e.type.toLowerCase())return!0;var t=u.replace(/\s/g,"").split(",");if(e.files&&e.files.length)for(var a=0;au)return!1;return!0}},mintotalsize:{message:"Total size of selected files should be at least {0} bytes.",validity:function(e,u){if("file"!=e.type.toLowerCase())return!0;if(e.files&&e.files.length){for(var t=0,a=0;au)return!1}return!0}},minfiles:{message:"Please select at least {0} files.",validity:function(e,u){return"file"!=e.type.toLowerCase()||!(e.files&&e.files.length&&e.files.lengthu)}}}); +//# sourceMappingURL=dmxValidator.js.map diff --git a/public/dmxAppConnect/dmxValidator/dmxValidator.js.map b/public/dmxAppConnect/dmxValidator/dmxValidator.js.map new file mode 100644 index 0000000..61f0e69 --- /dev/null +++ b/public/dmxAppConnect/dmxValidator/dmxValidator.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/validate.js","rules/core.js","rules/upload.js"],"names":["html5Types","email","url","date","time","week","month","number","color","range","html5Attributes","validity","node","rule","param","valid","dmx","rules","message","getAttribute","Array","isArray","replace","match","i","validate","setMessage","console","warn","bootstrapVersion","bootstrap4forms","bootstrap5forms","ready","window","bootstrap","Alert","parseInt","VERSION","tagName","elements","length","dmxExtraElements","classList","add","dirty","type","firstCheckbox","form","from","find","elm","name","getFirstFormElementByName","willValidate","setCustomValidity","hasAttribute","value","attr","attributes","startsWith","slice","toLowerCase","validateReset","remove","setBootstrapMessage","setErrorMessage","id","err","document","getElementById","createElement","className","group","closest","insertAdjacentElement","textContent","nodes","querySelectorAll","parentElement","appendChild","previousElementSibling","contains","filter","getFormElementsByName","forEach","getCount","element","nodeName","array","options","reduce","n","opt","selected","checked","Object","assign","required","querySelector","test","datetime","min","max","pattern","RegExp","minlength","maxlength","alphanumeric","lettersonly","letterswithbasicpunc","nowhitespace","digits","creditcard","cDigit","nCheck","nDigit","bEven","charAt","bic","iban","ibancheck","bbanpattern","p","toUpperCase","ibancheckdigits","leadingZeroes","cRest","AL","AD","AT","AZ","BE","BH","BA","BR","BG","CR","HR","CY","CZ","DK","DO","EE","FO","FI","FR","GE","DE","GI","GR","GL","GT","HU","IS","IE","IL","IT","KZ","KW","LV","LB","LI","LT","LU","MK","MT","MR","MU","MC","MD","ME","NL","NO","PK","PS","PL","PT","RO","SM","SA","RS","SK","SI","ES","SE","CH","TN","TR","AE","GB","VG","substring","indexOf","vat","integer","ipv4","ipv6","minitems","maxitems","equalto","target","notequalto","accept","allowed","split","files","file","ok","j","check","minsize","size","maxsize","mintotalsize","maxtotalsize","minfiles","maxfiles"],"mappings":"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","file":"dmxValidator.js","sourcesContent":["(function () {\r\n\r\n const html5Types = {\r\n email: 'email',\r\n url: 'url',\r\n date: 'date',\r\n time: 'time',\r\n week: 'week',\r\n month: 'month',\r\n number: 'number',\r\n color: 'color',\r\n range: 'number',\r\n };\r\n\r\n const html5Attributes = ['min', 'max', 'accept', 'pattern', 'minlength', 'maxlength'];\r\n\r\n const getFirstFormElementByName = function (node) {\r\n if (!node.form) return null;\r\n return Array.from(node.form.elements).find(function (elm) {\r\n return elm.name == node.name;\r\n });\r\n };\r\n\r\n const getFormElementsByName = function (node) {\r\n if (!node.form) return [];\r\n return Array.from(node.form.elements).filter(function (elm) {\r\n return elm.name == node.name;\r\n });\r\n };\r\n\r\n dmx.bootstrapVersion = 0;\r\n dmx.bootstrap4forms = false;\r\n dmx.bootstrap5forms = false;\r\n dmx.rules = {};\r\n\r\n dmx.ready(() => {\r\n dmx.bootstrapVersion = window.bootstrap && bootstrap.Alert ? parseInt(bootstrap.Alert.VERSION) : 0;\r\n dmx.bootstrap4forms = dmx.bootstrapVersion == 4;\r\n dmx.bootstrap5forms = dmx.bootstrapVersion == 5;\r\n });\r\n\r\n dmx.validate = function (node) {\r\n if (!node) {\r\n console.warn('dmx.validate() called without a node!');\r\n return true;\r\n }\r\n\r\n if (node.tagName == 'FORM') {\r\n let valid = true;\r\n\r\n for (var i = 0; i < node.elements.length; i++) {\r\n if (!dmx.validate(node.elements[i])) {\r\n valid = false;\r\n }\r\n }\r\n\r\n if (Array.isArray(node.dmxExtraElements)) {\r\n for (var i = 0; i < node.dmxExtraElements.length; i++) {\r\n if (!dmx.validate(node.dmxExtraElements[i])) {\r\n valid = false;\r\n }\r\n }\r\n }\r\n\r\n node.classList.add('was-validated');\r\n\r\n return valid;\r\n }\r\n\r\n node.dirty = true;\r\n\r\n if (node.type == 'checkbox' || node.type == 'radio') {\r\n // is this behavior correct?\r\n const firstCheckbox = getFirstFormElementByName(node);\r\n if (firstCheckbox && node != firstCheckbox) {\r\n return dmx.validate(firstCheckbox);\r\n }\r\n }\r\n\r\n if (!node.willValidate) {\r\n node.setCustomValidity('');\r\n return true;\r\n }\r\n\r\n // Google reCAPTCHA is always required\r\n if (node.getAttribute('name') == 'g-recaptcha-response' && !validity(node, 'required')) {\r\n return false;\r\n }\r\n\r\n // validate required\r\n if (node.hasAttribute('required') && !validity(node, 'required')) {\r\n return false;\r\n }\r\n\r\n if (node.value && node.value.length) {\r\n // validate html5 types and attributes\r\n for (let type in html5Types) {\r\n if (node.type == type && !validity(node, html5Types[type])) {\r\n return false;\r\n }\r\n }\r\n\r\n for (let attr of html5Attributes) {\r\n if (node.hasAttribute(attr) && !validity(node, attr, node.getAttribute(attr))) {\r\n return false;\r\n }\r\n }\r\n\r\n for (let attr of node.attributes) {\r\n if (attr.name.startsWith('data-rule-')) {\r\n const rule = attr.name.slice(10).toLowerCase();\r\n\r\n if (!validity(node, rule, attr.value)) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n node.setCustomValidity('');\r\n\r\n return true;\r\n };\r\n\r\n dmx.validateReset = function (node) {\r\n if (node.tagName == 'FORM') {\r\n for (let elm of node.elements) {\r\n dmx.validateReset(elm);\r\n }\r\n\r\n if (Array.isArray(node.dmxExtraElements)) {\r\n for (var i = 0; i < node.dmxExtraElements.length; i++) {\r\n dmx.validateReset(node.dmxExtraElements[i])\r\n }\r\n }\r\n\r\n node.classList.remove('was-validated');\r\n\r\n return;\r\n }\r\n\r\n node.dirty = false;\r\n node.setCustomValidity('');\r\n node.classList.remove('dmxValidator-valid', 'dmxValidator-invalid', 'is-valid', 'is-invalid');\r\n };\r\n\r\n function validity(node, rule, param) {\r\n var valid = true;\r\n\r\n if (dmx.rules[rule]) {\r\n valid = dmx.rules[rule].validity(node, param);\r\n if (!valid) setMessage(node, rule, param);\r\n } else {\r\n console.warn('Validation rule ' + rule + ' not found!');\r\n }\r\n\r\n if (valid) {\r\n dmx.validate.setMessage(node, '');\r\n }\r\n\r\n return valid;\r\n }\r\n\r\n function setMessage(node, rule, param) {\r\n var message = node.getAttribute('data-msg-' + rule) || dmx.rules[rule].message;\r\n if (Array.isArray(param)) {\r\n message = message.replace(/\\{(\\d)\\}/g, function (match, i) {\r\n return param[i];\r\n });\r\n } else {\r\n message = message.replace(/\\{0\\}/g, param);\r\n }\r\n\r\n dmx.validate.setMessage(node, message);\r\n }\r\n\r\n dmx.validate.setMessage = function (node, message) {\r\n node.setCustomValidity(message);\r\n\r\n if (dmx.bootstrapVersion) {\r\n dmx.validate.setBootstrapMessage(node, message);\r\n } else {\r\n dmx.validate.setErrorMessage(node, message);\r\n }\r\n }\r\n\r\n dmx.validate.setErrorMessage = function (node, message) {\r\n if (node.hasAttribute('data-msg-custom') || !(node.getAttribute('name') || node.getAttribute('id'))) {\r\n return;\r\n }\r\n\r\n var type = node.type.toLowerCase();\r\n var id =\r\n 'dmxValidatorError' +\r\n (node.form ? node.form.getAttribute('id') : '') +\r\n (node.getAttribute('name') || node.getAttribute('id'));\r\n var err = document.getElementById(id);\r\n\r\n if (!err) {\r\n err = document.createElement('span');\r\n err.id = id;\r\n err.className = 'dmxValidator-error';\r\n\r\n if (type == 'checkbox' || type == 'radio') {\r\n var group = node.closest('.checkbox-group, .radio-group');\r\n\r\n if (group) {\r\n group.insertAdjacentElement('afterend', err);\r\n } else {\r\n node.insertAdjacentElement('afterend', err);\r\n }\r\n } else {\r\n node.insertAdjacentElement('afterend', err);\r\n }\r\n }\r\n\r\n err.textContent = message;\r\n\r\n if (message) {\r\n node.classList.remove('dmxValidator-valid');\r\n node.classList.add('dmxValidator-invalid');\r\n } else {\r\n node.classList.remove('dmxValidator-invalid');\r\n node.classList.add('dmxValidator-valid');\r\n }\r\n };\r\n\r\n dmx.validate.setBootstrapMessage = function (node, message) {\r\n if (node.hasAttribute('data-msg-custom') || !(node.getAttribute('name') || node.getAttribute('id'))) {\r\n return;\r\n }\r\n\r\n var type = node.type.toLowerCase();\r\n var name = node.getAttribute('name');\r\n var id = 'dmxValidatorError' + (node.form ? node.form.getAttribute('id') : '') + (name || node.getAttribute('id'));\r\n var err = document.getElementById(id);\r\n\r\n if (!err) {\r\n err = document.createElement('div');\r\n err.id = id;\r\n err.className = 'invalid-feedback';\r\n if ((type == 'checkbox' || type == 'radio') && name) {\r\n var nodes = node.form.querySelectorAll('input[name=\"' + name + '\"]');\r\n if (nodes.length) {\r\n node = nodes[nodes.length - 1];\r\n }\r\n }\r\n node.parentElement.appendChild(err);\r\n }\r\n\r\n if (node.hasAttribute('medium-editor-textarea-id')) {\r\n // special case for medium-editor\r\n node = document.getElementById(node.getAttribute('medium-editor-textarea-id'));\r\n }\r\n\r\n if (node.getAttribute('is') == 'dmx-tagify') {\r\n // special case for dmx-tagify\r\n if (node.previousElementSibling && node.previousElementSibling.classList.contains('tagify')) {\r\n node = node.previousElementSibling;\r\n }\r\n }\r\n\r\n if (type != 'hidden' && node.name != 'g-recaptcha-response') {\r\n if ((type == 'checkbox' || type == 'radio') && name) {\r\n var nodes = getFormElementsByName(node);\r\n nodes.forEach(function (node) {\r\n node.setCustomValidity(message);\r\n\r\n if (message) {\r\n node.classList.remove('is-valid');\r\n node.classList.add('is-invalid');\r\n } else {\r\n node.classList.remove('is-invalid');\r\n node.classList.add('is-valid');\r\n }\r\n });\r\n } else {\r\n if (message) {\r\n node.classList.remove('is-valid');\r\n node.classList.add('is-invalid');\r\n } else {\r\n node.classList.remove('is-invalid');\r\n node.classList.add('is-valid');\r\n }\r\n }\r\n }\r\n\r\n err.textContent = message;\r\n };\r\n})();\r\n","(function () {\r\n Object.assign(dmx.rules, {\r\n required: {\r\n message: 'This field is required.',\r\n validity: function (element) {\r\n if (element.type.toLowerCase() == 'checkbox' || element.type.toLowerCase() == 'radio') {\r\n //return element.checked;\r\n if (element.name) {\r\n return !!document.querySelector('[name=\"' + element.name + '\"]:checked');\r\n } else {\r\n return element.checked;\r\n }\r\n }\r\n\r\n if (element.hasAttribute('medium-editor-textarea-id')) {\r\n return !!(element.value && !/^\\s*]*>\\s*]*>\\s*<\\/p>\\s*$/.test(element.value));\r\n }\r\n\r\n return !!(element.value && element.value.length);\r\n },\r\n },\r\n\r\n email: {\r\n message: 'Please enter a valid email address.',\r\n validity: function (element) {\r\n return /^(?!\\.)((?!.*\\.{2})[a-zA-Z0-9\\u0080-\\u00FF\\u0100-\\u017F\\u0180-\\u024F\\u0250-\\u02AF\\u0300-\\u036F\\u0370-\\u03FF\\u0400-\\u04FF\\u0500-\\u052F\\u0530-\\u058F\\u0590-\\u05FF\\u0600-\\u06FF\\u0700-\\u074F\\u0750-\\u077F\\u0780-\\u07BF\\u07C0-\\u07FF\\u0900-\\u097F\\u0980-\\u09FF\\u0A00-\\u0A7F\\u0A80-\\u0AFF\\u0B00-\\u0B7F\\u0B80-\\u0BFF\\u0C00-\\u0C7F\\u0C80-\\u0CFF\\u0D00-\\u0D7F\\u0D80-\\u0DFF\\u0E00-\\u0E7F\\u0E80-\\u0EFF\\u0F00-\\u0FFF\\u1000-\\u109F\\u10A0-\\u10FF\\u1100-\\u11FF\\u1200-\\u137F\\u1380-\\u139F\\u13A0-\\u13FF\\u1400-\\u167F\\u1680-\\u169F\\u16A0-\\u16FF\\u1700-\\u171F\\u1720-\\u173F\\u1740-\\u175F\\u1760-\\u177F\\u1780-\\u17FF\\u1800-\\u18AF\\u1900-\\u194F\\u1950-\\u197F\\u1980-\\u19DF\\u19E0-\\u19FF\\u1A00-\\u1A1F\\u1B00-\\u1B7F\\u1D00-\\u1D7F\\u1D80-\\u1DBF\\u1DC0-\\u1DFF\\u1E00-\\u1EFF\\u1F00-\\u1FFFu20D0-\\u20FF\\u2100-\\u214F\\u2C00-\\u2C5F\\u2C60-\\u2C7F\\u2C80-\\u2CFF\\u2D00-\\u2D2F\\u2D30-\\u2D7F\\u2D80-\\u2DDF\\u2F00-\\u2FDF\\u2FF0-\\u2FFF\\u3040-\\u309F\\u30A0-\\u30FF\\u3100-\\u312F\\u3130-\\u318F\\u3190-\\u319F\\u31C0-\\u31EF\\u31F0-\\u31FF\\u3200-\\u32FF\\u3300-\\u33FF\\u3400-\\u4DBF\\u4DC0-\\u4DFF\\u4E00-\\u9FFF\\uA000-\\uA48F\\uA490-\\uA4CF\\uA700-\\uA71F\\uA800-\\uA82F\\uA840-\\uA87F\\uAC00-\\uD7AF\\uF900-\\uFAFF\\.!#$%&'*+-/=?^_`{|}~\\-\\d]+)@(?!\\.)([a-zA-Z0-9\\u0080-\\u00FF\\u0100-\\u017F\\u0180-\\u024F\\u0250-\\u02AF\\u0300-\\u036F\\u0370-\\u03FF\\u0400-\\u04FF\\u0500-\\u052F\\u0530-\\u058F\\u0590-\\u05FF\\u0600-\\u06FF\\u0700-\\u074F\\u0750-\\u077F\\u0780-\\u07BF\\u07C0-\\u07FF\\u0900-\\u097F\\u0980-\\u09FF\\u0A00-\\u0A7F\\u0A80-\\u0AFF\\u0B00-\\u0B7F\\u0B80-\\u0BFF\\u0C00-\\u0C7F\\u0C80-\\u0CFF\\u0D00-\\u0D7F\\u0D80-\\u0DFF\\u0E00-\\u0E7F\\u0E80-\\u0EFF\\u0F00-\\u0FFF\\u1000-\\u109F\\u10A0-\\u10FF\\u1100-\\u11FF\\u1200-\\u137F\\u1380-\\u139F\\u13A0-\\u13FF\\u1400-\\u167F\\u1680-\\u169F\\u16A0-\\u16FF\\u1700-\\u171F\\u1720-\\u173F\\u1740-\\u175F\\u1760-\\u177F\\u1780-\\u17FF\\u1800-\\u18AF\\u1900-\\u194F\\u1950-\\u197F\\u1980-\\u19DF\\u19E0-\\u19FF\\u1A00-\\u1A1F\\u1B00-\\u1B7F\\u1D00-\\u1D7F\\u1D80-\\u1DBF\\u1DC0-\\u1DFF\\u1E00-\\u1EFF\\u1F00-\\u1FFF\\u20D0-\\u20FF\\u2100-\\u214F\\u2C00-\\u2C5F\\u2C60-\\u2C7F\\u2C80-\\u2CFF\\u2D00-\\u2D2F\\u2D30-\\u2D7F\\u2D80-\\u2DDF\\u2F00-\\u2FDF\\u2FF0-\\u2FFF\\u3040-\\u309F\\u30A0-\\u30FF\\u3100-\\u312F\\u3130-\\u318F\\u3190-\\u319F\\u31C0-\\u31EF\\u31F0-\\u31FF\\u3200-\\u32FF\\u3300-\\u33FF\\u3400-\\u4DBF\\u4DC0-\\u4DFF\\u4E00-\\u9FFF\\uA000-\\uA48F\\uA490-\\uA4CF\\uA700-\\uA71F\\uA800-\\uA82F\\uA840-\\uA87F\\uAC00-\\uD7AF\\uF900-\\uFAFF\\-\\.\\d]+)((\\.([a-zA-Z\\u0080-\\u00FF\\u0100-\\u017F\\u0180-\\u024F\\u0250-\\u02AF\\u0300-\\u036F\\u0370-\\u03FF\\u0400-\\u04FF\\u0500-\\u052F\\u0530-\\u058F\\u0590-\\u05FF\\u0600-\\u06FF\\u0700-\\u074F\\u0750-\\u077F\\u0780-\\u07BF\\u07C0-\\u07FF\\u0900-\\u097F\\u0980-\\u09FF\\u0A00-\\u0A7F\\u0A80-\\u0AFF\\u0B00-\\u0B7F\\u0B80-\\u0BFF\\u0C00-\\u0C7F\\u0C80-\\u0CFF\\u0D00-\\u0D7F\\u0D80-\\u0DFF\\u0E00-\\u0E7F\\u0E80-\\u0EFF\\u0F00-\\u0FFF\\u1000-\\u109F\\u10A0-\\u10FF\\u1100-\\u11FF\\u1200-\\u137F\\u1380-\\u139F\\u13A0-\\u13FF\\u1400-\\u167F\\u1680-\\u169F\\u16A0-\\u16FF\\u1700-\\u171F\\u1720-\\u173F\\u1740-\\u175F\\u1760-\\u177F\\u1780-\\u17FF\\u1800-\\u18AF\\u1900-\\u194F\\u1950-\\u197F\\u1980-\\u19DF\\u19E0-\\u19FF\\u1A00-\\u1A1F\\u1B00-\\u1B7F\\u1D00-\\u1D7F\\u1D80-\\u1DBF\\u1DC0-\\u1DFF\\u1E00-\\u1EFF\\u1F00-\\u1FFF\\u20D0-\\u20FF\\u2100-\\u214F\\u2C00-\\u2C5F\\u2C60-\\u2C7F\\u2C80-\\u2CFF\\u2D00-\\u2D2F\\u2D30-\\u2D7F\\u2D80-\\u2DDF\\u2F00-\\u2FDF\\u2FF0-\\u2FFF\\u3040-\\u309F\\u30A0-\\u30FF\\u3100-\\u312F\\u3130-\\u318F\\u3190-\\u319F\\u31C0-\\u31EF\\u31F0-\\u31FF\\u3200-\\u32FF\\u3300-\\u33FF\\u3400-\\u4DBF\\u4DC0-\\u4DFF\\u4E00-\\u9FFF\\uA000-\\uA48F\\uA490-\\uA4CF\\uA700-\\uA71F\\uA800-\\uA82F\\uA840-\\uA87F\\uAC00-\\uD7AF\\uF900-\\uFAFF]){2,63})+)$/i.test(\r\n element.value\r\n );\r\n },\r\n },\r\n\r\n url: {\r\n message: 'Please enter a valid URL.',\r\n validity: function (element) {\r\n return /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test(\r\n element.value\r\n );\r\n },\r\n },\r\n\r\n datetime: {\r\n message: 'Please enter a valid datetime.',\r\n validity: function (element) {\r\n return /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])[T ]([01][0-9]|2[0-4]):[0-5][0-9](:([0-5][0-9]|60))?Z?$/.test(\r\n element.value\r\n );\r\n },\r\n },\r\n\r\n date: {\r\n message: 'Please enter a valid date.',\r\n validity: function (element) {\r\n return /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test(element.value);\r\n },\r\n },\r\n\r\n time: {\r\n message: 'Please enter a valid time.',\r\n validity: function (element) {\r\n return /^([01][0-9]|2[0-4]):[0-5][0-9](:([0-5][0-9]|60))?$/.test(element.value);\r\n },\r\n },\r\n\r\n month: {\r\n message: 'Please enter a valid month.',\r\n validity: function (element) {\r\n return /^\\d{4}-(0[1-9]|1[012])$/.test(element.value);\r\n },\r\n },\r\n\r\n week: {\r\n message: 'Please enter a valid week.',\r\n validity: function (element) {\r\n return /^\\d{4}-W(0[1-9]|[1-4][0-9]|5[0-3])$/.test(element.value);\r\n },\r\n },\r\n\r\n color: {\r\n message: 'Please enter a color in the format #xxxxxx.',\r\n validity: function (element) {\r\n return /^#[a-fA-F0-9]{6}$/.test(element.value);\r\n },\r\n },\r\n\r\n number: {\r\n message: 'Please enter a valid number.',\r\n validity: function (element) {\r\n return /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(element.value);\r\n },\r\n },\r\n\r\n min: {\r\n message: 'Please enter a value greater than or equal to {0}.',\r\n validity: function (element, param) {\r\n if (element.type == 'number' || element.type == 'range') {\r\n return +element.value >= param;\r\n } else {\r\n return element.value >= param;\r\n }\r\n },\r\n },\r\n\r\n max: {\r\n message: 'Please enter a value less than or equal to {0}.',\r\n validity: function (element, param) {\r\n if (element.type == 'number' || element.type == 'range') {\r\n return +element.value <= param;\r\n } else {\r\n return element.value <= param;\r\n }\r\n },\r\n },\r\n\r\n pattern: {\r\n message: 'Invalid format.',\r\n validity: function (element, param) {\r\n if (!/^text|search|url|tel|email|password$/i.test(element.type)) {\r\n return true;\r\n }\r\n\r\n if (typeof param == 'string') {\r\n param = new RegExp('^(?:' + param + ')$');\r\n }\r\n\r\n return param.test(element.value);\r\n },\r\n },\r\n\r\n minlength: {\r\n message: 'Please enter at least {0} characters.',\r\n validity: function (element, param) {\r\n return element.value.length >= param;\r\n },\r\n },\r\n\r\n maxlength: {\r\n message: 'Please enter no more than {0} characters.',\r\n validity: function (element, param) {\r\n return element.value.length <= param;\r\n },\r\n },\r\n\r\n alphanumeric: {\r\n message: 'Letters, numbers, and underscores only please.',\r\n validity: function (element) {\r\n return /^\\w+$/i.test(element.value);\r\n },\r\n },\r\n\r\n lettersonly: {\r\n message: 'Letters only please.',\r\n validity: function (element) {\r\n return /^[a-z]+$/i.test(element.value);\r\n },\r\n },\r\n\r\n letterswithbasicpunc: {\r\n message: 'Letters or punctuation only please.',\r\n validity: function (element) {\r\n return /^[a-z\\-.,()'\"\\s]+$/i.test(element.value);\r\n },\r\n },\r\n\r\n nowhitespace: {\r\n message: 'No white space please.',\r\n validity: function (element) {\r\n return /^\\S+$/i.test(element.value);\r\n },\r\n },\r\n\r\n digits: {\r\n message: 'Please enter only digits.',\r\n validity: function (element) {\r\n return /^\\d+$/.test(element.value);\r\n },\r\n },\r\n\r\n creditcard: {\r\n message: 'Please enter a valid credit card number.',\r\n validity: function (element) {\r\n var value = element.value;\r\n\r\n // accept only spaces, digits and dashes\r\n if (/[^0-9 \\-]+/.test(value)) {\r\n return false;\r\n }\r\n\r\n var nCheck = 0,\r\n nDigit = 0,\r\n bEven = false,\r\n n,\r\n cDigit;\r\n\r\n value = value.replace(/\\D/g, '');\r\n\r\n // Basing min and max length on\r\n // http://developer.ean.com/general_info/Valid_Credit_Card_Types\r\n if (value.length < 13 || value.length > 19) {\r\n return false;\r\n }\r\n\r\n for (n = value.length - 1; n >= 0; n--) {\r\n cDigit = value.charAt(n);\r\n nDigit = parseInt(cDigit, 10);\r\n if (bEven) {\r\n if ((nDigit *= 2) > 9) {\r\n nDigit -= 9;\r\n }\r\n }\r\n nCheck += nDigit;\r\n bEven = !bEven;\r\n }\r\n\r\n return nCheck % 10 === 0;\r\n },\r\n },\r\n\r\n bic: {\r\n message: 'Please specify a valid BIC code.',\r\n validity: function (element) {\r\n return /^([A-Z]{6}[A-Z2-9][A-NP-Z1-2])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(element.value);\r\n },\r\n },\r\n\r\n iban: {\r\n message: 'Please specify a valid IBAN.',\r\n validity: function (element) {\r\n // remove spaces and to upper case\r\n var iban = element.value.replace(/ /g, '').toUpperCase(),\r\n ibancheckdigits = '',\r\n leadingZeroes = true,\r\n cRest = '',\r\n cOperator = '',\r\n countrycode,\r\n ibancheck,\r\n charAt,\r\n cChar,\r\n bbanpattern,\r\n bbancountrypatterns,\r\n ibanregexp,\r\n i,\r\n p;\r\n\r\n // check the country code and find the country specific format\r\n countrycode = iban.substring(0, 2);\r\n bbancountrypatterns = {\r\n AL: '\\\\d{8}[\\\\dA-Z]{16}',\r\n AD: '\\\\d{8}[\\\\dA-Z]{12}',\r\n AT: '\\\\d{16}',\r\n AZ: '[\\\\dA-Z]{4}\\\\d{20}',\r\n BE: '\\\\d{12}',\r\n BH: '[A-Z]{4}[\\\\dA-Z]{14}',\r\n BA: '\\\\d{16}',\r\n BR: '\\\\d{23}[A-Z][\\\\dA-Z]',\r\n BG: '[A-Z]{4}\\\\d{6}[\\\\dA-Z]{8}',\r\n CR: '\\\\d{17}',\r\n HR: '\\\\d{17}',\r\n CY: '\\\\d{8}[\\\\dA-Z]{16}',\r\n CZ: '\\\\d{20}',\r\n DK: '\\\\d{14}',\r\n DO: '[A-Z]{4}\\\\d{20}',\r\n EE: '\\\\d{16}',\r\n FO: '\\\\d{14}',\r\n FI: '\\\\d{14}',\r\n FR: '\\\\d{10}[\\\\dA-Z]{11}\\\\d{2}',\r\n GE: '[\\\\dA-Z]{2}\\\\d{16}',\r\n DE: '\\\\d{18}',\r\n GI: '[A-Z]{4}[\\\\dA-Z]{15}',\r\n GR: '\\\\d{7}[\\\\dA-Z]{16}',\r\n GL: '\\\\d{14}',\r\n GT: '[\\\\dA-Z]{4}[\\\\dA-Z]{20}',\r\n HU: '\\\\d{24}',\r\n IS: '\\\\d{22}',\r\n IE: '[\\\\dA-Z]{4}\\\\d{14}',\r\n IL: '\\\\d{19}',\r\n IT: '[A-Z]\\\\d{10}[\\\\dA-Z]{12}',\r\n KZ: '\\\\d{3}[\\\\dA-Z]{13}',\r\n KW: '[A-Z]{4}[\\\\dA-Z]{22}',\r\n LV: '[A-Z]{4}[\\\\dA-Z]{13}',\r\n LB: '\\\\d{4}[\\\\dA-Z]{20}',\r\n LI: '\\\\d{5}[\\\\dA-Z]{12}',\r\n LT: '\\\\d{16}',\r\n LU: '\\\\d{3}[\\\\dA-Z]{13}',\r\n MK: '\\\\d{3}[\\\\dA-Z]{10}\\\\d{2}',\r\n MT: '[A-Z]{4}\\\\d{5}[\\\\dA-Z]{18}',\r\n MR: '\\\\d{23}',\r\n MU: '[A-Z]{4}\\\\d{19}[A-Z]{3}',\r\n MC: '\\\\d{10}[\\\\dA-Z]{11}\\\\d{2}',\r\n MD: '[\\\\dA-Z]{2}\\\\d{18}',\r\n ME: '\\\\d{18}',\r\n NL: '[A-Z]{4}\\\\d{10}',\r\n NO: '\\\\d{11}',\r\n PK: '[\\\\dA-Z]{4}\\\\d{16}',\r\n PS: '[\\\\dA-Z]{4}\\\\d{21}',\r\n PL: '\\\\d{24}',\r\n PT: '\\\\d{21}',\r\n RO: '[A-Z]{4}[\\\\dA-Z]{16}',\r\n SM: '[A-Z]\\\\d{10}[\\\\dA-Z]{12}',\r\n SA: '\\\\d{2}[\\\\dA-Z]{18}',\r\n RS: '\\\\d{18}',\r\n SK: '\\\\d{20}',\r\n SI: '\\\\d{15}',\r\n ES: '\\\\d{20}',\r\n SE: '\\\\d{20}',\r\n CH: '\\\\d{5}[\\\\dA-Z]{12}',\r\n TN: '\\\\d{20}',\r\n TR: '\\\\d{5}[\\\\dA-Z]{17}',\r\n AE: '\\\\d{3}\\\\d{16}',\r\n GB: '[A-Z]{4}\\\\d{14}',\r\n VG: '[\\\\dA-Z]{4}\\\\d{16}',\r\n };\r\n\r\n bbanpattern = bbancountrypatterns[countrycode];\r\n // As new countries will start using IBAN in the\r\n // future, we only check if the countrycode is known.\r\n // This prevents false negatives, while almost all\r\n // false positives introduced by this, will be caught\r\n // by the checksum validation below anyway.\r\n // Strict checking should return FALSE for unknown\r\n // countries.\r\n if (typeof bbanpattern !== 'undefined') {\r\n ibanregexp = new RegExp('^[A-Z]{2}\\\\d{2}' + bbanpattern + '$', '');\r\n if (!ibanregexp.test(iban)) {\r\n return false; // invalid country specific format\r\n }\r\n }\r\n\r\n // now check the checksum, first convert to digits\r\n ibancheck = iban.substring(4, iban.length) + iban.substring(0, 4);\r\n for (i = 0; i < ibancheck.length; i++) {\r\n charAt = ibancheck.charAt(i);\r\n if (charAt !== '0') {\r\n leadingZeroes = false;\r\n }\r\n if (!leadingZeroes) {\r\n ibancheckdigits += '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.indexOf(charAt);\r\n }\r\n }\r\n\r\n // calculate the result of: ibancheckdigits % 97\r\n for (p = 0; p < ibancheckdigits.length; p++) {\r\n cChar = ibancheckdigits.charAt(p);\r\n cOperator = '' + cRest + '' + cChar;\r\n cRest = cOperator % 97;\r\n }\r\n return cRest === 1;\r\n },\r\n },\r\n\r\n vat: {\r\n message: 'Please specify a valid VAT Number.',\r\n validity: function (element) {\r\n return /^((AT)?U[0-9]{8}|(BE)?0[0-9]{9}|(BG)?[0-9]{9,10}|(CY)?[0-9]{8}L|(CZ)?[0-9]{8,10}|(DE)?[0-9]{9}|(DK)?[0-9]{8}|(EE)?[0-9]{9}|(EL|GR)?[0-9]{9}|(ES)?[0-9A-Z][0-9]{7}[0-9A-Z]|(FI)?[0-9]{8}|(FR)?[0-9A-Z]{2}[0-9]{9}|(GB)?([0-9]{9}([0-9]{3})?|[A-Z]{2}[0-9]{3})|(HU)?[0-9]{8}|(IE)?[0-9]S[0-9]{5}L|(IT)?[0-9]{11}|(LT)?([0-9]{9}|[0-9]{12})|(LU)?[0-9]{8}|(LV)?[0-9]{11}|(MT)?[0-9]{8}|(NL)?[0-9]{9}B[0-9]{2}|(PL)?[0-9]{10}|(PT)?[0-9]{9}|(RO)?[0-9]{2,10}|(SE)?[0-9]{12}|(SI)?[0-9]{8}|(SK)?[0-9]{10})$/.test(\r\n element.value\r\n );\r\n },\r\n },\r\n\r\n integer: {\r\n message: 'A positive or negative non-decimal number please.',\r\n validity: function (element) {\r\n return /^-?\\d+$/.test(element.value);\r\n },\r\n },\r\n\r\n ipv4: {\r\n message: 'Please enter a valid IP v4 address.',\r\n validity: function (element) {\r\n return /^(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/i.test(\r\n element.value\r\n );\r\n },\r\n },\r\n\r\n ipv6: {\r\n message: 'Please enter a valid IP v6 address.',\r\n validity: function (element) {\r\n return /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b)\\.){3}(\\b((25[0-5])|(1\\d{2})|(2[0-4]\\d)|(\\d{1,2}))\\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(\r\n element.value\r\n );\r\n },\r\n },\r\n\r\n minitems: {\r\n message: 'Please select at least {0} items.',\r\n validity: function (element, param) {\r\n return getCount(element) >= param;\r\n },\r\n },\r\n\r\n maxitems: {\r\n message: 'Please select no more tham {0} items.',\r\n validity: function (element, param) {\r\n return getCount(element) <= param;\r\n },\r\n },\r\n\r\n equalto: {\r\n message: 'Please enter the same value again.',\r\n validity: function (element, param) {\r\n if (param[0] != '#') param = '[name=\"' + param + '\"]';\r\n var target = element.form.querySelector(param);\r\n if (!target) {\r\n console.warn('Target element ' + param + ' for equalTo rule not found.');\r\n return true;\r\n }\r\n return element.value == target.value;\r\n },\r\n },\r\n\r\n notequalto: {\r\n message: 'Please enter a different value, values must not be the same.',\r\n validity: function (element, param) {\r\n if (param[0] != '#') param = '[name=\"' + param + '\"]';\r\n var target = element.form.querySelector(param);\r\n if (!target) {\r\n console.warn('Target element ' + param + ' for equalTo rule not found.');\r\n return true;\r\n }\r\n return element.value != target.value;\r\n },\r\n },\r\n });\r\n\r\n function getCount(element) {\r\n if (element.nodeName == 'SELECT') {\r\n return dmx.array(element.options).reduce(function (n, opt) {\r\n return n + opt.selected;\r\n }, 0);\r\n }\r\n\r\n if (element.type.toLowerCase() == 'checkbox') {\r\n return dmx.array(element.form.elements).reduce(function (n, elm) {\r\n return n + (elm.name == element.name && elm.checked);\r\n }, 0);\r\n }\r\n\r\n return 1;\r\n }\r\n})();\r\n","(function () {\r\n Object.assign(dmx.rules, {\r\n accept: {\r\n message: 'This file type is not allowed for upload.',\r\n validity: function (element, param) {\r\n if (element.type.toLowerCase() != 'file') {\r\n return true;\r\n }\r\n\r\n var allowed = param.replace(/\\s/g, '').split(',');\r\n\r\n if (element.files && element.files.length) {\r\n for (var i = 0; i < element.files.length; i++) {\r\n var file = element.files[i],\r\n ok = false;\r\n\r\n for (var j = 0; j < allowed.length; j++) {\r\n var check = allowed[j];\r\n\r\n if (check.charAt(0) == '.') {\r\n if (file.name.match(new RegExp('\\\\' + check + '$', 'i'))) {\r\n ok = true;\r\n break;\r\n }\r\n } else if (/(audio|video|image)\\/\\*/i.test(check)) {\r\n if (file.type.match(new RegExp('^' + check.replace(/\\*/g, '.*') + '$', 'i'))) {\r\n ok = true;\r\n break;\r\n }\r\n } else {\r\n if (file.type.toLowerCase() == check.toLowerCase()) {\r\n ok = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!ok) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n },\r\n\r\n minsize: {\r\n message: 'Please select a file of at least {0} bytes.',\r\n validity: function (element, param) {\r\n if (element.type.toLowerCase() != 'file') {\r\n return true;\r\n }\r\n\r\n if (element.files && element.files.length) {\r\n for (var i = 0; i < element.files.length; i++) {\r\n if (element.files[i].size < param) return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n },\r\n\r\n maxsize: {\r\n message: 'Please select a file of no more than {0} bytes.',\r\n validity: function (element, param) {\r\n if (element.type.toLowerCase() != 'file') {\r\n return true;\r\n }\r\n\r\n if (element.files && element.files.length) {\r\n for (var i = 0; i < element.files.length; i++) {\r\n if (element.files[i].size > param) return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n },\r\n\r\n mintotalsize: {\r\n message: 'Total size of selected files should be at least {0} bytes.',\r\n validity: function (element, param) {\r\n if (element.type.toLowerCase() != 'file') {\r\n return true;\r\n }\r\n\r\n if (element.files && element.files.length) {\r\n var size = 0;\r\n for (var i = 0; i < element.files.length; i++) {\r\n size += element.files[i].size;\r\n }\r\n if (size < param) return false;\r\n }\r\n\r\n return true;\r\n },\r\n },\r\n\r\n maxtotalsize: {\r\n message: 'Total size of selected files should be no more than {0} bytes.',\r\n validity: function (element, param) {\r\n if (element.type.toLowerCase() != 'file') {\r\n return true;\r\n }\r\n\r\n if (element.files && element.files.length) {\r\n var size = 0;\r\n for (var i = 0; i < element.files.length; i++) {\r\n size += element.files[i].size;\r\n }\r\n if (size > param) return false;\r\n }\r\n\r\n return true;\r\n },\r\n },\r\n\r\n minfiles: {\r\n message: 'Please select at least {0} files.',\r\n validity: function (element, param) {\r\n if (element.type.toLowerCase() != 'file') {\r\n return true;\r\n }\r\n\r\n if (element.files && element.files.length) {\r\n if (element.files.length < param) return false;\r\n }\r\n\r\n return true;\r\n },\r\n },\r\n\r\n maxfiles: {\r\n message: 'Please select no more than {0} files.',\r\n validity: function (element, param) {\r\n if (element.type.toLowerCase() != 'file') {\r\n return true;\r\n }\r\n\r\n if (element.files && element.files.length) {\r\n if (element.files.length > param) return false;\r\n }\r\n\r\n return true;\r\n },\r\n },\r\n });\r\n})();\r\n"]} \ No newline at end of file diff --git a/views/.wappler_folder.json b/views/.wappler_folder.json index f6af151..ca0694b 100644 --- a/views/.wappler_folder.json +++ b/views/.wappler_folder.json @@ -6,5 +6,9 @@ "observationPage.ejs": { "layoutPage": "main", "description": "Observation Page for DT" + }, + "ERTScoring.ejs": { + "layoutPage": "main", + "description": "" } } \ No newline at end of file diff --git a/views/DAPage1.ejs b/views/DAPage1.ejs index b8dfd6a..3f3cf8d 100644 --- a/views/DAPage1.ejs +++ b/views/DAPage1.ejs @@ -1,4 +1,4 @@ - +

A nice paragraph

@@ -12,4 +12,18 @@
+
+
+

Fancy display heading

+
+
+

Fancy display blah

+
+
+

Fancy display blah blah

+
+
+

Fancy display last blah

+
+
\ No newline at end of file diff --git a/views/ERTScoring.ejs b/views/ERTScoring.ejs new file mode 100644 index 0000000..2ec1bc9 --- /dev/null +++ b/views/ERTScoring.ejs @@ -0,0 +1,5 @@ + + + + + diff --git a/views/layouts/main.ejs b/views/layouts/main.ejs index 9c326e5..70cb007 100644 --- a/views/layouts/main.ejs +++ b/views/layouts/main.ejs @@ -26,6 +26,12 @@ + + + + + + @@ -43,6 +49,7 @@ Edit About Observation + Settings diff --git a/views/observationPage.ejs b/views/observationPage.ejs index 4f5fe8c..71fac05 100644 --- a/views/observationPage.ejs +++ b/views/observationPage.ejs @@ -1,12 +1,68 @@ - + + +
+
+
Offcanvas title
+ +
+
+
+
+ + +
+
+

Offcanvas body text goes here.

+
+
- +
+
+
+
+
+

Who you are grading

+ +
+
+ + + + + + + + + + + + + + + + + + + +
DA NameLicense No.Issue StateDA Empl. IDDriver Trainer
+ +
+
+
+
+ +
+
+
+
+
@@ -18,7 +74,7 @@
-
+
@@ -35,7 +91,6 @@
-
@@ -51,7 +106,7 @@ - +
- @@ -60,18 +115,22 @@
+
+

No Score shown yet.

+
- +
+ @@ -79,6 +138,7 @@ +
$id Num section PointsDescription