@xwadex/fesd 0.0.75 → 0.0.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fesd-bundle.css +1 -1
- package/dist/tools-bundle.js +1 -1
- package/dist/tools-bundle.js.map +1 -1
- package/package.json +1 -1
package/dist/fesd-bundle.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.os-size-observer,.os-size-observer-listener{scroll-behavior:auto!important;direction:inherit;pointer-events:none;overflow:hidden;visibility:hidden;box-sizing:border-box}.os-size-observer,.os-size-observer-listener,.os-size-observer-listener-item,.os-size-observer-listener-item-final{writing-mode:horizontal-tb;position:absolute;left:0;top:0}.os-size-observer{z-index:-1;contain:strict;display:flex;flex-direction:row;flex-wrap:nowrap;padding:inherit;border:inherit;box-sizing:inherit;margin:-133px;inset:0;transform:scale(.1)}.os-size-observer:before{content:"";flex:none;box-sizing:inherit;padding:10px;width:10px;height:10px}.os-size-observer-appear{animation:os-size-observer-appear-animation 1ms forwards}.os-size-observer-listener{box-sizing:border-box;position:relative;flex:auto;padding:inherit;border:inherit;margin:-133px;transform:scale(10)}.os-size-observer-listener.ltr{margin-right:-266px;margin-left:0}.os-size-observer-listener.rtl{margin-left:-266px;margin-right:0}.os-size-observer-listener:empty:before{content:"";width:100%;height:100%}.os-size-observer-listener:empty:before,.os-size-observer-listener>.os-size-observer-listener-item{display:block;position:relative;padding:inherit;border:inherit;box-sizing:content-box;flex:auto}.os-size-observer-listener-scroll{box-sizing:border-box;display:flex}.os-size-observer-listener-item{right:0;bottom:0;overflow:hidden;direction:ltr;flex:none}.os-size-observer-listener-item-final{transition:none}@keyframes os-size-observer-appear-animation{0%{cursor:auto}to{cursor:none}}.os-trinsic-observer{flex:none;box-sizing:border-box;position:relative;max-width:0px;max-height:1px;padding:0;margin:0;border:none;overflow:hidden;z-index:-1;height:0;top:calc(100% + 1px);contain:strict}.os-trinsic-observer:not(:empty){height:calc(100% + 1px);top:-1px}.os-trinsic-observer:not(:empty)>.os-size-observer{width:1000%;height:1000%;min-height:1px;min-width:1px}[data-overlayscrollbars-initialize],[data-overlayscrollbars-viewport~=scrollbarHidden]{scrollbar-width:none!important}[data-overlayscrollbars-initialize]::-webkit-scrollbar,[data-overlayscrollbars-initialize]::-webkit-scrollbar-corner,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner{-webkit-appearance:none!important;appearance:none!important;display:none!important;width:0!important;height:0!important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars]):not(html):not(body){overflow:auto}html[data-overlayscrollbars-body]{overflow:hidden}html[data-overlayscrollbars-body],html[data-overlayscrollbars-body]>body{width:100%;height:100%;margin:0}html[data-overlayscrollbars-body]>body{overflow:visible;margin:0}[data-overlayscrollbars]{position:relative}[data-overlayscrollbars~=host],[data-overlayscrollbars-padding]{display:flex;align-items:stretch!important;flex-direction:row!important;flex-wrap:nowrap!important;scroll-behavior:auto!important}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){box-sizing:inherit;position:relative;flex:auto!important;height:auto;width:100%;min-width:0;padding:0;margin:0;border:none;z-index:0}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){--os-vaw: 0;--os-vah: 0;outline:none}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]):focus{outline:none}[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]:before{content:"";position:absolute;pointer-events:none;z-index:-1;min-width:1px;min-height:1px;width:var(--os-vaw);height:var(--os-vah)}[data-overlayscrollbars],[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]{overflow:hidden!important}[data-overlayscrollbars~=noClipping],[data-overlayscrollbars-padding~=noClipping]{overflow:visible!important}[data-overlayscrollbars-viewport~=measuring]{overflow:hidden!important;scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-viewport~=overflowXVisible]:not([data-overlayscrollbars-viewport~=measuring]){overflow-x:visible!important}[data-overlayscrollbars-viewport~=overflowXHidden]{overflow-x:hidden!important}[data-overlayscrollbars-viewport~=overflowXScroll]{overflow-x:scroll!important}[data-overlayscrollbars-viewport~=overflowYVisible]:not([data-overlayscrollbars-viewport~=measuring]){overflow-y:visible!important}[data-overlayscrollbars-viewport~=overflowYHidden]{overflow-y:hidden!important}[data-overlayscrollbars-viewport~=overflowYScroll]{overflow-y:scroll!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId){font-size:0!important;line-height:0!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):before,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):after,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId)>*{display:none!important;position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}[data-overlayscrollbars-viewport~=scrollbarPressed]{scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-content]{box-sizing:inherit}[data-overlayscrollbars-contents]:not(#osFakeId):not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not([data-overlayscrollbars-content]){display:contents}[data-overlayscrollbars-grid],[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]{display:grid;grid-template:1fr/1fr}[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding],[data-overlayscrollbars-grid]>[data-overlayscrollbars-viewport],[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding]>[data-overlayscrollbars-viewport]{height:auto!important;width:auto!important}.os-scrollbar{contain:size layout;contain:size layout style;transition:opacity .15s,visibility .15s,top .15s,right .15s,bottom .15s,left .15s;pointer-events:none;position:absolute;opacity:0;visibility:hidden}body>.os-scrollbar{position:fixed;z-index:99999}.os-scrollbar-transitionless{transition:none}.os-scrollbar-track{position:relative;padding:0!important;border:none!important}.os-scrollbar-handle{position:absolute}.os-scrollbar-track,.os-scrollbar-handle{pointer-events:none;width:100%;height:100%}.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track,.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle{pointer-events:auto;touch-action:none}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{top:0;right:0}.os-scrollbar-rtl.os-scrollbar-horizontal{right:0}.os-scrollbar-rtl.os-scrollbar-vertical{right:auto;left:0}.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-auto-hide.os-scrollbar-auto-hide-hidden{opacity:0;visibility:hidden}.os-scrollbar-interaction.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-unusable,.os-scrollbar-unusable *,.os-scrollbar-wheel,.os-scrollbar-wheel *{pointer-events:none!important}.os-scrollbar-unusable .os-scrollbar-handle{opacity:0!important;transition:none!important}.os-scrollbar-horizontal .os-scrollbar-handle{bottom:0;left:0}.os-scrollbar-vertical .os-scrollbar-handle{top:0;right:0}.os-scrollbar-rtl.os-scrollbar-horizontal .os-scrollbar-handle,.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle{right:auto;left:0}.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl{left:0;right:0}.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl{top:0;bottom:0}@media print{.os-scrollbar{display:none}}.os-scrollbar{--os-size: 0;--os-padding-perpendicular: 0;--os-padding-axis: 0;--os-track-border-radius: 0;--os-track-bg: none;--os-track-bg-hover: none;--os-track-bg-active: none;--os-track-border: none;--os-track-border-hover: none;--os-track-border-active: none;--os-handle-border-radius: 0;--os-handle-bg: none;--os-handle-bg-hover: none;--os-handle-bg-active: none;--os-handle-border: none;--os-handle-border-hover: none;--os-handle-border-active: none;--os-handle-min-size: 33px;--os-handle-max-size: none;--os-handle-perpendicular-size: 100%;--os-handle-perpendicular-size-hover: 100%;--os-handle-perpendicular-size-active: 100%;--os-handle-interactive-area-offset: 0}.os-scrollbar .os-scrollbar-track{border:var(--os-track-border);border-radius:var(--os-track-border-radius);background:var(--os-track-bg);transition:opacity .15s,background-color .15s,border-color .15s}.os-scrollbar .os-scrollbar-track:hover{border:var(--os-track-border-hover);background:var(--os-track-bg-hover)}.os-scrollbar .os-scrollbar-track:active{border:var(--os-track-border-active);background:var(--os-track-bg-active)}.os-scrollbar .os-scrollbar-handle{border:var(--os-handle-border);border-radius:var(--os-handle-border-radius);background:var(--os-handle-bg)}.os-scrollbar .os-scrollbar-handle:before{content:"";position:absolute;inset:0;display:block}.os-scrollbar .os-scrollbar-handle:hover{border:var(--os-handle-border-hover);background:var(--os-handle-bg-hover)}.os-scrollbar .os-scrollbar-handle:active{border:var(--os-handle-border-active);background:var(--os-handle-bg-active)}.os-scrollbar-horizontal{padding:var(--os-padding-perpendicular) var(--os-padding-axis);right:var(--os-size);height:var(--os-size)}.os-scrollbar-horizontal.os-scrollbar-rtl{left:var(--os-size);right:0}.os-scrollbar-horizontal .os-scrollbar-handle{min-width:var(--os-handle-min-size);max-width:var(--os-handle-max-size);height:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,height .15s}.os-scrollbar-horizontal .os-scrollbar-handle:before{top:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);bottom:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-horizontal:hover .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-horizontal:active .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-active)}.os-scrollbar-vertical{padding:var(--os-padding-axis) var(--os-padding-perpendicular);bottom:var(--os-size);width:var(--os-size)}.os-scrollbar-vertical .os-scrollbar-handle{min-height:var(--os-handle-min-size);max-height:var(--os-handle-max-size);width:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,width .15s}.os-scrollbar-vertical .os-scrollbar-handle:before{left:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);right:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before{right:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);left:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical:hover .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-vertical:active .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-active)}[data-overlayscrollbars-viewport~=measuring]>.os-scrollbar,.os-theme-none.os-scrollbar{display:none!important}.os-theme-dark,.os-theme-light{box-sizing:border-box;--os-size: 10px;--os-padding-perpendicular: 2px;--os-padding-axis: 2px;--os-track-border-radius: 10px;--os-handle-interactive-area-offset: 4px;--os-handle-border-radius: 10px}.os-theme-dark{--os-handle-bg: rgba(0, 0, 0, .44);--os-handle-bg-hover: rgba(0, 0, 0, .55);--os-handle-bg-active: rgba(0, 0, 0, .66)}.os-theme-light{--os-handle-bg: rgba(255, 255, 255, .44);--os-handle-bg-hover: rgba(255, 255, 255, .55);--os-handle-bg-active: rgba(255, 255, 255, .66)}modern-modal{position:fixed;z-index:10;inset:0;background-color:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:.5s .3s;display:none}modern-modal.show{opacity:1;pointer-events:auto;transition:.5s}modern-modal .modal-scroller{position:relative;width:100%;height:100%}modern-modal .modal-wrapper{display:flex;flex-direction:column;min-height:100%}modern-modal .modal-content{position:relative;width:100%;max-width:800px;background-color:#fff;margin:auto}modern-modal[data-modal-animate=fade-up].show .modal-content{opacity:1;transform:translate(0);transition:.6s .2s}modern-modal[data-modal-animate=fade-up] .modal-content{opacity:0;transform:translateY(50px);transition:.6s}modern-modal[data-modal-animate=fade-down].show .modal-content{opacity:1;transform:translate(0);transition:.6s .2s}modern-modal[data-modal-animate=fade-down] .modal-content{opacity:0;transform:translateY(-50px);transition:.6s}modern-modal[data-modal-animate=fade-right].show .modal-content{opacity:1;transform:translate(0);transition:.6s .2s}modern-modal[data-modal-animate=fade-right] .modal-content{opacity:0;transform:translate(-50px);transition:.6s}modern-modal[data-modal-animate=fade-left].show .modal-content{opacity:1;transform:translate(0);transition:.6s .2s}modern-modal[data-modal-animate=fade-left] .modal-content{opacity:0;transform:translate(50px);transition:.6s}modern-modal[data-modal-animate=zoom-in].show .modal-content{opacity:1;transform:scale(1);transition:.6s .2s}modern-modal[data-modal-animate=zoom-in] .modal-content{opacity:0;transform:scale(.8);transition:.6s}modern-modal[data-modal-animate=zoom-out].show .modal-content{opacity:1;transform:scale(1);transition:.6s .2s}modern-modal[data-modal-animate=zoom-out] .modal-content{opacity:0;transform:scale(1.2);transition:.6s}modern-modal[data-modal-animate=clip-up].show .modal-content{opacity:1;clip-path:polygon(0 -15%,100% 0,100% 100%,0 100%);transition:.6s .2s}modern-modal[data-modal-animate=clip-up] .modal-content{opacity:0;clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);transition:.6s}modern-modal[data-modal-animate=clip-down].show .modal-content{opacity:1;clip-path:polygon(0 0,100% 0,100% 115%,0 100%);transition:.6s .2s}modern-modal[data-modal-animate=clip-down] .modal-content{opacity:0;clip-path:polygon(0 0,100% 0,100% 0,0 0);transition:.6s}modern-modal[data-modal-animate=clip-right].show .modal-content{opacity:1;clip-path:polygon(0 0,115% 0,100% 100%,0 100%);transition:.6s .2s}modern-modal[data-modal-animate=clip-right] .modal-content{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);transition:.6s}modern-modal[data-modal-animate=clip-left].show .modal-content{opacity:1;clip-path:polygon(-15% 0,100% 0,100% 100%,0 100%);transition:.6s .2s}modern-modal[data-modal-animate=clip-left] .modal-content{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);transition:.6s}[data-aost][data-aost-fade]{opacity:0}[data-aost][data-aost-fade].aost-show{opacity:1;transition:opacity var(--aost-trans, .8s)}[data-aost][data-aost-fade-up]{opacity:0;transform:translateY(50px)}[data-aost][data-aost-fade-up].aost-show{opacity:1;transform:translateY(0);transition:opacity var(--aost-trans, .8s),transform var(--aost-trans, .8s)}[data-aost][data-aost-fade-down]{opacity:0;transform:translateY(-50px)}[data-aost][data-aost-fade-down].aost-show{opacity:1;transform:translateY(0);transition:opacity var(--aost-trans, .8s),transform var(--aost-trans, .8s)}[data-aost][data-aost-fade-right]{opacity:0;transform:translate(50px)}[data-aost][data-aost-fade-right].aost-show{opacity:1;transform:translateY(0);transition:opacity var(--aost-trans, .8s),transform var(--aost-trans, .8s)}[data-aost][data-aost-fade-left]{opacity:0;transform:translate(-50px)}[data-aost][data-aost-fade-left].aost-show{opacity:1;transform:translateY(0);transition:opacity var(--aost-trans, .8s),transform var(--aost-trans, .8s)}[data-aost][data-aost-clip-down]{opacity:0;clip-path:polygon(0 0,100% 0,100% 0,0 0)}[data-aost][data-aost-clip-down].aost-show{opacity:1;clip-path:polygon(0 0,100% 0,100% 115%,0 100%);transition:opacity var(--aost-trans, .8s),clip-path var(--aost-trans, .8s)}[data-aost][data-aost-clip-left]{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%)}[data-aost][data-aost-clip-left].aost-show{opacity:1;clip-path:polygon(0 0,110% 0,100% 100%,0 100%);transition:opacity var(--aost-trans, .8s),clip-path var(--aost-trans, .8s)}[data-aost][data-aost-clip-right]{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}[data-aost][data-aost-clip-right].aost-show{opacity:1;clip-path:polygon(-10% 0,100% 0,100% 100%,0% 100%);transition:opacity var(--aost-trans, .8s),clip-path var(--aost-trans, .8s)}[data-aost][data-aost-scale]{opacity:0;transform:scale(.5)}[data-aost][data-aost-scale].aost-show{opacity:1;transform:scale(1);transition:opacity var(--aost-trans, .8s),clip-path var(--aost-trans, .8s)}[video-template] .modal-wrapper{padding:0 40px}[video-template] .modal-content{max-width:1280px;width:100%;background-color:transparent}[video-template][video-typeStyle=instagram] .modal-wrapper{padding:40px}[video-template][video-typeStyle=instagram] .modal-content{padding:30px;max-width:540px;background:#fff;opacity:0;transition:opacity .5s}[video-template][video-typeStyle=instagram] .instagram-media{min-width:unset!important;width:100%;border:0}[video-template][video-typeStyle=instagram] .modal-content.active{opacity:1}[video-template][video-typeStyle=tiktok] iframe{border:0}[video-template] .video-content{position:relative;width:100%;height:0;padding-bottom:56.25%}[video-template] video{width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000}[video-template] .video4-cover{width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000}[video-template] .video4-cover img{position:relative;width:100%;height:100%;object-fit:contain;z-index:1}[video-template] .close-button{position:absolute;top:-30px;right:-30px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;transform:rotate(45deg);z-index:1;cursor:pointer}[video-template] .close-button:before,[video-template] .close-button:after{content:"";position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);background-color:#fff}[video-template] .close-button:before{width:3px;height:20px}[video-template] .close-button:after{width:20px;height:3px}video-player[video-type=instagram] .player-wrapper:before{padding-bottom:124.907%}video-player .player-container{position:relative}video-player .player-wrapper:before{display:block;padding-bottom:56.25%;content:""}video-player iframe{position:absolute;inset:0;width:100%;height:100%}.video4-cover{position:relative}.video4-cover .playButton{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:min(24%,50px);height:0;padding-bottom:min(24%,50px);background-size:cover;box-shadow:4px 4px 25px #00000080;border-radius:50%;transform:translate3d(-50%,-50%,0);z-index:2;cursor:pointer}.video4-cover .playButton:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background-color:#fff}.video4-cover .playButton:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-style:solid;border-width:6px 0 6px 12px;border-color:transparent transparent transparent #000;transform:translate3d(-50%,-50%,0);z-index:1}.video4-cover [class*=playTrigger]{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;cursor:pointer}.video4-cover [class*=playTrigger]:hover+.overlay{background-color:#000c}.video4-cover [class*=playTrigger]:hover .overlay{background-color:#000c}.video4-cover .overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0006;transition:background-color .5s;z-index:1;cursor:pointer}.video4-cover.onPage iframe{width:100%;height:100%;position:absolute;top:0;left:0;z-index:2}@media all and (orientation:landscape){[video-template] .modal-content{max-width:133.33vh}}[video-typeStyle=youtube-shorts][video-template=inBox] .video-content{padding-bottom:177.78%}[video-typeStyle=youtube-shorts][video-template=inBox] .video4-cover img{object-fit:cover}[video-typeStyle=youtube-shorts] .modal-content{max-width:max(405px,21.09375vw);width:100%;overflow:hidden}[video-typeStyle=youtube-shorts] video-player .player-container{position:relative}[video-typeStyle=youtube-shorts] video-player .player-wrapper:before{display:none}[video-typeStyle=youtube-shorts] .overlay{position:absolute;top:50%;left:50%;width:101%;height:101%;transform:translate3d(-50%,-50%,0)}[video-typeStyle=youtube-shorts] iframe{position:relative;aspect-ratio:9/16;width:auto;margin:0 auto}dropdown-el{position:relative;display:block;width:100%}dropdown-el[d4-status=open] .dropdown-icon{transform:rotateX(180deg)}dropdown-el:not([d4-value=""]) .select-display{color:#fff}dropdown-el[multiple] .select-display{display:flex;flex-wrap:wrap;gap:8px}dropdown-el[multiple] .select-display .option-btn{display:flex;align-items:center;padding:4px 15px;background-color:#585858;border-radius:10rem}dropdown-el[multiple] .select-display .option-btn .text{color:#fff}dropdown-el[multiple] .select-display .option-btn .remove-icon{position:relative;width:14px;height:14px;transform:rotate(45deg);margin-left:10px}dropdown-el[multiple] .select-display .option-btn .remove-icon:before,dropdown-el[multiple] .select-display .option-btn .remove-icon:after{content:"";position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);background-color:#fff}dropdown-el[multiple] .select-display .option-btn .remove-icon:before{width:100%;height:1px}dropdown-el[multiple] .select-display .option-btn .remove-icon:after{width:1px;height:100%}dropdown-el:not([multiple]) .select-display{display:block;overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:1;padding-right:20px}dropdown-el.disabled{opacity:.5;pointer-events:none}dropdown-el>li{display:none}dropdown-el .select-wrapper{display:flex;align-items:center;width:100%;min-height:48px;border-radius:8px;background-color:#000;padding:15px;cursor:pointer}dropdown-el .select-display{flex:1;color:#fff}dropdown-el .dropdown-icon{width:0;height:0;border-width:6px 5px 0 5px;border-style:solid;border-color:#fff transparent transparent transparent;margin-left:auto;transition:transform .3s linear}dropdown-el .dropdown{position:absolute;top:100%;left:0;width:100%;height:0;transform:translate3d(0,5px,0);transition:height .4s cubic-bezier(.02,.01,.47,1);overflow:hidden;border-radius:8px;will-change:height;z-index:1}dropdown-el .dropdown:after{content:"";position:absolute;top:0;left:0;width:100%;height:var(--maxHeight);background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:8px;transition:height .4s cubic-bezier(.02,.01,.47,1);z-index:-1}dropdown-el .dropdown .filter-bar{width:100%;margin:0 auto;padding:5px}dropdown-el .dropdown .filter-bar .filter-input{display:block;width:100%;height:50px;border:none;border-radius:8px;border:1px solid #1e1e1e;padding:0 10px;font-size:16px}dropdown-el .dropdown .dropdown-scroller{width:100%;max-height:200px;overflow:hidden}dropdown-el .dropdown .dropdown-list{position:relative;width:100%;height:100%}dropdown-el .dropdown .dropdown-list>li{line-height:1.5;padding:15px;transition:background-color .3s linear}dropdown-el .dropdown .dropdown-list>li:not(:first-child){border-top:1px solid #eee}dropdown-el .dropdown .dropdown-list>li:not(.has-sublayer).active,dropdown-el .dropdown .dropdown-list>li:not(.has-sublayer):hover{background-color:#eee}dropdown-el .sub-dropdown{height:0;transition:height .4s cubic-bezier(.02,.01,.47,1);overflow:hidden}dropdown-el .sub-dropdown .sub-dropdown-list{background-color:#666;color:#fff;margin-top:5px}dropdown-el .sub-dropdown .sub-dropdown-list>li{padding:10px}dropdown-el .sub-dropdown .sub-dropdown-list>li:not(:first-child){border-top:1px solid #fff}dropdown-el li.has-sublayer.open .header .icon{transform:rotateX(180deg)}dropdown-el li.has-sublayer.open .sub-dropdown{height:var(--height)}dropdown-el li.has-sublayer .header{display:flex;align-items:center}dropdown-el li.has-sublayer .header .title{display:block;overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:1;padding-right:20px}dropdown-el li.has-sublayer .header .icon{width:0;height:0;border-width:6px 5px 0 5px;border-style:solid;border-color:#000 transparent transparent transparent;margin-left:auto;transition:transform .3s linear}dropdown-el .os-theme-dark>.os-scrollbar:hover>.os-scrollbar-track>.os-scrollbar-handle{background:var(--scrollbar-thumb-hover-color)}dropdown-el .os-theme-dark>.os-scrollbar>.os-scrollbar-track{background:var(--scrollbar-track-color);border-radius:var(--scrollbar-radius)}dropdown-el .os-theme-dark>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle{background:var(--scrollbar-thumb-color);border-radius:var(--scrollbar-radius)}[data-d4-portal]{position:fixed;height:0;overflow:hidden;border-radius:8px;will-change:height;transition:height .4s cubic-bezier(.02,.01,.47,1);z-index:9999}[data-d4-portal]:after{content:"";position:absolute;top:0;left:0;width:100%;height:var(--maxHeight);background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:8px;transition:height .4s cubic-bezier(.02,.01,.47,1);z-index:-1}[data-d4-portal] .filter-bar{width:100%;margin:0 auto;padding:5px}[data-d4-portal] .filter-bar .filter-input{display:block;width:100%;height:50px;border:none;border-radius:8px;border:1px solid #1e1e1e;padding:0 10px;font-size:16px}[data-d4-portal] .dropdown-scroller{width:100%;max-height:200px;overflow:hidden}[data-d4-portal] .dropdown-list{position:relative;width:100%;height:100%}[data-d4-portal] .dropdown-list>li{line-height:1.5;padding:15px;transition:background-color .3s linear}[data-d4-portal] .dropdown-list>li:not(:first-child){border-top:1px solid #eee}[data-d4-portal] .dropdown-list>li:not(.has-sublayer).active,[data-d4-portal] .dropdown-list>li:not(.has-sublayer):hover{background-color:#eee}[data-d4-portal] .sub-dropdown{height:0;transition:height .4s cubic-bezier(.02,.01,.47,1);overflow:hidden}[data-d4-portal] .sub-dropdown .sub-dropdown-list{background-color:#666;color:#fff;margin-top:5px}[data-d4-portal] .sub-dropdown .sub-dropdown-list>li{padding:10px}[data-d4-portal] .sub-dropdown .sub-dropdown-list>li:not(:first-child){border-top:1px solid #fff}[data-d4-portal] li.has-sublayer.open .header .icon{transform:rotateX(180deg)}[data-d4-portal] li.has-sublayer.open .sub-dropdown{height:var(--height)}[data-d4-portal] li.has-sublayer .header{display:flex;align-items:center}[data-d4-portal] li.has-sublayer .header .title{display:block;overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:1;padding-right:20px}[data-d4-portal] li.has-sublayer .header .icon{width:0;height:0;border-width:6px 5px 0 5px;border-style:solid;border-color:#000 transparent transparent transparent;margin-left:auto;transition:transform .3s linear}[data-d4-portal] .os-theme-dark>.os-scrollbar:hover>.os-scrollbar-track>.os-scrollbar-handle{background:var(--scrollbar-thumb-hover-color)}[data-d4-portal] .os-theme-dark>.os-scrollbar>.os-scrollbar-track{background:var(--scrollbar-track-color);border-radius:var(--scrollbar-radius)}[data-d4-portal] .os-theme-dark>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle{background:var(--scrollbar-thumb-color);border-radius:var(--scrollbar-radius)}marquee-el{display:flex;width:100%;height:100%;padding:0!important;border:none!important;overflow:hidden}marquee-el.continual .animate-container{display:flex;width:100%;overflow:hidden}marquee-el[direction=left],marquee-el[direction=right]{white-space:nowrap}marquee-el[direction=left].continual .animate-container,marquee-el[direction=right].continual .animate-container{flex-direction:row;margin:0 calc(-1 * var(--continual-gap) / 2);transform:translate(calc(var(--continual-gap) / 2))}marquee-el[direction=left].continual .animate-item,marquee-el[direction=right].continual .animate-item{padding:0 calc(var(--continual-gap) / 2)}marquee-el[direction=top].continual .animate-container,marquee-el[direction=bottom].continual .animate-container{flex-direction:column;margin:calc(-1 * var(--continual-gap) / 2) 0}marquee-el[direction=top].continual .animate-item,marquee-el[direction=bottom].continual .animate-item{padding:calc(var(--continual-gap) / 2) 0}marquee-el[direction=left].continual .animate-container{justify-content:flex-start}marquee-el[direction=right].continual .animate-container{justify-content:flex-end}marquee-el .animate-container{flex-wrap:nowrap}marquee-el .animate-item{width:fit-content;opacity:0}marquee-el .animate-item.start,marquee-el .animate-item.start+.animate-item{opacity:1;transition:opacity .6s}.category-slider{position:relative;display:inline-block;max-width:100%;overflow:hidden}.category-slider.slidable{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0);mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0)}.category-slider.slidable .wrapper{cursor:grab}.category-slider.slidable .wrapper.dragging{cursor:grabbing}.category-slider.slidable .wrapper.moving .category{pointer-events:none}.category-slider.is-start{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff)}.category-slider.is-end{-webkit-mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff)}.category-slider .wrapper{position:relative;display:flex;flex-wrap:nowrap;justify-content:flex-start;width:100%;height:100%;transform:translateZ(0);transition-property:transform;-webkit-user-select:none;user-select:none}.category-slider .wrapper .item{flex-shrink:0}.category-slider .wrapper .item.active a{color:red}multipurpose-nav{display:block}multipurpose-nav[m4-type=drag] .drag-container{padding:0 20px;display:inline-flex;position:relative;max-width:500px;width:100%;text-align:center}multipurpose-nav[m4-type=drag] .drag-container.scrollable .navigation{display:block}multipurpose-nav[m4-type=drag] .drag-container .navigation .button{display:none;align-items:center;position:absolute;top:50%;z-index:2;background-color:#fff;width:30px;height:100%;opacity:1;transition:opacity .6s}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.active{display:flex}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.prev{left:5px;transform:translate3d(-50%,-50%,0)}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.prev div:before{border-top:2px solid #333;border-left:2px solid #333;transform:rotate(-45deg) translate3d(1px,1px,0)}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.prev.hide{opacity:.3;pointer-events:none}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.prev.hide div:before{border-top:2px solid #666;border-left:2px solid #666}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.next{right:5px;transform:translate3d(50%,-50%,0)}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.next div:before{border-top:2px solid #333;border-right:2px solid #333;transform:rotate(45deg) translate3d(-1px,1px,0)}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.next.hide{opacity:.3;pointer-events:none}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.next.hide div:before{border-top:2px solid #666;border-right:2px solid #666}multipurpose-nav[m4-type=drag] .drag-container .navigation .button div{display:flex;align-items:center;justify-content:center;width:35px;height:35px;cursor:pointer}multipurpose-nav[m4-type=drag] .drag-container .navigation .button div:before{display:block;width:8px;height:8px;content:""}multipurpose-nav[m4-type=drag] .drag-container .wrapper{padding:2px 0;display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-template-rows:none;justify-content:flex-start;gap:10px 25px!important;overflow:auto hidden;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scroll-padding-inline:85px;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none}multipurpose-nav[m4-type=drag] .drag-container .wrapper::-webkit-scrollbar{display:none}multipurpose-nav[m4-type=drag] .drag-container .wrapper.center{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0);mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0)}multipurpose-nav[m4-type=drag] .drag-container .wrapper.start{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff)}multipurpose-nav[m4-type=drag] .drag-container .wrapper.end{-webkit-mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff)}multipurpose-nav[m4-type=drag] .drag-container .item{position:relative;flex-shrink:0;text-align:center;cursor:pointer}multipurpose-nav[m4-type=drag] .drag-container .item.active .category:after{width:100%}multipurpose-nav[m4-type=drag] .drag-container .category{display:block;position:relative;padding:10px 0;color:#000;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.5px;text-decoration:none}multipurpose-nav[m4-type=drag] .drag-container .category:after{display:block;position:absolute;bottom:0;right:0;background-color:#666;width:0;height:4px;transition:width .2s,background .2s;content:""}multipurpose-nav[m4-type=collapse]{position:relative}multipurpose-nav[m4-type=collapse].expand .drag-container .wrapper{display:none}multipurpose-nav[m4-type=collapse].expand .drag-container .collapse-placeholder{display:block}multipurpose-nav[m4-type=collapse].expand .drag-container .open-collapse:before{transform:scale(-1)}multipurpose-nav[m4-type=collapse].expand .collapse-container{opacity:1;transform:translateZ(0);pointer-events:auto}multipurpose-nav[m4-type=collapse] .drag-container{display:inline-flex;align-items:center;position:relative;max-width:500px;width:100%;text-align:center}multipurpose-nav[m4-type=collapse] .drag-container .wrapper{padding:2px 0;display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-template-rows:none;justify-content:flex-start;gap:10px 25px!important;overflow:auto hidden;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scroll-padding-inline:85px;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none}multipurpose-nav[m4-type=collapse] .drag-container .wrapper::-webkit-scrollbar{display:none}multipurpose-nav[m4-type=collapse] .drag-container .wrapper.center{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0);mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0)}multipurpose-nav[m4-type=collapse] .drag-container .wrapper.start{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff)}multipurpose-nav[m4-type=collapse] .drag-container .wrapper.end{-webkit-mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff)}multipurpose-nav[m4-type=collapse] .drag-container .item{position:relative;flex-shrink:0;text-align:center;cursor:pointer}multipurpose-nav[m4-type=collapse] .drag-container .item.active .category:after{width:100%}multipurpose-nav[m4-type=collapse] .drag-container .category{display:block;position:relative;padding:10px 0;color:#000;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.5px;text-decoration:none}multipurpose-nav[m4-type=collapse] .drag-container .category:after{display:block;position:absolute;bottom:0;right:0;background-color:#666;width:0;height:4px;transition:width .2s,background .2s;content:""}multipurpose-nav[m4-type=collapse] .drag-container .collapse-placeholder{padding:12px 0;display:none;width:100%;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.5px;text-align:left;-webkit-user-select:none;user-select:none}multipurpose-nav[m4-type=collapse] .drag-container .open-collapse{margin-left:10px;padding-left:10px;order:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-left:1px solid rgba(0,0,0,.3);width:32px;height:25px;cursor:pointer}multipurpose-nav[m4-type=collapse] .drag-container .open-collapse:before{width:0;height:0;border-style:solid;border-width:6px 5px 0 5px;border-color:#000 transparent transparent transparent;content:""}multipurpose-nav[m4-type=collapse] .collapse-container{padding:20px;position:absolute;left:0;z-index:1;background-color:#fff;border-radius:5px;border:1px solid rgba(0,0,0,.2);max-width:500px;width:100%;opacity:0;transform:translate3d(0,-10px,0);pointer-events:none;transition:opacity .3s,transform .3s}multipurpose-nav[m4-type=collapse] .collapse-container .wrapper{display:flex;flex-wrap:wrap;margin:0 -10px -10px}multipurpose-nav[m4-type=collapse] .collapse-container .item{margin:0 10px 10px;padding:5px 20px;position:relative;flex-shrink:0;border:1px solid rgba(0,0,0,.2);border-radius:500px;text-align:center;cursor:pointer}multipurpose-nav[m4-type=collapse] .collapse-container .item:hover{background-color:#000}multipurpose-nav[m4-type=collapse] .collapse-container .item:hover .category{color:#fff}multipurpose-nav[m4-type=collapse] .collapse-container .item.active{background-color:#000}multipurpose-nav[m4-type=collapse] .collapse-container .item.active .category{color:#fff}multipurpose-nav[m4-type=collapse] .collapse-container .category{display:block;position:relative;color:#000;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.5px;text-decoration:none}tab-el [t4-role=tabPanel]{width:100%;height:100%;opacity:0}tab-el [t4-role=tabPanel][t4-display=silde]{overflow:hidden}[t4-role=prev],[t4-role=next]{opacity:1;transition:.5s opacity;cursor:pointer}[t4-role=prev]:hover,[t4-role=next]:hover{opacity:.7}[t4-role=prev][disabled],[t4-role=next][disabled]{opacity:.1;pointer-events:none}[aria-selected=false]{opacity:.7}[aria-selected=true]{opacity:1;transition:.5s opacity}ripple-btn{position:relative;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;cursor:pointer}ripple-btn .circle{width:0;height:0;position:absolute;transform:translate3d(-50%,-50%,0);pointer-events:none;border-radius:50%;animation-name:animate;animation-timing-function:linear}@keyframes animate{to{width:400px;height:400px;opacity:0}}.hover-btn{position:relative;z-index:1;overflow:hidden}.hover-btn .hover-ball{position:absolute;z-index:-1;left:0;top:0;width:1px;height:1px;border-radius:50%;background-color:#ffffff4d;pointer-events:none;transform:translate3d(-50%,-50%,0) scale(var(--r, 1));transition:transform .8s cubic-bezier(.6,.25,0,1),width .8s cubic-bezier(.6,.25,0,1),height .8s cubic-bezier(.6,.25,0,1)}.no-image{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);width:100%;height:100%;background:#f7f7f7;border:1px solid #ABABAB;overflow:hidden}.no-image .slash1,.no-image .slash2{position:absolute;top:0;height:1px;background-color:#ababab}.no-image .slash1{left:0;transform-origin:left top}.no-image .slash2{right:0;transform-origin:right top}[data-upload-item]{position:relative}[data-upload-item] input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:99;cursor:pointer}[data-preview]{width:100%;height:100%;overflow:hidden}[data-preview] img{display:block;width:100%;height:100%}[data-preview] img.cover{object-fit:cover}[data-preview] img.contain{object-fit:contain}@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}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.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-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.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,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.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:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.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-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.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: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: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,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:"prev"}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:"next"}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(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:10px;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,.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: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:10px;top:50%;transform:translate3d(0,-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:translate(-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-progressbar{background:#00000040;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: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:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:#0000001a}.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:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:#00000080;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}.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(0)}to{transform:rotate(360deg)}}.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,.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-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:"";background:#000;position:absolute;inset:0;filter:blur(50px)}.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-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-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}
|
|
1
|
+
.os-size-observer,.os-size-observer-listener{scroll-behavior:auto!important;direction:inherit;pointer-events:none;overflow:hidden;visibility:hidden;box-sizing:border-box}.os-size-observer,.os-size-observer-listener,.os-size-observer-listener-item,.os-size-observer-listener-item-final{writing-mode:horizontal-tb;position:absolute;left:0;top:0}.os-size-observer{z-index:-1;contain:strict;display:flex;flex-direction:row;flex-wrap:nowrap;padding:inherit;border:inherit;box-sizing:inherit;margin:-133px;inset:0;transform:scale(.1)}.os-size-observer:before{content:"";flex:none;box-sizing:inherit;padding:10px;width:10px;height:10px}.os-size-observer-appear{animation:os-size-observer-appear-animation 1ms forwards}.os-size-observer-listener{box-sizing:border-box;position:relative;flex:auto;padding:inherit;border:inherit;margin:-133px;transform:scale(10)}.os-size-observer-listener.ltr{margin-right:-266px;margin-left:0}.os-size-observer-listener.rtl{margin-left:-266px;margin-right:0}.os-size-observer-listener:empty:before{content:"";width:100%;height:100%}.os-size-observer-listener:empty:before,.os-size-observer-listener>.os-size-observer-listener-item{display:block;position:relative;padding:inherit;border:inherit;box-sizing:content-box;flex:auto}.os-size-observer-listener-scroll{box-sizing:border-box;display:flex}.os-size-observer-listener-item{right:0;bottom:0;overflow:hidden;direction:ltr;flex:none}.os-size-observer-listener-item-final{transition:none}@keyframes os-size-observer-appear-animation{0%{cursor:auto}to{cursor:none}}.os-trinsic-observer{flex:none;box-sizing:border-box;position:relative;max-width:0px;max-height:1px;padding:0;margin:0;border:none;overflow:hidden;z-index:-1;height:0;top:calc(100% + 1px);contain:strict}.os-trinsic-observer:not(:empty){height:calc(100% + 1px);top:-1px}.os-trinsic-observer:not(:empty)>.os-size-observer{width:1000%;height:1000%;min-height:1px;min-width:1px}[data-overlayscrollbars-initialize],[data-overlayscrollbars-viewport~=scrollbarHidden]{scrollbar-width:none!important}[data-overlayscrollbars-initialize]::-webkit-scrollbar,[data-overlayscrollbars-initialize]::-webkit-scrollbar-corner,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner{-webkit-appearance:none!important;appearance:none!important;display:none!important;width:0!important;height:0!important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars]):not(html):not(body){overflow:auto}html[data-overlayscrollbars-body]{overflow:hidden}html[data-overlayscrollbars-body],html[data-overlayscrollbars-body]>body{width:100%;height:100%;margin:0}html[data-overlayscrollbars-body]>body{overflow:visible;margin:0}[data-overlayscrollbars]{position:relative}[data-overlayscrollbars~=host],[data-overlayscrollbars-padding]{display:flex;align-items:stretch!important;flex-direction:row!important;flex-wrap:nowrap!important;scroll-behavior:auto!important}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){box-sizing:inherit;position:relative;flex:auto!important;height:auto;width:100%;min-width:0;padding:0;margin:0;border:none;z-index:0}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){--os-vaw: 0;--os-vah: 0;outline:none}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]):focus{outline:none}[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]:before{content:"";position:absolute;pointer-events:none;z-index:-1;min-width:1px;min-height:1px;width:var(--os-vaw);height:var(--os-vah)}[data-overlayscrollbars],[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]{overflow:hidden!important}[data-overlayscrollbars~=noClipping],[data-overlayscrollbars-padding~=noClipping]{overflow:visible!important}[data-overlayscrollbars-viewport~=measuring]{overflow:hidden!important;scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-viewport~=overflowXVisible]:not([data-overlayscrollbars-viewport~=measuring]){overflow-x:visible!important}[data-overlayscrollbars-viewport~=overflowXHidden]{overflow-x:hidden!important}[data-overlayscrollbars-viewport~=overflowXScroll]{overflow-x:scroll!important}[data-overlayscrollbars-viewport~=overflowYVisible]:not([data-overlayscrollbars-viewport~=measuring]){overflow-y:visible!important}[data-overlayscrollbars-viewport~=overflowYHidden]{overflow-y:hidden!important}[data-overlayscrollbars-viewport~=overflowYScroll]{overflow-y:scroll!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId){font-size:0!important;line-height:0!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):before,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):after,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId)>*{display:none!important;position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}[data-overlayscrollbars-viewport~=scrollbarPressed]{scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-content]{box-sizing:inherit}[data-overlayscrollbars-contents]:not(#osFakeId):not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not([data-overlayscrollbars-content]){display:contents}[data-overlayscrollbars-grid],[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]{display:grid;grid-template:1fr/1fr}[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding],[data-overlayscrollbars-grid]>[data-overlayscrollbars-viewport],[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding]>[data-overlayscrollbars-viewport]{height:auto!important;width:auto!important}.os-scrollbar{contain:size layout;contain:size layout style;transition:opacity .15s,visibility .15s,top .15s,right .15s,bottom .15s,left .15s;pointer-events:none;position:absolute;opacity:0;visibility:hidden}body>.os-scrollbar{position:fixed;z-index:99999}.os-scrollbar-transitionless{transition:none}.os-scrollbar-track{position:relative;padding:0!important;border:none!important}.os-scrollbar-handle{position:absolute}.os-scrollbar-track,.os-scrollbar-handle{pointer-events:none;width:100%;height:100%}.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track,.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle{pointer-events:auto;touch-action:none}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{top:0;right:0}.os-scrollbar-rtl.os-scrollbar-horizontal{right:0}.os-scrollbar-rtl.os-scrollbar-vertical{right:auto;left:0}.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-auto-hide.os-scrollbar-auto-hide-hidden{opacity:0;visibility:hidden}.os-scrollbar-interaction.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-unusable,.os-scrollbar-unusable *,.os-scrollbar-wheel,.os-scrollbar-wheel *{pointer-events:none!important}.os-scrollbar-unusable .os-scrollbar-handle{opacity:0!important;transition:none!important}.os-scrollbar-horizontal .os-scrollbar-handle{bottom:0;left:0}.os-scrollbar-vertical .os-scrollbar-handle{top:0;right:0}.os-scrollbar-rtl.os-scrollbar-horizontal .os-scrollbar-handle,.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle{right:auto;left:0}.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl{left:0;right:0}.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl{top:0;bottom:0}@media print{.os-scrollbar{display:none}}.os-scrollbar{--os-size: 0;--os-padding-perpendicular: 0;--os-padding-axis: 0;--os-track-border-radius: 0;--os-track-bg: none;--os-track-bg-hover: none;--os-track-bg-active: none;--os-track-border: none;--os-track-border-hover: none;--os-track-border-active: none;--os-handle-border-radius: 0;--os-handle-bg: none;--os-handle-bg-hover: none;--os-handle-bg-active: none;--os-handle-border: none;--os-handle-border-hover: none;--os-handle-border-active: none;--os-handle-min-size: 33px;--os-handle-max-size: none;--os-handle-perpendicular-size: 100%;--os-handle-perpendicular-size-hover: 100%;--os-handle-perpendicular-size-active: 100%;--os-handle-interactive-area-offset: 0}.os-scrollbar .os-scrollbar-track{border:var(--os-track-border);border-radius:var(--os-track-border-radius);background:var(--os-track-bg);transition:opacity .15s,background-color .15s,border-color .15s}.os-scrollbar .os-scrollbar-track:hover{border:var(--os-track-border-hover);background:var(--os-track-bg-hover)}.os-scrollbar .os-scrollbar-track:active{border:var(--os-track-border-active);background:var(--os-track-bg-active)}.os-scrollbar .os-scrollbar-handle{border:var(--os-handle-border);border-radius:var(--os-handle-border-radius);background:var(--os-handle-bg)}.os-scrollbar .os-scrollbar-handle:before{content:"";position:absolute;inset:0;display:block}.os-scrollbar .os-scrollbar-handle:hover{border:var(--os-handle-border-hover);background:var(--os-handle-bg-hover)}.os-scrollbar .os-scrollbar-handle:active{border:var(--os-handle-border-active);background:var(--os-handle-bg-active)}.os-scrollbar-horizontal{padding:var(--os-padding-perpendicular) var(--os-padding-axis);right:var(--os-size);height:var(--os-size)}.os-scrollbar-horizontal.os-scrollbar-rtl{left:var(--os-size);right:0}.os-scrollbar-horizontal .os-scrollbar-handle{min-width:var(--os-handle-min-size);max-width:var(--os-handle-max-size);height:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,height .15s}.os-scrollbar-horizontal .os-scrollbar-handle:before{top:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);bottom:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-horizontal:hover .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-horizontal:active .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-active)}.os-scrollbar-vertical{padding:var(--os-padding-axis) var(--os-padding-perpendicular);bottom:var(--os-size);width:var(--os-size)}.os-scrollbar-vertical .os-scrollbar-handle{min-height:var(--os-handle-min-size);max-height:var(--os-handle-max-size);width:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,width .15s}.os-scrollbar-vertical .os-scrollbar-handle:before{left:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);right:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before{right:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);left:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical:hover .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-vertical:active .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-active)}[data-overlayscrollbars-viewport~=measuring]>.os-scrollbar,.os-theme-none.os-scrollbar{display:none!important}.os-theme-dark,.os-theme-light{box-sizing:border-box;--os-size: 10px;--os-padding-perpendicular: 2px;--os-padding-axis: 2px;--os-track-border-radius: 10px;--os-handle-interactive-area-offset: 4px;--os-handle-border-radius: 10px}.os-theme-dark{--os-handle-bg: rgba(0, 0, 0, .44);--os-handle-bg-hover: rgba(0, 0, 0, .55);--os-handle-bg-active: rgba(0, 0, 0, .66)}.os-theme-light{--os-handle-bg: rgba(255, 255, 255, .44);--os-handle-bg-hover: rgba(255, 255, 255, .55);--os-handle-bg-active: rgba(255, 255, 255, .66)}modern-modal{position:fixed;z-index:10;inset:0;background-color:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:.5s .3s;display:none}modern-modal.show{opacity:1;pointer-events:auto;transition:.5s}modern-modal .modal-scroller{position:relative;width:100%;height:100%}modern-modal .modal-wrapper{display:flex;flex-direction:column;min-height:100%}modern-modal .modal-content{position:relative;width:100%;max-width:800px;background-color:#fff;margin:auto}modern-modal[data-modal-animate=fade-up].show .modal-content{opacity:1;transform:translate(0);transition:.6s .2s}modern-modal[data-modal-animate=fade-up] .modal-content{opacity:0;transform:translateY(50px);transition:.6s}modern-modal[data-modal-animate=fade-down].show .modal-content{opacity:1;transform:translate(0);transition:.6s .2s}modern-modal[data-modal-animate=fade-down] .modal-content{opacity:0;transform:translateY(-50px);transition:.6s}modern-modal[data-modal-animate=fade-right].show .modal-content{opacity:1;transform:translate(0);transition:.6s .2s}modern-modal[data-modal-animate=fade-right] .modal-content{opacity:0;transform:translate(-50px);transition:.6s}modern-modal[data-modal-animate=fade-left].show .modal-content{opacity:1;transform:translate(0);transition:.6s .2s}modern-modal[data-modal-animate=fade-left] .modal-content{opacity:0;transform:translate(50px);transition:.6s}modern-modal[data-modal-animate=zoom-in].show .modal-content{opacity:1;transform:scale(1);transition:.6s .2s}modern-modal[data-modal-animate=zoom-in] .modal-content{opacity:0;transform:scale(.8);transition:.6s}modern-modal[data-modal-animate=zoom-out].show .modal-content{opacity:1;transform:scale(1);transition:.6s .2s}modern-modal[data-modal-animate=zoom-out] .modal-content{opacity:0;transform:scale(1.2);transition:.6s}modern-modal[data-modal-animate=clip-up].show .modal-content{opacity:1;clip-path:polygon(0 -15%,100% 0,100% 100%,0 100%);transition:.6s .2s}modern-modal[data-modal-animate=clip-up] .modal-content{opacity:0;clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);transition:.6s}modern-modal[data-modal-animate=clip-down].show .modal-content{opacity:1;clip-path:polygon(0 0,100% 0,100% 115%,0 100%);transition:.6s .2s}modern-modal[data-modal-animate=clip-down] .modal-content{opacity:0;clip-path:polygon(0 0,100% 0,100% 0,0 0);transition:.6s}modern-modal[data-modal-animate=clip-right].show .modal-content{opacity:1;clip-path:polygon(0 0,115% 0,100% 100%,0 100%);transition:.6s .2s}modern-modal[data-modal-animate=clip-right] .modal-content{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);transition:.6s}modern-modal[data-modal-animate=clip-left].show .modal-content{opacity:1;clip-path:polygon(-15% 0,100% 0,100% 100%,0 100%);transition:.6s .2s}modern-modal[data-modal-animate=clip-left] .modal-content{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);transition:.6s}[data-aost][data-aost-fade]{opacity:0}[data-aost][data-aost-fade].aost-show{opacity:1;transition:opacity var(--aost-trans, .8s)}[data-aost][data-aost-fade-up]{opacity:0;transform:translateY(50px)}[data-aost][data-aost-fade-up].aost-show{opacity:1;transform:translateY(0);transition:opacity var(--aost-trans, .8s),transform var(--aost-trans, .8s)}[data-aost][data-aost-fade-down]{opacity:0;transform:translateY(-50px)}[data-aost][data-aost-fade-down].aost-show{opacity:1;transform:translateY(0);transition:opacity var(--aost-trans, .8s),transform var(--aost-trans, .8s)}[data-aost][data-aost-fade-right]{opacity:0;transform:translate(50px)}[data-aost][data-aost-fade-right].aost-show{opacity:1;transform:translateY(0);transition:opacity var(--aost-trans, .8s),transform var(--aost-trans, .8s)}[data-aost][data-aost-fade-left]{opacity:0;transform:translate(-50px)}[data-aost][data-aost-fade-left].aost-show{opacity:1;transform:translateY(0);transition:opacity var(--aost-trans, .8s),transform var(--aost-trans, .8s)}[data-aost][data-aost-clip-down]{opacity:0;clip-path:polygon(0 0,100% 0,100% 0,0 0)}[data-aost][data-aost-clip-down].aost-show{opacity:1;clip-path:polygon(0 0,100% 0,100% 115%,0 100%);transition:opacity var(--aost-trans, .8s),clip-path var(--aost-trans, .8s)}[data-aost][data-aost-clip-left]{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%)}[data-aost][data-aost-clip-left].aost-show{opacity:1;clip-path:polygon(0 0,110% 0,100% 100%,0 100%);transition:opacity var(--aost-trans, .8s),clip-path var(--aost-trans, .8s)}[data-aost][data-aost-clip-right]{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}[data-aost][data-aost-clip-right].aost-show{opacity:1;clip-path:polygon(-10% 0,100% 0,100% 100%,0% 100%);transition:opacity var(--aost-trans, .8s),clip-path var(--aost-trans, .8s)}[data-aost][data-aost-scale]{opacity:0;transform:scale(.5)}[data-aost][data-aost-scale].aost-show{opacity:1;transform:scale(1);transition:opacity var(--aost-trans, .8s),clip-path var(--aost-trans, .8s)}[video-template] .modal-wrapper{padding:0 40px}[video-template] .modal-content{max-width:1280px;width:100%;background-color:transparent}[video-template][video-typeStyle=instagram] .modal-wrapper{padding:40px}[video-template][video-typeStyle=instagram] .modal-content{padding:30px;max-width:540px;background:#fff;opacity:0;transition:opacity .5s}[video-template][video-typeStyle=instagram] .instagram-media{min-width:unset!important;width:100%;border:0}[video-template][video-typeStyle=instagram] .modal-content.active{opacity:1}[video-template][video-typeStyle=tiktok] iframe{border:0}[video-template] .video-content{position:relative;width:100%;height:0;padding-bottom:56.25%}[video-template] video{width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000}[video-template] .video4-cover{width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000}[video-template] .video4-cover img{position:relative;width:100%;height:100%;object-fit:contain;z-index:1}[video-template] .close-button{position:absolute;top:-30px;right:-30px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;transform:rotate(45deg);z-index:1;cursor:pointer}[video-template] .close-button:before,[video-template] .close-button:after{content:"";position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);background-color:#fff}[video-template] .close-button:before{width:3px;height:20px}[video-template] .close-button:after{width:20px;height:3px}video-player[video-type=instagram] .player-wrapper:before{padding-bottom:124.907%}video-player .player-container{position:relative}video-player .player-wrapper:before{display:block;padding-bottom:56.25%;content:""}video-player iframe{position:absolute;inset:0;width:100%;height:100%}.video4-cover{position:relative}.video4-cover .playButton{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:min(24%,50px);height:0;padding-bottom:min(24%,50px);background-size:cover;box-shadow:4px 4px 25px #00000080;border-radius:50%;transform:translate3d(-50%,-50%,0);z-index:2;cursor:pointer}.video4-cover .playButton:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background-color:#fff}.video4-cover .playButton:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-style:solid;border-width:6px 0 6px 12px;border-color:transparent transparent transparent #000;transform:translate3d(-50%,-50%,0);z-index:1}.video4-cover [class*=playTrigger]{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;cursor:pointer}.video4-cover [class*=playTrigger]:hover+.overlay{background-color:#000c}.video4-cover [class*=playTrigger]:hover .overlay{background-color:#000c}.video4-cover .overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0006;transition:background-color .5s;z-index:1;cursor:pointer}.video4-cover.onPage iframe{width:100%;height:100%;position:absolute;top:0;left:0;z-index:2}@media all and (orientation:landscape){[video-template] .modal-content{max-width:133.33vh}}[video-typeStyle=youtube-shorts][video-template=inBox] .video-content{padding-bottom:177.78%}[video-typeStyle=youtube-shorts][video-template=inBox] .video4-cover img{object-fit:cover}[video-typeStyle=youtube-shorts] .modal-content{max-width:max(405px,21.09375vw);width:100%;overflow:hidden}[video-typeStyle=youtube-shorts] video-player .player-container{position:relative}[video-typeStyle=youtube-shorts] video-player .player-wrapper:before{display:none}[video-typeStyle=youtube-shorts] .overlay{position:absolute;top:50%;left:50%;width:101%;height:101%;transform:translate3d(-50%,-50%,0)}[video-typeStyle=youtube-shorts] iframe{position:relative;aspect-ratio:9/16;margin:0 auto}dropdown-el{position:relative;display:block;width:100%}dropdown-el[d4-status=open] .dropdown-icon{transform:rotateX(180deg)}dropdown-el:not([d4-value=""]) .select-display{color:#fff}dropdown-el[multiple] .select-display{display:flex;flex-wrap:wrap;gap:8px}dropdown-el[multiple] .select-display .option-btn{display:flex;align-items:center;padding:4px 15px;background-color:#585858;border-radius:10rem}dropdown-el[multiple] .select-display .option-btn .text{color:#fff}dropdown-el[multiple] .select-display .option-btn .remove-icon{position:relative;width:14px;height:14px;transform:rotate(45deg);margin-left:10px}dropdown-el[multiple] .select-display .option-btn .remove-icon:before,dropdown-el[multiple] .select-display .option-btn .remove-icon:after{content:"";position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);background-color:#fff}dropdown-el[multiple] .select-display .option-btn .remove-icon:before{width:100%;height:1px}dropdown-el[multiple] .select-display .option-btn .remove-icon:after{width:1px;height:100%}dropdown-el:not([multiple]) .select-display{display:block;overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:1;padding-right:20px}dropdown-el.disabled{opacity:.5;pointer-events:none}dropdown-el>li{display:none}dropdown-el .select-wrapper{display:flex;align-items:center;width:100%;min-height:48px;border-radius:8px;background-color:#000;padding:15px;cursor:pointer}dropdown-el .select-display{flex:1;color:#fff}dropdown-el .dropdown-icon{width:0;height:0;border-width:6px 5px 0 5px;border-style:solid;border-color:#fff transparent transparent transparent;margin-left:auto;transition:transform .3s linear}dropdown-el .dropdown{position:absolute;top:100%;left:0;width:100%;height:0;transform:translate3d(0,5px,0);transition:height .4s cubic-bezier(.02,.01,.47,1);overflow:hidden;border-radius:8px;will-change:height;z-index:1}dropdown-el .dropdown:after{content:"";position:absolute;top:0;left:0;width:100%;height:var(--maxHeight);background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:8px;transition:height .4s cubic-bezier(.02,.01,.47,1);z-index:-1}dropdown-el .dropdown .filter-bar{width:100%;margin:0 auto;padding:5px}dropdown-el .dropdown .filter-bar .filter-input{display:block;width:100%;height:50px;border:none;border-radius:8px;border:1px solid #1e1e1e;padding:0 10px;font-size:16px}dropdown-el .dropdown .dropdown-scroller{width:100%;max-height:200px;overflow:hidden}dropdown-el .dropdown .dropdown-list{position:relative;width:100%;height:100%}dropdown-el .dropdown .dropdown-list>li{line-height:1.5;padding:15px;transition:background-color .3s linear}dropdown-el .dropdown .dropdown-list>li:not(:first-child){border-top:1px solid #eee}dropdown-el .dropdown .dropdown-list>li:not(.has-sublayer).active,dropdown-el .dropdown .dropdown-list>li:not(.has-sublayer):hover{background-color:#eee}dropdown-el .sub-dropdown{height:0;transition:height .4s cubic-bezier(.02,.01,.47,1);overflow:hidden}dropdown-el .sub-dropdown .sub-dropdown-list{background-color:#666;color:#fff;margin-top:5px}dropdown-el .sub-dropdown .sub-dropdown-list>li{padding:10px}dropdown-el .sub-dropdown .sub-dropdown-list>li:not(:first-child){border-top:1px solid #fff}dropdown-el li.has-sublayer.open .header .icon{transform:rotateX(180deg)}dropdown-el li.has-sublayer.open .sub-dropdown{height:var(--height)}dropdown-el li.has-sublayer .header{display:flex;align-items:center}dropdown-el li.has-sublayer .header .title{display:block;overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:1;padding-right:20px}dropdown-el li.has-sublayer .header .icon{width:0;height:0;border-width:6px 5px 0 5px;border-style:solid;border-color:#000 transparent transparent transparent;margin-left:auto;transition:transform .3s linear}dropdown-el .os-theme-dark>.os-scrollbar:hover>.os-scrollbar-track>.os-scrollbar-handle{background:var(--scrollbar-thumb-hover-color)}dropdown-el .os-theme-dark>.os-scrollbar>.os-scrollbar-track{background:var(--scrollbar-track-color);border-radius:var(--scrollbar-radius)}dropdown-el .os-theme-dark>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle{background:var(--scrollbar-thumb-color);border-radius:var(--scrollbar-radius)}[data-d4-portal]{position:fixed;height:0;overflow:hidden;border-radius:8px;will-change:height;transition:height .4s cubic-bezier(.02,.01,.47,1);z-index:9999}[data-d4-portal]:after{content:"";position:absolute;top:0;left:0;width:100%;height:var(--maxHeight);background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:8px;transition:height .4s cubic-bezier(.02,.01,.47,1);z-index:-1}[data-d4-portal] .filter-bar{width:100%;margin:0 auto;padding:5px}[data-d4-portal] .filter-bar .filter-input{display:block;width:100%;height:50px;border:none;border-radius:8px;border:1px solid #1e1e1e;padding:0 10px;font-size:16px}[data-d4-portal] .dropdown-scroller{width:100%;max-height:200px;overflow:hidden}[data-d4-portal] .dropdown-list{position:relative;width:100%;height:100%}[data-d4-portal] .dropdown-list>li{line-height:1.5;padding:15px;transition:background-color .3s linear}[data-d4-portal] .dropdown-list>li:not(:first-child){border-top:1px solid #eee}[data-d4-portal] .dropdown-list>li:not(.has-sublayer).active,[data-d4-portal] .dropdown-list>li:not(.has-sublayer):hover{background-color:#eee}[data-d4-portal] .sub-dropdown{height:0;transition:height .4s cubic-bezier(.02,.01,.47,1);overflow:hidden}[data-d4-portal] .sub-dropdown .sub-dropdown-list{background-color:#666;color:#fff;margin-top:5px}[data-d4-portal] .sub-dropdown .sub-dropdown-list>li{padding:10px}[data-d4-portal] .sub-dropdown .sub-dropdown-list>li:not(:first-child){border-top:1px solid #fff}[data-d4-portal] li.has-sublayer.open .header .icon{transform:rotateX(180deg)}[data-d4-portal] li.has-sublayer.open .sub-dropdown{height:var(--height)}[data-d4-portal] li.has-sublayer .header{display:flex;align-items:center}[data-d4-portal] li.has-sublayer .header .title{display:block;overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:1;padding-right:20px}[data-d4-portal] li.has-sublayer .header .icon{width:0;height:0;border-width:6px 5px 0 5px;border-style:solid;border-color:#000 transparent transparent transparent;margin-left:auto;transition:transform .3s linear}[data-d4-portal] .os-theme-dark>.os-scrollbar:hover>.os-scrollbar-track>.os-scrollbar-handle{background:var(--scrollbar-thumb-hover-color)}[data-d4-portal] .os-theme-dark>.os-scrollbar>.os-scrollbar-track{background:var(--scrollbar-track-color);border-radius:var(--scrollbar-radius)}[data-d4-portal] .os-theme-dark>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle{background:var(--scrollbar-thumb-color);border-radius:var(--scrollbar-radius)}marquee-el{display:flex;width:100%;height:100%;padding:0!important;border:none!important;overflow:hidden}marquee-el.continual .animate-container{display:flex;width:100%;overflow:hidden}marquee-el[direction=left],marquee-el[direction=right]{white-space:nowrap}marquee-el[direction=left].continual .animate-container,marquee-el[direction=right].continual .animate-container{flex-direction:row;margin:0 calc(-1 * var(--continual-gap) / 2);transform:translate(calc(var(--continual-gap) / 2))}marquee-el[direction=left].continual .animate-item,marquee-el[direction=right].continual .animate-item{padding:0 calc(var(--continual-gap) / 2)}marquee-el[direction=top].continual .animate-container,marquee-el[direction=bottom].continual .animate-container{flex-direction:column;margin:calc(-1 * var(--continual-gap) / 2) 0}marquee-el[direction=top].continual .animate-item,marquee-el[direction=bottom].continual .animate-item{padding:calc(var(--continual-gap) / 2) 0}marquee-el[direction=left].continual .animate-container{justify-content:flex-start}marquee-el[direction=right].continual .animate-container{justify-content:flex-end}marquee-el .animate-container{flex-wrap:nowrap}marquee-el .animate-item{width:fit-content;opacity:0}marquee-el .animate-item.start,marquee-el .animate-item.start+.animate-item{opacity:1;transition:opacity .6s}.category-slider{position:relative;display:inline-block;max-width:100%;overflow:hidden}.category-slider.slidable{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0);mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0)}.category-slider.slidable .wrapper{cursor:grab}.category-slider.slidable .wrapper.dragging{cursor:grabbing}.category-slider.slidable .wrapper.moving .category{pointer-events:none}.category-slider.is-start{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff)}.category-slider.is-end{-webkit-mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff)}.category-slider .wrapper{position:relative;display:flex;flex-wrap:nowrap;justify-content:flex-start;width:100%;height:100%;transform:translateZ(0);transition-property:transform;-webkit-user-select:none;user-select:none}.category-slider .wrapper .item{flex-shrink:0}.category-slider .wrapper .item.active a{color:red}multipurpose-nav{display:block}multipurpose-nav[m4-type=drag] .drag-container{padding:0 20px;display:inline-flex;position:relative;max-width:500px;width:100%;text-align:center}multipurpose-nav[m4-type=drag] .drag-container.scrollable .navigation{display:block}multipurpose-nav[m4-type=drag] .drag-container .navigation .button{display:none;align-items:center;position:absolute;top:50%;z-index:2;background-color:#fff;width:30px;height:100%;opacity:1;transition:opacity .6s}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.active{display:flex}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.prev{left:5px;transform:translate3d(-50%,-50%,0)}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.prev div:before{border-top:2px solid #333;border-left:2px solid #333;transform:rotate(-45deg) translate3d(1px,1px,0)}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.prev.hide{opacity:.3;pointer-events:none}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.prev.hide div:before{border-top:2px solid #666;border-left:2px solid #666}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.next{right:5px;transform:translate3d(50%,-50%,0)}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.next div:before{border-top:2px solid #333;border-right:2px solid #333;transform:rotate(45deg) translate3d(-1px,1px,0)}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.next.hide{opacity:.3;pointer-events:none}multipurpose-nav[m4-type=drag] .drag-container .navigation .button.next.hide div:before{border-top:2px solid #666;border-right:2px solid #666}multipurpose-nav[m4-type=drag] .drag-container .navigation .button div{display:flex;align-items:center;justify-content:center;width:35px;height:35px;cursor:pointer}multipurpose-nav[m4-type=drag] .drag-container .navigation .button div:before{display:block;width:8px;height:8px;content:""}multipurpose-nav[m4-type=drag] .drag-container .wrapper{padding:2px 0;display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-template-rows:none;justify-content:flex-start;gap:10px 25px!important;overflow:auto hidden;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scroll-padding-inline:85px;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none}multipurpose-nav[m4-type=drag] .drag-container .wrapper::-webkit-scrollbar{display:none}multipurpose-nav[m4-type=drag] .drag-container .wrapper.center{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0);mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0)}multipurpose-nav[m4-type=drag] .drag-container .wrapper.start{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff)}multipurpose-nav[m4-type=drag] .drag-container .wrapper.end{-webkit-mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff)}multipurpose-nav[m4-type=drag] .drag-container .item{position:relative;flex-shrink:0;text-align:center;cursor:pointer}multipurpose-nav[m4-type=drag] .drag-container .item.active .category:after{width:100%}multipurpose-nav[m4-type=drag] .drag-container .category{display:block;position:relative;padding:10px 0;color:#000;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.5px;text-decoration:none}multipurpose-nav[m4-type=drag] .drag-container .category:after{display:block;position:absolute;bottom:0;right:0;background-color:#666;width:0;height:4px;transition:width .2s,background .2s;content:""}multipurpose-nav[m4-type=collapse]{position:relative}multipurpose-nav[m4-type=collapse].expand .drag-container .wrapper{display:none}multipurpose-nav[m4-type=collapse].expand .drag-container .collapse-placeholder{display:block}multipurpose-nav[m4-type=collapse].expand .drag-container .open-collapse:before{transform:scale(-1)}multipurpose-nav[m4-type=collapse].expand .collapse-container{opacity:1;transform:translateZ(0);pointer-events:auto}multipurpose-nav[m4-type=collapse] .drag-container{display:inline-flex;align-items:center;position:relative;max-width:500px;width:100%;text-align:center}multipurpose-nav[m4-type=collapse] .drag-container .wrapper{padding:2px 0;display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-template-rows:none;justify-content:flex-start;gap:10px 25px!important;overflow:auto hidden;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scroll-padding-inline:85px;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none}multipurpose-nav[m4-type=collapse] .drag-container .wrapper::-webkit-scrollbar{display:none}multipurpose-nav[m4-type=collapse] .drag-container .wrapper.center{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0);mask-image:linear-gradient(270deg,#fff0,#fff 20% 80%,#fff0)}multipurpose-nav[m4-type=collapse] .drag-container .wrapper.start{-webkit-mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(270deg,#fff0,#fff 20%,#fff)}multipurpose-nav[m4-type=collapse] .drag-container .wrapper.end{-webkit-mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff);mask-image:linear-gradient(90deg,#fff0,#fff 20%,#fff)}multipurpose-nav[m4-type=collapse] .drag-container .item{position:relative;flex-shrink:0;text-align:center;cursor:pointer}multipurpose-nav[m4-type=collapse] .drag-container .item.active .category:after{width:100%}multipurpose-nav[m4-type=collapse] .drag-container .category{display:block;position:relative;padding:10px 0;color:#000;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.5px;text-decoration:none}multipurpose-nav[m4-type=collapse] .drag-container .category:after{display:block;position:absolute;bottom:0;right:0;background-color:#666;width:0;height:4px;transition:width .2s,background .2s;content:""}multipurpose-nav[m4-type=collapse] .drag-container .collapse-placeholder{padding:12px 0;display:none;width:100%;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.5px;text-align:left;-webkit-user-select:none;user-select:none}multipurpose-nav[m4-type=collapse] .drag-container .open-collapse{margin-left:10px;padding-left:10px;order:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-left:1px solid rgba(0,0,0,.3);width:32px;height:25px;cursor:pointer}multipurpose-nav[m4-type=collapse] .drag-container .open-collapse:before{width:0;height:0;border-style:solid;border-width:6px 5px 0 5px;border-color:#000 transparent transparent transparent;content:""}multipurpose-nav[m4-type=collapse] .collapse-container{padding:20px;position:absolute;left:0;z-index:1;background-color:#fff;border-radius:5px;border:1px solid rgba(0,0,0,.2);max-width:500px;width:100%;opacity:0;transform:translate3d(0,-10px,0);pointer-events:none;transition:opacity .3s,transform .3s}multipurpose-nav[m4-type=collapse] .collapse-container .wrapper{display:flex;flex-wrap:wrap;margin:0 -10px -10px}multipurpose-nav[m4-type=collapse] .collapse-container .item{margin:0 10px 10px;padding:5px 20px;position:relative;flex-shrink:0;border:1px solid rgba(0,0,0,.2);border-radius:500px;text-align:center;cursor:pointer}multipurpose-nav[m4-type=collapse] .collapse-container .item:hover{background-color:#000}multipurpose-nav[m4-type=collapse] .collapse-container .item:hover .category{color:#fff}multipurpose-nav[m4-type=collapse] .collapse-container .item.active{background-color:#000}multipurpose-nav[m4-type=collapse] .collapse-container .item.active .category{color:#fff}multipurpose-nav[m4-type=collapse] .collapse-container .category{display:block;position:relative;color:#000;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.5px;text-decoration:none}tab-el [t4-role=tabPanel]{width:100%;height:100%;opacity:0}tab-el [t4-role=tabPanel][t4-display=silde]{overflow:hidden}[t4-role=prev],[t4-role=next]{opacity:1;transition:.5s opacity;cursor:pointer}[t4-role=prev]:hover,[t4-role=next]:hover{opacity:.7}[t4-role=prev][disabled],[t4-role=next][disabled]{opacity:.1;pointer-events:none}[aria-selected=false]{opacity:.7}[aria-selected=true]{opacity:1;transition:.5s opacity}ripple-btn{position:relative;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;cursor:pointer}ripple-btn .circle{width:0;height:0;position:absolute;transform:translate3d(-50%,-50%,0);pointer-events:none;border-radius:50%;animation-name:animate;animation-timing-function:linear}@keyframes animate{to{width:400px;height:400px;opacity:0}}.hover-btn{position:relative;z-index:1;overflow:hidden}.hover-btn .hover-ball{position:absolute;z-index:-1;left:0;top:0;width:1px;height:1px;border-radius:50%;background-color:#ffffff4d;pointer-events:none;transform:translate3d(-50%,-50%,0) scale(var(--r, 1));transition:transform .8s cubic-bezier(.6,.25,0,1),width .8s cubic-bezier(.6,.25,0,1),height .8s cubic-bezier(.6,.25,0,1)}.no-image{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);width:100%;height:100%;background:#f7f7f7;border:1px solid #ABABAB;overflow:hidden}.no-image .slash1,.no-image .slash2{position:absolute;top:0;height:1px;background-color:#ababab}.no-image .slash1{left:0;transform-origin:left top}.no-image .slash2{right:0;transform-origin:right top}[data-upload-item]{position:relative}[data-upload-item] input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:99;cursor:pointer}[data-preview]{width:100%;height:100%;overflow:hidden}[data-preview] img{display:block;width:100%;height:100%}[data-preview] img.cover{object-fit:cover}[data-preview] img.contain{object-fit:contain}@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}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.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-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.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,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.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:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.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-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.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: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: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,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:"prev"}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:"next"}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(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:10px;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,.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: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:10px;top:50%;transform:translate3d(0,-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:translate(-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-progressbar{background:#00000040;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: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:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:#0000001a}.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:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:#00000080;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}.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(0)}to{transform:rotate(360deg)}}.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,.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-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:"";background:#000;position:absolute;inset:0;filter:blur(50px)}.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-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-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}
|
package/dist/tools-bundle.js
CHANGED
|
@@ -165,7 +165,7 @@ class H {
|
|
|
165
165
|
"input",
|
|
166
166
|
$(function(a) {
|
|
167
167
|
const { target: i } = a;
|
|
168
|
-
if (i.matches('[type="text"],[type="number"],[type="email"],[type="password"], textarea')) {
|
|
168
|
+
if (i.matches('[type="text"],[type="number"],[type="email"],[type="password"],[type="tel"], textarea')) {
|
|
169
169
|
if (e.element.value = e.getValue(), !i.closest(".form-group").classList.contains("required") && i.hasAttribute("data-verify")) {
|
|
170
170
|
S.isEmpty(i.value) && (i.classList.remove("error"), i.classList.remove("success"), i.closest(".form-group").classList.remove("error"));
|
|
171
171
|
return;
|
package/dist/tools-bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-bundle.js","sources":["../src/tools/errorPage.js","../src/tools/detectColorShade.js","../src/tools/customForm/errorText.js","../src/tools/customForm/customForm.js"],"sourcesContent":["\nexport function errorPage() {\n if (!document.body.classList.contains('error') || document.querySelector('.back-home') == null) return;\n let countdownInterval;\n let second = 5;\n const homepage = document.querySelector('.back-home').getAttribute('href');\n const countdown = document.querySelector('.back-home .countdown');\n countdownInterval = setInterval(() => {\n second--;\n countdown.textContent = second;\n if (second === 0) {\n clearInterval(countdownInterval);\n window.location.href = homepage;\n }\n }, 1000);\n}","//第三方顏色提取套件\n//要使用請先跑 npm install colorthief\nimport ColorThief from 'colorthief/dist/color-thief.mjs'\n\n/**\n * 偵測深淺色\n * @param {*} imgEl 圖片\n * @param {*} el 綁定事件的 El(.detect-shade 那層)\n * @param {*} addClassEl 欲加上深淺色 Class 的 El\n */\nexport function detectShade(imgEl, el = imgEl) {\n if (imgEl.complete) {\n //把圖片給colorThief獲取色碼\n const colorThief = new ColorThief();\n const dominantColor = colorThief.getColor(imgEl);\n const grayLevel = dominantColor[0] * 0.299 + dominantColor[1] * 0.587 + dominantColor[2] * 0.114;\n // 顏色深淺判斷\n colorPick(grayLevel, el);\n el.classList.add('detected');\n }\n}\n/**\n * 顏色深淺判斷\n * @param {*} grayLevel 0-191 黑色 192-255白色\n * @param {*} el 綁定事件的 El(.detect-shade 那層)\n */\nexport function colorPick(grayLevel, el) {\n const addClassEl = el.getAttribute('addClassEl');\n if (grayLevel >= 192) {\n //淺色\n if (addClassEl && addClassEl !== '') {\n addClassEl.split(',').forEach(element => {\n if (!el.closest(element)) {\n console.error(`closest \"${element}\" not found`);\n }\n el.closest(element)?.classList.add('is-light');\n });\n } else {\n el.classList.add('is-light');\n }\n } else {\n //深色\n if (addClassEl && addClassEl !== '') {\n addClassEl.split(',').forEach(element => {\n if (!el.closest(element)) {\n console.error(`closest \"${element}\" not found`);\n }\n el.closest(element)?.classList.add('is-dark');\n });\n } else {\n el.classList.add('is-dark');\n }\n }\n}\n/**\n * 產生一個顏色方塊\n * @param {string} startColor 開始顏色\n * @param {string} endColor 結束顏色\n * @returns 輸出一個圖片\n */\nexport function createColorCube(startColor, endColor, el) {\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n canvas.width = 50;\n canvas.height = 50;\n if (startColor !== '' && endColor === '') {\n //純色\n context.fillStyle = startColor;\n } else if (startColor !== '' && endColor !== '') {\n //漸層\n const gradient = context.createLinearGradient(0, 0, canvas.width, canvas.height);\n gradient.addColorStop(0, startColor);\n gradient.addColorStop(1, endColor);\n context.fillStyle = gradient;\n }\n context.fillRect(0, 0, canvas.width, canvas.height);\n\n //轉成圖片\n const img = new Image();\n img.src = canvas.toDataURL();\n img.crossOrigin = 'Anonymous';\n img.addEventListener('load', function () {\n const imgEl = this;\n detectShade(imgEl, el);\n });\n return img;\n}\n\nexport function init() {\n const detectEl = document.querySelectorAll('.detect-shade:not(.detected)');\n [...detectEl].forEach(el => {\n if (el.tagName === 'IMG') {\n return;\n }\n const errorWColor = ['#FFF', '#FFFFFF', '#fff', '#ffffff'];\n const errorBColor = ['#000', '#000000'];\n //背景色需先用 canvas 轉圖片再偵測\n const startColor = getComputedStyle(el).getPropertyValue('--start-color');\n const endColor = getComputedStyle(el).getPropertyValue('--end-color');\n if (startColor === '' && endColor === '') {\n console.error(el, '=> No color set!');\n return;\n } else if (errorWColor.indexOf(startColor) > 0) {\n console.warn(el, '=> TypeError!! ( #FFF ) ');\n //淺色\n colorPick(255, el);\n return;\n } else if (errorBColor.indexOf(startColor) > 0) {\n console.warn(el, '=> TypeError!! ( #000 ) ');\n //淺色\n colorPick(0, el);\n return;\n }\n createColorCube(startColor, endColor, el);\n });\n}\n","export const errorText = {\n 'zh-TW': {\n format: '格式錯誤',\n input: '尚未填寫',\n select: '尚未選擇',\n file: '檔案大小超過限制',\n },\n 'zh-CN': {\n phone: '',\n email: '',\n password: '',\n verifyCode: '',\n input: '',\n select: '',\n },\n en: {\n phone: '',\n email: '',\n password: '',\n verifyCode: '',\n input: '',\n select: '',\n },\n jp: {\n phone: '',\n email: '',\n password: '',\n verifyCode: '',\n input: '',\n select: '',\n },\n};\n","// validator(欄位驗證套件)\nimport { debounce, htmlStringToDOM } from '../utils'\nimport { errorText } from './errorText'\nimport validator from 'validator'\nimport flatpickr from 'flatpickr'\nimport { Mandarin } from \"flatpickr/dist/l10n/zh.js\"\n\nexport class CustomForm {\n constructor(element, params) {\n this.element = document.querySelector(element);\n this.allField = this.element.querySelectorAll(`${element} [form-field]`);\n this.allInput = this.element.querySelectorAll(`${element} input`);\n this.allTextarea = this.element.querySelectorAll(`${element} textarea`);\n this.allCheckbox = this.element.querySelectorAll(`${element} input[type=\"checkbox\"]`);\n this.allRadio = this.element.querySelectorAll(`${element} input[type=\"radio\"]`);\n this.allFileUpload = this.element.querySelectorAll(`${element} .fake-file-upload`);\n this.allDropdown = this.element.querySelectorAll(`${element} dropdown-el`);\n this.submitEvent = new Event('submit');\n // default params\n const defaultOptions = {\n locale: 'zh-TW',\n datepicker: [\n {\n el: '.datepicker-input',\n options: {\n locale: Mandarin,\n },\n },\n ],\n timepicker: [\n {\n el: '.timepicker-input',\n options: {\n enableTime: true,\n noCalendar: true,\n dateFormat: 'H:i',\n time_24hr: true,\n },\n },\n ],\n clearEl: null,\n submitEl: null,\n verify: false,\n errorText: {\n underField: false,\n detailOutput: false,\n },\n };\n const mergeOptions = (target, source) => {\n const merged = { ...target };\n for (let key of Object.keys(source)) {\n if (typeof source[key] === 'object' && key in target) {\n // 2024/10/21 wade demo edit\n merged[key] = Array.isArray(merged[key])\n ? [...source[key]]\n : mergeOptions(target[key], source[key]);\n\n } else {\n merged[key] = source[key];\n\n }\n }\n return merged;\n };\n this.options = params ? mergeOptions(defaultOptions, params) : defaultOptions;\n this.init();\n }\n init() {\n const cf = this;\n cf.element.value = cf.getValue();\n cf.detailOutputEl = cf.options.errorText.detailOutput ? document.querySelector(cf.options.errorText.detailOutput) : null;\n cf.#events();\n }\n /**\n * 綁事件\n */\n #events() {\n const cf = this;\n const { datepicker, timepicker, clearEl, submitEl } = cf.options;\n\n /**\n * 綁定日曆/時間\n */\n function bindingDatepicker() {\n // 日曆\n datepicker.forEach(item => {\n flatpickr(item.el, item.options);\n });\n // 時間\n timepicker.forEach(item => {\n flatpickr(item.el, item.options);\n });\n }\n\n /**\n * 綁定按鈕點擊事件\n */\n function bindingButton() {\n const clearBtn = document.querySelector(clearEl);\n const submitBtn = document.querySelector(submitEl);\n clearBtn?.addEventListener('click', function () {\n cf.clear();\n });\n submitBtn?.addEventListener('click', function () {\n cf.submit();\n });\n }\n\n function fileUpload(target) {\n const formGroup = target.closest('.form-group');\n if (target.files.length <= 0) return;\n const fakeUploadWrap = target.closest('.file-wrap').querySelector('.fake-file-upload');\n const defaultText = fakeUploadWrap.getAttribute('data-default');\n const fileName = fakeUploadWrap.querySelector('.file-name');\n const fileLimit = Number(target.getAttribute('data-limit'));\n const file = target.files[0];\n const fileSize = file.size / 1024 / 1024;\n const originalName = file.name;\n const fileInputTemp = target.cloneNode(true);\n if (fileSize > fileLimit) {\n //超過檔案大小限制\n formGroup.classList.add('error');\n formGroup.classList.remove('success');\n fileInputTemp.value = '';\n // fileName.textContent = defaultText;\n } else {\n //符合檔案大小限制\n formGroup.classList.remove('error');\n formGroup.classList.add('success');\n // fileName.textContent = originalName;\n }\n fileName.textContent = originalName;\n fileInputTemp.removeAttribute('form-field field-type data-limit');\n // const removeAttrList = [\"form-field\", \"field-type\", \"data-limit\"];\n // removeAttrList.forEach(attr => {\n // fileInputTemp.removeAttribute(attr);\n // });\n fakeUploadWrap.querySelector('input[type=\"file\"]')?.remove();\n fakeUploadWrap.append(fileInputTemp);\n }\n\n /**\n * 表單內欄位異動監聽\n */\n function changeListener() {\n function changeHandler(event) {\n const { target } = event;\n let fieldName, fieldObj;\n if (target.matches('[type=\"radio\"], [type=\"checkbox\"]')) {\n cf.element.value = cf.getValue();\n fieldName = target.closest('.form-check').getAttribute('form-field');\n fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n if (cf.options.verify) cf.verify(fieldObj);\n }\n if (target.matches('[type=\"file\"]')) {\n fileUpload(target);\n cf.element.value = cf.getValue();\n fieldName = target.getAttribute('form-field');\n fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n if (cf.options.verify) cf.verify(fieldObj);\n }\n }\n\n cf.element.addEventListener(\n 'input',\n debounce(function (e) {\n const { target } = e;\n if (target.matches('[type=\"text\"],[type=\"number\"],[type=\"email\"],[type=\"password\"], textarea')) {\n cf.element.value = cf.getValue();\n // 如果該欄位非必填則不做即時驗證\n if (!target.closest('.form-group').classList.contains('required') && target.hasAttribute('data-verify')) {\n if (validator.isEmpty(target.value)) {\n target.classList.remove('error');\n target.classList.remove('success');\n target.closest('.form-group').classList.remove('error');\n }\n return;\n }\n const fieldName = target.getAttribute('form-field');\n const fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n if (cf.options.verify) cf.verify(fieldObj);\n }\n }),\n );\n // cf.allCheckbox.forEach(checkbox => {\n // checkbox.addEventListener('change', changeHandler);\n // });\n // cf.allRadio.forEach(radio => {\n // radio.addEventListener('change', changeHandler);\n // });\n cf.element.addEventListener('change', event => {\n const { target } = event;\n let fieldName, fieldObj;\n if (target.matches('[type=\"radio\"], [type=\"checkbox\"]')) {\n cf.element.value = cf.getValue();\n fieldName = target.closest('.form-check').getAttribute('form-field');\n fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n cf.verify(fieldObj);\n }\n if (target.matches('[type=\"file\"]')) {\n fileUpload(target);\n cf.element.value = cf.getValue();\n fieldName = target.getAttribute('form-field');\n fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n cf.verify(fieldObj);\n }\n });\n // cf.allFileUpload.forEach(fakeInput => {\n // const input = fakeInput.previousElementSibling;\n // if (input && input.matches('input[type=\"file\"]')) input.addEventListener('change', changeHandler);\n // })\n cf.allDropdown.forEach(dropdown => {\n dropdown.on('change', function () {\n const fieldName = this.getAttribute('form-field');\n cf.element.value = cf.getValue();\n const val = cf.element.value[fieldName];\n const value = typeof val === 'object' && !Array.isArray(val) ? val.value : val;\n const fieldObj = {\n [fieldName]: val,\n };\n if ((Array.isArray(value) && value.length > 0) || (!Array.isArray(value) && !validator.isEmpty(value))) {\n if (cf.options.verify) cf.verify(fieldObj);\n }\n });\n });\n }\n bindingDatepicker();\n bindingButton();\n changeListener();\n }\n /**\n * 取得表單所有的值\n * @returns\n */\n getValue() {\n const cf = this;\n // 參數 -\n // 在對應的地方 加上 [form-field] --> 欄位名稱 [field-type] --> 欄位格式\n // isFile(取檔案數值物件)\n // isRadio(要放在對應父層)\n // isCheckBox(要放在對應父層)\n // isSelect(要放在對應父層)\n let data = {};\n [...cf.allField].forEach(el => {\n const field = el.getAttribute('form-field');\n const type = el.getAttribute('field-type');\n switch (type) {\n // 單選Radio\n case 'isRadio':\n const radioChecked = el.querySelector('input:checked');\n if (!radioChecked) return\n const textInput = radioChecked.querySelector('input[type=\"text\"]');\n data[field] = {\n id: parseInt(radioChecked.closest('.option-item').querySelector('.text').getAttribute('data-id')),\n value: textInput ? textInput.value : radioChecked.closest('.option-item').querySelector('.text').textContent,\n };\n break;\n // 複選Checkbox\n case 'isCheckBox':\n const checkBoxChecked = el.querySelectorAll('input:checked');\n data[field] = [...checkBoxChecked].map(item => {\n const textInput = item.querySelector('input[type=\"text\"]');\n return {\n id: parseInt(item.closest('.option-item').querySelector('.text').getAttribute('data-id')),\n value: textInput ? textInput.value : item.closest('.option-item').querySelector('.text').textContent,\n };\n });\n break;\n // 下拉選單\n case 'isSelect':\n const selectType = el.hasAttribute('multiple') ? 'multiple' : 'single';\n switch (selectType) {\n case 'single':\n data[field] = {\n value: el.s.value.id ? el.s.value.id : '',\n display: el.s.value.el ? el.s.value.el.textContent : '',\n };\n break;\n case 'multiple':\n data[field] = {\n value: el.s.value.map(option => option.id),\n display: el.s.value.map(option => option.el.textContent),\n };\n break;\n }\n break;\n // 檔案上傳\n case 'isFile':\n const realFile = el.closest('.file-wrap')?.querySelector('input[type=\"file\"]');\n data[field] = realFile?.files ?? undefined;\n break;\n // 其他\n default:\n data[field] = el.value;\n break;\n }\n });\n return data;\n }\n /**\n * 表單驗證\n * @param {object} verifyField 針對單一欄位驗證,沒傳值表示全部欄位\n * @returns\n */\n verify(verifyField) {\n const cf = this;\n const { options } = cf;\n const allValue = cf.element.value;\n const field = verifyField ? verifyField : allValue;\n /**\n * 產生表單驗證 icon(✅/❌)\n * @param {object} field 欄位物件\n */\n function appendVerifyIcon(field) {\n const validationIcon = '<div class=\"validation-icon\"></div>';\n for (const key in field) {\n const fieldEl = cf.element.querySelector(`[form-field=\"${key}\"]`);\n const verifyType = fieldEl.getAttribute('data-verify');\n const formGroup = fieldEl.closest('.form-group');\n switch (verifyType) {\n case 'select':\n const selectWrapper = fieldEl.querySelector('.select-wrapper');\n const dropdownIcon = selectWrapper.querySelector('.dropdown-icon');\n selectWrapper.querySelector('.validation-icon')?.remove();\n selectWrapper.insertBefore(htmlStringToDOM(validationIcon), dropdownIcon);\n break;\n case 'radio':\n case 'checkbox':\n formGroup.querySelector('.validation-icon')?.remove();\n formGroup.append(htmlStringToDOM(validationIcon));\n break;\n case 'file':\n const fileWrapper = fieldEl.closest('.file-wrap').querySelector('.fake-file-upload');\n const uploadIcon = fieldEl.closest('.file-wrap').querySelector('.upload-icon');\n fileWrapper.querySelector('.validation-icon')?.remove();\n if (uploadIcon) {\n fileWrapper.insertBefore(htmlStringToDOM(validationIcon), uploadIcon);\n } else {\n fileWrapper.append(htmlStringToDOM(validationIcon));\n }\n break;\n case 'date':\n case 'textarea':\n default:\n fieldEl.closest('.input-wrap').querySelector('.validation-icon')?.remove();\n fieldEl.closest('.input-wrap').append(htmlStringToDOM(validationIcon));\n break;\n }\n }\n }\n appendVerifyIcon(field);\n if (verifyField) {\n const key = Object.keys(field)[0];\n cf.element.querySelectorAll(`.error-text[name=\"${key}\"]`).forEach(element => element.remove());\n } else {\n cf.element.querySelectorAll('.error-text').forEach(element => element.remove());\n }\n for (const key in field) {\n const fieldEl = cf.element.querySelector(`[form-field=\"${key}\"]`);\n const formGroup = fieldEl.closest('.form-group');\n const subject = formGroup.querySelector('.subject')?.textContent;\n const verifyType = fieldEl.getAttribute('data-verify');\n /**\n * 回傳欄位的 value\n * @returns\n */\n const value = () => {\n if (typeof allValue[key] === 'object' && !Array.isArray(allValue[key])) {\n if (verifyType === 'file') {\n return allValue[key];\n }\n return allValue[key].value;\n }\n return allValue[key];\n };\n /**\n * 空值\n * @returns\n */\n const noValue = () => {\n if (verifyType === 'file') {\n return value() === undefined ? true : value() && value().length === 0;\n }\n return (Array.isArray(value()) && value().length === 0) || (!Array.isArray(value()) && validator.isEmpty(value()));\n };\n /**\n * 有值\n * @returns\n */\n const hasValue = () => {\n if (verifyType === 'file') {\n return value() === undefined ? false : value() && value().length > 0;\n }\n return (Array.isArray(value()) && value().length > 0) || (!Array.isArray(value()) && !validator.isEmpty(value()));\n };\n // 必填\n const required = formGroup.classList.contains('required');\n /**\n * 塞入詳細錯誤訊息\n * @param {string} type 錯誤訊息類別\n * @returns\n */\n function appendError(type, position, insertEl) {\n const fieldEl = cf.element.querySelector(`[form-field=\"${key}\"]`);\n const fieldElIndex = [...cf.element.querySelectorAll(`[form-field]`)].indexOf(fieldEl);\n const errorTextDOM = type => `<p class=\"error-text\" name=\"${key}\" index=\"${fieldElIndex}\">${subject} - ${errorText[options.locale][type]}</p>`;\n switch (position) {\n case 'underField':\n if (!options.errorText.underField) return;\n insertEl.append(htmlStringToDOM(errorTextDOM(type)));\n break;\n case 'detail':\n if (!insertEl) return;\n insertEl.append(htmlStringToDOM(errorTextDOM(type)));\n break;\n }\n }\n function sortErrorDetail() {\n const allError = cf.detailOutputEl.querySelectorAll('.error-text');\n if ([...allError].length > 0) {\n cf.element.classList.add('something-wrong');\n } else {\n cf.element.classList.remove('something-wrong');\n }\n const sortErrorDetail = [...allError].sort((a, b) => a.getAttribute('index') - b.getAttribute('index'));\n if (cf.detailOutputEl) {\n cf.detailOutputEl.textContent = '';\n }\n sortErrorDetail.forEach(item => cf.detailOutputEl?.appendChild(item));\n }\n let validationIcon;\n // 驗證必填/必選欄位是否為空\n if (required && noValue()) {\n fieldEl.classList.remove('success');\n fieldEl.classList.add('error');\n formGroup.classList.add('error');\n switch (verifyType) {\n case 'select':\n validationIcon = fieldEl.querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].select);\n appendError('select', 'underField', formGroup.parentNode);\n appendError('select', 'detail', cf.detailOutputEl);\n break;\n case 'radio':\n case 'checkbox':\n validationIcon = formGroup.querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].select);\n appendError('select', 'underField', formGroup.parentNode);\n appendError('select', 'detail', cf.detailOutputEl);\n break;\n case 'file':\n validationIcon = fieldEl.closest('.file-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].file);\n appendError('file', 'underField', formGroup.parentNode);\n appendError('file', 'detail', cf.detailOutputEl);\n break;\n default:\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].input);\n appendError('input', 'underField', formGroup.parentNode);\n appendError('input', 'detail', cf.detailOutputEl);\n break;\n }\n }\n if (hasValue()) {\n /**\n * 更新欄位狀態\n * @param {object} fieldEl [form-field] element\n * @param {boolean} success 是否通過驗證\n */\n function updateFieldStatus(fieldEl, success) {\n const formGroup = fieldEl.closest('.form-group');\n fieldEl.classList.toggle('error', !success);\n fieldEl.classList.toggle('success', success);\n const verifyType = fieldEl.getAttribute('data-verify');\n const otherField = verifyType === 'phone' ? formGroup.querySelector('*:not(input)[form-field]') : formGroup.querySelector('*:not(dropdown-el)[form-field]');\n const hasOtherField = Boolean(otherField);\n const fieldSuccess = fieldEl.classList.contains('success');\n const fieldError = fieldEl.classList.contains('error');\n const otherFieldSuccess = otherField?.classList.contains('success');\n const otherFieldError = otherField?.classList.contains('error');\n if (hasOtherField) {\n if (otherFieldSuccess && !otherFieldError && fieldSuccess) {\n formGroup.classList.remove('error');\n formGroup.classList.add('success');\n } else if (otherFieldError || fieldError) {\n formGroup.classList.remove('success');\n formGroup.classList.add('error');\n }\n } else {\n if (fieldSuccess) {\n formGroup.classList.remove('error');\n formGroup.classList.add('success');\n } else {\n formGroup.classList.add('error');\n formGroup.classList.remove('success');\n }\n }\n }\n switch (verifyType) {\n case 'phone':\n const dropdownEl = formGroup.querySelector('dropdown-el');\n if (validator.isMobilePhone(value())) {\n updateFieldStatus(fieldEl, true);\n if (dropdownEl && dropdownEl.classList.contains('success')) {\n formGroup.classList.remove('error');\n formGroup.classList.add('success');\n }\n } else {\n updateFieldStatus(fieldEl, false);\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].format);\n appendError('format', 'underField', formGroup.parentNode);\n appendError('format', 'detail', cf.detailOutputEl);\n }\n break;\n case 'password':\n if (\n validator.isStrongPassword(value(), {\n minLength: 8,\n minLowercase: 1,\n minUppercase: 0,\n minNumbers: 1,\n minSymbols: 0,\n })\n ) {\n updateFieldStatus(fieldEl, true);\n } else {\n updateFieldStatus(fieldEl, false);\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].format);\n appendError('format', 'underField', formGroup.parentNode);\n appendError('format', 'detail', cf.detailOutputEl);\n }\n break;\n case 'email':\n if (validator.isEmail(value())) {\n updateFieldStatus(fieldEl, true);\n } else {\n updateFieldStatus(fieldEl, false);\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].format);\n appendError('format', 'underField', formGroup.parentNode);\n appendError('format', 'detail', cf.detailOutputEl);\n }\n break;\n case 'verifyCode':\n const isValidCode = validator.isNumeric(value(), { no_symbols: true }) && validator.isLength(value(), { min: 4, max: 4 });\n if (isValidCode) {\n updateFieldStatus(fieldEl, true);\n } else {\n updateFieldStatus(fieldEl, false);\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].format);\n appendError('format', 'underField', formGroup.parentNode);\n appendError('format', 'detail', cf.detailOutputEl);\n }\n break;\n case 'select':\n default:\n updateFieldStatus(fieldEl, true);\n break;\n }\n }\n // 重新排序\n if (cf.detailOutputEl) {\n sortErrorDetail();\n }\n }\n }\n /**\n * 送出表單\n */\n submit() {\n const cf = this;\n if (cf.options.verify) {\n cf.verify();\n }\n cf.element.dispatchEvent(cf.submitEvent);\n }\n /**\n * 清除表單所有欄位\n */\n clear() {\n const cf = this;\n const { allInput, allTextarea, allCheckbox, allFileUpload, allDropdown } = cf;\n [...cf.allField].forEach(el => {\n const formGroup = el.closest('.form-group');\n formGroup.classList.remove('success');\n formGroup.classList.remove('error');\n el.classList.remove('success');\n el.classList.remove('error');\n el.closest('.form-grid').querySelector('.error-text')?.remove();\n if (cf.detailOutputEl) {\n cf.detailOutputEl.textContent = '';\n }\n });\n [...allInput].forEach(input => {\n input.value = '';\n });\n [...allTextarea].forEach(textarea => {\n textarea.value = '';\n });\n [...allCheckbox].forEach(checkbox => {\n checkbox.checked = false;\n });\n [...allFileUpload].forEach(input => {\n let defaultText = input.getAttribute('data-default');\n const fileName = input.querySelector('.file-name');\n const file = input.closest('.file-wrap').querySelector('input[type=\"file\"]');\n\n fileName.classList.remove('is-upload');\n fileName.textContent = defaultText;\n if (file) {\n file.value = '';\n }\n });\n [...allDropdown].forEach(dropdown => {\n dropdown.setAttribute('d4-value', '');\n if (dropdown.hasAttribute('control-elements')) {\n const disabledEl = [...dropdown.getAttribute('control-elements').split(',')];\n disabledEl.forEach(selector => {\n document.querySelector(selector).classList.remove('disabled');\n });\n }\n });\n cf.element.value = cf.getValue();\n }\n}\n"],"names":["errorPage","countdownInterval","second","homepage","countdown","detectShade","imgEl","el","dominantColor","ColorThief","grayLevel","colorPick","addClassEl","element","createColorCube","startColor","endColor","canvas","context","gradient","img","init","errorWColor","errorBColor","errorText","CustomForm","params","defaultOptions","Mandarin","mergeOptions","target","source","merged","key","cf","#events","datepicker","timepicker","clearEl","submitEl","bindingDatepicker","item","flatpickr","bindingButton","clearBtn","submitBtn","fileUpload","formGroup","fakeUploadWrap","fileName","fileLimit","file","fileSize","originalName","fileInputTemp","changeListener","debounce","e","validator","fieldName","fieldObj","event","dropdown","val","value","data","field","radioChecked","textInput","checkBoxChecked","option","realFile","verifyField","options","allValue","appendVerifyIcon","validationIcon","fieldEl","verifyType","selectWrapper","dropdownIcon","htmlStringToDOM","fileWrapper","uploadIcon","appendError","type","position","insertEl","fieldElIndex","errorTextDOM","subject","sortErrorDetail","allError","a","b","noValue","hasValue","required","updateFieldStatus","success","otherField","hasOtherField","fieldSuccess","fieldError","otherFieldSuccess","otherFieldError","dropdownEl","allInput","allTextarea","allCheckbox","allFileUpload","allDropdown","input","textarea","checkbox","defaultText","selector"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools-bundle.js","sources":["../src/tools/errorPage.js","../src/tools/detectColorShade.js","../src/tools/customForm/errorText.js","../src/tools/customForm/customForm.js"],"sourcesContent":["\nexport function errorPage() {\n if (!document.body.classList.contains('error') || document.querySelector('.back-home') == null) return;\n let countdownInterval;\n let second = 5;\n const homepage = document.querySelector('.back-home').getAttribute('href');\n const countdown = document.querySelector('.back-home .countdown');\n countdownInterval = setInterval(() => {\n second--;\n countdown.textContent = second;\n if (second === 0) {\n clearInterval(countdownInterval);\n window.location.href = homepage;\n }\n }, 1000);\n}","//第三方顏色提取套件\n//要使用請先跑 npm install colorthief\nimport ColorThief from 'colorthief/dist/color-thief.mjs'\n\n/**\n * 偵測深淺色\n * @param {*} imgEl 圖片\n * @param {*} el 綁定事件的 El(.detect-shade 那層)\n * @param {*} addClassEl 欲加上深淺色 Class 的 El\n */\nexport function detectShade(imgEl, el = imgEl) {\n if (imgEl.complete) {\n //把圖片給colorThief獲取色碼\n const colorThief = new ColorThief();\n const dominantColor = colorThief.getColor(imgEl);\n const grayLevel = dominantColor[0] * 0.299 + dominantColor[1] * 0.587 + dominantColor[2] * 0.114;\n // 顏色深淺判斷\n colorPick(grayLevel, el);\n el.classList.add('detected');\n }\n}\n/**\n * 顏色深淺判斷\n * @param {*} grayLevel 0-191 黑色 192-255白色\n * @param {*} el 綁定事件的 El(.detect-shade 那層)\n */\nexport function colorPick(grayLevel, el) {\n const addClassEl = el.getAttribute('addClassEl');\n if (grayLevel >= 192) {\n //淺色\n if (addClassEl && addClassEl !== '') {\n addClassEl.split(',').forEach(element => {\n if (!el.closest(element)) {\n console.error(`closest \"${element}\" not found`);\n }\n el.closest(element)?.classList.add('is-light');\n });\n } else {\n el.classList.add('is-light');\n }\n } else {\n //深色\n if (addClassEl && addClassEl !== '') {\n addClassEl.split(',').forEach(element => {\n if (!el.closest(element)) {\n console.error(`closest \"${element}\" not found`);\n }\n el.closest(element)?.classList.add('is-dark');\n });\n } else {\n el.classList.add('is-dark');\n }\n }\n}\n/**\n * 產生一個顏色方塊\n * @param {string} startColor 開始顏色\n * @param {string} endColor 結束顏色\n * @returns 輸出一個圖片\n */\nexport function createColorCube(startColor, endColor, el) {\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n canvas.width = 50;\n canvas.height = 50;\n if (startColor !== '' && endColor === '') {\n //純色\n context.fillStyle = startColor;\n } else if (startColor !== '' && endColor !== '') {\n //漸層\n const gradient = context.createLinearGradient(0, 0, canvas.width, canvas.height);\n gradient.addColorStop(0, startColor);\n gradient.addColorStop(1, endColor);\n context.fillStyle = gradient;\n }\n context.fillRect(0, 0, canvas.width, canvas.height);\n\n //轉成圖片\n const img = new Image();\n img.src = canvas.toDataURL();\n img.crossOrigin = 'Anonymous';\n img.addEventListener('load', function () {\n const imgEl = this;\n detectShade(imgEl, el);\n });\n return img;\n}\n\nexport function init() {\n const detectEl = document.querySelectorAll('.detect-shade:not(.detected)');\n [...detectEl].forEach(el => {\n if (el.tagName === 'IMG') {\n return;\n }\n const errorWColor = ['#FFF', '#FFFFFF', '#fff', '#ffffff'];\n const errorBColor = ['#000', '#000000'];\n //背景色需先用 canvas 轉圖片再偵測\n const startColor = getComputedStyle(el).getPropertyValue('--start-color');\n const endColor = getComputedStyle(el).getPropertyValue('--end-color');\n if (startColor === '' && endColor === '') {\n console.error(el, '=> No color set!');\n return;\n } else if (errorWColor.indexOf(startColor) > 0) {\n console.warn(el, '=> TypeError!! ( #FFF ) ');\n //淺色\n colorPick(255, el);\n return;\n } else if (errorBColor.indexOf(startColor) > 0) {\n console.warn(el, '=> TypeError!! ( #000 ) ');\n //淺色\n colorPick(0, el);\n return;\n }\n createColorCube(startColor, endColor, el);\n });\n}\n","export const errorText = {\n 'zh-TW': {\n format: '格式錯誤',\n input: '尚未填寫',\n select: '尚未選擇',\n file: '檔案大小超過限制',\n },\n 'zh-CN': {\n phone: '',\n email: '',\n password: '',\n verifyCode: '',\n input: '',\n select: '',\n },\n en: {\n phone: '',\n email: '',\n password: '',\n verifyCode: '',\n input: '',\n select: '',\n },\n jp: {\n phone: '',\n email: '',\n password: '',\n verifyCode: '',\n input: '',\n select: '',\n },\n};\n","// validator(欄位驗證套件)\nimport { debounce, htmlStringToDOM } from '../utils'\nimport { errorText } from './errorText'\nimport validator from 'validator'\nimport flatpickr from 'flatpickr'\nimport { Mandarin } from \"flatpickr/dist/l10n/zh.js\"\n\nexport class CustomForm {\n constructor(element, params) {\n this.element = document.querySelector(element);\n this.allField = this.element.querySelectorAll(`${element} [form-field]`);\n this.allInput = this.element.querySelectorAll(`${element} input`);\n this.allTextarea = this.element.querySelectorAll(`${element} textarea`);\n this.allCheckbox = this.element.querySelectorAll(`${element} input[type=\"checkbox\"]`);\n this.allRadio = this.element.querySelectorAll(`${element} input[type=\"radio\"]`);\n this.allFileUpload = this.element.querySelectorAll(`${element} .fake-file-upload`);\n this.allDropdown = this.element.querySelectorAll(`${element} dropdown-el`);\n this.submitEvent = new Event('submit');\n // default params\n const defaultOptions = {\n locale: 'zh-TW',\n datepicker: [\n {\n el: '.datepicker-input',\n options: {\n locale: Mandarin,\n },\n },\n ],\n timepicker: [\n {\n el: '.timepicker-input',\n options: {\n enableTime: true,\n noCalendar: true,\n dateFormat: 'H:i',\n time_24hr: true,\n },\n },\n ],\n clearEl: null,\n submitEl: null,\n verify: false,\n errorText: {\n underField: false,\n detailOutput: false,\n },\n };\n const mergeOptions = (target, source) => {\n const merged = { ...target };\n for (let key of Object.keys(source)) {\n if (typeof source[key] === 'object' && key in target) {\n // 2024/10/21 wade demo edit\n merged[key] = Array.isArray(merged[key])\n ? [...source[key]]\n : mergeOptions(target[key], source[key]);\n\n } else {\n merged[key] = source[key];\n\n }\n }\n return merged;\n };\n this.options = params ? mergeOptions(defaultOptions, params) : defaultOptions;\n this.init();\n }\n init() {\n const cf = this;\n cf.element.value = cf.getValue();\n cf.detailOutputEl = cf.options.errorText.detailOutput ? document.querySelector(cf.options.errorText.detailOutput) : null;\n cf.#events();\n }\n /**\n * 綁事件\n */\n #events() {\n const cf = this;\n const { datepicker, timepicker, clearEl, submitEl } = cf.options;\n\n /**\n * 綁定日曆/時間\n */\n function bindingDatepicker() {\n // 日曆\n datepicker.forEach(item => {\n flatpickr(item.el, item.options);\n });\n // 時間\n timepicker.forEach(item => {\n flatpickr(item.el, item.options);\n });\n }\n\n /**\n * 綁定按鈕點擊事件\n */\n function bindingButton() {\n const clearBtn = document.querySelector(clearEl);\n const submitBtn = document.querySelector(submitEl);\n clearBtn?.addEventListener('click', function () {\n cf.clear();\n });\n submitBtn?.addEventListener('click', function () {\n cf.submit();\n });\n }\n\n function fileUpload(target) {\n const formGroup = target.closest('.form-group');\n if (target.files.length <= 0) return;\n const fakeUploadWrap = target.closest('.file-wrap').querySelector('.fake-file-upload');\n const defaultText = fakeUploadWrap.getAttribute('data-default');\n const fileName = fakeUploadWrap.querySelector('.file-name');\n const fileLimit = Number(target.getAttribute('data-limit'));\n const file = target.files[0];\n const fileSize = file.size / 1024 / 1024;\n const originalName = file.name;\n const fileInputTemp = target.cloneNode(true);\n if (fileSize > fileLimit) {\n //超過檔案大小限制\n formGroup.classList.add('error');\n formGroup.classList.remove('success');\n fileInputTemp.value = '';\n // fileName.textContent = defaultText;\n } else {\n //符合檔案大小限制\n formGroup.classList.remove('error');\n formGroup.classList.add('success');\n // fileName.textContent = originalName;\n }\n fileName.textContent = originalName;\n fileInputTemp.removeAttribute('form-field field-type data-limit');\n // const removeAttrList = [\"form-field\", \"field-type\", \"data-limit\"];\n // removeAttrList.forEach(attr => {\n // fileInputTemp.removeAttribute(attr);\n // });\n fakeUploadWrap.querySelector('input[type=\"file\"]')?.remove();\n fakeUploadWrap.append(fileInputTemp);\n }\n\n /**\n * 表單內欄位異動監聽\n */\n function changeListener() {\n function changeHandler(event) {\n const { target } = event;\n let fieldName, fieldObj;\n if (target.matches('[type=\"radio\"], [type=\"checkbox\"]')) {\n cf.element.value = cf.getValue();\n fieldName = target.closest('.form-check').getAttribute('form-field');\n fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n if (cf.options.verify) cf.verify(fieldObj);\n }\n if (target.matches('[type=\"file\"]')) {\n fileUpload(target);\n cf.element.value = cf.getValue();\n fieldName = target.getAttribute('form-field');\n fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n if (cf.options.verify) cf.verify(fieldObj);\n }\n }\n\n cf.element.addEventListener(\n 'input',\n debounce(function (e) {\n const { target } = e;\n if (target.matches('[type=\"text\"],[type=\"number\"],[type=\"email\"],[type=\"password\"],[type=\"tel\"], textarea')) {\n cf.element.value = cf.getValue();\n // 如果該欄位非必填則不做即時驗證\n if (!target.closest('.form-group').classList.contains('required') && target.hasAttribute('data-verify')) {\n if (validator.isEmpty(target.value)) {\n target.classList.remove('error');\n target.classList.remove('success');\n target.closest('.form-group').classList.remove('error');\n }\n return;\n }\n const fieldName = target.getAttribute('form-field');\n const fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n if (cf.options.verify) cf.verify(fieldObj);\n }\n }),\n );\n // cf.allCheckbox.forEach(checkbox => {\n // checkbox.addEventListener('change', changeHandler);\n // });\n // cf.allRadio.forEach(radio => {\n // radio.addEventListener('change', changeHandler);\n // });\n cf.element.addEventListener('change', event => {\n const { target } = event;\n let fieldName, fieldObj;\n if (target.matches('[type=\"radio\"], [type=\"checkbox\"]')) {\n cf.element.value = cf.getValue();\n fieldName = target.closest('.form-check').getAttribute('form-field');\n fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n cf.verify(fieldObj);\n }\n if (target.matches('[type=\"file\"]')) {\n fileUpload(target);\n cf.element.value = cf.getValue();\n fieldName = target.getAttribute('form-field');\n fieldObj = {\n [fieldName]: cf.element.value[fieldName],\n };\n cf.verify(fieldObj);\n }\n });\n // cf.allFileUpload.forEach(fakeInput => {\n // const input = fakeInput.previousElementSibling;\n // if (input && input.matches('input[type=\"file\"]')) input.addEventListener('change', changeHandler);\n // })\n cf.allDropdown.forEach(dropdown => {\n dropdown.on('change', function () {\n const fieldName = this.getAttribute('form-field');\n cf.element.value = cf.getValue();\n const val = cf.element.value[fieldName];\n const value = typeof val === 'object' && !Array.isArray(val) ? val.value : val;\n const fieldObj = {\n [fieldName]: val,\n };\n if ((Array.isArray(value) && value.length > 0) || (!Array.isArray(value) && !validator.isEmpty(value))) {\n if (cf.options.verify) cf.verify(fieldObj);\n }\n });\n });\n }\n bindingDatepicker();\n bindingButton();\n changeListener();\n }\n /**\n * 取得表單所有的值\n * @returns\n */\n getValue() {\n const cf = this;\n // 參數 -\n // 在對應的地方 加上 [form-field] --> 欄位名稱 [field-type] --> 欄位格式\n // isFile(取檔案數值物件)\n // isRadio(要放在對應父層)\n // isCheckBox(要放在對應父層)\n // isSelect(要放在對應父層)\n let data = {};\n [...cf.allField].forEach(el => {\n const field = el.getAttribute('form-field');\n const type = el.getAttribute('field-type');\n switch (type) {\n // 單選Radio\n case 'isRadio':\n const radioChecked = el.querySelector('input:checked');\n if (!radioChecked) return\n const textInput = radioChecked.querySelector('input[type=\"text\"]');\n data[field] = {\n id: parseInt(radioChecked.closest('.option-item').querySelector('.text').getAttribute('data-id')),\n value: textInput ? textInput.value : radioChecked.closest('.option-item').querySelector('.text').textContent,\n };\n break;\n // 複選Checkbox\n case 'isCheckBox':\n const checkBoxChecked = el.querySelectorAll('input:checked');\n data[field] = [...checkBoxChecked].map(item => {\n const textInput = item.querySelector('input[type=\"text\"]');\n return {\n id: parseInt(item.closest('.option-item').querySelector('.text').getAttribute('data-id')),\n value: textInput ? textInput.value : item.closest('.option-item').querySelector('.text').textContent,\n };\n });\n break;\n // 下拉選單\n case 'isSelect':\n const selectType = el.hasAttribute('multiple') ? 'multiple' : 'single';\n switch (selectType) {\n case 'single':\n data[field] = {\n value: el.s.value.id ? el.s.value.id : '',\n display: el.s.value.el ? el.s.value.el.textContent : '',\n };\n break;\n case 'multiple':\n data[field] = {\n value: el.s.value.map(option => option.id),\n display: el.s.value.map(option => option.el.textContent),\n };\n break;\n }\n break;\n // 檔案上傳\n case 'isFile':\n const realFile = el.closest('.file-wrap')?.querySelector('input[type=\"file\"]');\n data[field] = realFile?.files ?? undefined;\n break;\n // 其他\n default:\n data[field] = el.value;\n break;\n }\n });\n return data;\n }\n /**\n * 表單驗證\n * @param {object} verifyField 針對單一欄位驗證,沒傳值表示全部欄位\n * @returns\n */\n verify(verifyField) {\n const cf = this;\n const { options } = cf;\n const allValue = cf.element.value;\n const field = verifyField ? verifyField : allValue;\n /**\n * 產生表單驗證 icon(✅/❌)\n * @param {object} field 欄位物件\n */\n function appendVerifyIcon(field) {\n const validationIcon = '<div class=\"validation-icon\"></div>';\n for (const key in field) {\n const fieldEl = cf.element.querySelector(`[form-field=\"${key}\"]`);\n const verifyType = fieldEl.getAttribute('data-verify');\n const formGroup = fieldEl.closest('.form-group');\n switch (verifyType) {\n case 'select':\n const selectWrapper = fieldEl.querySelector('.select-wrapper');\n const dropdownIcon = selectWrapper.querySelector('.dropdown-icon');\n selectWrapper.querySelector('.validation-icon')?.remove();\n selectWrapper.insertBefore(htmlStringToDOM(validationIcon), dropdownIcon);\n break;\n case 'radio':\n case 'checkbox':\n formGroup.querySelector('.validation-icon')?.remove();\n formGroup.append(htmlStringToDOM(validationIcon));\n break;\n case 'file':\n const fileWrapper = fieldEl.closest('.file-wrap').querySelector('.fake-file-upload');\n const uploadIcon = fieldEl.closest('.file-wrap').querySelector('.upload-icon');\n fileWrapper.querySelector('.validation-icon')?.remove();\n if (uploadIcon) {\n fileWrapper.insertBefore(htmlStringToDOM(validationIcon), uploadIcon);\n } else {\n fileWrapper.append(htmlStringToDOM(validationIcon));\n }\n break;\n case 'date':\n case 'textarea':\n default:\n fieldEl.closest('.input-wrap').querySelector('.validation-icon')?.remove();\n fieldEl.closest('.input-wrap').append(htmlStringToDOM(validationIcon));\n break;\n }\n }\n }\n appendVerifyIcon(field);\n if (verifyField) {\n const key = Object.keys(field)[0];\n cf.element.querySelectorAll(`.error-text[name=\"${key}\"]`).forEach(element => element.remove());\n } else {\n cf.element.querySelectorAll('.error-text').forEach(element => element.remove());\n }\n for (const key in field) {\n const fieldEl = cf.element.querySelector(`[form-field=\"${key}\"]`);\n const formGroup = fieldEl.closest('.form-group');\n const subject = formGroup.querySelector('.subject')?.textContent;\n const verifyType = fieldEl.getAttribute('data-verify');\n /**\n * 回傳欄位的 value\n * @returns\n */\n const value = () => {\n if (typeof allValue[key] === 'object' && !Array.isArray(allValue[key])) {\n if (verifyType === 'file') {\n return allValue[key];\n }\n return allValue[key].value;\n }\n return allValue[key];\n };\n /**\n * 空值\n * @returns\n */\n const noValue = () => {\n if (verifyType === 'file') {\n return value() === undefined ? true : value() && value().length === 0;\n }\n return (Array.isArray(value()) && value().length === 0) || (!Array.isArray(value()) && validator.isEmpty(value()));\n };\n /**\n * 有值\n * @returns\n */\n const hasValue = () => {\n if (verifyType === 'file') {\n return value() === undefined ? false : value() && value().length > 0;\n }\n return (Array.isArray(value()) && value().length > 0) || (!Array.isArray(value()) && !validator.isEmpty(value()));\n };\n // 必填\n const required = formGroup.classList.contains('required');\n /**\n * 塞入詳細錯誤訊息\n * @param {string} type 錯誤訊息類別\n * @returns\n */\n function appendError(type, position, insertEl) {\n const fieldEl = cf.element.querySelector(`[form-field=\"${key}\"]`);\n const fieldElIndex = [...cf.element.querySelectorAll(`[form-field]`)].indexOf(fieldEl);\n const errorTextDOM = type => `<p class=\"error-text\" name=\"${key}\" index=\"${fieldElIndex}\">${subject} - ${errorText[options.locale][type]}</p>`;\n switch (position) {\n case 'underField':\n if (!options.errorText.underField) return;\n insertEl.append(htmlStringToDOM(errorTextDOM(type)));\n break;\n case 'detail':\n if (!insertEl) return;\n insertEl.append(htmlStringToDOM(errorTextDOM(type)));\n break;\n }\n }\n function sortErrorDetail() {\n const allError = cf.detailOutputEl.querySelectorAll('.error-text');\n if ([...allError].length > 0) {\n cf.element.classList.add('something-wrong');\n } else {\n cf.element.classList.remove('something-wrong');\n }\n const sortErrorDetail = [...allError].sort((a, b) => a.getAttribute('index') - b.getAttribute('index'));\n if (cf.detailOutputEl) {\n cf.detailOutputEl.textContent = '';\n }\n sortErrorDetail.forEach(item => cf.detailOutputEl?.appendChild(item));\n }\n let validationIcon;\n // 驗證必填/必選欄位是否為空\n if (required && noValue()) {\n fieldEl.classList.remove('success');\n fieldEl.classList.add('error');\n formGroup.classList.add('error');\n switch (verifyType) {\n case 'select':\n validationIcon = fieldEl.querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].select);\n appendError('select', 'underField', formGroup.parentNode);\n appendError('select', 'detail', cf.detailOutputEl);\n break;\n case 'radio':\n case 'checkbox':\n validationIcon = formGroup.querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].select);\n appendError('select', 'underField', formGroup.parentNode);\n appendError('select', 'detail', cf.detailOutputEl);\n break;\n case 'file':\n validationIcon = fieldEl.closest('.file-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].file);\n appendError('file', 'underField', formGroup.parentNode);\n appendError('file', 'detail', cf.detailOutputEl);\n break;\n default:\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].input);\n appendError('input', 'underField', formGroup.parentNode);\n appendError('input', 'detail', cf.detailOutputEl);\n break;\n }\n }\n if (hasValue()) {\n /**\n * 更新欄位狀態\n * @param {object} fieldEl [form-field] element\n * @param {boolean} success 是否通過驗證\n */\n function updateFieldStatus(fieldEl, success) {\n const formGroup = fieldEl.closest('.form-group');\n fieldEl.classList.toggle('error', !success);\n fieldEl.classList.toggle('success', success);\n const verifyType = fieldEl.getAttribute('data-verify');\n const otherField = verifyType === 'phone' ? formGroup.querySelector('*:not(input)[form-field]') : formGroup.querySelector('*:not(dropdown-el)[form-field]');\n const hasOtherField = Boolean(otherField);\n const fieldSuccess = fieldEl.classList.contains('success');\n const fieldError = fieldEl.classList.contains('error');\n const otherFieldSuccess = otherField?.classList.contains('success');\n const otherFieldError = otherField?.classList.contains('error');\n if (hasOtherField) {\n if (otherFieldSuccess && !otherFieldError && fieldSuccess) {\n formGroup.classList.remove('error');\n formGroup.classList.add('success');\n } else if (otherFieldError || fieldError) {\n formGroup.classList.remove('success');\n formGroup.classList.add('error');\n }\n } else {\n if (fieldSuccess) {\n formGroup.classList.remove('error');\n formGroup.classList.add('success');\n } else {\n formGroup.classList.add('error');\n formGroup.classList.remove('success');\n }\n }\n }\n switch (verifyType) {\n case 'phone':\n const dropdownEl = formGroup.querySelector('dropdown-el');\n if (validator.isMobilePhone(value())) {\n updateFieldStatus(fieldEl, true);\n if (dropdownEl && dropdownEl.classList.contains('success')) {\n formGroup.classList.remove('error');\n formGroup.classList.add('success');\n }\n } else {\n updateFieldStatus(fieldEl, false);\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].format);\n appendError('format', 'underField', formGroup.parentNode);\n appendError('format', 'detail', cf.detailOutputEl);\n }\n break;\n case 'password':\n if (\n validator.isStrongPassword(value(), {\n minLength: 8,\n minLowercase: 1,\n minUppercase: 0,\n minNumbers: 1,\n minSymbols: 0,\n })\n ) {\n updateFieldStatus(fieldEl, true);\n } else {\n updateFieldStatus(fieldEl, false);\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].format);\n appendError('format', 'underField', formGroup.parentNode);\n appendError('format', 'detail', cf.detailOutputEl);\n }\n break;\n case 'email':\n if (validator.isEmail(value())) {\n updateFieldStatus(fieldEl, true);\n } else {\n updateFieldStatus(fieldEl, false);\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].format);\n appendError('format', 'underField', formGroup.parentNode);\n appendError('format', 'detail', cf.detailOutputEl);\n }\n break;\n case 'verifyCode':\n const isValidCode = validator.isNumeric(value(), { no_symbols: true }) && validator.isLength(value(), { min: 4, max: 4 });\n if (isValidCode) {\n updateFieldStatus(fieldEl, true);\n } else {\n updateFieldStatus(fieldEl, false);\n validationIcon = fieldEl.closest('.input-wrap').querySelector('.validation-icon');\n validationIcon.setAttribute('error-text', errorText[options.locale].format);\n appendError('format', 'underField', formGroup.parentNode);\n appendError('format', 'detail', cf.detailOutputEl);\n }\n break;\n case 'select':\n default:\n updateFieldStatus(fieldEl, true);\n break;\n }\n }\n // 重新排序\n if (cf.detailOutputEl) {\n sortErrorDetail();\n }\n }\n }\n /**\n * 送出表單\n */\n submit() {\n const cf = this;\n if (cf.options.verify) {\n cf.verify();\n }\n cf.element.dispatchEvent(cf.submitEvent);\n }\n /**\n * 清除表單所有欄位\n */\n clear() {\n const cf = this;\n const { allInput, allTextarea, allCheckbox, allFileUpload, allDropdown } = cf;\n [...cf.allField].forEach(el => {\n const formGroup = el.closest('.form-group');\n formGroup.classList.remove('success');\n formGroup.classList.remove('error');\n el.classList.remove('success');\n el.classList.remove('error');\n el.closest('.form-grid').querySelector('.error-text')?.remove();\n if (cf.detailOutputEl) {\n cf.detailOutputEl.textContent = '';\n }\n });\n [...allInput].forEach(input => {\n input.value = '';\n });\n [...allTextarea].forEach(textarea => {\n textarea.value = '';\n });\n [...allCheckbox].forEach(checkbox => {\n checkbox.checked = false;\n });\n [...allFileUpload].forEach(input => {\n let defaultText = input.getAttribute('data-default');\n const fileName = input.querySelector('.file-name');\n const file = input.closest('.file-wrap').querySelector('input[type=\"file\"]');\n\n fileName.classList.remove('is-upload');\n fileName.textContent = defaultText;\n if (file) {\n file.value = '';\n }\n });\n [...allDropdown].forEach(dropdown => {\n dropdown.setAttribute('d4-value', '');\n if (dropdown.hasAttribute('control-elements')) {\n const disabledEl = [...dropdown.getAttribute('control-elements').split(',')];\n disabledEl.forEach(selector => {\n document.querySelector(selector).classList.remove('disabled');\n });\n }\n });\n cf.element.value = cf.getValue();\n }\n}\n"],"names":["errorPage","countdownInterval","second","homepage","countdown","detectShade","imgEl","el","dominantColor","ColorThief","grayLevel","colorPick","addClassEl","element","createColorCube","startColor","endColor","canvas","context","gradient","img","init","errorWColor","errorBColor","errorText","CustomForm","params","defaultOptions","Mandarin","mergeOptions","target","source","merged","key","cf","#events","datepicker","timepicker","clearEl","submitEl","bindingDatepicker","item","flatpickr","bindingButton","clearBtn","submitBtn","fileUpload","formGroup","fakeUploadWrap","fileName","fileLimit","file","fileSize","originalName","fileInputTemp","changeListener","debounce","e","validator","fieldName","fieldObj","event","dropdown","val","value","data","field","radioChecked","textInput","checkBoxChecked","option","realFile","verifyField","options","allValue","appendVerifyIcon","validationIcon","fieldEl","verifyType","selectWrapper","dropdownIcon","htmlStringToDOM","fileWrapper","uploadIcon","appendError","type","position","insertEl","fieldElIndex","errorTextDOM","subject","sortErrorDetail","allError","a","b","noValue","hasValue","required","updateFieldStatus","success","otherField","hasOtherField","fieldSuccess","fieldError","otherFieldSuccess","otherFieldError","dropdownEl","allInput","allTextarea","allCheckbox","allFileUpload","allDropdown","input","textarea","checkbox","defaultText","selector"],"mappings":"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"}
|