{"version":3,"sources":["webpack:///../../../src/components/VFileInput/VFileInput.ts","webpack:///../../../src/components/VTextField/index.ts","webpack:///./src/views/newsletter-template/Designer.vue?d488","webpack:///src/views/newsletter-template/Designer.vue","webpack:///./src/views/newsletter-template/Designer.vue?b8ac","webpack:///./src/views/newsletter-template/Designer.vue","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///../../../src/mixins/rippleable/index.ts","webpack:///../../../src/mixins/selectable/index.ts","webpack:///../../../src/components/VSwitch/VSwitch.ts","webpack:///../../../src/components/VSlider/VSlider.ts","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts"],"names":["name","model","prop","event","props","chips","clearable","type","default","counterSizeString","counterString","hideInput","multiple","placeholder","prependIcon","readonly","showSize","Boolean","validator","v","includes","smallChips","truncateLength","Number","value","val","computed","classes","computedCounterValue","fileCount","this","lazyValue","$vuetify","lang","t","bytes","internalArrayValue","reduce","size","base","internalValue","get","set","isDirty","length","isLabelActive","text","persistentPlaceholder","map","file","truncatedText","hasChips","watch","handler","immediate","$refs","input","methods","clearableCallback","genChips","small","on","genControl","render","display","genInput","genPrependSlot","icon","genIcon","genSlot","genSelectionText","genSelections","children","$scopedSlots","index","$createElement","staticClass","class","selection","genTextFieldSlot","node","click","onInput","files","e","onKeyDown","truncateText","str","charsKeepOneSide","Math","_vm","_h","_c","_self","attrs","save","$event","confirmLeave","callback","$$v","leaveDialog","expression","_v","_s","$t","sesdialog","sestemplate","ref","item","id","fields","unlayerData","htmlpreview","htmltemplate","texttemplate","valid","specs","unsubscribe","templateSpecsNew","templateSpecsCategories","updateTemplate","_e","rules","required","$set","_n","preview","staticStyle","recommendationsCount","saving","getHTML","htmlgen","generateHTML","htmllink","staticRenderFns","component","VAlert","VBtn","VCard","VCardActions","VCardText","VCardTitle","VContainer","VDialog","VFileInput","VIcon","VImg","VNavigationDrawer","VSlider","VSubheader","VSwitch","VTextField","VTextarea","baseMixins","autoGrow","noResize","rowHeight","isNaN","parseFloat","rows","parseInt","noResizeHandle","$nextTick","mounted","setTimeout","calculateInputHeight","height","minHeight","isFocused","directives","ripple","genRipple","data","center","mixins","inputValue","falseValue","trueValue","label","String","hasColor","computedColor","isDark","isMultiple","Array","isActive","undefined","valueComparator","rippleState","genLabel","VInput","prevent","Object","disabled","role","domProps","checked","blur","change","focus","keydown","onClick","onChange","onFocus","onBlur","onKeydown","Touch","inset","loading","flat","validationState","hasError","switchData","setTextColor","themeClasses","genDefaultSlot","genSwitch","switchAttrs","left","right","onSwipeRight","genProgress","$slots","progress","VProgressCircular","color","width","indeterminate","onSwipeLeft","ClickOutside","inverseLabel","max","min","step","thumbColor","thumbLabel","thumbSize","tickLabels","ticks","tickSize","trackColor","trackFillColor","vertical","app","oldValue","thumbPressed","mouseTimeout","noClick","startOffset","roundValue","trackTransition","showTicks","minValue","maxValue","stepNumeric","inputWidth","trackFillStyles","startDir","endDir","valueDir","start","rtl","end","isDisabled","transition","trackStyles","numTicks","showThumbLabel","computedTrackColor","computedTrackFillColor","computedThumbColor","parsed","$emit","document","slider","genSlider","mousedown","touchstart","onSliderMouseDown","genChildren","genThumbContainer","tabindex","$attrs","genTrackContainer","setBackgroundColor","style","genSteps","range","direction","offsetDirection","filled","key","thumbLabelContent","genThumbLabelContent","genThumbLabel","getThumbContainerStyles","transform","origin","genThumb","domRect","touch","window","mouseUpOptions","passive","capture","mouseMoveOptions","isTouchEvent","onSliderMouseUp","onMouseMove","parseMouseMove","parseKeyDown","onSliderClick","thumb","track","trackLength","clickOffset","clickPos","up","pageup","pagedown","home","down","steps","increase","multiplier","trimmedStep","toString","decimals","offset","newValue","active","activeClass","chipGroup","close","closeIcon","closeLabel","draggable","filter","filterIcon","link","outlined","pill","tag","textColor","proxyClass","groupClasses","hasClose","isClickable","created","breakingProps","original","replacement","genFilter","genClose","genContent","h","$listeners","mobileBreakpoint","breakpoint","isMobile","mobile","mobileWidth","isNumber","hasOwnProperty","Resize","provide","isInNav","bottom","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","floating","miniVariant","miniVariantWidth","permanent","src","stateless","temporary","touchless","isMouseover","touchArea","stackMinZIndex","applicationProperty","computedMaxHeight","application","computedTop","computedTransform","computedWidth","isMiniVariant","hasApp","isBottom","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","styles","translate","top","maxHeight","$route","prev","removeOverlay","beforeMount","calculateTouchArea","parent","$el","parentRect","closeConditional","genAppend","genPosition","genBackground","image","img","genDirectives","include","getOpenDependentElements","swipeRight","genListeners","mouseenter","mouseleave","transitionend","resizeEvent","slot","genPrepend","genBorder","init","onRouteChange","swipeLeft","updateApplication","updateMiniVariant"],"mappings":"iXAiBe,qBAAkB,CAC/BA,KAD+B,eAG/BC,MAAO,CACLC,KADK,QAELC,MAAO,UAGTC,MAAO,CACLC,MADK,QAELC,UAAW,CACTC,KADS,QAETC,SAAS,GAEXC,kBAAmB,CACjBF,KADiB,OAEjBC,QAAS,kCAEXE,cAAe,CACbH,KADa,OAEbC,QAAS,8BAEXG,UAdK,QAeLC,SAfK,QAgBLC,YAhBK,OAiBLC,YAAa,CACXP,KADW,OAEXC,QAAS,SAEXO,SAAU,CACRR,KADQ,QAERC,SAAS,GAEXQ,SAAU,CACRT,KAAM,CAACU,QADC,QAERT,SAFQ,EAGRU,UAAY,SAAAC,GACV,MACe,mBAANA,GACP,CAAC,IAAM,MAAMC,SAFf,KAMJC,WAnCK,QAoCLC,eAAgB,CACdf,KAAM,CAACgB,OADO,QAEdf,QAAS,IAEXD,KAAM,CACJA,KADI,OAEJC,QAAS,QAEXgB,MAAO,CACLhB,aADK,EAELU,UAAW,SAAAO,GACT,OAAO,yBAAuB,SAAAN,GAAC,OAAI,MAAAA,GAAnC,WAAgD,wBAKtDO,SAAU,CACRC,QADQ,WAEN,wCACK,qCADE,OAAP,IAEE,gBAAgB,KAGpBC,qBAPQ,WAQN,IAAMC,EAAaC,KAAKlB,UAAYkB,KAAlB,UACdA,KAAKC,UADS,OAEbD,KAAKC,qBAAN,OAFJ,EAIA,IAAKD,KAAL,SAAoB,OAAOA,KAAKE,SAASC,KAAKC,EAAEJ,KAArB,cAAP,GAEpB,IAAMK,EAAQL,KAAKM,mBAAmBC,QAAO,cAAsC,QAApBC,YAAoB,MAAb,EAAa,EACjF,OAAOH,EAAP,IADF,GAIA,OAAOL,KAAKE,SAASC,KAAKC,EACxBJ,KADK,oBAGL,eAAsBK,EAHxB,OAG+BL,KAAKS,QAGtCH,mBAxBQ,WAyBN,OAAO,eAAYN,KAAnB,gBAEFU,cAAe,CACbC,IADa,WAEX,OAAOX,KAAP,WAEFY,IAJa,SAIV,GACDZ,KAAA,YACAA,KAAA,eAAqBA,KAArB,aAGJa,QApCQ,WAqCN,OAAOb,KAAKM,mBAAmBQ,OAA/B,GAEFC,cAvCQ,WAwCN,OAAOf,KAAP,SAEFgB,KA1CQ,WA0CJ,WACF,OAAKhB,KAAD,UAAkBA,KAAKiB,wBAAyBjB,KAA9B,WAAiDA,KAAvE,SAEOA,KAAKM,mBAAmBY,KAAK,SAAAC,GAClC,QACEjD,YADF,MAAM,GAAN,MAEEsC,YAFF,MAES,EAFT,EAKMY,EAAgB,eAAtB,GAEA,OAAQ,EAAD,mBAEAA,EAFA,aAEkB,eAAsBZ,EAF/C,OAEqD,QAF9C,UAVqF,CAACR,KAAR,cAezFS,KA1DQ,WA2DN,MAAO,mBAAOT,KAAP,SAAqCA,KAArC,cAAP,GAEFqB,SA7DQ,WA8DN,OAAOrB,KAAKzB,OAASyB,KAArB,aAIJsB,MAAO,CACLrC,SAAU,CACRsC,QADQ,SACD,IACL,IAAIlC,GAAY,eAAa,8CAAb,OAElBmC,WAAW,GAEb9B,MAPK,SAOA,GACH,IAAMA,EAAQM,KAAKlB,SAAWO,EAAIA,EAAI,CAAH,GAAnC,GACK,eAAUK,EAAOM,KAAKyB,MAAMC,MAAjC,SAME1B,KAAA,wBAKN2B,QAAS,CACPC,kBADO,WAEL5B,KAAA,cAAqBA,KAAKlB,SAAW,GAArC,KACAkB,KAAA,sBAEF6B,SALO,WAKC,WACN,OAAK7B,KAAL,QAEOA,KAAKgB,KAAKE,KAAI,qBAAiB,wBAA2B,CAC/D5C,MAAO,CAAEwD,MAAO,EAAKvC,YACrBwC,GAAI,CACF,cAAe,WACb,IAAMrB,EAAgB,EAAtB,cACAA,EAAA,YACA,gBAHkB,KAMrB,CATH,OAF0B,IAa5BsB,WAnBO,WAoBL,IAAMC,EAAS,uCAAf,MASA,OAPIjC,KAAJ,YACEiC,EAAA,WAAqB,eACnBA,EAAA,KAD8B,MAE9B,CAAEC,QAAS,UAIf,GAEFC,SA/BO,WAgCL,IAAMT,EAAQ,qCAAd,MAgBA,OAdAA,EAAA,oBAA8B1B,KAHxB,gBAQC0B,EAAA,cARD,aAcCA,EAAA,QAAP,MACAA,EAAA,eAAyB1B,KAAzB,QAEO,CAACA,KAAD,gBAAP,IAEFoC,eAlDO,WAkDO,WACZ,IAAKpC,KAAL,YAAuB,OAAO,KAE9B,IAAMqC,EAAOrC,KAAKsC,QAAQ,WAAW,WACnC,yBAGF,OAAOtC,KAAKuC,QAAQ,UAAW,QAAS,CAAxC,KAEFC,iBA3DO,WA4DL,IAAM1B,EAASd,KAAKgB,KAApB,OAEA,OAAIF,EAAJ,EAAuBd,KAAP,KACZA,KAAKd,WAAac,KAAtB,QAA2C,CAACA,KAAR,sBAC7B,CAACA,KAAKE,SAASC,KAAKC,EAAEJ,KAArB,cAAR,KAEFyC,cAlEO,WAkEM,WACLC,EAAN,GAkBA,OAhBI1C,KAAKa,SAAWb,KAAK2C,aAAzB,UACE3C,KAAA,4BAAgC,cACzB,eAAL,WAEA0C,EAAA,KACE,yBAA4B,CAC1B1B,KAAM,OADoB,GAE1BG,OACAyB,cAKNF,EAAA,KAAc1C,KAAKqB,UAAYrB,KAAjB,QAAgCA,KAAhC,WAAkDA,KAAhE,oBAGKA,KAAK6C,eAAe,MAAO,CAChCC,YADgC,qBAEhCC,MAAO,CACL,kCAAmC/C,KAAKjB,cAAgBiB,KADnD,QAEL,4BAA6BA,KAAKqB,WAAarB,KAAK2C,aAAaK,YAJrE,IAQFC,iBA7FO,WA6FS,WACRC,EAAO,6CAAb,MAOA,OALAA,EAAA,yCACMA,EAAA,SADU,IAAhB,IAEEC,MAAO,kBAAM,yBAGf,GAEFC,QAvGO,SAuGA,GACL,IAAMC,EAAQ,eAAKC,EAAA,cAAnB,IAEAtD,KAAA,cAAqBA,KAAKlB,SAAWuE,EAAQA,EAH9B,GAQfrD,KAAA,aAAoBA,KAApB,eAEFuD,UAjHO,SAiHE,GACPvD,KAAA,oBAEFwD,aApHO,SAoHK,GACV,GAAIC,EAAA,OAAahE,OAAOO,KAAxB,gBAA8C,OAAOyD,EACrD,IAAMC,EAAmBC,KAAA,OAAYlE,OAAOO,KAAP,gBAAD,GAApC,GACA,gBAAUyD,EAAA,WAAV,YAA4CA,EAAA,MAAUA,EAAA,OAAtD,S,kCC1RN,gBAGA,e,gECHA,IAAIxB,EAAS,WAAa,IAAI2B,EAAI5D,KAAS6D,EAAGD,EAAIf,eAAmBiB,EAAGF,EAAIG,MAAMD,IAAID,EAAG,OAAOC,EAAG,cAAc,CAACE,MAAM,CAAC,MAAQ,KAAK,CAACF,EAAG,aAAa,CAACE,MAAM,CAAC,sBAAsB,IAAIjC,GAAG,CAAC,KAAO6B,EAAIK,OAAO,CAACH,EAAG,iBAAiB,CAACE,MAAM,CAAC,MAAQ,uBAAuB,iBAAiB,gBAAgBjC,GAAG,CAAC,QAAU,SAASmC,GAAQ,OAAON,EAAIO,cAAa,IAAO,OAAS,SAASD,GAAQ,OAAON,EAAIO,cAAa,KAAShG,MAAM,CAACuB,MAAOkE,EAAe,YAAEQ,SAAS,SAAUC,GAAMT,EAAIU,YAAYD,GAAKE,WAAW,gBAAgB,CAACX,EAAIY,GAAG,IAAIZ,EAAIa,GAAGb,EAAIc,GAAG,wBAAwB,OAAOZ,EAAG,WAAW,CAAC3F,MAAM,CAACuB,MAAOkE,EAAa,UAAEQ,SAAS,SAAUC,GAAMT,EAAIe,UAAUN,GAAKE,WAAW,cAAc,CAACT,EAAG,SAAS,CAACA,EAAG,eAAe,CAACF,EAAIY,GAAGZ,EAAIa,GAAGb,EAAIc,GAAG,2BAA2BZ,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,GAAG,MAAQJ,EAAIgB,gBAAgB,IAAI,GAAIhB,EAAQ,KAAEE,EAAG,oBAAoB,CAACe,IAAI,SAASb,MAAM,CAAC,SAAWJ,EAAIkB,KAAKC,GAAG,WAAanB,EAAIoB,OAAOC,YAAY,QAAUrB,EAAIsB,YAAY,KAAOtB,EAAIuB,aAAa,KAAOvB,EAAIwB,aAAa,MAAQxB,EAAIyB,MAAM,MAAQzB,EAAI0B,MAAM,YAAc1B,EAAI2B,YAAY,SAAW3B,EAAI4B,iBAAiB,gBAAkB5B,EAAI6B,wBAAwB,kBAAoB,GAAG,QAAU,gBAAgB1D,GAAG,CAAC,iBAAiB,SAASmC,GAAQN,EAAIsB,YAAYhB,GAAQ,cAAc,SAASA,GAAQN,EAAIuB,aAAajB,GAAQ,cAAc,SAASA,GAAQN,EAAIwB,aAAalB,GAAQ,eAAe,SAASA,GAAQN,EAAIyB,MAAMnB,GAAQ,eAAe,SAASA,GAAQN,EAAI0B,MAAMpB,GAAQ,qBAAqB,SAASA,GAAQN,EAAI2B,YAAYrB,GAAQ,kBAAkB,SAASA,GAAQN,EAAI4B,iBAAiBtB,GAAQ,mBAAmB,SAASA,GAAQN,EAAI4B,iBAAiBtB,GAAQ,yBAAyB,SAASA,GAAQN,EAAI6B,wBAAwBvB,GAAQ,0BAA0B,SAASA,GAAQN,EAAI6B,wBAAwBvB,GAAQ,KAAON,EAAI8B,kBAAkB9B,EAAI+B,KAAK7B,EAAG,sBAAsB,CAACE,MAAM,CAAC,IAAM,GAAG,MAAQ,GAAG,QAAU,GAAG,MAAQ,MAAM,UAAY,KAAK,CAACF,EAAG,SAAS,CAACE,MAAM,CAAC,UAAY,MAAM,CAACF,EAAG,eAAe,CAACF,EAAIY,GAAGZ,EAAIa,GAAGb,EAAIc,GAAG,uBAAuBZ,EAAG,cAAc,CAACA,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQJ,EAAIc,GAAG,eAAe,MAAQ,CAAEd,EAAIgC,MAAMC,WAAY1H,MAAM,CAACuB,MAAOkE,EAAIoB,OAAW,KAAEZ,SAAS,SAAUC,GAAMT,EAAIkC,KAAKlC,EAAIoB,OAAQ,OAAQX,IAAME,WAAW,iBAAiBT,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQJ,EAAIc,GAAG,sBAAsB,KAAOd,EAAIc,GAAG,0BAA0B,kBAAkB,GAAG,KAAO,UAAUvG,MAAM,CAACuB,MAAOkE,EAAIoB,OAAY,MAAEZ,SAAS,SAAUC,GAAMT,EAAIkC,KAAKlC,EAAIoB,OAAQ,QAASpB,EAAImC,GAAG1B,KAAOE,WAAW,kBAAkBT,EAAG,WAAW,CAACE,MAAM,CAAC,UAAYJ,EAAIoB,OAAOgB,UAAYpC,EAAI2B,cAAgB3B,EAAIyB,MAAM,MAAQzB,EAAIc,GAAG,qBAAqBvG,MAAM,CAACuB,MAAOkE,EAAIoB,OAAa,OAAEZ,SAAS,SAAUC,GAAMT,EAAIkC,KAAKlC,EAAIoB,OAAQ,SAAUX,IAAME,WAAW,oBAAoB,GAAGT,EAAG,cAAc,CAACF,EAAIY,GAAGZ,EAAIa,GAAGb,EAAIc,GAAG,8BAA8BZ,EAAG,cAAc,CAAEF,EAAIoB,OAAc,QAAElB,EAAG,QAAQ,CAACmC,YAAY,CAAC,MAAQ,QAAQjC,MAAM,CAAC,IAAMJ,EAAIoB,OAAOgB,WAAWlC,EAAG,UAAU,CAACE,MAAM,CAAC,KAAO,UAAU,iBAAiB,GAAG,OAAS,SAAS,CAACJ,EAAIY,GAAG,sFAAwFZ,EAAIyB,MAA+OzB,EAAI+B,KAA5O7B,EAAG,UAAU,CAACE,MAAM,CAAC,KAAO,QAAQ,iBAAiB,GAAG,OAAS,SAAS,CAACJ,EAAIY,GAAG,qBAAqBZ,EAAIa,GAAGb,EAAI0B,MAAMY,qBAAuB,GAAK,6CAA+C,qCAAgDtC,EAAI2B,YAA0K3B,EAAI+B,KAAjK7B,EAAG,UAAU,CAACE,MAAM,CAAC,KAAO,QAAQ,iBAAiB,GAAG,OAAS,SAAS,CAACJ,EAAIY,GAAG,2EAAoFV,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQ,2BAA2B,YAAY,GAAG,UAAY,GAAG,OAAS,yBAAyB7F,MAAM,CAACuB,MAAOkE,EAAQ,KAAEQ,SAAS,SAAUC,GAAMT,EAAIzC,KAAKkD,GAAKE,WAAW,WAAW,GAAGT,EAAG,iBAAiB,CAACA,EAAG,cAAc,CAACE,MAAM,CAAC,KAAO,GAAG,OAASJ,EAAIuC,UAAUrC,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,IAAIjC,GAAG,CAAC,MAAQ6B,EAAIwC,UAAU,CAACxC,EAAIY,GAAG,wBAAwB,IAAI,GAAGV,EAAG,SAAS,CAACE,MAAM,CAAC,UAAY,MAAM,CAACF,EAAG,eAAe,CAACF,EAAIY,GAAG,kBAAkBV,EAAG,cAAc,CAACF,EAAIY,GAAG,0CAA0CV,EAAG,cAAc,CAACF,EAAIY,GAAG,uBAAuBV,EAAG,cAAc,CAACA,EAAG,WAAW,CAACE,MAAM,CAAC,cAAc,SAAS,aAAa,GAAG,IAAM,IAAI,IAAM,MAAM,kBAAkB,GAAG,KAAO,wBAAwB7F,MAAM,CAACuB,MAAOkE,EAAI0B,MAAsB,iBAAElB,SAAS,SAAUC,GAAMT,EAAIkC,KAAKlC,EAAI0B,MAAO,mBAAoB1B,EAAImC,GAAG1B,KAAOE,WAAW,6BAA6B,GAAGT,EAAG,iBAAiB,CAACA,EAAG,QAAQ,CAACE,MAAM,CAAC,KAAO,GAAG,QAAUJ,EAAIyC,SAAStE,GAAG,CAAC,MAAQ6B,EAAI0C,eAAe,CAACxC,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAIY,GAAG,eAAeZ,EAAIY,GAAG,aAAa,GAAGV,EAAG,QAAQ,CAACE,MAAM,CAAC,UAAYJ,EAAI2C,SAAS,MAAQ,UAAU,KAAO,GAAG,KAAO3C,EAAI2C,SAAS,OAAS,WAAW,CAACzC,EAAG,SAAS,CAACE,MAAM,CAAC,KAAO,KAAK,CAACJ,EAAIY,GAAG,gBAAgBZ,EAAIY,GAAG,SAAS,IAAI,IAAI,IAAI,IAAI,IAAI,IACjzJgC,EAAkB,G,kFCyEtB,GACE,KAAF,mBACE,OAAF,gBACE,WAAF,CACI,iBAAJ,OACI,WAAJ,QAEE,KAPF,WAQI,MAAJ,CACM,SAAN,cACM,KAAN,KACM,OAAN,EACM,YAAN,KACM,aAAN,KACM,aAAN,KACM,YAAN,KACM,WAAN,EACM,SAAN,KACM,SAAN,EACM,aAAN,EACM,OAAN,CACQ,KAAR,KACQ,MAAR,KACQ,QAAR,EACQ,YAAR,KACQ,QAAR,MAEM,MAAN,CACQ,iBAAR,GAEM,iBAAN,KACM,wBAAN,OAGE,SAAF,GAEE,QAAF,CACI,QADJ,WACM,IAAN,OAAM,OAAN,qDAAQ,OAAR,0FACA,6BADA,OAGA,8BACA,sBACA,4BACA,wBACA,4BAEA,eATA,8CAWI,eAZJ,SAYA,GACM,QAAN,8BAGM,KAAN,qBAGM,KAAN,UAEI,WArBJ,SAqBA,GAAM,IAAN,OAAM,OAAN,qDAAQ,OAAR,8EACA,OADA,gCAEA,6DAFA,OAEgBxB,EAAOgB,QAFvB,cAIA,WAJA,8CAMI,aA3BJ,WA2BM,IAAN,OAAM,OAAN,qDAAQ,IAAR,IAAQ,OAAR,iFACA,aAGA,eACkB,EAAlB,0BALA,SAOA,mHAPA,cAOgB,EAPhB,gBAQA,mDARA,OAQgB,EAAhB,SARA,gDAUA,mFAVA,QAUgB,EAVhB,OAWgB,EAAhB,WAXA,QAcA,aAdA,gDAiBE,QAhFF,cC1EiW,I,qNCO7VS,EAAY,eACd,EACAxE,EACAuE,GACA,EACA,KACA,KACA,MAIa,aAAAC,EAAiB,QAqBhC,IAAkBA,EAAW,CAACC,SAAA,KAAOC,OAAA,KAAKC,QAAA,KAAMC,aAAA,OAAaC,UAAA,OAAUC,WAAA,OAAWC,aAAA,KAAWC,UAAA,KAAQC,aAAA,KAAWC,QAAA,KAAMC,OAAA,KAAKC,oBAAA,KAAkBC,UAAA,KAAQC,aAAA,KAAWC,UAAA,KAAQC,aAAA,KAAWC,YAAA,Q,kMCrB7KC,EAAa,eAAnB,QAOe,OAAAA,EAAA,OAAkB,CAC/BzJ,KAD+B,aAG/BI,MAAO,CACLsJ,SADK,QAELC,SAFK,QAGLC,UAAW,CACTrJ,KAAM,CAACgB,OADE,QAETf,QAFS,GAGTU,UAAY,SAAAC,GAAD,OAAa0I,MAAMC,WAAD,MAE/BC,KAAM,CACJxJ,KAAM,CAACgB,OADH,QAEJf,QAFI,EAGJU,UAAY,SAAAC,GAAD,OAAa0I,MAAMG,SAAS7I,EAAV,QAIjCO,SAAU,CACRC,QADQ,WAEN,uBACE,cADK,EAEL,wBAAyBG,KAFpB,SAGL,wBAAyBA,KAHpB,gBAIF,6CAGPmI,eATQ,WAUN,OAAOnI,KAAK6H,UAAY7H,KAAxB,WAIJsB,MAAO,CACLsG,SADK,SACG,GAAc,WACpB5H,KAAA,WAAe,W,MACbL,EACI,EADD,uBAEC,+BAAgB,8BAFpB,cAKJM,UARK,WASHD,KAAA,UAAiBA,KAAKoI,UAAUpI,KAAhC,uBAEF8H,UAXK,WAYH9H,KAAA,UAAiBA,KAAKoI,UAAUpI,KAAhC,wBAIJqI,QAhD+B,WAgDxB,WACLC,YAAW,WACT,YAAiB,EAAjB,yBADF,IAKF3G,QAAS,CACP4G,qBADO,WAEL,IAAM7G,EAAQ1B,KAAKyB,MAAnB,MACA,MAEAC,EAAA,iBACA,IAAM8G,EAAS9G,EAAf,aACM+G,EAAYP,SAASlI,KAAD,KAAR,IAA0BgI,WAAWhI,KANrC,WASlB0B,EAAA,aAAqBiC,KAAA,SAArB,OAEFxB,SAZO,WAaL,IAAMT,EAAQ,qCAAd,MAMA,OAJAA,EAAA,sBACOA,EAAA,WAAP,KACAA,EAAA,gBAA0B1B,KAA1B,KAEA,GAEFoD,QArBO,SAqBA,GACL,4CACApD,KAAA,UAAiBA,KAAjB,wBAEFuD,UAzBO,SAyBE,GAIHvD,KAAK0I,WAAT,KAAsBpF,EAAA,SACpBA,EAAA,kBAGFtD,KAAA,wB,0KC1GS,sBAAW,CACxB9B,KADwB,aAGxByK,WAAY,CAAEC,SAAA,MAEdtK,MAAO,CACLsK,OAAQ,CACNnK,KAAM,CAACU,QADD,QAENT,SAAS,IAIbiD,QAAS,CACPkH,UADO,WACwB,IAApBC,EAAoB,uDAAtB,GACP,OAAK9I,KAAL,QAEA8I,EAAA,kDAEAA,EAAA,WAAkBA,EAAA,YAAlB,GACAA,EAAA,gBAAqB,CACnB5K,KADmB,SAEnBwB,MAAO,CAAEqJ,QAAQ,KAGZ/I,KAAK6C,eAAe,MAA3B,IAVyB,S,wBCVzB,cACJS,EAAA,iBAIa,aAAA0F,EAAA,MAAO,EAAD,OAAN,eAIN,CACP9K,KADO,aAGPC,MAAO,CACLC,KADK,aAELC,MAAO,UAGTC,MAAO,CACLyG,GADK,OAELkE,WAFK,KAGLC,WAHK,KAILC,UAJK,KAKLrK,SAAU,CACRL,KADQ,QAERC,QAAS,MAEX0K,MAAOC,QAGTP,KApBO,WAqBL,MAAO,CACLQ,SAAUtJ,KADL,WAELC,UAAWD,KAAKiJ,aAIpBrJ,SAAU,CACR2J,cADQ,WAEN,GAAKvJ,KAAL,SACA,OAAIA,KAAJ,MAAuBA,KAAP,MACZA,KAAKwJ,SAAWxJ,KAApB,UAA2C,QAC3C,WAEFyJ,WAPQ,WAQN,OAAyB,IAAlBzJ,KAAKlB,UAAwC,OAAlBkB,KAAKlB,UAAqB4K,MAAA,QAAc1J,KAA1E,gBAEF2J,SAVQ,WAUA,WACAjK,EAAQM,KAAd,MACM0B,EAAQ1B,KAAd,cAEA,OAAIA,KAAJ,aACO0J,MAAA,QAAL,IAEOhI,EAAA,MAAW,SAAAoD,GAAI,OAAI,oBAA1B,WAGqB8E,IAAnB5J,KAAKmJ,gBAAT,IAAoCnJ,KAAKkJ,WAChCxJ,EACHM,KAAK6J,gBAAgBnK,EADb,GAERP,QAFJ,GAKKa,KAAK6J,gBAAgBnI,EAAO1B,KAAnC,YAEFa,QA5BQ,WA6BN,OAAOb,KAAP,UAEF8J,YA/BQ,WAgCN,OAAQ9J,KAAD,YAAqBA,KAArB,gBAEHA,KAFJ,qBAAO,IAMXsB,MAAO,CACL2H,WADK,SACK,GACRjJ,KAAA,YACAA,KAAA,aAIJ2B,QAAS,CACPoI,SADO,WAEL,IAAMX,EAAQY,EAAA,mCAAd,MAEA,UAEAZ,EAAA,QAAkB,CAEhBjG,MAAO8G,GAGT,GAPmBb,GASrBjH,SAbO,SAaC,KACN,OAAOnC,KAAK6C,eAAe,QAAS,CAClCmB,MAAOkG,OAAA,OAAc,CACnB,eAAgBlK,KAAK2J,SADF,WAEnBQ,SAAUnK,KAFS,WAGnB+E,GAAI/E,KAHe,WAInBoK,KAJmB,EAKnB3L,QANgC,GAQlC4L,SAAU,CACR3K,MAAOM,KADC,MAERsK,QAAStK,KAAK2J,UAEhB5H,GAAI,CACFwI,KAAMvK,KADJ,OAEFwK,OAAQxK,KAFN,SAGFyK,MAAOzK,KAHL,QAIF0K,QAAS1K,KAJP,UAKFmD,MAAO8G,GAETpF,IAAK,WAGT8F,QApCO,SAoCA,GACL3K,KAAA,WACAA,KAAA,kBAEF4K,SAxCO,WAwCC,WACN,GAAK5K,KAAL,eAEA,IAAMN,EAAQM,KAAd,MACI0B,EAAQ1B,KAAZ,cAEA,GAAIA,KAAJ,WAAqB,CACd0J,MAAA,QAAL,KACEhI,EAAA,IAGF,IAAMZ,EAASY,EAAf,OAEAA,EAAQA,EAAA,QAAc,SAAAoD,GAAD,OAAgB,oBAArC,MAEIpD,EAAA,SAAJ,GACEA,EAAA,aAGFA,OAD4BkI,IAAnB5J,KAAKmJ,gBAAT,IAAoCnJ,KAAKkJ,WACtClJ,KAAK6J,gBAAgBnI,EAAO1B,KAA5B,WAA8CA,KAA9C,WAAgEA,KAAxE,UACSN,EACDM,KAAK6J,gBAAgBnI,EAAOhC,GAAS,KAA7C,GAEAgC,EAGF1B,KAAA,eACAA,KAAA,gBACAA,KAAA,aAEF6K,QAtEO,SAsEA,GACL7K,KAAA,aACAA,KAAA,kBAEF8K,OA1EO,SA0ED,GACJ9K,KAAA,aACAA,KAAA,iBAGF+K,UA/EO,SA+EE,Q,4DCpJE,gBAAkB,CAC/B7M,KAD+B,WAG/ByK,WAAY,CAAEqC,MAAA,QAEd1M,MAAO,CACL2M,MADK,QAELC,QAAS,CACPzM,KAAM,CAACU,QADA,QAEPT,SAAS,GAEXyM,KAAM,CACJ1M,KADI,QAEJC,SAAS,IAIbkB,SAAU,CACRC,QADQ,WAEN,wCACKmK,EAAA,mCADE,OAAP,IAEE,+CAFK,EAGL,wBAAyBhK,KAHpB,KAIL,yBAA0BA,KAAKiL,SAGnCjH,MATQ,WAUN,MAAO,CACL,eAAgBqF,OAAOrJ,KADlB,UAEL,gBAAiBqJ,OAAOrJ,KAFnB,YAGLoK,KAAM,WAMVgB,gBAnBQ,WAoBN,OAAIpL,KAAKqL,UAAYrL,KAArB,eAAiD,QAC7CA,KAAJ,WAA4B,UAC5B,OAAIA,KAAKsJ,SAA0BtJ,KAAP,mBAA5B,GAGFsL,WAzBQ,WA0BN,OAAOtL,KAAKuL,aAAavL,KAAKkL,aAAUtB,EAAY5J,KAA7C,gBAAmE,CACxE+C,MAAO/C,KAAKwL,iBAKlB7J,QAAS,CACP8J,eADO,WAEL,MAAO,CACLzL,KADK,YAELA,KAFF,aAKF0L,UAPO,WAQL,MAAkC1L,KAAlC,OAAkB2L,GAAlB,EAAM,MAAN,qBAEA,OAAO3L,KAAK6C,eAAe,MAAO,CAChCC,YAAa,sCACZ,CACD9C,KAAKmC,SAAS,WAAY,OAA1B,OAA0B,CAA1B,kBACKnC,KADqB,OAErB2L,IAEL3L,KAAK6I,UAAU7I,KAAKuL,aAAavL,KAAlB,gBAAwC,CACrD2I,WAAY,CAAC,CACXzK,KADW,QAEXwB,MAAO,CACLkM,KAAM5L,KADD,YAEL6L,MAAO7L,KAAK8L,mBAIlB9L,KAAK6C,eAAe,MAAO,OAA3B,OAA2B,CAA3B,CACEC,YADyB,0BAEtB9C,KAAKsL,aAEVtL,KAAK6C,eAAe,MAAO,OAA3B,OAA2B,CAA3B,CACEC,YADyB,0BAEtB9C,KAAKsL,YACP,CAACtL,KAvBN,mBA0BF+L,YApCO,WAqCL,OAAO/L,KAAK6C,eAAe,EAApB,QAAwC,EAC5B,IAAjB7C,KAAKkL,QAAL,KAEIlL,KAAKgM,OAAOC,UAAYjM,KAAK6C,eAAeqJ,EAApB,KAAuC,CAC/D5N,MAAO,CACL6N,OAAyB,IAAjBnM,KAAKkL,SAAN,KAA0BlL,KAAKkL,QACjClL,KAAKmM,OADH,UAEHnM,KAHC,QAILQ,KAJK,GAKL4L,MALK,EAMLC,eAAe,QAKzBC,YApDO,WAqDDtM,KAAJ,UAAmBA,KAAK4K,YAE1BkB,aAvDO,WAwDA9L,KAAL,UAAoBA,KAAK4K,YAE3BG,UA1DO,SA0DE,IAEJzH,EAAA,UAAc,OAAd,MAA+BtD,KAAhC,UACCsD,EAAA,UAAc,OAAd,QAAiCtD,KAFpC,WAGEA,KAAK4K,gB,wPCzGE,sBAAM,OASnB,QATa,OAWN,CACP1M,KADO,WAGPyK,WAAY,CACV4D,aAAA,QAGFvD,OAAQ,CAPD,QASP1K,MAAO,CACL6L,SADK,QAELqC,aAFK,QAGLC,IAAK,CACHhO,KAAM,CAACgB,OADJ,QAEHf,QAAS,KAEXgO,IAAK,CACHjO,KAAM,CAACgB,OADJ,QAEHf,QAAS,GAEXiO,KAAM,CACJlO,KAAM,CAACgB,OADH,QAEJf,QAAS,GAEXkO,WAfK,OAgBLC,WAAY,CACVpO,KAAM,CAACU,QADG,QAEVT,aAFU,EAGVU,UAAW,SAAAC,GAAC,MAAiB,mBAANA,GAAyB,WAANA,IAE5CyN,UAAW,CACTrO,KAAM,CAACgB,OADE,QAETf,QAAS,IAEXqO,WAAY,CACVtO,KADU,MAEVC,QAAS,iBAAO,KAElBsO,MAAO,CACLvO,KAAM,CAACU,QADF,QAELT,SAFK,EAGLU,UAAW,SAAAC,GAAC,MAAiB,mBAANA,GAAyB,WAANA,IAE5C4N,SAAU,CACRxO,KAAM,CAACgB,OADC,QAERf,QAAS,GAEXwO,WAtCK,OAuCLC,eAvCK,OAwCLzN,MAAO,CAACD,OAxCH,QAyCL2N,SAAUjO,SAGZ2J,KAAM,iBAAO,CACXuE,IADW,KAEXC,SAFW,KAGXC,cAHW,EAIXC,cAJW,EAKX9E,WALW,EAMXiB,UANW,EAOX8D,SAPW,EAQXC,YAAa,IAGf9N,SAAU,CACRC,QADQ,WAEN,wCACK,qCADE,OAAP,IAEE,mBAFK,EAGL,4BAA6BG,KAHxB,SAIL,iCAAkCA,KAAKwM,gBAG3C9L,cAAe,CACbC,IADa,WAEX,OAAOX,KAAP,WAEFY,IAJa,SAIV,GACDjB,EAAMoI,MAAA,GAAa/H,KAAb,SADQ,EAKd,IAAMN,EAAQM,KAAK2N,WAAWhK,KAAA,IAASA,KAAA,MAAc3D,KAAvB,UAAuCA,KAArE,WAEIN,IAAUM,KAAd,YAEAA,KAAA,YAEAA,KAAA,oBAGJ4N,gBA3BQ,WA4BN,OAAO5N,KAAKuN,aACRvN,KAAK6N,WAAa7N,KAAlB,mDADG,OAAP,IAMF8N,SAlCQ,WAmCN,OAAO9F,WAAWhI,KAAlB,MAEF+N,SArCQ,WAsCN,OAAO/F,WAAWhI,KAAlB,MAEFgO,YAxCQ,WAyCN,OAAOhO,KAAK2M,KAAO,EAAI3E,WAAWhI,KAA3B,MAAP,GAEFiO,WA3CQ,WA4CN,IAAMA,GAAcjO,KAAK2N,WAAW3N,KAAhB,eAAsCA,KAAvC,WAAyDA,KAAK+N,SAAW/N,KAAzE,UAAnB,IAEA,OAAO+H,MAAA,KAAP,GAEFmG,gBAhDQ,WAgDO,MACPC,EAAWnO,KAAKoN,SAAW,SAAjC,OACMgB,EAASpO,KAAKoN,SAAW,MAA/B,QACMiB,EAAWrO,KAAKoN,SAAW,SAAjC,QAEMkB,EAAQtO,KAAKE,SAASqO,IAAM,OAAlC,IACMC,EAAMxO,KAAKE,SAASqO,IAAM,IAAhC,OACM7O,EAAQM,KAAKyO,WAAa,QAAlB,OAA0BzO,KAA1B,kCAA0DA,KAAxE,WAAc,KAEd,UACE0O,WAAY1O,KADP,iBAAP,iBAEE,EAFK,GAAP,iBAGE,EAHK,GAAP,iBAIE,EAAYN,GAJd,GAOFiP,YAhEQ,WAgEG,MACHR,EAAWnO,KAAKoN,SAAWpN,KAAKE,SAASqO,IAAM,SAApC,MAAuDvO,KAAKE,SAASqO,IAAM,OAA5F,QACMH,EAASpO,KAAKoN,SAAW,SAA/B,QAEMkB,EAAN,MACME,EAAMxO,KAAKyO,WAAa,QAAlB,OAA0B,IAAMzO,KAAhC,uCAAqE,IAAMA,KAAvF,WAAY,MAEZ,UACE0O,WAAY1O,KADP,iBAAP,iBAEE,EAFK,GAAP,iBAGE,EAAUwO,GAHZ,GAMFX,UA7EQ,WA8EN,OAAO7N,KAAK+M,WAAWjM,OAAS,KAC1Bd,KAAD,aAAoBA,KAApB,cAAwCA,KAD7C,QAGF4O,SAjFQ,WAkFN,OAAOjL,KAAA,MAAW3D,KAAK+N,SAAW/N,KAAjB,UAAkCA,KAAnD,cAEF6O,eApFQ,WAqFN,OAAQ7O,KAAD,eACLA,KAAK6M,aACL7M,KAAK2C,aAFP,iBAKFmM,mBA1FQ,WA2FN,IAAI9O,KAAJ,WACA,OAAIA,KAAJ,WAA4BA,KAAP,WACjBA,KAAJ,OAAwBA,KAAP,gBACVA,KAAKoL,iBAAZ,qBAEF2D,uBAhGQ,WAiGN,IAAI/O,KAAJ,WACA,OAAIA,KAAJ,eAAgCA,KAAP,eAClBA,KAAKoL,iBAAmBpL,KAA/B,eAEFgP,mBArGQ,WAsGN,OAAIhP,KAAJ,WAA4BA,KAAP,WACdA,KAAKoL,iBAAmBpL,KAA/B,gBAIJsB,MAAO,CACLoL,IADK,SACF,GACD,IAAMuC,EAASjH,WAAf,GACAiH,EAASjP,KAAT,eAA+BA,KAAKkP,MAAM,QAA1CD,IAEFxC,IALK,SAKF,GACD,IAAMwC,EAASjH,WAAf,GACAiH,EAASjP,KAAT,eAA+BA,KAAKkP,MAAM,QAA1CD,IAEFvP,MAAO,CACL6B,QADK,SACE,GACLvB,KAAA,iBAEFwB,WAAW,IAIf6G,QA5LO,WA8LLrI,KAAA,IAAWmP,SAAA,6BACT,eAAY,6EADdnP,OAIF2B,QAAS,CACP8J,eADO,WAEL,IAAM/I,EAAuC,CAAC1C,KAA9C,YACMoP,EAASpP,KAAf,YAOA,OANAA,KAAA,aACI0C,EAAA,QADJ,GAEIA,EAAA,KAFJ,GAIAA,EAAA,KAAc1C,KAAd,eAEA,GAEFqP,UAZO,WAaL,OAAOrP,KAAK6C,eAAe,MAAO,CAChCE,MAAO,gBACL,YADK,EAEL,wBAAyB/C,KAFpB,SAGL,qBAAsBA,KAHjB,SAIL,oBAAqBA,KAJhB,UAKL,mBAAoBA,KALf,SAML,qBAAsBA,KANjB,WAOL,qBAAsBA,KAPjB,YAQFA,KAAKwL,cAEV7C,WAAY,CAAC,CACXzK,KADW,gBAEXwB,MAAOM,KAAK8K,SAEd/I,GAAI,CACFoB,MAAOnD,KADL,cAEFsP,UAAWtP,KAFT,kBAGFuP,WAAYvP,KAAKwP,oBAElBxP,KApBH,gBAsBFyP,YAnCO,WAoCL,MAAO,CACLzP,KADK,WAELA,KAFK,oBAGLA,KAHK,WAILA,KAAK0P,kBACH1P,KADF,cAEEA,KAFF,WAGEA,KAHF,SAIEA,KAJF,UAKEA,KALF,QAMEA,KAVJ,UAcFmC,SAlDO,WAmDL,OAAOnC,KAAK6C,eAAe,QAAS,CAClCmB,MAAO,gBACLtE,MAAOM,KADF,cAEL+E,GAAI/E,KAFC,WAGLmK,UAHK,EAILlL,UAJK,EAKL0Q,UALK,GAMF3P,KAAK4P,WAKdC,kBA/DO,WAgEL,IAAMnN,EAAW,CACf1C,KAAK6C,eAAe,MAAO7C,KAAK8P,mBAAmB9P,KAAxB,mBAAiD,CAC1E8C,YAD0E,6BAE1EiN,MAAO/P,KAAK2O,eAEd3O,KAAK6C,eAAe,MAAO7C,KAAK8P,mBAAmB9P,KAAxB,uBAAqD,CAC9E8C,YAD8E,uBAE9EiN,MAAO/P,KAAKkO,oBAIhB,OAAOlO,KAAK6C,eAAe,MAAO,CAChCC,YADgC,4BAEhC+B,IAAK,SAFP,IAKFmL,SAhFO,WAgFC,WACN,IAAKhQ,KAAD,OAAeA,KAAnB,UAAmC,OAAO,KAE1C,IAAMiN,EAAWjF,WAAWhI,KAA5B,UACMiQ,EAAQ,eAAYjQ,KAAK4O,SAA/B,GACMsB,EAAYlQ,KAAKoN,SAAW,SAAYpN,KAAKE,SAASqO,IAAM,QAAlE,OACM4B,EAAkBnQ,KAAKoN,SAAYpN,KAAKE,SAASqO,IAAM,OAArC,QAAxB,MAEIvO,KAAJ,UAAmBiQ,EAAA,UAEnB,IAAMjD,EAAQiD,EAAA,KAAU,SAAArN,GAAQ,MACxBF,EAAN,GAEI,aAAJ,IACEA,EAAA,KAAc,uBAA2B,CACvCI,YAAa,wBACZ,aAFH,KAKF,IAAMsJ,EAAQxJ,GAAS,IAAM,EAA7B,UACMwN,EAAS,eAAqB,IAAM,EAAP,WAApB,EAAsDhE,EAAQ,EAA7E,WAEA,OAAO,wBAA4B,CACjCiE,IADiC,EAEjCvN,YAFiC,iBAGjCC,MAAO,CACL,yBAA0BqN,GAE5BL,OAAK,GACH3D,MAAO,GAAF,OADA,EACA,MACL5D,OAAQ,GAAF,OAFD,EAEC,OAFH,iBAGH,EAHG,eAGkB4D,EAHlB,eAG8Ba,EAH5B,EAAF,yBAIH,EAJG,qBAI8BA,EAAW,EAJzC,YANP,MAeF,OAAOjN,KAAK6C,eAAe,MAAO,CAChCC,YADgC,4BAEhCC,MAAO,CACL,yCAAyD,WAAf/C,KAAKgN,OAAsBhN,KAAK+M,WAAWjM,OAAS,IAHlG,IAOF4O,kBA5HO,SA4HU,aAOF,IAAb7K,EAAa,uDAPE,QASTnC,EAAW,CAAC1C,KAAlB,YAEMsQ,EAAoBtQ,KAAKuQ,qBAA/B,GAGA,OAFAvQ,KAAA,gBAAuB0C,EAAA,KAAc1C,KAAKwQ,cAA1C,IAEOxQ,KAAK6C,eAAe,MAAO7C,KAAKuL,aAAavL,KAAlB,mBAA2C,CAC3E6E,MACAwL,IAF2E,EAG3EvN,YAH2E,4BAI3EC,MAAO,CACL,oCADK,EAEL,qCAFK,EAGL,wCAAyC/C,KAAK6O,gBAEhDkB,MAAO/P,KAAKyQ,wBAT+D,GAU3EzM,MAAO,CACLoG,KADK,SAELuF,SAAU3P,KAAKyO,YAAL,EAAuBzO,KAAK4P,OAAOD,SAAW3P,KAAK4P,OAA5B,SAF5B,EAGL,aAAc5P,KAAK4P,OAAO,eAAiB5P,KAHtC,MAIL,gBAAiBA,KAJZ,IAKL,gBAAiBA,KALZ,IAML,gBAAiBA,KANZ,cAOL,gBAAiBqJ,OAAOrJ,KAPnB,YAQL,mBAAoBA,KAAKoN,SAAW,WAAa,cAEnDrL,GAAI,CACF0I,MADE,EAEFF,KAFE,EAGFG,QAAS1K,KAAKuD,aAvBlB,IA2BFgN,qBArKO,SAqKa,GAClB,OAAOvQ,KAAK2C,aAAa,eACrB3C,KAAK2C,aAAa,eAAgB,CAAEjD,UACpC,CAACM,KAAK6C,eAAe,OAAQ,CAACwG,OAFlC,OAIFmH,cA1KO,SA0KM,GACX,IAAMhQ,EAAO,eAAcR,KAA3B,WAEM0Q,EAAY1Q,KAAKoN,SAAL,qCACiB3N,OAAOO,KAAP,WAAD,EADlC,EAAkB,0GAIlB,OAAOA,KAAK6C,eAAe,EAApB,KAAsC,CAC3CvE,MAAO,CAAEqS,OAAQ,kBAChB,CACD3Q,KAAK6C,eAAe,MAAO,CACzBC,YADyB,kCAEzB6F,WAAY,CAAC,CACXzK,KADW,OAEXwB,MAAOM,KAAK0I,WAAa1I,KAAlB,UAAuD,WAApBA,KAAK6M,cAEhD,CACD7M,KAAK6C,eAAe,MAAO7C,KAAK8P,mBAAmB9P,KAAxB,mBAAiD,CAC1E8C,YAD0E,wBAE1EiN,MAAO,CACLvH,OADK,EAEL4D,MAFK,EAGLsE,eAEA,CAAC1Q,KAAK6C,eAAe,MAjB7B,UAqBF+N,SAtMO,WAuML,OAAO5Q,KAAK6C,eAAe,MAAO7C,KAAK8P,mBAAmB9P,KAAxB,mBAAiD,CACjF8C,YAAa,sBAGjB2N,wBA3MO,SA2MgB,GACrB,IAAMP,EAAYlQ,KAAKoN,SAAW,MAAlC,OACI1N,EAAQM,KAAKE,SAASqO,IAAM,IAApB,EAAZ,EAGA,OAFA7O,EAAQM,KAAKoN,SAAW,IAAhB,EAAR1N,EAEA,gBACEgP,WAAY1O,KADP,iBAEL,EAFF,UAEkBN,EAFlB,OAKF8P,kBArNO,SAqNU,GAA4B,I,EAAA,OAM3C,GALAlM,EAAA,iBAEAtD,KAAA,SAAgBA,KAAhB,cACAA,KAAA,YAEI,QAAC,EAAAsD,EAAD,cAAqB,uBAAzB,4DAAgG,CAC9FtD,KAAA,gBACA,IAAM6Q,EAAWvN,EAAA,OAAjB,wBACMwN,EAAQ,YAAaxN,EAAIA,EAAA,QAAjB,GAAd,EACAtD,KAAA,YAAmBA,KAAKoN,SACpB0D,EAAA,SAAiBD,EAAA,IAAcA,EAAA,OADhB,GAEfC,EAAA,SAAiBD,EAAA,KAAeA,EAAA,MAFpC,QAIA7Q,KAAA,cACA+Q,OAAA,aAAoB/Q,KAApB,cACAA,KAAA,aAAoB+Q,OAAA,YAAkB,WACpC,oBADF,KAKF,IAAMC,GAAiB,QAAmB,CAAEC,SAAF,EAAiBC,SAAS,GAC9DC,IAAmB,QAAmB,CAAEF,SAAS,GAEjDG,EAAe,YAArB,EAEApR,KAAA,eACAA,KAAA,qBAA0BoR,EAAe,YAAzC,YAAoEpR,KAApE,eACA,eAAqBA,KAAD,IAAWoR,EAAe,WAA1B,UAAkDpR,KAAlD,gBAApB,GAEAA,KAAA,cAAoBA,KAApB,gBAEFqR,gBArPO,SAqPQ,GACb/N,EAAA,kBACAyN,OAAA,aAAoB/Q,KAApB,cACAA,KAAA,gBACA,IAAMmR,IAAmB,QAAmB,CAAEF,SAAS,GACvDjR,KAAA,oCAA0CA,KAA1C,eACAA,KAAA,oCAA0CA,KAA1C,eAEAA,KAAA,mBACAA,KAAA,YAAkBA,KAAlB,eACK,eAAUA,KAAD,SAAgBA,KAA9B,iBACEA,KAAA,eAAqBA,KAArB,eACAA,KAAA,YAGFA,KAAA,aAEFsR,YAtQO,SAsQI,GACT,cAAIhO,EAAA,OACFtD,KAAA,iBAEFA,KAAA,cAAqBA,KAAKuR,eAA1B,IAEFhO,UA5QO,SA4QE,GACP,GAAKvD,KAAL,eAEA,IAAMN,EAAQM,KAAKwR,aAAalO,EAAGtD,KAAnC,eAGE,MAAAN,GACAA,EAAQM,KADR,UAEAN,EAAQM,KAHV,WAMAA,KAAA,gBACAA,KAAA,qBAEFyR,cA1RO,SA0RM,GACX,GAAIzR,KAAJ,QACEA,KAAA,eADF,CAIA,IAAM0R,EAAQ1R,KAAKyB,MAAnB,MACAiQ,EAAA,QAEA1R,KAAA,eACAA,KAAA,eAAqBA,KAArB,iBAEF8K,OArSO,SAqSD,GACJ9K,KAAA,aAEAA,KAAA,iBAEF6K,QA1SO,SA0SA,GACL7K,KAAA,aAEAA,KAAA,kBAEFuR,eA/SO,SA+SO,GACZ,IAAMjD,EAAQtO,KAAKoN,SAAW,MAA9B,OACMtM,EAASd,KAAKoN,SAAW,SAA/B,QACMjK,EAAQnD,KAAKoN,SAAW,UAA9B,UAEA,EAGIpN,KAAKyB,MAAMkQ,MAHf,wBAAM,EAAN,EACE,GACUC,EAFZ,EAEE,GAEIC,EAAc,YAAavO,EAAIA,EAAA,WAAjB,GAAuCA,EATnB,GAYpCwO,EAAWnO,KAAA,IAASA,KAAA,KAAUkO,EAAA,EAA2B7R,KAA5B,aAAT,EAAT,OAAf,EAKA,OAHIA,KAAJ,WAAmB8R,EAAW,EAAXA,GACf9R,KAAKE,SAAT,MAAuB4R,EAAW,EAAXA,GAEhB9J,WAAWhI,KAAX,KAAuB8R,GAAY9R,KAAK+N,SAAW/N,KAA1D,WAEFwR,aAlUO,SAkUK,KACV,GAAKxR,KAAL,eAEA,IAAM,EAAN,OAAM,SAAN,OAAM,WAAN,OAAM,MAAN,OAAM,OAAN,OAAM,OAAN,OAAM,QAAN,OAAM,KAAkD+R,EAAxD,OAAwDA,GAExD,GAAK,CAACC,EAAQC,EAAUzD,EAAK0D,EAAMtG,EAAMC,EAAOsG,EAAMJ,GAAIzS,SAASgE,EAAnE,UAEAA,EAAA,iBACA,IAAMqJ,EAAO3M,KAAKgO,aAAlB,EACMoE,GAASpS,KAAK+N,SAAW/N,KAAjB,UAAd,EACA,GAAI,CAAC4L,EAAMC,EAAOsG,EAAMJ,GAAIzS,SAASgE,EAArC,SAAiD,CAC/C,IAAM+O,EAAWrS,KAAKE,SAASqO,IAAM,CAAC3C,EAArB,GAAiC,CAACC,EAAnD,GACMqE,EAAYmC,EAAA,SAAkB/O,EAAlB,YAAlB,EACMgP,EAAahP,EAAA,WAAkBA,EAAA,UAArC,EAEA5D,GAAiBwQ,EAAA,EAAjB,OACK,GAAI5M,EAAA,UAAJ,EACL5D,EAAQM,KAAR,cACK,GAAIsD,EAAA,UAAJ,EACL5D,EAAQM,KAAR,aACK,CACL,IAAM,EAAYsD,EAAA,eAAlB,EACA5D,GAAiB,KAAoB0S,EAAA,IAAcA,EAAd,GAArC,IAGF,YAEFzE,WA7VO,SA6VG,GACR,IAAK3N,KAAL,YAAuB,OADA,EAIvB,IAAMuS,EAAcvS,KAAK2M,KAAK6F,WAA9B,OACMC,EAAWF,EAAA,gBACZA,EAAA,OAAqBA,EAAA,QAArB,KADY,EAAjB,EAGMG,EAAS1S,KAAK8N,SAAW9N,KAA/B,YAEM2S,EAAWhP,KAAA,OAAYjE,EAAD,GAAmBM,KAA9B,aAAkDA,KAAlD,YAAjB,EAEA,OAAOgI,WAAWrE,KAAA,MAAmB3D,KAAnB,kBAAlB,S,sNCxjBS,sBAAO,EAAD,0BAKnB,eALmB,aAMnB,eANa,sBAON,CACP9B,KADO,SAGPI,MAAO,CACLsU,OAAQ,CACNnU,KADM,QAENC,SAAS,GAEXmU,YAAa,CACXpU,KADW,OAEXC,QAFW,WAGT,OAAKsB,KAAL,UAEOA,KAAK8S,UAAZ,YAF4B,KAKhCC,MAbK,QAcLC,UAAW,CACTvU,KADS,OAETC,QAAS,WAEXuU,WAAY,CACVxU,KADU,OAEVC,QAAS,kBAEXyL,SAtBK,QAuBL+I,UAvBK,QAwBLC,OAxBK,QAyBLC,WAAY,CACV3U,KADU,OAEVC,QAAS,aAEX0K,MA7BK,QA8BLiK,KA9BK,QA+BLC,SA/BK,QAgCLC,KAhCK,QAiCLC,IAAK,CACH/U,KADG,OAEHC,QAAS,QAEX+U,UArCK,OAsCL/T,MAAO,MAGToJ,KAAM,iBAAO,CACX4K,WAAY,mBAGd9T,SAAU,CACRC,QADQ,WAEN,oEACE,UADK,GAEF,qCAFE,OAAP,IAGE,oBAAqBG,KAHhB,YAIL,mBAAoBA,KAJf,SAKL,oBAAqBA,KALhB,UAML,gBAAiBA,KANZ,MAOL,eAAgBA,KAPX,OAQL,oBAAqBA,KARhB,MASL,mBAAoBA,KATf,SAUL,eAAgBA,KAVX,KAWL,oBAAqBA,KAXhB,UAYFA,KAZE,cAaFA,KAbE,iBAcFA,KAAK2T,eAGZC,SAnBQ,WAoBN,OAAOzU,QAAQa,KAAf,QAEF6T,YAtBQ,WAuBN,OAAO1U,QACL,gDACAa,KAFF,aAOJ8T,QA9EO,WA8EA,WACCC,EAAgB,CACpB,CAAC,UADmB,YAEpB,CAAC,WAFmB,eAGpB,CAAC,QAHmB,UAIpB,CAAC,SAJH,iBAQAA,EAAA,SAAsB,YAA4B,0BAA3B,EAA2B,KAA5B,EAA4B,KAC5C,wBAAJ,IAA0C,eAASC,EAAUC,EAAnB,OAI9CtS,QAAS,CACPwB,MADO,SACF,GACHnD,KAAA,iBAEAA,KAAA,WAAkBA,KAAlB,UAEFkU,UANO,WAOL,IAAMxR,EAAN,GAWA,OATI1C,KAAJ,UACE0C,EAAA,KACE1C,KAAK6C,eAAe,EAApB,KAA2B,CACzBC,YADyB,iBAEzBxE,MAAO,CAAEsN,MAAM,IACd5L,KAJL,aAQKA,KAAK6C,eAAe,EAApB,KAAP,IAEFsR,SApBO,WAoBC,WACN,OAAOnU,KAAK6C,eAAe,EAApB,KAA2B,CAChCC,YADgC,gBAEhCxE,MAAO,CACLuN,OADK,EAELrL,KAAM,IAERwD,MAAO,CACL,aAAchE,KAAKE,SAASC,KAAKC,EAAEJ,KAArB,aAEhB+B,GAAI,CACFoB,MAAQ,SAAAG,GACNA,EAAA,kBACAA,EAAA,iBAEA,uBACA,+BAGHtD,KAlBH,YAoBFoU,WAzCO,WA0CL,OAAOpU,KAAK6C,eAAe,OAAQ,CACjCC,YAAa,mBACZ,CACD9C,KAAKmT,QAAUnT,KADd,YAEDA,KAAKgM,OAFJ,QAGDhM,KAAK4T,UAAY5T,KALnB,eAUJiC,OAhJO,SAgJD,GACJ,IAAMS,EAAW,CAAC1C,KAAlB,cACA,EAAoBA,KAApB,oBAAI,EAAJ,EAAI,IAAO8I,EAAX,EAAWA,KAEXA,EAAA,uCACKA,EADQ,OAAb,IAEEoK,UAAWlT,KAAKkT,UAAY,YAFjB,EAGXvD,SAAU3P,KAAK8S,YAAc9S,KAAnB,WAAuC8I,EAAA,MAAY6G,WAE/D7G,EAAA,gBAAsB,CACpB5K,KADoB,OAEpBwB,MAAOM,KAAK4S,SAEd9J,EAAO9I,KAAK8P,mBAAmB9P,KAAxB,MAAP8I,GAEA,IAAMqD,EAAQnM,KAAKyT,WAAczT,KAAKsT,UAAYtT,KAAlD,MAEA,OAAOqU,EAAEb,EAAKxT,KAAKuL,aAAaY,EAAxB,GAAR,O,sFCxLW,sBACb,QADa,OAGN,CACPjO,KADO,cAGPI,MAAO,CACL2M,MAAO9L,SAGT8C,OAPO,SAOD,GACJ,OAAOoS,EAAE,MAAO,CACdvR,YADc,cAEdC,MAAO,gBACL,qBAAsB/C,KADjB,OAEFA,KAAKwL,cAEVxH,MAAOhE,KANO,OAOd+B,GAAI/B,KAAKsU,YACRtU,KAAKgM,OARR,a,4FCfW,2BAAW,CACxB9N,KADwB,SAGxBI,MAAO,CACLiW,iBAAkB,CAChB9V,KAAM,CAACgB,OADS,QAEhBf,QAFgB,WAKd,OAAOsB,KAAKE,SACRF,KAAKE,SAASsU,WADX,sBAAP,GAIFpV,UAAW,SAAAC,GAAC,OACT0I,MAAMtI,OAAP,KACA,CAAC,KAAM,KAAM,KAAM,KAAM,MAAMH,SAAS+J,OAAxC,OAKNzJ,SAAU,CACR6U,SADQ,WAEN,MAKIzU,KAAKE,SANH,WACA,EAAN,EAAM,SAAN,EAAM,QAAN,EAAM,KAIJqU,EAJF,EAIEA,iBAKF,GAAIA,IAAqBvU,KAAzB,iBAAgD,OAAO0U,EAEvD,IAAMC,EAAczM,SAASlI,KAAD,iBAA5B,IACM4U,GAAY7M,MAAlB,GAEA,OAAO6M,EACHxI,EADW,EAEXlO,IAAS8B,KAFb,mBAMJ8T,QA1CwB,WA4ClB9T,KAAK4P,OAAOiF,eAAhB,uBACE,eAAU,qBAAsB,oBAAhC,U,+QCvBAlN,EAAa,eACjB,eAAgB,OAAQ,CAAC,WAAD,yEADD,6CAAzB,QAoBe,OAAAA,EAAA,OAAkB,CAC/BzJ,KAD+B,sBAG/ByK,WAAY,CACV4D,aAAA,OACAuI,OAAA,OACA9J,MAAA,QAGF+J,QAT+B,WAU7B,MAAO,CACLC,QAAsB,QAAbhV,KAAKwT,MAIlBlV,MAAO,CACL2W,OADK,QAELC,QAFK,QAGLC,qBAHK,QAILC,oBAJK,QAKLC,cALK,QAMLC,SANK,QAOL9M,OAAQ,CACN/J,KAAM,CAACgB,OADD,QAENf,QAFM,WAGJ,OAAOsB,KAAKqN,IAAM,QAAlB,SAGJkI,YAbK,QAcLC,iBAAkB,CAChB/W,KAAM,CAACgB,OADS,QAEhBf,QAAS,IAEX+W,UAlBK,QAmBL5J,MAnBK,QAoBL6J,IAAK,CACHjX,KAAM,CAAC4K,OADJ,QAEH3K,QAAS,IAEXiX,UAxBK,QAyBLnC,IAAK,CACH/U,KADG,OAEHC,QAFG,WAGD,OAAOsB,KAAKqN,IAAM,MAAlB,UAGJuI,UA/BK,QAgCLC,UAhCK,QAiCLzJ,MAAO,CACL3N,KAAM,CAACgB,OADF,QAELf,QAAS,KAEXgB,MAAO,MAGToJ,KAAM,iBAAO,CACXgN,aADW,EAEXC,UAAW,CACTnK,KADS,EAETC,MAAO,GAETmK,eAAgB,IAGlBpW,SAAU,CAKRqW,oBALQ,WAMN,OAAOjW,KAAK6L,MAAQ,QAApB,QAEFhM,QARQ,WASN,uBACE,uBADK,EAEL,gCAAiCG,KAF5B,SAGL,8BAA+BA,KAH1B,OAIL,+BAAgCA,KAJ3B,QAKL,8BAA+BA,KAL1B,SAML,8BAA+BA,KAAD,WAAmBA,KAAKqN,KAAOrN,KANxD,OAOL,gCAAiCA,KAP5B,SAQL,iCAAkCA,KAR7B,SASL,oCAAqCA,KAThC,YAUL,oCAAqCA,KAVhC,cAWL,2CAXK,KAWuCP,OAAOO,KAAP,kBAC5C,4BAA6BA,KAZxB,SAaL,qCAAsCA,KAbjC,cAcL,6BAA8BA,KAdzB,MAeL,iCAAkCA,KAf7B,WAgBFA,KAAKwL,eAGZ0K,kBA5BQ,WA6BN,IAAKlW,KAAL,OAAkB,OAAO,KAEzB,IAAMkW,EACJlW,KAAKE,SAASiW,YAAYlB,OAC1BjV,KAAKE,SAASiW,YADd,OAEAnW,KAAKE,SAASiW,YAHhB,IAMA,OAAKnW,KAAL,QAEOkW,EAAoBlW,KAAKE,SAASiW,YAAzC,IAF0BD,GAI5BE,YAzCQ,WA0CN,IAAKpW,KAAL,OAAkB,OAAO,EAEzB,IAAIoW,EAAcpW,KAAKE,SAASiW,YAAhC,IAMA,OAJAC,GAAepW,KAAKkV,QAChBlV,KAAKE,SAASiW,YADH,IAAf,EAIA,GAEFE,kBApDQ,WAqDN,OAAIrW,KAAJ,SAA0B,EACtBA,KAAJ,UACOA,KAAK6L,MADc,KAC1B,KAEFyK,cAzDQ,WA0DN,OAAOtW,KAAKuW,cAAgBvW,KAArB,iBAA6CA,KAApD,OAEFwW,OA5DQ,WA6DN,OACExW,KAAKqN,MACHrN,KAAD,WAAmBA,KAFtB,WAKFyW,SAlEQ,WAmEN,OAAOzW,KAAKiV,QAAUjV,KAAtB,UAEFuW,cArEQ,WAsEN,OACGvW,KAAD,eACAA,KAFK,aAILA,KAAKqV,gBACJrV,KALH,aAQFyU,SA9EQ,WA+EN,OACGzU,KAAD,YACCA,KADD,WAEA,sCAHF,OAMF0W,cArFQ,WAsFN,OACG1W,KAAD,YACCA,KADD,YAECA,KAAKyU,UAAYzU,KAHpB,YAMF2W,eA5FQ,WA6FN,OACE3W,KAAKqN,MACJrN,KADD,uBAECA,KAFD,YAGCA,KAHD,YAICA,KALH,WAQF4W,eArGQ,WAsGN,OAAQ5W,KAAD,uBAA+BA,KAAtC,WAEF6W,cAxGQ,WAyGN,OACG7W,KAAD,sBACCA,KADD,YAECA,KAAK4V,WAAa5V,KAHrB,WAMF8W,YA/GQ,WAgHN,OACG9W,KAAD,aACAA,KADA,WAECA,KAAKyU,UAAYzU,KAHpB,YAMF+W,OAtHQ,WAuHN,IAAMC,EAAYhX,KAAKyW,SAAW,aAAlC,aACA,MAAO,CACLjO,OAAQ,eAAcxI,KADjB,QAELiX,IAAMjX,KAAD,SAFA,OAEiB,eAAcA,KAA/B,aACLkX,UAAqC,MAA1BlX,KAAKkW,kBAAL,sBACQ,eAAclW,KADtB,6BAHN,EAML0Q,UAAW,GAAF,OAAKsG,EAAL,YAAkB,eAAchX,KAAD,kBANnC,KAMI,KACToM,MAAO,eAAcpM,KAAD,kBAK1BsB,MAAO,CACL6V,OADK,gBAELxN,SAFK,SAEG,GACN3J,KAAA,kBAMFyU,SATK,SASG,MACN,GACEzU,KADF,WAEGA,KAFH,WAGEA,KAHF,gBAKI,MAAAoX,GACDpX,KADC,gBAEDA,KAFH,iBAKAA,KAAA,cAEFyV,UAtBK,SAsBI,GAEP,IAASzV,KAAK2J,UAAW,IAE3BmN,YA1BK,SA0BM,GACT,EAAS9W,KAAT,aACKA,KAAKqX,iBAEZ3X,MA9BK,SA8BA,GACCM,KAAJ,YAEA,MAAIL,EAKAA,IAAQK,KAAZ,WAA2BA,KAAK2J,SAAWhK,GAJzCK,KAAA,SAMJqV,cAxCK,oBAyCLS,YAzCK,SAyCM,GACT9V,KAAA,wBAIJsX,YAlP+B,WAmP7BtX,KAAA,QAGF2B,QAAS,CACP4V,mBADO,WAEL,IAAMC,EAASxX,KAAKyX,IAApB,WAEA,MAEA,IAAMC,EAAaF,EAAnB,wBAEAxX,KAAA,UAAiB,CACf4L,KAAM8L,EAAA,KADS,GAEf7L,MAAO6L,EAAA,MAAmB,MAG9BC,iBAbO,WAcL,OAAO3X,KAAK2J,WAAa3J,KAAlB,cAAuCA,KAA9C,eAEF4X,UAhBO,WAiBL,OAAO5X,KAAK6X,YAAZ,WAEFC,cAnBO,WAoBL,IAAMxZ,EAAQ,CACZkK,OADY,OAEZ4D,MAFY,OAGZsJ,IAAK1V,KAAK0V,KAGNqC,EAAQ/X,KAAK2C,aAAaqV,IAC5BhY,KAAK2C,aAAaqV,IADR,GAEVhY,KAAK6C,eAAe,EAApB,KAA0B,CAAEvE,UAEhC,OAAO0B,KAAK6C,eAAe,MAAO,CAChCC,YAAa,8BACZ,CAFH,KAIFmV,cAlCO,WAkCM,WACLtP,EAAa,CAAC,CAClBzK,KADkB,gBAElBwB,MAAO,CACL6B,QAAS,WAAQ,eACjBoW,iBAAkB3X,KAFb,iBAGLkY,QAASlY,KAAKmY,4BAelB,OAXKnY,KAAD,WAAoBA,KAAxB,WACE2I,EAAA,KAAgB,CACdzK,KADc,QAEdwB,MAAO,CACL8X,QADK,EAEL5L,KAAM5L,KAFD,UAGL6L,MAAO7L,KAAKoY,cAKlB,GAEFC,aAzDO,WAyDK,WACJtW,EAAyC,CAC7CuW,WAAY,kBAAO,eAD0B,GAE7CC,WAAY,kBAAO,eAF0B,GAG7CC,cAAgB,SAAAlV,GACd,GAAIA,EAAA,SAAaA,EAAjB,eACA,wBAF0B,GAK1B,IAAMmV,EAActJ,SAAA,YAApB,YACAsJ,EAAA,qCACA1H,OAAA,oBAQJ,OAJI/Q,KAAJ,cACE+B,EAAA,MAAW,kBAAM,+BAAjB,KAGF,GAEF8V,YA9EO,SA8EI,GACT,IAAMa,EAAO,eAAQ1Y,KAArB,GAEA,SAEOA,KAAK6C,eAAe,MAAO,CAChCC,YAAa,wBAAF,OAA0B5E,IADvC,GAFkBwa,GAMpBC,WAvFO,WAwFL,OAAO3Y,KAAK6X,YAAZ,YAEFzD,WA1FO,WA2FL,OAAOpU,KAAK6C,eAAe,MAAO,CAChCC,YAAa,gCACZ9C,KAAKgM,OAFR,UAIF4M,UA/FO,WAgGL,OAAO5Y,KAAK6C,eAAe,MAAO,CAChCC,YAAa,iCAGjB+V,KApGO,WAqGD7Y,KAAJ,UACEA,KAAA,YACSA,KAAK2V,WAAT,MACL3V,KAAKN,MAELM,KAAA,SAAgBA,KAAhB,MACUA,KAAL,YACLA,KAAA,UAAiBA,KAAjB,WAGJ8Y,cA/GO,WAgHD9Y,KAAK6W,eAAiB7W,KAA1B,qBACEA,KAAA,cAGJ+Y,UApHO,SAoHE,GACH/Y,KAAK2J,UAAY3J,KAArB,QACAA,KAAA,qBAEI2D,KAAA,IAASL,EAAA,UAAcA,EAAvB,aAAJ,MACItD,KAAK6L,OACPvI,EAAA,aAAiBtD,KAAK+V,UADxB,MAEE/V,KAAK2J,UAFP,GAGU3J,KAAD,OAAeA,KAAnB,WAAkCA,KAAK2J,UAAW,MAEzDyO,WA9HO,SA8HG,GACJpY,KAAK2J,WAAa3J,KAAtB,QACAA,KAAA,qBAEI2D,KAAA,IAASL,EAAA,UAAcA,EAAvB,aAAJ,OACKtD,KAAD,OACFsD,EAAA,aAAiBtD,KAAK+V,UADxB,KAEE/V,KAAK2J,UAFP,EAGS3J,KAAK6L,OAAS7L,KAAlB,WAAiCA,KAAK2J,UAAW,MAKxDqP,kBA3IO,WA4IL,IACGhZ,KAAD,UACAA,KADA,UAEAA,KAFA,YAGCA,KAJH,IAKE,OAAO,EAET,IAAMoM,EAAQ3M,OAAOO,KAAKuV,YAAcvV,KAAnB,iBAA2CA,KAAhE,OAEA,OAAO+H,MAAA,GAAe/H,KAAKyX,IAApB,YAAP,GAEFwB,kBAvJO,SAuJU,GACXjZ,KAAKqV,eAAiBrV,KAAKuV,cAA/B,GAAoDvV,KAAKkP,MAAM,sBAAuBvP,KAI1FsC,OAlZ+B,SAkZzB,GACJ,IAAMS,EAAW,CACf1C,KADe,aAEfA,KAFe,aAGfA,KAHe,YAIfA,KAJF,aASA,OAFIA,KAAK0V,KAAO,eAAQ1V,KAAxB,SAAsC0C,EAAA,QAAiB1C,KAAjB,iBAE/BqU,EAAErU,KAAD,IAAWA,KAAK8P,mBAAmB9P,KAAxB,MAAoC,CACrD+C,MAAO/C,KAD8C,QAErD+P,MAAO/P,KAF8C,OAGrD2I,WAAY3I,KAHyC,gBAIrD+B,GAAI/B,KAAKqY,iBAJX","file":"js/newsletter-template.7bd046a7.js","sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Extensions\nimport VTextField from '../VTextField'\n\n// Components\nimport { VChip } from '../VChip'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n// Utilities\nimport { deepEqual, humanReadableFileSize, wrapInArray } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport { mergeStyles } from '../../util/mergeData'\n\nexport default VTextField.extend({\n name: 'v-file-input',\n\n model: {\n prop: 'value',\n event: 'change',\n },\n\n props: {\n chips: Boolean,\n clearable: {\n type: Boolean,\n default: true,\n },\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n placeholder: String,\n prependIcon: {\n type: String,\n default: '$file',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n showSize: {\n type: [Boolean, Number],\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n } as PropValidator,\n smallChips: Boolean,\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n type: {\n type: String,\n default: 'file',\n },\n value: {\n default: undefined,\n validator: val => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n } as PropValidator,\n },\n\n computed: {\n classes (): object {\n return {\n ...VTextField.options.computed.classes.call(this),\n 'v-file-input': true,\n }\n },\n computedCounterValue (): string {\n const fileCount = (this.multiple && this.lazyValue)\n ? this.lazyValue.length\n : (this.lazyValue instanceof File) ? 1 : 0\n\n if (!this.showSize) return this.$vuetify.lang.t(this.counterString, fileCount)\n\n const bytes = this.internalArrayValue.reduce((bytes: number, { size = 0 }: File) => {\n return bytes + size\n }, 0)\n\n return this.$vuetify.lang.t(\n this.counterSizeString,\n fileCount,\n humanReadableFileSize(bytes, this.base === 1024)\n )\n },\n internalArrayValue (): File[] {\n return wrapInArray(this.internalValue)\n },\n internalValue: {\n get (): File[] {\n return this.lazyValue\n },\n set (val: File | File[]) {\n this.lazyValue = val\n this.$emit('change', this.lazyValue)\n },\n },\n isDirty (): boolean {\n return this.internalArrayValue.length > 0\n },\n isLabelActive (): boolean {\n return this.isDirty\n },\n text (): string[] {\n if (!this.isDirty && (this.persistentPlaceholder || this.isFocused || !this.hasLabel)) return [this.placeholder]\n\n return this.internalArrayValue.map((file: File) => {\n const {\n name = '',\n size = 0,\n } = file\n\n const truncatedText = this.truncateText(name)\n\n return !this.showSize\n ? truncatedText\n : `${truncatedText} (${humanReadableFileSize(size, this.base === 1024)})`\n })\n },\n base (): 1000 | 1024 | undefined {\n return typeof this.showSize !== 'boolean' ? this.showSize : undefined\n },\n hasChips (): boolean {\n return this.chips || this.smallChips\n },\n },\n\n watch: {\n readonly: {\n handler (v) {\n if (v === true) consoleError('readonly is not supported on ', this)\n },\n immediate: true,\n },\n value (v) {\n const value = this.multiple ? v : v ? [v] : []\n if (!deepEqual(value, this.$refs.input.files)) {\n // When the input value is changed programatically, clear the\n // internal input's value so that the `onInput` handler\n // can be triggered again if the user re-selects the exact\n // same file(s). Ideally, `input.files` should be\n // manipulated directly but that property is readonly.\n this.$refs.input.value = ''\n }\n },\n },\n\n methods: {\n clearableCallback () {\n this.internalValue = this.multiple ? [] : null\n this.$refs.input.value = ''\n },\n genChips () {\n if (!this.isDirty) return []\n\n return this.text.map((text, index) => this.$createElement(VChip, {\n props: { small: this.smallChips },\n on: {\n 'click:close': () => {\n const internalValue = this.internalValue\n internalValue.splice(index, 1)\n this.internalValue = internalValue // Trigger the watcher\n },\n },\n }, [text]))\n },\n genControl () {\n const render = VTextField.options.methods.genControl.call(this)\n\n if (this.hideInput) {\n render.data!.style = mergeStyles(\n render.data!.style,\n { display: 'none' }\n )\n }\n\n return render\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.data!.attrs!.multiple = this.multiple\n\n // We should not be setting value\n // programmatically on the input\n // when it is using type=\"file\"\n delete input.data!.domProps!.value\n\n // This solves an issue in Safari where\n // nothing happens when adding a file\n // do to the input event not firing\n // https://github.com/vuetifyjs/vuetify/issues/7941\n delete input.data!.on!.input\n input.data!.on!.change = this.onInput\n\n return [this.genSelections(), input]\n },\n genPrependSlot () {\n if (!this.prependIcon) return null\n\n const icon = this.genIcon('prepend', () => {\n this.$refs.input.click()\n })\n\n return this.genSlot('prepend', 'outer', [icon])\n },\n genSelectionText (): string[] {\n const length = this.text.length\n\n if (length < 2) return this.text\n if (this.showSize && !this.counter) return [this.computedCounterValue]\n return [this.$vuetify.lang.t(this.counterString, length)]\n },\n genSelections () {\n const children = []\n\n if (this.isDirty && this.$scopedSlots.selection) {\n this.internalArrayValue.forEach((file: File, index: number) => {\n if (!this.$scopedSlots.selection) return\n\n children.push(\n this.$scopedSlots.selection({\n text: this.text[index],\n file,\n index,\n })\n )\n })\n } else {\n children.push(this.hasChips && this.isDirty ? this.genChips() : this.genSelectionText())\n }\n\n return this.$createElement('div', {\n staticClass: 'v-file-input__text',\n class: {\n 'v-file-input__text--placeholder': this.placeholder && !this.isDirty,\n 'v-file-input__text--chips': this.hasChips && !this.$scopedSlots.selection,\n },\n }, children)\n },\n genTextFieldSlot () {\n const node = VTextField.options.methods.genTextFieldSlot.call(this)\n\n node.data!.on = {\n ...(node.data!.on || {}),\n click: () => this.$refs.input.click(),\n }\n\n return node\n },\n onInput (e: Event) {\n const files = [...(e.target as HTMLInputElement).files || []]\n\n this.internalValue = this.multiple ? files : files[0]\n\n // Set initialValue here otherwise isFocused\n // watcher in VTextField will emit a change\n // event whenever the component is blurred\n this.initialValue = this.internalValue\n },\n onKeyDown (e: KeyboardEvent) {\n this.$emit('keydown', e)\n },\n truncateText (str: string) {\n if (str.length < Number(this.truncateLength)) return str\n const charsKeepOneSide = Math.floor((Number(this.truncateLength) - 1) / 2)\n return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`\n },\n },\n})\n","import VTextField from './VTextField'\n\nexport { VTextField }\nexport default VTextField\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('field-form',{attrs:{\"hide-default-button\":\"\"},on:{\"save\":_vm.save}},[_c('confirm-dialog',{attrs:{\"title\":\"dialog.unsaved.title\",\"button-caption\":\"dialog.leave\"},on:{\"confirm\":function($event){return _vm.confirmLeave(true)},\"cancel\":function($event){return _vm.confirmLeave(false)}},model:{value:(_vm.leaveDialog),callback:function ($$v) {_vm.leaveDialog=$$v},expression:\"leaveDialog\"}},[_vm._v(\" \"+_vm._s(_vm.$t('dialog.unsaved.text'))+\" \")]),_c('v-dialog',{model:{value:(_vm.sesdialog),callback:function ($$v) {_vm.sesdialog=$$v},expression:\"sesdialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('templates.ses.title')))]),_c('v-textarea',{attrs:{\"rows\":25,\"value\":_vm.sestemplate}})],1)],1),(_vm.item)?_c('newsletter-editor',{ref:\"editor\",attrs:{\"campaign\":_vm.item.id,\"newsletter\":_vm.fields.unlayerData,\"preview\":_vm.htmlpreview,\"html\":_vm.htmltemplate,\"text\":_vm.texttemplate,\"valid\":_vm.valid,\"specs\":_vm.specs,\"unsubscribe\":_vm.unsubscribe,\"specsNew\":_vm.templateSpecsNew,\"specsCategories\":_vm.templateSpecsCategories,\"productCategories\":[],\"dnsName\":\"dreamroi.com\"},on:{\"update:preview\":function($event){_vm.htmlpreview=$event},\"update:html\":function($event){_vm.htmltemplate=$event},\"update:text\":function($event){_vm.texttemplate=$event},\"update:valid\":function($event){_vm.valid=$event},\"update:specs\":function($event){_vm.specs=$event},\"update:unsubscribe\":function($event){_vm.unsubscribe=$event},\"update:specsNew\":function($event){_vm.templateSpecsNew=$event},\"update:specs-new\":function($event){_vm.templateSpecsNew=$event},\"update:specsCategories\":function($event){_vm.templateSpecsCategories=$event},\"update:specs-categories\":function($event){_vm.templateSpecsCategories=$event},\"save\":_vm.updateTemplate}}):_vm._e(),_c('v-navigation-drawer',{attrs:{\"app\":\"\",\"right\":\"\",\"clipped\":\"\",\"width\":\"350\",\"permanent\":\"\"}},[_c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('templates.title')))]),_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$t('common.name'),\"rules\":[ _vm.rules.required ]},model:{value:(_vm.fields.name),callback:function ($$v) {_vm.$set(_vm.fields, \"name\", $$v)},expression:\"fields.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('templates.ordering'),\"hint\":_vm.$t('templates.orderingHint'),\"persistent-hint\":\"\",\"type\":\"number\"},model:{value:(_vm.fields.order),callback:function ($$v) {_vm.$set(_vm.fields, \"order\", _vm._n($$v))},expression:\"fields.order\"}}),_c('v-switch',{attrs:{\"disabled\":!_vm.fields.preview || !_vm.unsubscribe || !_vm.valid,\"label\":_vm.$t('templates.public')},model:{value:(_vm.fields.public),callback:function ($$v) {_vm.$set(_vm.fields, \"public\", $$v)},expression:\"fields.public\"}})],1),_c('v-subheader',[_vm._v(_vm._s(_vm.$t('templates.imagePreview')))]),_c('v-card-text',[(_vm.fields.preview)?_c('v-img',{staticStyle:{\"width\":\"100%\"},attrs:{\"src\":_vm.fields.preview}}):_c('v-alert',{attrs:{\"type\":\"warning\",\"colored-border\":\"\",\"border\":\"left\"}},[_vm._v(\"No preview available. You can't publish the template until image preview is set.\")]),(!_vm.valid)?_c('v-alert',{attrs:{\"type\":\"error\",\"colored-border\":\"\",\"border\":\"left\"}},[_vm._v(\"Invalid template. \"+_vm._s(_vm.specs.recommendationsCount > 10 ? 'Exceeded maximum number of recommendations' : 'Number of macros do not match.'))]):_vm._e(),(!_vm.unsubscribe)?_c('v-alert',{attrs:{\"type\":\"error\",\"colored-border\":\"\",\"border\":\"left\"}},[_vm._v(\"The template does not contain unsubscribe link. You can't publish it.\")]):_vm._e(),_c('v-file-input',{attrs:{\"label\":\"Upload new preview image\",\"show-size\":\"\",\"clearable\":\"\",\"accept\":\"image/png, image/jpeg\"},model:{value:(_vm.file),callback:function ($$v) {_vm.file=$$v},expression:\"file\"}})],1),_c('v-card-actions',[_c('save-button',{attrs:{\"card\":\"\",\"saving\":_vm.saving}}),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.getHTML}},[_vm._v(\"View SES template\")])],1)],1),_c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_vm._v(\"HTML preview\")]),_c('v-card-text',[_vm._v(\" Use to generate the image preview. \")]),_c('v-subheader',[_vm._v(\"Strip description\")]),_c('v-card-text',[_c('v-slider',{attrs:{\"thumb-label\":\"always\",\"thumb-size\":24,\"min\":\"0\",\"max\":\"150\",\"persistent-hint\":\"\",\"hint\":\"0 means no stripping\"},model:{value:(_vm.specs.stripDescription),callback:function ($$v) {_vm.$set(_vm.specs, \"stripDescription\", _vm._n($$v))},expression:\"specs.stripDescription\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"loading\":_vm.htmlgen},on:{\"click\":_vm.generateHTML}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"$generate\")]),_vm._v(\"Generate\")],1),_c('v-btn',{attrs:{\"disabled\":!_vm.htmllink,\"color\":\"primary\",\"text\":\"\",\"href\":_vm.htmllink,\"target\":\"_blank\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"$openInNew\")]),_vm._v(\"Open\")],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Designer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Designer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Designer.vue?vue&type=template&id=5bd4fada&\"\nimport script from \"./Designer.vue?vue&type=script&lang=js&\"\nexport * from \"./Designer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSlider } from 'vuetify/lib/components/VSlider';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VContainer,VDialog,VFileInput,VIcon,VImg,VNavigationDrawer,VSlider,VSubheader,VSwitch,VTextField,VTextarea})\n","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n autoGrow (val: boolean) {\n this.$nextTick(() => {\n val\n ? this.calculateInputHeight()\n : this.$refs.input?.style.removeProperty('height')\n })\n },\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","// Directives\nimport ripple from '../../directives/ripple'\n\n// Types\nimport Vue, { VNode, VNodeData, VNodeDirective } from 'vue'\n\nexport default Vue.extend({\n name: 'rippleable',\n\n directives: { ripple },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true,\n },\n },\n\n methods: {\n genRipple (data: VNodeData = {}): VNode | null {\n if (!this.ripple) return null\n\n data.staticClass = 'v-input--selection-controls__ripple'\n\n data.directives = data.directives || []\n data.directives.push({\n name: 'ripple',\n value: { center: true },\n } as VNodeDirective)\n\n return this.$createElement('div', data)\n },\n },\n})\n","// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n","// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n","import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\nimport { PropValidator } from 'vue/types/options'\n\ninterface options extends Vue {\n $refs: {\n track: HTMLElement\n }\n}\n\nexport default mixins\n/* eslint-enable indent */\n>(\n VInput,\n Loadable\n/* @vue/component */\n).extend({\n name: 'v-slider',\n\n directives: {\n ClickOutside,\n },\n\n mixins: [Loadable],\n\n props: {\n disabled: Boolean,\n inverseLabel: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 1,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType,\n default: undefined,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 32,\n },\n tickLabels: {\n type: Array,\n default: () => ([]),\n } as PropValidator,\n ticks: {\n type: [Boolean, String] as PropType,\n default: false,\n validator: v => typeof v === 'boolean' || v === 'always',\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n trackColor: String,\n trackFillColor: String,\n value: [Number, String],\n vertical: Boolean,\n },\n\n data: () => ({\n app: null as any,\n oldValue: null as any,\n thumbPressed: false,\n mouseTimeout: -1,\n isFocused: false,\n isActive: false,\n noClick: false, // Prevent click event if dragging took place, hack for #7915\n startOffset: 0,\n }),\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input__slider': true,\n 'v-input__slider--vertical': this.vertical,\n 'v-input__slider--inverse-label': this.inverseLabel,\n }\n },\n internalValue: {\n get (): number {\n return this.lazyValue\n },\n set (val: number) {\n val = isNaN(val) ? this.minValue : val\n // Round value to ensure the\n // entire slider range can\n // be selected with step\n const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n if (value === this.lazyValue) return\n\n this.lazyValue = value\n\n this.$emit('input', value)\n },\n },\n trackTransition (): string {\n return this.thumbPressed\n ? this.showTicks || this.stepNumeric\n ? '0.1s cubic-bezier(0.25, 0.8, 0.5, 1)'\n : 'none'\n : ''\n },\n minValue (): number {\n return parseFloat(this.min)\n },\n maxValue (): number {\n return parseFloat(this.max)\n },\n stepNumeric (): number {\n return this.step > 0 ? parseFloat(this.step) : 0\n },\n inputWidth (): number {\n const inputWidth = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n return isNaN(inputWidth) ? 0 : inputWidth\n },\n trackFillStyles (): Partial {\n const startDir = this.vertical ? 'bottom' : 'left'\n const endDir = this.vertical ? 'top' : 'right'\n const valueDir = this.vertical ? 'height' : 'width'\n\n const start = this.$vuetify.rtl ? 'auto' : '0'\n const end = this.$vuetify.rtl ? '0' : 'auto'\n const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n [valueDir]: value,\n }\n },\n trackStyles (): Partial {\n const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n const endDir = this.vertical ? 'height' : 'width'\n\n const start = '0px'\n const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n return {\n transition: this.trackTransition,\n [startDir]: start,\n [endDir]: end,\n }\n },\n showTicks (): boolean {\n return this.tickLabels.length > 0 ||\n !!(!this.isDisabled && this.stepNumeric && this.ticks)\n },\n numTicks (): number {\n return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n },\n showThumbLabel (): boolean {\n return !this.isDisabled && !!(\n this.thumbLabel ||\n this.$scopedSlots['thumb-label']\n )\n },\n computedTrackColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackColor) return this.trackColor\n if (this.isDark) return this.validationState\n return this.validationState || 'primary lighten-3'\n },\n computedTrackFillColor (): string | undefined {\n if (this.isDisabled) return undefined\n if (this.trackFillColor) return this.trackFillColor\n return this.validationState || this.computedColor\n },\n computedThumbColor (): string | undefined {\n if (this.thumbColor) return this.thumbColor\n return this.validationState || this.computedColor\n },\n },\n\n watch: {\n min (val) {\n const parsed = parseFloat(val)\n parsed > this.internalValue && this.$emit('input', parsed)\n },\n max (val) {\n const parsed = parseFloat(val)\n parsed < this.internalValue && this.$emit('input', parsed)\n },\n value: {\n handler (v: number) {\n this.internalValue = v\n },\n immediate: true,\n },\n },\n\n mounted () {\n // Without a v-app, iOS does not work with body selectors\n this.app = document.querySelector('[data-app]') ||\n consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n },\n\n methods: {\n genDefaultSlot (): VNodeChildrenArrayContents {\n const children: VNodeChildrenArrayContents = [this.genLabel()]\n const slider = this.genSlider()\n this.inverseLabel\n ? children.unshift(slider)\n : children.push(slider)\n\n children.push(this.genProgress())\n\n return children\n },\n genSlider (): VNode {\n return this.$createElement('div', {\n class: {\n 'v-slider': true,\n 'v-slider--horizontal': !this.vertical,\n 'v-slider--vertical': this.vertical,\n 'v-slider--focused': this.isFocused,\n 'v-slider--active': this.isActive,\n 'v-slider--disabled': this.isDisabled,\n 'v-slider--readonly': this.isReadonly,\n ...this.themeClasses,\n },\n directives: [{\n name: 'click-outside',\n value: this.onBlur,\n }],\n on: {\n click: this.onSliderClick,\n mousedown: this.onSliderMouseDown,\n touchstart: this.onSliderMouseDown,\n },\n }, this.genChildren())\n },\n genChildren (): VNodeChildrenArrayContents {\n return [\n this.genInput(),\n this.genTrackContainer(),\n this.genSteps(),\n this.genThumbContainer(\n this.internalValue,\n this.inputWidth,\n this.isActive,\n this.isFocused,\n this.onFocus,\n this.onBlur,\n ),\n ]\n },\n genInput (): VNode {\n return this.$createElement('input', {\n attrs: {\n value: this.internalValue,\n id: this.computedId,\n disabled: true,\n readonly: true,\n tabindex: -1,\n ...this.$attrs,\n },\n // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n })\n },\n genTrackContainer (): VNode {\n const children = [\n this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n staticClass: 'v-slider__track-background',\n style: this.trackStyles,\n })),\n this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n staticClass: 'v-slider__track-fill',\n style: this.trackFillStyles,\n })),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-slider__track-container',\n ref: 'track',\n }, children)\n },\n genSteps (): VNode | null {\n if (!this.step || !this.showTicks) return null\n\n const tickSize = parseFloat(this.tickSize)\n const range = createRange(this.numTicks + 1)\n const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n if (this.vertical) range.reverse()\n\n const ticks = range.map(index => {\n const children = []\n\n if (this.tickLabels[index]) {\n children.push(this.$createElement('div', {\n staticClass: 'v-slider__tick-label',\n }, this.tickLabels[index]))\n }\n\n const width = index * (100 / this.numTicks)\n const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n return this.$createElement('span', {\n key: index,\n staticClass: 'v-slider__tick',\n class: {\n 'v-slider__tick--filled': filled,\n },\n style: {\n width: `${tickSize}px`,\n height: `${tickSize}px`,\n [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n },\n }, children)\n })\n\n return this.$createElement('div', {\n staticClass: 'v-slider__ticks-container',\n class: {\n 'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n },\n }, ticks)\n },\n genThumbContainer (\n value: number,\n valueWidth: number,\n isActive: boolean,\n isFocused: boolean,\n onFocus: Function,\n onBlur: Function,\n ref = 'thumb'\n ): VNode {\n const children = [this.genThumb()]\n\n const thumbLabelContent = this.genThumbLabelContent(value)\n this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n ref,\n key: ref,\n staticClass: 'v-slider__thumb-container',\n class: {\n 'v-slider__thumb-container--active': isActive,\n 'v-slider__thumb-container--focused': isFocused,\n 'v-slider__thumb-container--show-label': this.showThumbLabel,\n },\n style: this.getThumbContainerStyles(valueWidth),\n attrs: {\n role: 'slider',\n tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n 'aria-label': this.$attrs['aria-label'] || this.label,\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.internalValue,\n 'aria-readonly': String(this.isReadonly),\n 'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n },\n on: {\n focus: onFocus,\n blur: onBlur,\n keydown: this.onKeyDown,\n },\n }), children)\n },\n genThumbLabelContent (value: number | string): ScopedSlotChildren {\n return this.$scopedSlots['thumb-label']\n ? this.$scopedSlots['thumb-label']!({ value })\n : [this.$createElement('span', [String(value)])]\n },\n genThumbLabel (content: ScopedSlotChildren): VNode {\n const size = convertToUnit(this.thumbSize)\n\n const transform = this.vertical\n ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n return this.$createElement(VScaleTransition, {\n props: { origin: 'bottom center' },\n }, [\n this.$createElement('div', {\n staticClass: 'v-slider__thumb-label-container',\n directives: [{\n name: 'show',\n value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n }],\n }, [\n this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb-label',\n style: {\n height: size,\n width: size,\n transform,\n },\n }), [this.$createElement('div', content)]),\n ]),\n ])\n },\n genThumb (): VNode {\n return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n staticClass: 'v-slider__thumb',\n }))\n },\n getThumbContainerStyles (width: number): object {\n const direction = this.vertical ? 'top' : 'left'\n let value = this.$vuetify.rtl ? 100 - width : width\n value = this.vertical ? 100 - value : value\n\n return {\n transition: this.trackTransition,\n [direction]: `${value}%`,\n }\n },\n onSliderMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.oldValue = this.internalValue\n this.isActive = true\n\n if ((e.target as Element)?.matches('.v-slider__thumb-container, .v-slider__thumb-container *')) {\n this.thumbPressed = true\n const domRect = (e.target as Element).getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n this.startOffset = this.vertical\n ? touch.clientY - (domRect.top + domRect.height / 2)\n : touch.clientX - (domRect.left + domRect.width / 2)\n } else {\n this.startOffset = 0\n window.clearTimeout(this.mouseTimeout)\n this.mouseTimeout = window.setTimeout(() => {\n this.thumbPressed = true\n }, 300)\n }\n\n const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n\n const isTouchEvent = 'touches' in e\n\n this.onMouseMove(e)\n this.app.addEventListener(isTouchEvent ? 'touchmove' : 'mousemove', this.onMouseMove, mouseMoveOptions)\n addOnceEventListener(this.app, isTouchEvent ? 'touchend' : 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n\n this.$emit('start', this.internalValue)\n },\n onSliderMouseUp (e: Event) {\n e.stopPropagation()\n window.clearTimeout(this.mouseTimeout)\n this.thumbPressed = false\n const mouseMoveOptions = passiveSupported ? { passive: true } : false\n this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n this.$emit('mouseup', e)\n this.$emit('end', this.internalValue)\n if (!deepEqual(this.oldValue, this.internalValue)) {\n this.$emit('change', this.internalValue)\n this.noClick = true\n }\n\n this.isActive = false\n },\n onMouseMove (e: MouseEvent | TouchEvent) {\n if (e.type === 'mousemove') {\n this.thumbPressed = true\n }\n this.internalValue = this.parseMouseMove(e)\n },\n onKeyDown (e: KeyboardEvent) {\n if (!this.isInteractive) return\n\n const value = this.parseKeyDown(e, this.internalValue)\n\n if (\n value == null ||\n value < this.minValue ||\n value > this.maxValue\n ) return\n\n this.internalValue = value\n this.$emit('change', value)\n },\n onSliderClick (e: MouseEvent) {\n if (this.noClick) {\n this.noClick = false\n return\n }\n const thumb = this.$refs.thumb as HTMLElement\n thumb.focus()\n\n this.onMouseMove(e)\n this.$emit('change', this.internalValue)\n },\n onBlur (e: Event) {\n this.isFocused = false\n\n this.$emit('blur', e)\n },\n onFocus (e: Event) {\n this.isFocused = true\n\n this.$emit('focus', e)\n },\n parseMouseMove (e: MouseEvent | TouchEvent) {\n const start = this.vertical ? 'top' : 'left'\n const length = this.vertical ? 'height' : 'width'\n const click = this.vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = this.$refs.track.getBoundingClientRect()\n const clickOffset = 'touches' in e ? e.touches[0][click] : e[click]\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - this.startOffset) / trackLength, 0), 1) || 0\n\n if (this.vertical) clickPos = 1 - clickPos\n if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n return parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n },\n parseKeyDown (e: KeyboardEvent, value: number) {\n if (!this.isInteractive) return\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n e.preventDefault()\n const step = this.stepNumeric || 1\n const steps = (this.maxValue - this.minValue) / step\n if ([left, right, down, up].includes(e.keyCode)) {\n const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n const direction = increase.includes(e.keyCode) ? 1 : -1\n const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n value = value + (direction * step * multiplier)\n } else if (e.keyCode === home) {\n value = this.minValue\n } else if (e.keyCode === end) {\n value = this.maxValue\n } else {\n const direction = e.keyCode === pagedown ? 1 : -1\n value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n }\n\n return value\n },\n roundValue (value: number): number {\n if (!this.stepNumeric) return value\n // Format input value using the same number\n // of decimals places as in the step prop\n const trimmedStep = this.step.toString().trim()\n const decimals = trimmedStep.indexOf('.') > -1\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n const offset = this.minValue % this.stepNumeric\n\n const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n },\n },\n})\n","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n Colorable,\n Sizeable,\n Routable,\n Themeable,\n GroupableFactory('chipGroup'),\n ToggleableFactory('inputValue')\n).extend({\n name: 'v-chip',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n activeClass: {\n type: String,\n default (): string | undefined {\n if (!this.chipGroup) return ''\n\n return this.chipGroup.activeClass\n },\n } as any as PropValidator,\n close: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n disabled: Boolean,\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n outlined: Boolean,\n pill: Boolean,\n tag: {\n type: String,\n default: 'span',\n },\n textColor: String,\n value: null as any as PropType,\n },\n\n data: () => ({\n proxyClass: 'v-chip--active',\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-chip': true,\n ...Routable.options.computed.classes.call(this),\n 'v-chip--clickable': this.isClickable,\n 'v-chip--disabled': this.disabled,\n 'v-chip--draggable': this.draggable,\n 'v-chip--label': this.label,\n 'v-chip--link': this.isLink,\n 'v-chip--no-color': !this.color,\n 'v-chip--outlined': this.outlined,\n 'v-chip--pill': this.pill,\n 'v-chip--removable': this.hasClose,\n ...this.themeClasses,\n ...this.sizeableClasses,\n ...this.groupClasses,\n }\n },\n hasClose (): boolean {\n return Boolean(this.close)\n },\n isClickable (): boolean {\n return Boolean(\n Routable.options.computed.isClickable.call(this) ||\n this.chipGroup\n )\n },\n },\n\n created () {\n const breakingProps = [\n ['outline', 'outlined'],\n ['selected', 'input-value'],\n ['value', 'active'],\n ['@input', '@active.sync'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n methods: {\n click (e: MouseEvent): void {\n this.$emit('click', e)\n\n this.chipGroup && this.toggle()\n },\n genFilter (): VNode {\n const children = []\n\n if (this.isActive) {\n children.push(\n this.$createElement(VIcon, {\n staticClass: 'v-chip__filter',\n props: { left: true },\n }, this.filterIcon)\n )\n }\n\n return this.$createElement(VExpandXTransition, children)\n },\n genClose (): VNode {\n return this.$createElement(VIcon, {\n staticClass: 'v-chip__close',\n props: {\n right: true,\n size: 18,\n },\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.closeLabel),\n },\n on: {\n click: (e: Event) => {\n e.stopPropagation()\n e.preventDefault()\n\n this.$emit('click:close')\n this.$emit('update:active', false)\n },\n },\n }, this.closeIcon)\n },\n genContent (): VNode {\n return this.$createElement('span', {\n staticClass: 'v-chip__content',\n }, [\n this.filter && this.genFilter(),\n this.$slots.default,\n this.hasClose && this.genClose(),\n ])\n },\n },\n\n render (h): VNode {\n const children = [this.genContent()]\n let { tag, data } = this.generateRouteLink()\n\n data.attrs = {\n ...data.attrs,\n draggable: this.draggable ? 'true' : undefined,\n tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n }\n data.directives!.push({\n name: 'show',\n value: this.active,\n })\n data = this.setBackgroundColor(this.color, data)\n\n const color = this.textColor || (this.outlined && this.color)\n\n return h(tag, this.setTextColor(color, data), children)\n },\n})\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-subheader',\n\n props: {\n inset: Boolean,\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-subheader',\n class: {\n 'v-subheader--inset': this.inset,\n ...this.themeClasses,\n },\n attrs: this.$attrs,\n on: this.$listeners,\n }, this.$slots.default)\n },\n})\n","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'mobile',\n\n props: {\n mobileBreakpoint: {\n type: [Number, String] as PropType,\n default (): number | BreakpointName | undefined {\n // Avoid destroying unit\n // tests for users\n return this.$vuetify\n ? this.$vuetify.breakpoint.mobileBreakpoint\n : undefined\n },\n validator: v => (\n !isNaN(Number(v)) ||\n ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n ),\n },\n },\n\n computed: {\n isMobile (): boolean {\n const {\n mobile,\n width,\n name,\n mobileBreakpoint,\n } = this.$vuetify.breakpoint\n\n // Check if local mobileBreakpoint matches\n // the application's mobileBreakpoint\n if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n const isNumber = !isNaN(mobileWidth)\n\n return isNumber\n ? width < mobileWidth\n : name === this.mobileBreakpoint\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n deprecate('mobile-break-point', 'mobile-breakpoint', this)\n }\n },\n})\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n Applicationable('left', [\n 'isActive',\n 'isMobile',\n 'miniVariant',\n 'expandOnHover',\n 'permanent',\n 'right',\n 'temporary',\n 'width',\n ]),\n Colorable,\n Dependent,\n Mobile,\n Overlayable,\n SSRBootable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-navigation-drawer',\n\n directives: {\n ClickOutside,\n Resize,\n Touch,\n },\n\n provide (): object {\n return {\n isInNav: this.tag === 'nav',\n }\n },\n\n props: {\n bottom: Boolean,\n clipped: Boolean,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default (): string {\n return this.app ? '100vh' : '100%'\n },\n },\n miniVariant: Boolean,\n miniVariantWidth: {\n type: [Number, String],\n default: 56,\n },\n permanent: Boolean,\n right: Boolean,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n stateless: Boolean,\n tag: {\n type: String,\n default (): string {\n return this.app ? 'nav' : 'aside'\n },\n },\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n value: null as unknown as PropType,\n },\n\n data: () => ({\n isMouseover: false,\n touchArea: {\n left: 0,\n right: 0,\n },\n stackMinZIndex: 6,\n }),\n\n computed: {\n /**\n * Used for setting an app value from a dynamic\n * property. Called from applicationable.js\n */\n applicationProperty (): string {\n return this.right ? 'right' : 'left'\n },\n classes (): object {\n return {\n 'v-navigation-drawer': true,\n 'v-navigation-drawer--absolute': this.absolute,\n 'v-navigation-drawer--bottom': this.bottom,\n 'v-navigation-drawer--clipped': this.clipped,\n 'v-navigation-drawer--close': !this.isActive,\n 'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n 'v-navigation-drawer--floating': this.floating,\n 'v-navigation-drawer--is-mobile': this.isMobile,\n 'v-navigation-drawer--is-mouseover': this.isMouseover,\n 'v-navigation-drawer--mini-variant': this.isMiniVariant,\n 'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n 'v-navigation-drawer--open': this.isActive,\n 'v-navigation-drawer--open-on-hover': this.expandOnHover,\n 'v-navigation-drawer--right': this.right,\n 'v-navigation-drawer--temporary': this.temporary,\n ...this.themeClasses,\n }\n },\n computedMaxHeight (): number | null {\n if (!this.hasApp) return null\n\n const computedMaxHeight = (\n this.$vuetify.application.bottom +\n this.$vuetify.application.footer +\n this.$vuetify.application.bar\n )\n\n if (!this.clipped) return computedMaxHeight\n\n return computedMaxHeight + this.$vuetify.application.top\n },\n computedTop (): number {\n if (!this.hasApp) return 0\n\n let computedTop = this.$vuetify.application.bar\n\n computedTop += this.clipped\n ? this.$vuetify.application.top\n : 0\n\n return computedTop\n },\n computedTransform (): number {\n if (this.isActive) return 0\n if (this.isBottom) return 100\n return this.right ? 100 : -100\n },\n computedWidth (): string | number {\n return this.isMiniVariant ? this.miniVariantWidth : this.width\n },\n hasApp (): boolean {\n return (\n this.app &&\n (!this.isMobile && !this.temporary)\n )\n },\n isBottom (): boolean {\n return this.bottom && this.isMobile\n },\n isMiniVariant (): boolean {\n return (\n !this.expandOnHover &&\n this.miniVariant\n ) || (\n this.expandOnHover &&\n !this.isMouseover\n )\n },\n isMobile (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n Mobile.options.computed.isMobile.call(this)\n )\n },\n reactsToClick (): boolean {\n return (\n !this.stateless &&\n !this.permanent &&\n (this.isMobile || this.temporary)\n )\n },\n reactsToMobile (): boolean {\n return (\n this.app &&\n !this.disableResizeWatcher &&\n !this.permanent &&\n !this.stateless &&\n !this.temporary\n )\n },\n reactsToResize (): boolean {\n return !this.disableResizeWatcher && !this.stateless\n },\n reactsToRoute (): boolean {\n return (\n !this.disableRouteWatcher &&\n !this.stateless &&\n (this.temporary || this.isMobile)\n )\n },\n showOverlay (): boolean {\n return (\n !this.hideOverlay &&\n this.isActive &&\n (this.isMobile || this.temporary)\n )\n },\n styles (): object {\n const translate = this.isBottom ? 'translateY' : 'translateX'\n return {\n height: convertToUnit(this.height),\n top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n maxHeight: this.computedMaxHeight != null\n ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n : undefined,\n transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n width: convertToUnit(this.computedWidth),\n }\n },\n },\n\n watch: {\n $route: 'onRouteChange',\n isActive (val) {\n this.$emit('input', val)\n },\n /**\n * When mobile changes, adjust the active state\n * only when there has been a previous value\n */\n isMobile (val, prev) {\n !val &&\n this.isActive &&\n !this.temporary &&\n this.removeOverlay()\n\n if (prev == null ||\n !this.reactsToResize ||\n !this.reactsToMobile\n ) return\n\n this.isActive = !val\n },\n permanent (val) {\n // If enabling prop enable the drawer\n if (val) this.isActive = true\n },\n showOverlay (val) {\n if (val) this.genOverlay()\n else this.removeOverlay()\n },\n value (val) {\n if (this.permanent) return\n\n if (val == null) {\n this.init()\n return\n }\n\n if (val !== this.isActive) this.isActive = val\n },\n expandOnHover: 'updateMiniVariant',\n isMouseover (val) {\n this.updateMiniVariant(!val)\n },\n },\n\n beforeMount () {\n this.init()\n },\n\n methods: {\n calculateTouchArea () {\n const parent = this.$el.parentNode as Element\n\n if (!parent) return\n\n const parentRect = parent.getBoundingClientRect()\n\n this.touchArea = {\n left: parentRect.left + 50,\n right: parentRect.right - 50,\n }\n },\n closeConditional () {\n return this.isActive && !this._isDestroyed && this.reactsToClick\n },\n genAppend () {\n return this.genPosition('append')\n },\n genBackground () {\n const props = {\n height: '100%',\n width: '100%',\n src: this.src,\n }\n\n const image = this.$scopedSlots.img\n ? this.$scopedSlots.img(props)\n : this.$createElement(VImg, { props })\n\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__image',\n }, [image])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [{\n name: 'click-outside',\n value: {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n }]\n\n if (!this.touchless && !this.stateless) {\n directives.push({\n name: 'touch',\n value: {\n parent: true,\n left: this.swipeLeft,\n right: this.swipeRight,\n },\n } as any)\n }\n\n return directives\n },\n genListeners () {\n const on: Record void> = {\n mouseenter: () => (this.isMouseover = true),\n mouseleave: () => (this.isMouseover = false),\n transitionend: (e: Event) => {\n if (e.target !== e.currentTarget) return\n this.$emit('transitionend', e)\n\n // IE11 does not support new Event('resize')\n const resizeEvent = document.createEvent('UIEvents')\n resizeEvent.initUIEvent('resize', true, false, window, 0)\n window.dispatchEvent(resizeEvent)\n },\n }\n\n if (this.miniVariant) {\n on.click = () => this.$emit('update:mini-variant', false)\n }\n\n return on\n },\n genPosition (name: 'prepend' | 'append') {\n const slot = getSlot(this, name)\n\n if (!slot) return slot\n\n return this.$createElement('div', {\n staticClass: `v-navigation-drawer__${name}`,\n }, slot)\n },\n genPrepend () {\n return this.genPosition('prepend')\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__content',\n }, this.$slots.default)\n },\n genBorder () {\n return this.$createElement('div', {\n staticClass: 'v-navigation-drawer__border',\n })\n },\n init () {\n if (this.permanent) {\n this.isActive = true\n } else if (this.stateless ||\n this.value != null\n ) {\n this.isActive = this.value\n } else if (!this.temporary) {\n this.isActive = !this.isMobile\n }\n },\n onRouteChange () {\n if (this.reactsToRoute && this.closeConditional()) {\n this.isActive = false\n }\n },\n swipeLeft (e: TouchWrapper) {\n if (this.isActive && this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (this.right &&\n e.touchstartX >= this.touchArea.right\n ) this.isActive = true\n else if (!this.right && this.isActive) this.isActive = false\n },\n swipeRight (e: TouchWrapper) {\n if (this.isActive && !this.right) return\n this.calculateTouchArea()\n\n if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n if (!this.right &&\n e.touchstartX <= this.touchArea.left\n ) this.isActive = true\n else if (this.right && this.isActive) this.isActive = false\n },\n /**\n * Update the application layout\n */\n updateApplication () {\n if (\n !this.isActive ||\n this.isMobile ||\n this.temporary ||\n !this.$el\n ) return 0\n\n const width = Number(this.miniVariant ? this.miniVariantWidth : this.width)\n\n return isNaN(width) ? this.$el.clientWidth : width\n },\n updateMiniVariant (val: boolean) {\n if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)\n },\n },\n\n render (h): VNode {\n const children = [\n this.genPrepend(),\n this.genContent(),\n this.genAppend(),\n this.genBorder(),\n ]\n\n if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n return h(this.tag, this.setBackgroundColor(this.color, {\n class: this.classes,\n style: this.styles,\n directives: this.genDirectives(),\n on: this.genListeners(),\n }), children)\n },\n})\n"],"sourceRoot":""}