@wkly/datetime-picker 11.0.0 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cdk-overlay/package.json +5 -6
- package/cdk-overlay/public-api.d.ts +10 -0
- package/cdk-overlay/wkly-datetime-picker-cdk-overlay.d.ts +1 -0
- package/config.d.ts +3 -0
- package/esm2020/cdk-overlay/public-api.mjs +137 -0
- package/{esm2015/cdk-overlay/wkly-datetime-picker-cdk-overlay.js → esm2020/cdk-overlay/wkly-datetime-picker-cdk-overlay.mjs} +1 -1
- package/esm2020/config.mjs +100 -0
- package/esm2020/field.component.mjs +253 -0
- package/esm2020/picker.component.mjs +955 -0
- package/esm2020/presentation.mjs +303 -0
- package/esm2020/public-api.mjs +31 -0
- package/{esm2015/wkly-datetime-picker.js → esm2020/wkly-datetime-picker.mjs} +1 -1
- package/fesm2015/wkly-datetime-picker-cdk-overlay.mjs +143 -0
- package/fesm2015/wkly-datetime-picker-cdk-overlay.mjs.map +1 -0
- package/fesm2015/wkly-datetime-picker.mjs +1624 -0
- package/fesm2015/wkly-datetime-picker.mjs.map +1 -0
- package/fesm2020/wkly-datetime-picker-cdk-overlay.mjs +143 -0
- package/fesm2020/wkly-datetime-picker-cdk-overlay.mjs.map +1 -0
- package/fesm2020/wkly-datetime-picker.mjs +1622 -0
- package/fesm2020/wkly-datetime-picker.mjs.map +1 -0
- package/field.component.d.ts +3 -0
- package/package.json +34 -14
- package/picker.component.d.ts +3 -0
- package/presentation.d.ts +7 -0
- package/public-api.d.ts +8 -0
- package/wkly-datetime-picker.d.ts +1 -1
- package/bundles/wkly-datetime-picker-cdk-overlay.umd.js +0 -653
- package/bundles/wkly-datetime-picker-cdk-overlay.umd.js.map +0 -1
- package/bundles/wkly-datetime-picker-cdk-overlay.umd.min.js +0 -2
- package/bundles/wkly-datetime-picker-cdk-overlay.umd.min.js.map +0 -1
- package/bundles/wkly-datetime-picker.umd.js +0 -2354
- package/bundles/wkly-datetime-picker.umd.js.map +0 -1
- package/bundles/wkly-datetime-picker.umd.min.js +0 -2
- package/bundles/wkly-datetime-picker.umd.min.js.map +0 -1
- package/cdk-overlay/public-api.ngfactory.d.ts +0 -3
- package/cdk-overlay/wkly-datetime-picker-cdk-overlay.metadata.json +0 -1
- package/esm2015/cdk-overlay/public-api.js +0 -127
- package/esm2015/cdk-overlay/public-api.ngfactory.js +0 -19
- package/esm2015/cdk-overlay/public-api.ngsummary.json +0 -1
- package/esm2015/cdk-overlay/wkly-datetime-picker-cdk-overlay.ngsummary.json +0 -1
- package/esm2015/config.js +0 -241
- package/esm2015/config.ngsummary.json +0 -1
- package/esm2015/field.component.css.shim.ngstyle.js +0 -9
- package/esm2015/field.component.js +0 -240
- package/esm2015/field.component.ngfactory.js +0 -52
- package/esm2015/field.component.ngsummary.json +0 -1
- package/esm2015/picker.component.js +0 -929
- package/esm2015/picker.component.ngfactory.js +0 -137
- package/esm2015/picker.component.ngsummary.json +0 -1
- package/esm2015/presentation.js +0 -295
- package/esm2015/presentation.ngsummary.json +0 -1
- package/esm2015/public-api.js +0 -24
- package/esm2015/public-api.ngfactory.js +0 -13
- package/esm2015/public-api.ngsummary.json +0 -1
- package/esm2015/wkly-datetime-picker.ngsummary.json +0 -1
- package/fesm2015/wkly-datetime-picker-cdk-overlay.js +0 -131
- package/fesm2015/wkly-datetime-picker-cdk-overlay.js.map +0 -1
- package/fesm2015/wkly-datetime-picker.js +0 -1713
- package/fesm2015/wkly-datetime-picker.js.map +0 -1
- package/field.component.css.shim.ngstyle.d.ts +0 -1
- package/field.component.ngfactory.d.ts +0 -1
- package/picker.component.ngfactory.d.ts +0 -1
- package/public-api.ngfactory.d.ts +0 -3
- package/wkly-datetime-picker.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.mjs","../../../projects/wkly-datetime-picker.11/src/config.ts","../../../projects/wkly-datetime-picker.11/src/picker.component.ts","../../../projects/wkly-datetime-picker.11/src/presentation.ts","../../../projects/wkly-datetime-picker.11/src/field.component.ts","../../../projects/wkly-datetime-picker.11/src/public-api.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","__read","n","r","e","ar","push","error","SuppressedError","WKLY_CLOCK","InjectionToken","providedIn","factory","now","Date","WKLY_CONFIG","WKLY_LOCALIZATION","WKLY_TRANSLATIONS","_a","_b","_d","_e","_f","kind","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","DEFAULT_OVERSCAN_WEEKS","_y","_z","_0","_1","_2","_3","_4","EventEmitter","_5","_6","_7","_8","_9","WklyPickerInputsPropertyKeys","Mode","Value","_c","CalendarAdapter","Locale","WeekOffset","ViewportPreset","HourCycle","ShowSeconds","MinuteStep","SecondStep","Min","Max","IsDateDisabled","IsTimeDisabled","RangeValidator","AllowRangeAcrossDisabled","Required","Disabled","WeekLabelMode","WeekLabelFormatter","WeekCacheSize","OverscanWeeks","AriaLabel","AriaDescribedBy","InitialEpochDay","CloseOnBackdrop","Validators","Translations","WklyPickerOutputsPropertyKeys","ValueChange","ValidationChange","Opened","Closed","ViewportChange","ViewModeChange","Directive","args","inputs","outputs","__decorate","Input","Output","WklyDateTimePickerComponent","defaultLocale","defaults","clock","strings","defaultTranslations","platform","host","changeDetector","_this","_super","presentation","viewMode","endView","effectiveLocale","effectiveOffset","effectiveHourCycle","direction","rows","weekdays","drafts","errors","today","focused","anchorWeek","firstWeek","visibleCount","rowHeight","scrollHeight","paddingTop","initialized","compact","baseWeek","firstSupportedDay","lastSupportedDay","firstSupportedWeek","lastSupportedWeek","initialMonth","clipMonth","browser","destroyed","snapPending","onChange","onTouched","validatorChanged","configErrors","pendingValue","emittedValue","manualDateEndpoint","isPlatformBrowser","ngOnInit","initialize","ngOnChanges","changes","keys","JSON","stringify","focus","configure","load","position","check","scrollToEpochDay","initialEpochDay","Math","floor","getTime","undefined","forEach","key","coerceBoolean","locale","test","adapter","WklyGregorianCalendarAdapter","firstDay","getLocaleFirstDayOfWeek","_","resolveWeekOffset","weekOffset","integer","RangeError","includes","preset","visibleWeekCount","extraWeeksBefore","extraWeeksAfter","generator","createWeekGenerator","cacheSize","setSupportedScrollRange","Intl","DateTimeFormat","hour","timeZone","resolvedOptions","hour12","from","formatWeekday","supportedEpochDayRange","first","last","supportedYearRange","firstYear","lastYear","yearOf","day","epochDayToDate","year","low","high","mid","ceil","absoluteWeekOf","clampFirstWeek","week","max","min","ngAfterViewInit","resetScroll","ResizeObserver","observer","nativeElement","clientWidth","row","querySelector","height","parseFloat","getComputedStyle","renderRows","observe","ngOnDestroy","disconnect","scrollEndTimer","clearTimeout","clearCache","t","resolveWklyTranslation","defineProperty","endsWith","startsWith","firstEpochDayOf","formatMonth","formatYear","blank","safe","date","minute","second","present","validation","validateSelection","v","decodeIso","hasDate","epochDay","report","writeValue","registerOnChange","fn","registerOnTouched","setDisabledState","disabled","validate","_control","wkly","registerOnValidatorChange","touched","Promise","resolve","then","changed","emit","result","validateDrafts","selection","mode","isRange","hasTime","showSeconds","required","trackDraft","index","orderDrafts","every","draft","some","unsupportedEpochDay","a","dateToEpochDay","finish","positionOnManualDate","canSubmit","commit","submit","reason","cancel","map","assign","clockDraft","getUTCHours","getUTCMinutes","getUTCSeconds","initializeManualRange","seed","find","initial","markForCheck","toggleView","setTimeout","target","months","getMonths","label","monthCount","draftDayDifference","days","inDays","replace","NumberFormat","useGrouping","format","validateDate","formatDay","join","toggleEndView","view","setDraftDayDifference","field","date_1","month","monthCode","displayHour","period","selected","inRange","dayDisabled","isDateDisabled","endpoint","calendarDate","select","event","delta","shiftKey","preventDefault","options","viewportPreset","calendarMonthBounds","start","end","before","after","align","detectChanges","scroller","scrollTop","round","scroll","element","scheduleSnap","relativeRows","sign","abs","requestedFirst","offset","snapWeek","showFirstWeek","canMoveWeek","moveWeek","overscan","createWeekRows","startWeek","count","firstVisibleWeek","weekLabelMode","weekLabelFormatter","isDayDisabled","firstVisibleAbsoluteWeek","lastVisibleAbsoluteWeek","anchorAbsoluteWeek","trackCell","_i","cell","trackRow","absoluteWeek","focusDay","scrollToAbsoluteWeek","scrollToCalendarDate","scrollToValue","fallback","preventScroll","WklyPickerInputs","Component","selector","template","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","NG_VALIDATORS","Inject","LOCALE_ID","decorators","type","PLATFORM_ID","ElementRef","ChangeDetectorRef","ViewChild","WklyDateTimePickerDialogService","resolver","injector","app","document","open","trigger","onCancel","backdrop","Error","dialog","createElement","setAttribute","style","padding","border","borderRadius","width","maxWidth","maxHeight","background","component","resolveComponentFactory","instance","appendChild","location","body","attachView","hostView","click","getBoundingClientRect","clientX","left","right","clientY","top","bottom","keydown","controls","querySelectorAll","filter","el","tabIndex","getClientRects","visibility","activeElement","addEventListener","showModal","destroy","removeEventListener","close","detachView","remove","Injectable","ComponentFactoryResolver","Injector","ApplicationRef","Document","DOCUMENT","WklyTriggerBase","ref","subscriptions","change","picker","copy","subscribe","display","changeDetectorRef","blur","unsubscribe","checkValue","INPUT_NAMES_1","INPUT_NAMES","INPUT_NAMES_1_1","name","tagName","readOnly","HostListener","WklyDateTimePickerDialogDirective","service","triggerInjector","exportAs","WklyFieldComponent","hideLabel","previousLabel","nextLabel","step","invalid","labels","valueChange","complete","touchY","touchSteps","touchChanged","typed","inputTimer","wheelTimer","minimumIntegerDigits","typedValue","Number","cancelInput","floorMod","neighbor","stepBy","scrollBy","begin","input","raw","numeric","character","normalizeDigits","signed","digits","normalized","slice","search_1","trim","toLocaleLowerCase","matches","item","stopPropagation","wheel","deltaY","touchStart","touches","touchMove","applyTouchY","touchEnd","changedTouches","y","steps","NgModule","imports","CommonModule","declarations","entryComponents","exports"],"mappings":"2nBAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI9B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC,aAGVS,EAAUV,EAAGC,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,GA4HpDX,OAAOc,gBAgBpBC,EAASC,GACvB,IAAIC,EAAsB,mBAAXC,QAAyBA,OAAOC,SAAUC,EAAIH,GAAKD,EAAEC,GAAII,EAAI,EAC5E,GAAID,EAAG,OAAOA,EAAEb,KAAKS,GACrB,GAAIA,GAAyB,iBAAbA,EAAEM,OAAqB,MAAO,CAC1CC,KAAM,WAEF,OADIP,GAAKK,GAAKL,EAAEM,SAAQN,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAEK,KAAMI,MAAOT,KAG5C,MAAM,IAAIP,UAAUQ,EAAI,0BAA4B,4CAGtCS,EAAOV,EAAGW,GACxB,IAAIP,EAAsB,mBAAXF,QAAyBF,EAAEE,OAAOC,UACjD,IAAKC,EAAG,OAAOJ,EACf,IAAmBY,EAAYC,EAA3BR,EAAID,EAAEb,KAAKS,GAAOc,EAAK,GAC3B,IACI,WAAc,IAANH,GAAgBA,KAAM,MAAQC,EAAIP,EAAEE,QAAQE,MAAMK,EAAGC,KAAKH,EAAEJ,OAExE,MAAOQ,GAASH,EAAI,CAAEG,MAAOA,WAEzB,IACQJ,IAAMA,EAAEH,OAASL,EAAIC,EAAU,SAAID,EAAEb,KAAKc,WAExC,GAAIQ,EAAG,MAAMA,EAAEG,OAE7B,OAAOF,EAiEgB9B,OAAOc,OAoEkB,mBAApBmB,iBAAiCA,gBAwC/D,2iBC5UaC,EAAa,IAAIC,EAAAA,eAA0B,aAAc,CACpEC,WAAY,OACZC,QAAS,WAAM,MAAA,CAAGC,IAAK,WAAM,OAAA,IAAIC,UAEtBC,EAAc,IAAIL,EAAAA,eAC7B,cACA,CAAEC,WAAY,OAAQC,QAAS,WAAM,MAAA,MAE1BI,EAAoB,IAAIN,EAAAA,eACnC,oBACA,CAAEC,WAAY,OAAQC,QAAS,WAAM,MAAA,MAE1BK,EAAoB,IAAIP,EAAAA,eACnC,oBACA,CAAEC,WAAY,OAAQC,QAAS,WAAM,MAAA,QAIvC,WA2CWzB,KAAA+B,GAAyD,WACzD/B,KAAAgC,GAAwD,KAExDhC,KAAAiC,GAAgD,GAChDjC,KAAAkC,GACP,KACOlC,KAAAmC,GAAoE,CAC3EC,KAAM,cAECpC,KAAAqC,GAA0D,SAC1DrC,KAAAsC,IAAsD,EACtDtC,KAAAuC,GAAoD,EACpDvC,KAAAwC,GAAoD,EACpDxC,KAAAyC,GAAoD,KACpDzC,KAAA0C,GAAoD,KAE7D1C,KAAA2C,GACE,KAEF3C,KAAA4C,GACE,KAEF5C,KAAA6C,GACE,KACO7C,KAAA8C,IAA0D,EAC1D9C,KAAA+C,IAA0C,EAC1C/C,KAAAgD,IAA0C,EAC1ChD,KAAAiD,GACP,SAEFjD,KAAAkD,GACE,KACOlD,KAAAmD,GAA+C,IAC/CnD,KAAAoD,GACPC,EAAAA,uBACOrD,KAAAsD,GAA0D,KAC1DtD,KAAAuD,GAAgE,KAChEvD,KAAAwD,GAAgE,KAChExD,KAAAyD,IAAiD,EACjDzD,KAAA0D,GAE4B,GAErC1D,KAAA2D,GAAuE,KAC7D3D,KAAA4D,GACR,IAAIC,EAAAA,aACI7D,KAAA8D,GAAmD,IAAID,EAAAA,cAE/D,GACQ7D,KAAA+D,GAAyC,IAAIF,EAAAA,aAC7C7D,KAAAgE,GACR,IAAIH,EAAAA,aACI7D,KAAAiE,GACR,IAAIJ,EAAAA,cAAiC,GAC7B7D,KAAAkE,GAAiD,IAAIL,EAAAA,gBAtDrDM,EAAAA,6BAA6BC,KAAIpC,EACjCmC,EAAAA,6BAA6BE,MAAKC,EAClCH,EAAAA,6BAA6BI,gBAAetC,EAC5CkC,EAAAA,6BAA6BK,OAAMtC,EACnCiC,EAAAA,6BAA6BM,WAAUtC,EAEvCgC,EAAAA,6BAA6BO,eAAcrC,EAG3C8B,EAAAA,6BAA6BQ,UAASrC,EACtC6B,EAAAA,6BAA6BS,YAAWrC,EACxC4B,EAAAA,6BAA6BU,WAAUrC,EACvC2B,EAAAA,6BAA6BW,WAAUrC,EACvC0B,EAAAA,6BAA6BY,IAAGrC,EAChCyB,EAAAA,6BAA6Ba,IAAGrC,EAEzCwB,EAAAA,6BAA6Bc,eAAcrC,EAG3CuB,EAAAA,6BAA6Be,eAAcrC,EAG3CsB,EAAAA,6BAA6BgB,eAAcrC,EAElCqB,EAAAA,6BAA6BiB,yBAAwBrC,EACrDoB,EAAAA,6BAA6BkB,SAAQrC,EACrCmB,EAAAA,6BAA6BmB,SAAQrC,EACrCkB,EAAAA,6BAA6BoB,cAAarC,EAGnDiB,EAAAA,6BAA6BqB,mBAAkBrC,EAEtCgB,EAAAA,6BAA6BsB,cAAarC,EAC1Ce,EAAAA,6BAA6BuB,cAAapC,EAE1Ca,EAAAA,6BAA6BwB,UAASpC,EACtCY,EAAAA,6BAA6ByB,gBAAepC,EAC5CW,EAAAA,6BAA6B0B,gBAAepC,EAC5CU,EAAAA,6BAA6B2B,gBAAepC,EAC5CS,EAAAA,6BAA6B4B,WAAUpC,EAIhDQ,EAAAA,6BAA6B6B,aAAYpC,EAC/BqC,EAAAA,8BAA8BC,YAAWpC,EAEzCmC,EAAAA,8BAA8BE,iBAAgBpC,EAG9CkC,EAAAA,8BAA8BG,OAAMpC,EACpCiC,EAAAA,8BAA8BI,OAAMpC,EAEpCgC,EAAAA,8BAA8BK,eAAcpC,EAE5C+B,EAAAA,8BAA8BM,mCAjG1CC,EAAAA,UAASC,KAAA,CAAC,CACTC,OAAQ,CACN,OACA,QACA,kBACA,SACA,aACA,iBACA,YACA,cACA,aACA,aACA,MACA,MACA,iBACA,iBACA,iBACA,2BACA,WACA,WACA,gBACA,qBACA,gBACA,gBACA,YACA,kBACA,kBACA,kBACA,aACA,gBAEFC,QAAS,CACP,cACA,mBACA,SACA,SACA,iBACA,sBAMOC,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDAEQD,EAAAA,CAARC,EAAAA,uDAGQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,wDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDAEDD,EAAAA,CADCC,EAAAA,uDAIDD,EAAAA,CADCC,EAAAA,uDAIDD,EAAAA,CADCC,EAAAA,uDAGQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDAGDD,EAAAA,CADCC,EAAAA,uDAGQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDAEQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,uDACQD,EAAAA,CAARC,EAAAA,sDAIDD,EAAAA,CADCC,EAAAA,uDAESD,EAAAA,CAATE,EAAAA,wDAESF,EAAAA,CAATE,EAAAA,wDAGSF,EAAAA,CAATE,EAAAA,wDACSF,EAAAA,CAATE,EAAAA,wDAESF,EAAAA,CAATE,EAAAA,wDAESF,EAAAA,CAATE,EAAAA,0ECLD,SAAAC,EAC6BC,EACEC,EACDC,EACOC,EACAC,EACdC,EACbC,EACAC,GARV,IAAAC,EAUEC,EAAA9H,KAAAK,OAAOA,YAToBwH,EAAAR,cAAAA,EACEQ,EAAAP,SAAAA,EACDO,EAAAN,MAAAA,EACOM,EAAAL,QAAAA,EACAK,EAAAJ,oBAAAA,EAE3BI,EAAAF,KAAAA,EACAE,EAAAD,eAAAA,EAnDVC,EAAAE,aAAuC,SACvCF,EAAAG,SAAkC,WAClCH,EAAAI,QAA2B,OAE3BJ,EAAAK,gBAAkB,QAClBL,EAAAM,gBAAkC,EAClCN,EAAAO,mBAAoC,MACpCP,EAAAQ,UAAY,MACZR,EAAAS,KAAc,GACdT,EAAAU,SAAqB,GACrBV,EAAAW,OAAkB,GAClBX,EAAAY,OAAyC,GACzCZ,EAAAa,MAAQ,EACRb,EAAAc,QAAU,EACVd,EAAAe,WAAa,EACbf,EAAAgB,UAAY,EACZhB,EAAAiB,aAAe,EACfjB,EAAAkB,UAAY,GACZlB,EAAAmB,aAAe,OACfnB,EAAAoB,WAAa,EACbpB,EAAAqB,aAAc,EACdrB,EAAAsB,SAAU,EACDtB,EAAArD,6BAA+BA,EAAAA,6BAChCqD,EAAAuB,SAAW,EACXvB,EAAAwB,kBAAoB,EACpBxB,EAAAyB,iBAAmB,EACnBzB,EAAA0B,mBAAqB,EACrB1B,EAAA2B,kBAAoB,EAEpB3B,EAAA4B,aAAe,GACf5B,EAAA6B,WAAY,EACZ7B,EAAA8B,SAAU,EAEV9B,EAAA+B,WAAY,EAEZ/B,EAAAgC,aAAc,EACdhC,EAAAiC,SAA6C,aAC7CjC,EAAAkC,UAAwB,aACxBlC,EAAAmC,iBAA+B,aAC/BnC,EAAAoC,aAAsC,GACtCpC,EAAAqC,aAAgC,KAChCrC,EAAAsC,aAA8B,KAC9BtC,EAAAuC,mBAAqB,EAY3BvC,EAAK8B,QAAUU,EAAAA,kBAAkB3C,YAhE3BzH,EAAAmH,EAAAU,GAkERV,EAAAtH,UAAAwK,SAAA,WACEjK,KAAKkK,cAEPnD,EAAAtH,UAAA0K,YAAA,SAAYC,GACV,GAAIpK,KAAK6I,YAAa,CACpB,GACkC,IAAhCzJ,OAAOiL,KAAKD,GAAS1J,QACrB0J,EAAQjG,EAAAA,6BAA6BE,QACrCrE,KAAK8J,eACHQ,KAAKC,UAAUvK,KAAKmE,EAAAA,6BAA6BE,QAGnD,YADArE,KAAK8J,aAAe,MAGtB,IAAMU,EAAQxK,KAAKsI,QACnBtI,KAAKyK,YAEHL,EAAQjG,EAAAA,6BAA6BE,QACrC+F,EAAQjG,EAAAA,6BAA6BC,OACrCgG,EAAQjG,EAAAA,6BAA6BI,kBAErCvE,KAAK0K,KAAK1K,KAAKmE,EAAAA,6BAA6BE,QAC5CrE,KAAK2K,SAAS3K,KAAKsI,SAAS,KAE5BtI,KAAK4K,QACDR,EAAQjG,EAAAA,6BAA6BO,gBACvC1E,KAAK2K,SAASH,GAAO,GAClBxK,KAAK6K,iBAAiBL,MAIjCzD,EAAAtH,UAAAyK,WAAA,WACE,IAAIlK,KAAK6I,YAAT,CACA7I,KAAKyK,YACL,IAAMK,EAAkB9K,KAAKmE,EAAAA,6BAA6B0B,iBAC1D7F,KAAKqI,MAAQrI,KAAKsJ,QACdyB,KAAKC,MAAMhL,KAAKkH,MAAMxF,MAAMuJ,UAAY,OACpB,OAApBH,EACE,EACAA,EACN9K,KAAKsI,QACiB,OAApBwC,OACsCI,IAAlClL,KAAKiH,SAAS6D,gBACZ9K,KAAKqI,MACLrI,KAAKiH,SAAS6D,gBAChBA,EACN9K,KAAK0K,KAAK1K,KAAKmE,EAAAA,6BAA6BE,QAC5CrE,KAAK6I,aAAc,EACnB7I,KAAK2K,SAAS3K,KAAKsI,SAAS,KAE9BvB,EAAAtH,UAAAgL,UAAA,mBAAAjD,EAAAxH,KACEA,KAAK4J,aAAe,GACpB,CACEzF,EAAAA,6BAA6BS,YAC7BT,EAAAA,6BAA6BiB,yBAC7BjB,EAAAA,6BAA6BkB,SAC7BlB,EAAAA,6BAA6BmB,SAC7BnB,EAAAA,6BAA6B2B,iBAC7BqF,SACA,SAACC,GAAQ,OAAE5D,EAAa4D,GAAOC,EAAAA,cAAe7D,EAAa4D,OAE7DpL,KAAK6H,gBACH7H,KAAKmE,EAAAA,6BAA6BK,SAClCxE,KAAKiH,SAASqE,QACdtL,KAAKgH,cACPhH,KAAKgI,UAAY,sBAAsBuD,KAAKvL,KAAK6H,iBAC7C,MACA,MACJ7H,KAAKwL,QACHxL,KAAKmE,EAAAA,6BAA6BI,kBAClC,IAAIkH,EAAAA,6BAA6BzL,KAAK6H,iBACxC,IACE,IAAI6D,OAA4B,EAChC,IACEA,EAAWC,EAAAA,wBAAwB3L,KAAK6H,iBACxC,MAAO+D,IAST,GARA5L,KAAK8H,gBAAkB+D,EAAAA,kBACrB7L,KAAK6H,gBACL7H,KAAKmE,EAAAA,6BAA6BM,YAClCzE,KAAKiH,SAAS6E,WACdJ,GAEFK,EAAAA,QAAQ/L,KAAKmE,EAAAA,6BAA6BsB,gBAC1CsG,EAAAA,QAAQ/L,KAAKmE,EAAAA,6BAA6BuB,gBAExC1F,KAAKmE,EAAAA,6BAA6BsB,eAAiB,GACnDzF,KAAKmE,EAAAA,6BAA6BuB,eAAiB,GACnD1F,KAAKmE,EAAAA,6BAA6BuB,eAAiB,GAEnD,MAAM,IAAIsG,WACZ,IACG,CACC,WACA,OACA,OACA,iBACA,aACA,cACAC,SAASjM,KAAKmE,EAAAA,6BAA6BC,OAE7C,MAAM,IAAI4H,WACZ,IAAME,EAASlM,KAAKmE,EAAAA,6BAA6BO,gBACjD,GAAoB,UAAhBwH,EAAO9J,OACT2J,EAAAA,QAAQG,EAAOC,kBACXD,EAAOC,iBAAmB,GAAKD,EAAOC,iBAAmB,IAC3D,MAAM,IAAIH,WAEd,GAAoB,0BAAhBE,EAAO9J,SACT,IAAgB,IAAAH,EAAA9B,EAAA,CACd+L,EAAOE,kBAAoB,EAC3BF,EAAOG,iBAAmB,IAC3BnK,EAAAD,EAAAtB,QAAAuB,EAAArB,KAAAqB,EAAAD,EAAAtB,OAAE,CAHE,IAAMI,EAACmB,EAAAtB,MAKV,GADAmL,EAAAA,QAAQhL,GACJA,EAAI,GAAKA,EAAI,GAAI,MAAM,IAAIiL,6GAEnChM,KAAKsM,UAAYC,EAAAA,oBAAoB,CACnCT,WAAY9L,KAAK8H,gBACjB0E,UAAWxM,KAAKmE,EAAAA,6BAA6BsB,iBAE/C,MAAOmG,GACP5L,KAAK4J,aAAazI,KAChBC,EAAAA,MACE,sBACApB,KAAKmE,EAAAA,6BAA6BM,cAGtCzE,KAAKsM,UAAYC,EAAAA,sBACjBvM,KAAK8H,gBAAkB,EAEzB9H,KAAKyM,0BACLzM,KAAK+H,mBAC8C,QAAjD/H,KAAKmE,EAAAA,6BAA6BQ,YAEmB,WAAjD3E,KAAKmE,EAAAA,6BAA6BQ,YAChC,IAAI+H,KAAKC,eAAe3M,KAAK6H,gBAAiB,CAC5C+E,KAAM,UACNC,SAAU,QACTC,kBAAkBC,OALvB,MAQE,MACR/M,KAAKkI,SAAW3I,MAAMyN,KAAK,CAAEtM,OAAQ,IAAK,SAACkL,EAAGnL,GAC5C,OAAA+G,EAAKgE,QAAQyB,cAAczF,EAAKM,gBAAkBrH,EAAG,aAGjDsG,EAAAtH,UAAAgN,wBAAA,WAAA,IAAAjF,EAAAxH,KACFsE,EAAAxD,EAAgBd,KAAKwL,QAAQ0B,uBAAsB,GAAlDC,EAAK7I,EAAA,GAAE8I,EAAI9I,EAAA,GACVrC,EAAAnB,EAAwBd,KAAKwL,QAAQ6B,mBAAkB,GAAtDC,EAASrL,EAAA,GAAEsL,EAAQtL,EAAA,GACpBuL,EAAS,SAACC,GAAgB,OAAAjG,EAAKgE,QAAQkC,eAAeD,GAAKE,MACjE,GAAIH,EAAOL,GAASG,EAAW,CAG7B,IAFA,IAAIM,EAAMT,EACRU,EAAOT,EACFQ,EAAMC,GAAM,CAEbL,EADEM,EAAM/C,KAAKC,OAAO4C,EAAMC,GAAQ,IACpBP,EAAWM,EAAME,EAAM,EACpCD,EAAOC,EAEdX,EAAQS,EAEV,GAAIJ,EAAOJ,GAAQG,EAAU,CAG3B,IAFIK,EAAMT,EACRU,EAAOT,EACFQ,EAAMC,GAAM,CACjB,IAAMC,EACFN,EADEM,EAAM/C,KAAKgD,MAAMH,EAAMC,GAAQ,IACnBN,EAAUM,EAAOC,EAAM,EACpCF,EAAME,EAEbV,EAAOQ,EAET,GACET,EAAQC,GACRI,EAAOL,GAASG,GAChBE,EAAOL,GAASI,GAChBC,EAAOJ,GAAQE,GACfE,EAAOJ,GAAQG,EAEf,MAAM,IAAIvB,WAAW,oDACvBhM,KAAKgJ,kBAAoBmE,EACzBnN,KAAKiJ,iBAAmBmE,EACxBpN,KAAKkJ,mBAAqB8E,EAAAA,eAAeb,EAAOnN,KAAK8H,iBACrD9H,KAAKmJ,kBAAoB6E,EAAAA,eAAeZ,EAAMpN,KAAK8H,kBAE7Cf,EAAAtH,UAAAwO,eAAA,SAAeC,GAErB,IAAMd,EAAOrC,KAAKoD,IAChBnO,KAAKkJ,mBACLlJ,KAAKmJ,kBAAoBnJ,KAAKyI,aAAe,GAE/C,OAAOsC,KAAKoD,IAAInO,KAAKkJ,mBAAoB6B,KAAKqD,IAAIhB,EAAMc,KAE1DnH,EAAAtH,UAAA4O,gBAAA,WAAA,IAAA7G,EAAAxH,KACEA,KAAKsO,cACDtO,KAAKsJ,SAAqC,oBAAnBiF,iBACzBvO,KAAKwO,SAAW,IAAID,gBAAe,WACjC/G,EAAKsB,QAAUtB,EAAKF,KAAKmH,cAAcC,YAAc,IACrD,IAAMC,EAAMnH,EAAKF,KAAKmH,cAAcG,cAClC,aAGIC,EAASF,EAAMG,WAAWC,iBAAiBJ,GAAKE,QAAU,EAC5DA,GAAUA,IAAWrH,EAAKkB,YAC5BlB,EAAKkB,UAAYmG,EACjBrH,EAAKmB,aAAgC,KAAjBnB,EAAKkB,UACzBlB,EAAKwH,aACLxH,EAAK8G,kBAGTtO,KAAKwO,SAASS,QAAQjP,KAAKsH,KAAKmH,iBAGpC1H,EAAAtH,UAAAyP,YAAA,WACElP,KAAKuJ,WAAY,EACbvJ,KAAKwO,UAAUxO,KAAKwO,SAASW,aAC7BnP,KAAKoP,gBAAgBC,aAAarP,KAAKoP,gBACvCpP,KAAKsM,WAAWtM,KAAKsM,UAAUgD,cAErCvI,EAAAtH,UAAA8P,EAAA,SAAEnE,GACA,OAAOoE,EAAAA,uBACLpE,EACApL,KAAK6H,gBACL7H,KAAKmE,EAAAA,6BAA6B6B,eAChChG,KAAKoH,oBACPpH,KAAKmH,UAGT/H,OAAAqQ,eAAI1I,EAAAtH,UAAA,UAAO,KAAX,WACE,OAAOO,KAAKmE,EAAAA,6BAA6BC,MAAMsL,SAAS,2CAE1DtQ,OAAAqQ,eAAI1I,EAAAtH,UAAA,UAAO,KAAX,WACE,OAAQO,KAAKmE,EAAAA,6BAA6BC,MAAMuL,WAAW,yCAE7DvQ,OAAAqQ,eAAI1I,EAAAtH,UAAA,UAAO,KAAX,WACE,MAC8C,SAA5CO,KAAKmE,EAAAA,6BAA6BC,OACU,eAA5CpE,KAAKmE,EAAAA,6BAA6BC,uCAGtChF,OAAAqQ,eAAI1I,EAAAtH,UAAA,gBAAa,KAAjB,WACE,MACwB,cAAtBO,KAAK0H,eACwC,SAA5C1H,KAAKmE,EAAAA,6BAA6BC,OACf,WAAlBpE,KAAK2H,2CAGXvI,OAAAqQ,eAAI1I,EAAAtH,UAAA,QAAK,KAAT,WACE,IACE,IAAMP,EAAIc,KAAKwL,QAAQkC,eACrB3C,KAAKoD,IACHnO,KAAKgJ,kBACL+B,KAAKqD,IACHpO,KAAKiJ,iBACL2G,EAAAA,gBAAgB5P,KAAKuI,WAAYvI,KAAK8H,oBAI5C,OAAO9H,KAAKwL,QAAQqE,YAAY3Q,GAAK,IAAMc,KAAKwL,QAAQsE,WAAW5Q,GACnE,MAAO0M,GACP,MAAO,qCAGXxM,OAAAqQ,eAAI1I,EAAAtH,UAAA,YAAS,KAAb,WACE,OACGO,KAAKmE,EAAAA,6BAA6BmB,YAClCtF,KAAKoI,OAAO1H,QACS,OAAtBV,KAAK6J,8CAGD9C,EAAAtH,UAAAsQ,MAAA,SAAMtC,GACZ,IAAMuC,EAAOjF,KAAKoD,IAChBnO,KAAKgJ,kBACL+B,KAAKqD,IAAIpO,KAAKiJ,iBAAkBwE,IAElC,MAAO,CACLwC,KAAMjQ,KAAKwL,QAAQkC,eAAesC,GAClCpD,KAAM,EACNsD,OAAQ,EACRC,OAAQ,EACRC,SAAS,IAGbrJ,EAAAtH,UAAAiL,KAAA,SAAK9J,GAAL,IAAA4G,EAAAxH,KACEA,KAAKmI,OAAS,CAACnI,KAAK+P,MAAM/P,KAAKsI,SAAUtI,KAAK+P,MAAM/P,KAAKsI,UACzD,IAAM+H,EAAaC,EAAAA,kBAAkB1P,EAAOZ,KAAMA,KAAKwL,SACzC,OAAV5K,GAAmByP,EAAW3P,SACA,iBAAVE,EAAqB,CAACA,GAASA,GAC9CuK,SAAQ,SAACoF,EAAG9P,GACjB,IAAMvB,EAAIsR,EAAAA,UAAUD,GACpB/I,EAAKW,OAAO1H,GAAK,CACfwP,KAAMzI,EAAKiJ,QACPjJ,EAAKgE,QAAQkC,eAAexO,EAAEwR,UAC9BlJ,EAAKuI,MAAMvI,EAAKa,OAAO4H,KAC3BrD,KAAM1N,EAAE0N,KACRsD,OAAQhR,EAAEgR,OACVC,OAAQjR,EAAEiR,OACVC,SAAS,GAED,IAAN3P,GAAW+G,EAAKiJ,UAASjJ,EAAKc,QAAUpJ,EAAEwR,aAG9CL,EAAW3P,QACbV,KAAK6J,aAAe,KACpB7J,KAAK2Q,OAAON,IACPrQ,KAAK4K,SAEd7D,EAAAtH,UAAAmR,WAAA,SAAWhQ,GACTZ,KAAKmE,EAAAA,6BAA6BE,OAASzD,EACvCZ,KAAK6I,cACP7I,KAAK0K,KAAK9J,GACVZ,KAAK2K,SAAS3K,KAAKsI,SAAS,KAGhCvB,EAAAtH,UAAAoR,iBAAA,SAAiBC,GACf9Q,KAAKyJ,SAAWqH,GAElB/J,EAAAtH,UAAAsR,kBAAA,SAAkBD,GAChB9Q,KAAK0J,UAAYoH,GAEnB/J,EAAAtH,UAAAuR,iBAAA,SAAiBC,GACfjR,KAAKmE,EAAAA,6BAA6BmB,UAAY2L,GAEhDlK,EAAAtH,UAAAyR,SAAA,SAASC,GACP,OAAOnR,KAAKoI,OAAO1H,OAAS,CAAE0Q,KAAMpR,KAAKoI,QAAW,MAEtDrB,EAAAtH,UAAA4R,0BAAA,SAA0BP,GACxB9Q,KAAK2J,iBAAmBmH,GAE1B/J,EAAAtH,UAAA6R,QAAA,WAAA,IAAA9J,EAAAxH,KACEuR,QAAQC,UAAUC,MAAK,WAAM,OAAAjK,EAAKkC,gBAE5B3C,EAAAtH,UAAAkR,OAAA,SAAOvI,GACb,IAAMsJ,EAAUpH,KAAKC,UAAUvK,KAAKoI,UAAYkC,KAAKC,UAAUnC,GAC/DpI,KAAKoI,OAASA,EACVsJ,IACF1R,KAAKiG,EAAAA,8BAA8BE,kBAAkBwL,KAAKvJ,GAC1DpI,KAAK2J,qBAGT5C,EAAAtH,UAAAmL,MAAA,WACE,IAAMgH,EAASC,EAAAA,eAAe,CAC5B1J,OAAQnI,KAAKmI,OACbyB,aAAc5J,KAAK4J,aACnB4B,QAASxL,KAAKwL,QACdsG,UAAW9R,KACX+R,KAAM/R,KAAKmE,EAAAA,6BAA6BC,MACxC4N,QAAShS,KAAKgS,QACdvB,QAASzQ,KAAKyQ,QACdwB,QAASjS,KAAKiS,QACdC,YAAalS,KAAKmE,EAAAA,6BAA6BS,aAC/CuN,SAAUnS,KAAKmE,EAAAA,6BAA6BkB,YAE9CrF,KAAK6J,aAAe+H,EAAO/H,aAC3B7J,KAAK2Q,OAAOiB,EAAOxJ,SAErBrB,EAAAtH,UAAA2S,WAAA,SAAWC,GAET,OAAOA,GAEDtL,EAAAtH,UAAA6S,YAAA,WAAA,IAAA9K,EAAAxH,KACN,GAAKA,KAAKgS,SAAYhS,KAAKmI,OAAOoK,OAAM,SAACC,GAAU,OAAAA,EAAMpC,aACrDpQ,KAAKmI,OAAOsK,MAAK,SAACD,GAAU,YAA8BtH,IAA9BsH,EAAME,uBAEtC,IACE,IAAMC,EAAI3S,KAAKmI,OAAO,GACpBhJ,EAAIa,KAAKmI,OAAO,GACZiD,EAAM,SAAClM,GACX,OAAsC,MAAtCsI,EAAKgE,QAAQoH,eAAe1T,EAAE+Q,MACd,MAAf/Q,EAAE0N,MAAQ,GACO,IAAjB1N,EAAEgR,QAAU,IACZhR,EAAEiR,QAAU,IACX/E,EAAIuH,GAAKvH,EAAIjM,KAAIa,KAAKmI,OAAS,CAAChJ,EAAGwT,IACvC,MAAO/G,MAIX7E,EAAAtH,UAAAoT,OAAA,WACM7S,KAAKmE,EAAAA,6BAA6BmB,YACtCtF,KAAKsS,cACiB,WAAlBtS,KAAK2H,UAAyB3H,KAAKyQ,SAASzQ,KAAK8S,uBACrD9S,KAAK4K,QACqB,WAAtB5K,KAAK0H,cAA6B1H,KAAK+S,WAAW/S,KAAKgT,WAErDjM,EAAAtH,UAAAuT,OAAA,WACN,GAAKhT,KAAK+S,UAAV,CACA,IAAMpS,EAAOX,KAAK6J,aAEhBS,KAAKC,UAAU5J,KACf2J,KAAKC,UAAUvK,KAAKmE,EAAAA,6BAA6BE,UAEjDrE,KAAKmE,EAAAA,6BAA6BE,OAAS1D,EAC3CX,KAAK8J,aAAeQ,KAAKC,UAAU5J,GACnCX,KAAKyJ,SAAS9I,GACdX,KAAKiG,EAAAA,8BAA8BC,aAAayL,KAAKhR,IAEvDX,KAAK0J,cAEP3C,EAAAtH,UAAAwT,OAAA,SAAOC,QAAA,IAAAA,IAAAA,EAAA,UACLlT,KAAK4K,QACA5K,KAAK+S,YACV/S,KAAKgT,SACqB,cAAtBhT,KAAK0H,cACP1H,KAAKiG,EAAAA,8BAA8BI,QAAQsL,KAAKuB,KAEpDnM,EAAAtH,UAAA0T,OAAA,SAAOD,QAAA,IAAAA,IAAAA,EAAA,gBACDlT,KAAKmE,EAAAA,6BAA6BmB,YACtCtF,KAAK0K,KAAK1K,KAAKmE,EAAAA,6BAA6BE,QAC5CrE,KAAK0J,YACL1J,KAAKiG,EAAAA,8BAA8BI,QAAQsL,KAAKuB,KAElDnM,EAAAtH,UAAAiC,IAAA,WAAA,IAAA8F,EAAAxH,KACE,IAAIA,KAAKmE,EAAAA,6BAA6BmB,UAAtC,CACA,IAAMvE,EAAIf,KAAKkH,MAAMxF,MACf+L,EAAM1C,KAAKC,MAAMjK,EAAEkK,UAAY,OACrCjL,KAAKmI,OAAS,CAAC,EAAG,GAAGiL,KAAI,SAACf,GAAU,OAAAjT,OAAAiU,OAAAjU,OAAAiU,OAAA,GAC/B7L,EAAK8L,WAAW7F,EAAK1M,IAAE,CAC1BqP,QAAmB,IAAViC,GAAe7K,EAAKwK,aAG7BhS,KAAKyQ,UACJhD,EAAMzN,KAAKgJ,mBAAqByE,EAAMzN,KAAKiJ,kBAE5CjJ,KAAK2Q,OAAO,CAACvP,EAAAA,MAAM,2BAA4BqM,MAGjDzN,KAAKsI,QAAUmF,EACfzN,KAAK2K,SAAS8C,GAAK,GACnBzN,KAAK4K,QACL5K,KAAKiT,OAAO,UAENlM,EAAAtH,UAAA6T,WAAA,SAAW7F,EAAa/L,GAC9B,OAAAtC,OAAAiU,OAAAjU,OAAAiU,OAAA,GACKrT,KAAK+P,MAAMtC,IAAI,CAClBb,KAAMlL,EAAI6R,cACVrD,OACEnF,KAAKC,MACHtJ,EAAI8R,gBAAkBxT,KAAKmE,EAAAA,6BAA6BU,aACtD7E,KAAKmE,EAAAA,6BAA6BU,YACxCsL,OAAQnQ,KAAKmE,EAAAA,6BAA6BS,aACtCmG,KAAKC,MACHtJ,EAAI+R,gBAAkBzT,KAAKmE,EAAAA,6BAA6BW,aACtD9E,KAAKmE,EAAAA,6BAA6BW,YACtC,KAGAiC,EAAAtH,UAAAiU,sBAAA,WACN,GACG1T,KAAKgS,SACLhS,KAAKyQ,UACNzQ,KAAKmI,OAAOoK,OAAM,SAACC,GAAU,OAAAA,EAAMpC,WAHrC,CAMA,IAAIuD,EAAO3T,KAAKmI,OAAOyL,MAAK,SAACpB,GAAU,OAAAA,EAAMpC,WAC7C,IAAKuD,EAAM,CACT,GAAiD,OAA7C3T,KAAKmE,EAAAA,6BAA6BE,OAAiB,OACvD,IAAM3C,EAAM1B,KAAKkH,MAAMxF,MACjBoJ,EACJ9K,KAAKmE,EAAAA,6BAA6B0B,iBAC9B4H,EACgB,OAApB3C,OACsCI,IAAlClL,KAAKiH,SAAS6D,gBACZC,KAAKC,MAAMtJ,EAAIuJ,UAAY,OAC3BjL,KAAKiH,SAAS6D,gBAChBA,EACN6I,EAAIvU,OAAAiU,OAAAjU,OAAAiU,OAAA,GAAQrT,KAAKsT,WAAW7F,EAAK/L,IAAI,CAAE0O,SAAS,IAGlD,IAAMyD,EAAUF,EAChB3T,KAAKmI,OAASnI,KAAKmI,OAAOiL,KAAI,SAACZ,GAC7B,OAAAA,EAAMpC,QAAUoC,EAAKpT,OAAAiU,OAAAjU,OAAAiU,OAAA,GAAQQ,GAAO,CAAE5D,KAAI7Q,OAAAiU,OAAA,GAAOQ,EAAQ5D,WAE3DjQ,KAAK6S,SAEL7S,KAAKuH,eAAeuM,iBAEtB/M,EAAAtH,UAAAsU,WAAA,WAAA,IAAAvM,EAAAxH,MACMA,KAAKmE,EAAAA,6BAA6BmB,WAActF,KAAKyQ,UACzDzQ,KAAK2H,SAA6B,aAAlB3H,KAAK2H,SAA0B,SAAW,WACpC,WAAlB3H,KAAK2H,UAAuB3H,KAAK0T,wBACf,aAAlB1T,KAAK2H,UAAyB3H,KAAK8S,uBACvC9S,KAAKiG,EAAAA,8BAA8BM,gBAAgBoL,KAAK3R,KAAK2H,UACvC,aAAlB3H,KAAK2H,UAAyBqM,YAAW,WAAM,OAAAxM,EAAK8G,mBAElDvH,EAAAtH,UAAAqT,qBAAA,WACN,IAAMN,EAAQxS,KAAKmI,OAAOnI,KAAK+J,oBAC/B,GAAKyI,GAAUA,EAAMpC,QACrB,IAGE,IAAM6D,EAASjU,KAAKwL,QAAQoH,eAAeJ,EAAMvC,MACjDjQ,KAAKsI,QAAU2L,EACfjU,KAAK2K,SAASsJ,GAAQ,GACtB,MAAOrI,GACP,IACE,IAAMuB,EAAQnN,KAAKwL,QAAQoH,eAAcxT,OAAAiU,OAAAjU,OAAAiU,OAAA,GAAMb,EAAMvC,MAAI,CAAExC,IAAK,KAChEzN,KAAKsI,QAAU6E,EACfnN,KAAK2K,SAASwC,GAAO,GACrB,MAAOvB,OAGb7E,EAAAtH,UAAAyU,OAAA,SAAO1B,GACL,IACE,OAAOxS,KAAKwL,QAAQ2I,UAAU3B,EAAMvC,KAAKtC,MAAMyF,KAAI,SAAC5S,GAAM,OAAAA,EAAE4T,SAC5D,MAAOxI,GACP,MAAO,KAGX7E,EAAAtH,UAAA4U,WAAA,SAAW7B,GACT,OAAOxS,KAAKkU,OAAO1B,GAAO9R,QAAU,IAEtCtB,OAAAqQ,eAAI1I,EAAAtH,UAAA,SAAM,KAAV,WACE,OAAO6U,EAAAA,mBAAmBtU,KAAKmI,OAAQnI,KAAKwL,0CAE9CpM,OAAAqQ,eAAI1I,EAAAtH,UAAA,cAAW,KAAf,WACE,IAAM8U,EAAOvU,KAAKwU,OAClB,OAAOxU,KAAKuP,EAAE,UAAUkF,QACtB,kBACS,OAATF,EACIvU,KAAKuP,EAAE,mBACP,IAAI7C,KAAKgI,aAAa1U,KAAK6H,gBAAiB,CAC1C8M,aAAa,IACZC,OAAOL,qCAGlBnV,OAAAqQ,eAAI1I,EAAAtH,UAAA,mBAAgB,KAApB,WACE,IACE,IAAM+S,EAAQxS,KAAKmI,OAAO,GAC1B,YACgC+C,IAA9BsH,EAAME,qBACN1S,KAAKwL,QAAQqJ,aAAarC,EAAMvC,MAAMvP,OAE/B,GACF,CACLV,KAAKwL,QAAQsJ,UAAUtC,EAAMvC,MAC7BjQ,KAAKwL,QAAQqE,YAAY2C,EAAMvC,MAC/BjQ,KAAKwL,QAAQsE,WAAW0C,EAAMvC,OAC9B8E,KAAK,KACP,MAAOnJ,GACP,MAAO,qCAGX7E,EAAAtH,UAAAuV,cAAA,SAAcC,GACRjV,KAAKmE,EAAAA,6BAA6BmB,YACtCtF,KAAK4H,QAAUqN,IAEjBlO,EAAAtH,UAAA8U,KAAA,SAAK3T,GACCZ,KAAKmE,EAAAA,6BAA6BmB,YACtCtF,KAAK+J,mBAAqB,EAC1BmL,EAAAA,sBAAsBlV,KAAKmI,OAAQnI,KAAKwL,QAAS5K,GACjDZ,KAAK4K,UAEP7D,EAAAtH,UAAA0V,MAAA,SAAM9C,EAAe8C,EAAevU,SAClC,IAAIZ,KAAKmE,EAAAA,6BAA6BmB,UAAtC,CACA,IAAMkN,EAAQxS,KAAKmI,OAAOkK,GAE1B,GADAG,EAAMpC,SAAU,EACF,QAAV+E,GAA6B,SAAVA,GAA8B,UAAVA,EAAmB,CAC5DnV,KAAK+J,mBAAqBsI,SACnBG,EAAME,oBACb,IAAI0C,EAAOhW,OAAAiU,OAAAjU,OAAAiU,OAAA,GAAKb,EAAMvC,QAAI3L,EAAA,IAAG6Q,GAAQvU,EAAK0D,IAC1C,GAAc,UAAV6Q,EAAmB,CACrB,IAAIE,OAAK,EACT,IACEA,EAAQrV,KAAKwL,QACV2I,UAAUiB,EAAKzH,MACfiG,MAAK,SAACpT,GAAM,OAAAA,EAAE6U,QAAUzU,KAC3B,MAAOgL,IACTwJ,EAAIhW,OAAAiU,OAAAjU,OAAAiU,OAAA,GAAQ+B,GAAI,CAAEE,UAAWD,EAAQA,EAAMC,UAAY,KAEzD,GAAc,SAAVH,GAA8B,OAAVvU,EACtB,KAEQyU,EADSrV,KAAKwL,QAAQ2I,UAAUvT,GACjBgT,MAAK,SAACpT,GAAM,OAAAA,EAAE8U,YAAcF,EAAKE,gBAC3CF,EAAIhW,OAAAiU,OAAAjU,OAAAiU,OAAA,GAAQ+B,GAAI,CAAEC,MAAOA,EAAMA,SAC1C,MAAOzJ,IAEX4G,EAAMvC,KAAOmF,MACM,SAAVD,GAAgD,QAA5BnV,KAAK+H,mBAClCyK,EAAM5F,KACM,OAAVhM,EACI,KACAA,GAAS,GAAKA,GAAS,GACpBA,EAAQ,KAAQ4R,EAAM5F,MAAQ,IAAM,GAAK,GAAK,GAC/C,GAAKhM,EACT4R,EAAc2C,GAASvU,EAC7BZ,KAAK4K,UAEP7D,EAAAtH,UAAA8V,YAAA,SAAY/C,GACV,OAAsB,OAAfA,EAAM5F,KACT,KAC4B,QAA5B5M,KAAK+H,mBACHyK,EAAM5F,KAAO,IAAM,GACnB4F,EAAM5F,MAEd7F,EAAAtH,UAAA+V,OAAA,SAAOnD,EAAemD,GAChBxV,KAAKmE,EAAAA,6BAA6BmB,YACvB,OAAXkQ,EAAiBxV,KAAK+H,mBAAqB,OAE7C/H,KAAK+H,mBAAqB,MAC1B/H,KAAKmI,OAAOkK,GAAOzF,MACf5M,KAAKmI,OAAOkK,GAAOzF,MAAQ,GAAK,IAAkB,OAAX4I,EAAkB,GAAK,GAClExV,KAAKmI,OAAOkK,GAAOjC,SAAU,EAC7BpQ,KAAK6S,YAGT9L,EAAAtH,UAAAgW,SAAA,SAAShI,GAAT,IAAAjG,EAAAxH,KACE,OAAOA,KAAKmI,OAAOsK,MAAK,SAACvT,GACvB,IACE,OAAOA,EAAEkR,SAAW5I,EAAKgE,QAAQoH,eAAe1T,EAAE+Q,QAAUxC,EAC5D,MAAO7B,GACP,OAAO,OAIb7E,EAAAtH,UAAAiW,QAAA,SAAQjI,GACN,IAAKzN,KAAKgS,UAAYhS,KAAKmI,OAAOoK,OAAM,SAACrT,GAAM,OAAAA,EAAEkR,WAAU,OAAO,EAClE,IACE,IAAMuC,EAAI3S,KAAKwL,QAAQoH,eAAe5S,KAAKmI,OAAO,GAAG8H,MACnD9Q,EAAIa,KAAKwL,QAAQoH,eAAe5S,KAAKmI,OAAO,GAAG8H,MACjD,OAAOxC,EAAM1C,KAAKqD,IAAIuE,EAAGxT,IAAMsO,EAAM1C,KAAKoD,IAAIwE,EAAGxT,GACjD,MAAOyM,GACP,OAAO,IAGX7E,EAAAtH,UAAAkW,YAAA,SAAYlI,WACV,GAAIA,EAAMzN,KAAKgJ,mBAAqByE,EAAMzN,KAAKiJ,iBAC7C,OAAO,EACT,IACE,IAAMgH,EAAOjQ,KAAKwL,QAAQkC,eAAeD,GACnCmI,EAAiB5V,KAAKmE,EAAAA,6BAA6Bc,gBACzD,GACE2Q,GACAA,EAAenI,EAAK,CAClBsE,KAAM/R,KAAKmE,EAAAA,6BAA6BC,MACxCyR,SAAU7V,KAAKgS,SACG,QAAdjQ,EAAA/B,KAAKmI,OAAO,UAAE,IAAApG,OAAA,EAAAA,EAAEqO,YAA0B,QAAfpO,EAAChC,KAAKmI,OAAO,UAAE,IAAAnG,OAAA,EAAAA,EAAEoO,SAC1C,MACA,QACF,SACJ0F,aAAc7F,IAGhB,OAAO,EACT,IAAM7B,EAAMpO,KAAKmE,EAAAA,6BAA6BY,KACxCoJ,EAAMnO,KAAKmE,EAAAA,6BAA6Ba,KAC9C,SAAIoJ,GAAOX,EAAM+C,EAAAA,UAAUpC,GAAKsC,cAC5BvC,GAAOV,EAAM+C,EAAAA,UAAUrC,GAAKuC,UAEhC,MAAO9E,GACP,OAAO,IAGX7E,EAAAtH,UAAAsW,OAAA,SAAOtI,GACL,IAAIzN,KAAKmE,EAAAA,6BAA6BmB,YAAatF,KAAK2V,YAAYlI,GAApE,CAEAzN,KAAKsI,QAAUmF,EACf,IAAM4E,EACJrS,KAAKgS,SAAWhS,KAAKmI,OAAO,GAAGiI,UAAYpQ,KAAKmI,OAAO,GAAGiI,QAAU,EAAI,EACtEpQ,KAAKgS,SAAqB,IAAVK,IAAarS,KAAKmI,OAAO,GAAGiI,SAAU,UACnDpQ,KAAKmI,OAAOkK,GAAOK,oBAC1B1S,KAAKmI,OAAOkK,GAAOpC,KAAOjQ,KAAKwL,QAAQkC,eAAeD,GACtDzN,KAAKmI,OAAOkK,GAAOjC,SAAU,EAC7BpQ,KAAKsS,cACLtS,KAAKgP,aACLhP,KAAK6S,SAEmB,cAAtB7S,KAAK0H,cACuC,SAA5C1H,KAAKmE,EAAAA,6BAA6BC,OAChB,aAAlBpE,KAAK2H,UAEL3H,KAAKiT,OAAO,iBAEhBlM,EAAAtH,UAAA2L,IAAA,SAAI4K,EAAsBvI,GACxB,IAAIwI,EAAQ,EAaZ,GAZkB,cAAdD,EAAM5K,MAAqB6K,GAAS,GACtB,eAAdD,EAAM5K,MAAsB6K,EAAQ,GACtB,YAAdD,EAAM5K,MAAmB6K,GAAS,GACpB,cAAdD,EAAM5K,MAAqB6K,EAAQ,GACrB,WAAdD,EAAM5K,MACR6K,GAAS,GAAKD,EAAME,SAAWlW,KAAKyI,aAAe,IACnC,aAAduN,EAAM5K,MACR6K,EAAQ,GAAKD,EAAME,SAAWlW,KAAKyI,aAAe,IAClC,SAAduN,EAAM5K,MACR4K,EAAMG,iBACNnW,KAAK6K,iBAAiB7K,KAAKqI,MAAO,CAAEmC,OAAO,KAEzCyL,EAAO,CACTD,EAAMG,iBACN,IAAMlC,EAASxG,EAAMwI,EACjBhC,GAAUjU,KAAKgJ,mBAAqBiL,GAAUjU,KAAKiJ,kBACrDjJ,KAAK6K,iBAAiBoJ,EAAQ,CAAEzJ,OAAO,MAGrCzD,EAAAtH,UAAAkL,SAAA,SACN8C,EACAvB,EACAkK,QADA,IAAAlK,IAAAA,GAAA,QACA,IAAAkK,IAAAA,EAAA,IAEA3I,EAAM1C,KAAKoD,IACTnO,KAAKgJ,kBACL+B,KAAKqD,IAAIpO,KAAKiJ,iBAAkBwE,IAElCzN,KAAKuI,WAAayF,EAAAA,eAAeP,EAAKzN,KAAK8H,iBAC3C,IAAMuO,EAAiBrW,KAAKmE,EAAAA,6BAA6BO,gBAEzD,GADA1E,KAAKqJ,UAAY6C,GAAkC,eAAxBmK,EAAejU,KACtC8J,GAAkC,UAAxBmK,EAAejU,KAAkB,CAC7C,IAAMlD,EAAIc,KAAKwL,QAAQkC,eAAeD,GACtCzN,KAAKoJ,aAAelK,EAAEyO,KAAO,IAAMzO,EAAEoW,UAC/B,IAAAhR,EAAAxD,EAAewV,EAAAA,oBAAoBtW,KAAKwL,QAASiC,GAAI,GAApD8I,EAAKjS,EAAA,GAAEkS,EAAGlS,EAAA,GAIjB,GAHAtE,KAAKwI,UAAYwF,EAAAA,eAAeuI,EAAOvW,KAAK8H,iBAC5C9H,KAAKyI,aACHuF,EAAAA,eAAewI,EAAKxW,KAAK8H,iBAAmB9H,KAAKwI,UAAY,EAErC,0BAAxB6N,EAAejU,OACdpC,KAAK4J,aAAalJ,OACnB,CACA,IAAM+V,EAASJ,EAAejK,kBAAoB,EAChDsK,EAAQL,EAAehK,iBAAmB,EAC5CrM,KAAKwI,WAAaiO,EAClBzW,KAAKyI,cAAgBgO,EAASC,OAGJ,UAAxBL,EAAejU,OACjBpC,KAAKyI,aAAezI,KAAK4J,aAAalJ,OAClC,EACA2V,EAAelK,kBACrBnM,KAAKwI,UACHxI,KAAKuI,YACc,UAAlB6N,EAAQO,MACL,EACkB,QAAlBP,EAAQO,MACN3W,KAAKyI,aAAe,EACpBsC,KAAKC,MAAMhL,KAAKyI,aAAe,IAEzCzI,KAAKwI,UAAYxI,KAAKiO,eAAejO,KAAKwI,WAC1CxI,KAAK+I,SAAW/I,KAAKwI,UAAY,IACjCxI,KAAKgP,aAELhP,KAAKuH,eAAeqP,gBACpB5W,KAAKsO,eAECvH,EAAAtH,UAAA6O,YAAA,WAEFtO,KAAK6W,WACP7W,KAAK6W,SAASpI,cAAcqI,UAAY/L,KAAKgM,MAAM,IAAO/W,KAAK0I,aAEnE3B,EAAAtH,UAAAuX,OAAA,SAAOhB,GACL,IAAMiB,EAAUjB,EAAM/B,OACtBjU,KAAKwJ,aAAc,EACnBxJ,KAAKkX,eAEL,IAAMC,EAAeF,EAAQH,UAAY9W,KAAK0I,UAAY,IACpD2J,EACJ,IAAOtH,KAAKqM,KAAKD,GAAgBpM,KAAKgM,MAAMhM,KAAKsM,IAAIF,IACjDG,EAAiBtX,KAAK+I,SAAWsJ,EACjClF,EAAQnN,KAAKiO,eAAeqJ,GAIlC,GAHIA,IAAmBnK,IACrB8J,EAAQH,UAAY/L,KAAKgM,OAAO5J,EAAQnN,KAAK+I,UAAY/I,KAAK0I,YAE5DyE,IAAUnN,KAAKwI,UAAnB,CAIA,GAHAxI,KAAKqJ,WAAY,EACjBrJ,KAAKwI,UAAY2E,EACjBnN,KAAKuI,WAAa4E,EAAQpC,KAAKC,MAAMhL,KAAKyI,aAAe,GACrD4J,EAAQ,KAAOA,EAAQ,KAAM,CAG/B,IAAMkF,EACJN,EAAQH,WAAa3J,EAAQnN,KAAK+I,UAAY/I,KAAK0I,UACrD1I,KAAK+I,SAAWoE,EAAQ,IACxB8J,EAAQH,UAAY/L,KAAKgM,MAAM,IAAO/W,KAAK0I,UAAY6O,GAEzDvX,KAAKgP,eAECjI,EAAAtH,UAAAyX,aAAA,WAAA,IAAA1P,EAAAxH,KACFA,KAAKoP,gBAAgBC,aAAarP,KAAKoP,gBAC3CpP,KAAKoP,eAAiB4E,YAAW,WAAM,OAAAxM,EAAKgQ,aAAY,MAE1DzQ,EAAAtH,UAAA+X,SAAA,WAGE,GAFIxX,KAAKoP,gBAAgBC,aAAarP,KAAKoP,gBAC3CpP,KAAKoP,oBAAiBlE,EACjBlL,KAAKwJ,aAAgBxJ,KAAK6W,SAA/B,CACA7W,KAAKwJ,aAAc,EAEnB,IAAMyN,EAAUjX,KAAK6W,SAASpI,cACxBwF,EAASlJ,KAAKgM,OACjB/W,KAAKwI,UAAYxI,KAAK+I,UAAY/I,KAAK0I,WAEtCuO,EAAQH,YAAc7C,IAAQgD,EAAQH,UAAY7C,KAEhDlN,EAAAtH,UAAAgY,cAAA,SAAcvJ,GACpB,IAAMf,EAAQnN,KAAKiO,eAAeC,GAC9Bf,IAAUnN,KAAKwI,YACnBxI,KAAKqJ,WAAY,EACjBrJ,KAAKwI,UAAY2E,EACjBnN,KAAKuI,WAAa4E,EAAQpC,KAAKC,MAAMhL,KAAKyI,aAAe,GACzDzI,KAAK+I,SAAWoE,EAAQ,IACxBnN,KAAKgP,aACLhP,KAAKsO,gBAEPvH,EAAAtH,UAAAiY,YAAA,SAAYzB,GACV,OAAOjW,KAAKiO,eAAejO,KAAKwI,UAAYyN,KAAWjW,KAAKwI,WAE9DzB,EAAAtH,UAAAkY,SAAA,SAAS1B,GACFjW,KAAKmE,EAAAA,6BAA6BmB,WACrCtF,KAAKyX,cAAczX,KAAKwI,UAAYyN,IAEhClP,EAAAtH,UAAAuP,WAAA,WAAA,IAAAxH,EAAAxH,KAEA4X,EAAW7M,KAAKoD,IACpB,EACApD,KAAKqD,IAAI,GAAIpO,KAAKmE,EAAAA,6BAA6BuB,gBAAkB,IAE7D6Q,EAAQvW,KAAKwI,UAAYoP,EAC/B5X,KAAK4I,YAAc2N,EAAQvW,KAAK+I,UAAY/I,KAAK0I,UACjD1I,KAAKiI,KAAO4P,EAAAA,eAAe,CACzBvL,UAAWtM,KAAKsM,UAChBd,QAASxL,KAAKwL,QACdsM,UAAWvB,EACXwB,MAAO/X,KAAKyI,aAAe,EAAImP,EAC/BI,iBAAkBhY,KAAKwI,UACvBQ,kBAAmBhJ,KAAKgJ,kBACxBC,iBAAkBjJ,KAAKiJ,iBACvBI,UAAWrJ,KAAKqJ,UAChBD,aAAcpJ,KAAKoJ,aACnB6O,cAAejY,KAAKmE,EAAAA,6BAA6BoB,eACjD2S,mBACElY,KAAKmE,EAAAA,6BAA6BqB,qBAAuB,KAC3D2S,cAAe,SAAC1K,GAAQ,OAAAjG,EAAKmO,YAAYlI,MAE3CzN,KAAKiG,EAAAA,8BAA8BK,gBAAgBqL,KAAK,CACtDyG,yBAA0BpY,KAAKwI,UAC/B6P,wBAAyBrY,KAAKwI,UAAYxI,KAAKyI,aAAe,EAC9D6P,mBAAoBtY,KAAKuI,cAI7BxB,EAAAtH,UAAA8Y,UAAA,SAAUC,EAAYC,GACpB,OAAOA,EAAK/H,UAEd3J,EAAAtH,UAAAiZ,SAAA,SAASF,EAAY7J,GACnB,OAAOA,EAAIT,KAAKyK,cAElB5R,EAAAtH,UAAAoL,iBAAA,SAAiB4C,EAAa2I,QAAA,IAAAA,IAAAA,EAAA,IAC5BrK,EAAAA,QAAQ0B,GACRzN,KAAKwL,QAAQkC,eAAeD,GAC5BA,EAAM1C,KAAKoD,IACTnO,KAAKgJ,kBACL+B,KAAKqD,IAAIpO,KAAKiJ,iBAAkBwE,IAG9B2I,EAAQ5L,QAAOxK,KAAKsI,QAAUmF,GAClCzN,KAAK2K,SAAS8C,GAAK,EAAO2I,GACtBA,EAAQL,QAAQ/V,KAAK+V,OAAOtI,GAC5B2I,EAAQ5L,OAAOxK,KAAK4Y,YAE1B7R,EAAAtH,UAAAoZ,qBAAA,SAAqB3K,EAAckI,QAAA,IAAAA,IAAAA,EAAA,IAEjC,IAAMjJ,EAAQyC,EAAAA,gBAAgB1B,EAAMlO,KAAK8H,iBACzC9H,KAAK6K,iBACHqD,IAASlO,KAAKkJ,mBACV6B,KAAKoD,IAAIhB,EAAOnN,KAAKgJ,mBACrBmE,EACJiJ,IAGJrP,EAAAtH,UAAAqZ,qBAAA,SACE7I,EACAmG,QAAA,IAAAA,IAAAA,EAAA,IAEApW,KAAK6K,iBAAiB7K,KAAKwL,QAAQoH,eAAe3C,GAAOmG,IAE3DrP,EAAAtH,UAAAsZ,cAAA,SAAcnY,EAAewV,QAAA,IAAAA,IAAAA,EAAA,IAC3BpW,KAAK6K,iBAAiB2F,EAAAA,UAAU5P,GAAO8P,SAAU0F,IAEnDrP,EAAAtH,UAAAmZ,SAAA,WAAA,IAAApR,EAAAxH,KACOA,KAAKsJ,SACV0K,YAAW,iBACT,IAAIxM,EAAK+B,UAAT,CACA/B,EAAKD,eAAeqP,gBACpB,IAAMnJ,EAAMjG,EAAKF,KAAKmH,cAAcG,cAClC,cAAgBpH,EAAKc,QAAU,MAE3B0Q,EAAWxR,EAAKF,KAAKmH,cAAcG,cACvC,8CAEe,QAAjB7M,EAAC0L,GAAOuL,SAAS,IAAAjX,GAAAA,EAAEyI,MAAM,CAAEyO,eAAe,YAp7BtCC,uBAlBTC,EAAAA,UAAS1S,KAAA,CAAC,CACT2S,SAAU,uBACVC,SAAA,2gaAEAC,UAAW,CACT,CACEC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAW,WAAM,OAAA3S,KAC9B4S,OAAO,GAET,CACEJ,QAASK,EAAAA,cACTH,YAAaC,EAAAA,YAAW,WAAM,OAAA3S,KAC9B4S,OAAO,0/KA2DRE,EAAAA,OAAMpT,KAAA,CAACqT,EAAAA,6CACPD,EAAAA,OAAMpT,KAAA,CAAC7E,qCACPiY,EAAAA,OAAMpT,KAAA,CAACnF,qCACPuY,EAAAA,OAAMpT,KAAA,CAAC5E,qCACPgY,EAAAA,OAAMpT,KAAA,CAAC3E,YACuB1C,OAAM2a,WAAA,CAAA,CAAAC,KAApCH,EAAAA,OAAMpT,KAAA,CAACwT,EAAAA,sBAnJVC,EAAAA,kBAFAC,EAAAA,uDAmGCC,EAAAA,UAAS3T,KAAA,CAAC,gCCpDX,SAAA4T,EACUC,EACAC,EACAC,EACkBC,EACGpT,GAJrBrH,KAAAsa,SAAAA,EACAta,KAAAua,SAAAA,EACAva,KAAAwa,IAAAA,EACkBxa,KAAAya,SAAAA,EACGza,KAAAqH,SAAAA,SAE/BgT,EAAA5a,UAAAib,KAAA,SACEC,EACAC,EACAC,EACAN,GAJF,IAAA/S,EAAAxH,KAME,QAHA,IAAA6a,IAAAA,GAAA,IAGK7Q,EAAAA,kBAAkBhK,KAAKqH,UAC1B,MAAM,IAAIyT,MAAM,mDAClB,IAAMC,EAAS/a,KAAKya,SAASO,cAAc,UAC3CD,EAAOE,aAAa,aAAc,wBAClC7b,OAAOiU,OAAO0H,EAAOG,MAAO,CAC1BC,QAAS,IACTC,OAAQ,IACRC,aAAc,OACdC,MAAO,oBACPC,SAAU,QACVC,UAAW,OACXC,WAAY,gBAEd,IAAMC,EAAY1b,KAAKsa,SACpBqB,wBAAwB5U,GACxB7G,OAAOqa,GAAYva,KAAKua,UAC3BmB,EAAUE,SAASlU,aAAe,YAClCqT,EAAOc,YAAYH,EAAUI,SAASrN,eACtCzO,KAAKya,SAASsB,KAAKF,YAAYd,GAC/B/a,KAAKwa,IAAIwB,WAAWN,EAAUO,UAC9B,IAAM9I,EAAS,SAAC6C,GACdA,EAAMG,iBACNyE,EAAS,WAELsB,EAAQ,SAAClG,GACb,GAAI6E,GAAY7E,EAAM/B,SAAW8G,EAAQ,CACvC,IAAM/Z,EAAI+Z,EAAOoB,yBAEfnG,EAAMoG,QAAUpb,EAAEqb,MAClBrG,EAAMoG,QAAUpb,EAAEsb,OAClBtG,EAAMuG,QAAUvb,EAAEwb,KAClBxG,EAAMuG,QAAUvb,EAAEyb,SAElB7B,EAAS,cAGT8B,EAAU,SAAC1G,GACf,GAAkB,QAAdA,EAAM5K,IAAV,CACA,IAAMuR,EAAWpd,MAAMyN,KACrB+N,EAAO6B,iBACL,8DAEFC,QACA,SAACC,GACC,OAAAA,EAAGC,UAAY,GACfD,EAAGE,iBAAiBtc,QACgB,WAApCqO,iBAAiB+N,GAAIG,cAEnB9P,EAAQwP,EAAS,GACrBvP,EAAOuP,EAASA,EAASjc,OAAS,GAElCyM,IACC6I,EAAME,SACH1O,EAAKiT,SAASyC,gBAAkB/P,EAChC3F,EAAKiT,SAASyC,gBAAkB9P,KAEpC4I,EAAMG,kBACLH,EAAME,SAAW9I,EAAOD,GAAO3C,WAOpC,OAJAuQ,EAAOoC,iBAAiB,SAAUhK,GAClC4H,EAAOoC,iBAAiB,QAASjB,GACjCnB,EAAOoC,iBAAiB,UAAWT,GACnC3B,EAAOqC,YACA,CACL1B,UAASA,EACT2B,QAAS,WACPtC,EAAOuC,oBAAoB,SAAUnK,GACrC4H,EAAOuC,oBAAoB,QAASpB,GACpCnB,EAAOuC,oBAAoB,UAAWZ,GACtC3B,EAAOwC,QACP/V,EAAKgT,IAAIgD,WAAW9B,EAAUO,UAC9BP,EAAU2B,UACVtC,EAAO0C,SACP9C,EAAQnQ,4QAzFfkT,EAAAA,WAAUjX,KAAA,CAAC,CAAEjF,WAAY,oDA7CxBmc,EAAAA,gCAQAC,EAAAA,gBATAC,EAAAA,sBAoDsCC,SAAQ/D,WAAA,CAAA,CAAAC,KAA3CH,EAAAA,OAAMpT,KAAA,CAACsX,EAAAA,mBAC+B3e,OAAM2a,WAAA,CAAA,CAAAC,KAA5CH,EAAAA,OAAMpT,KAAA,CAACwT,EAAAA,qCAmGV,SAAA+D,EAAsB/G,GAAtB,IAAAzP,EACEC,EAAA9H,KAAAK,OAAOA,YADawH,EAAAyP,QAAAA,EANZzP,EAAAyW,IAAkC,KAClCzW,EAAA0W,cAAgC,GAClC1W,EAAAY,OAAyC,GACzCZ,EAAA2W,OAA2C,aAC3C3W,EAAA8J,QAAsB,aACtB9J,EAAA6I,WAAyB,sBARzBzQ,EAAAoe,EAAAvW,GAaeuW,EAAAve,UAAAib,KAAA,WAAA,IAAAlT,EAAAxH,KACrB,IAAIA,KAAKmE,EAAAA,6BAA6BmB,YAAatF,KAAKie,IAAxD,CACAje,KAAKie,IAAMje,KAAKE,SAChB,IAAMke,EAASpe,KAAKie,IAAIvC,UAAUE,SAClC5b,KAAKqe,OACLre,KAAKke,cAAgB,CACnBE,EAAOnY,EAAAA,8BAA8BC,aAAaoY,WAAU,SAAC1d,GAC3D4G,EAAKrD,EAAAA,6BAA6BE,OAASzD,EAC3C4G,EAAK2W,OAAOvd,GACZ4G,EAAKvB,EAAAA,8BAA8BC,aAAayL,KAAK/Q,GACrD4G,EAAK+W,aAEPH,EAAOnY,EAAAA,8BAA8BE,kBAAkBmY,WACrD,SAAClW,GACCZ,EAAKY,OAASA,EACdZ,EAAKvB,EAAAA,8BAA8BE,kBAAkBwL,KAAKvJ,GAC1DZ,EAAK6I,gBAGT+N,EAAOnY,EAAAA,8BAA8BI,QAAQiY,WAAU,SAACpL,GACtD,OAAA1L,EAAK+V,MAAMrK,MAEbkL,EAAOnY,EAAAA,8BAA8BK,gBAAgBgY,WAAU,SAAC1d,GAC9D,OAAA4G,EAAKvB,EAAAA,8BAA8BK,gBAAgBqL,KAAK/Q,MAE1Dwd,EAAOnY,EAAAA,8BAA8BM,gBAAgB+X,WAAU,SAAC1d,GAC9D,OAAA4G,EAAKvB,EAAAA,8BAA8BM,gBAAgBoL,KAAK/Q,OAG5DZ,KAAKie,IAAIvC,UAAU8C,kBAAkB5H,gBACrCwH,EAAOxF,WACP5Y,KAAKiG,EAAAA,8BAA8BG,QAAQuL,SAERqM,EAAAve,UAAA2L,IAAA,SAAI4K,GAEvB,UAAdA,EAAM5K,KACQ,MAAd4K,EAAM5K,KACQ,cAAd4K,EAAM5K,MAEN4K,EAAMG,iBACNnW,KAAK0a,SAGasD,EAAAve,UAAAgf,KAAA,WACpBze,KAAKsR,WAEP0M,EAAAve,UAAA8d,MAAA,SAAMrK,GACJ,QADI,IAAAA,IAAAA,EAAA,gBACClT,KAAKie,IAAV,CACA,IAAMA,EAAMje,KAAKie,IACjBje,KAAKie,IAAM,KACXje,KAAKke,cAAc/S,SAAQ,SAAC9K,GAAM,OAAAA,EAAEqe,iBACpC1e,KAAKke,cAAgB,GACrBD,EAAIZ,UACJrd,KAAKsR,UACLtR,KAAKiG,EAAAA,8BAA8BI,QAAQsL,KAAKuB,KAElD8K,EAAAve,UAAA0K,YAAA,iBAAA3C,EAAAxH,KACE,CACEmE,EAAAA,6BAA6BS,YAC7BT,EAAAA,6BAA6BiB,yBAC7BjB,EAAAA,6BAA6BkB,SAC7BlB,EAAAA,6BAA6BmB,SAC7BnB,EAAAA,6BAA6B2B,iBAC7BqF,SACA,SAACC,GAAQ,OAAE5D,EAAa4D,GAAOC,EAAAA,cAAe7D,EAAa4D,OAE7DpL,KAAK2e,aACL3e,KAAKue,UACDve,KAAKie,MACPje,KAAKqe,OACLre,KAAKie,IAAIvC,UAAUE,SAASzR,cAAWnI,EAAA,IACpCmC,EAAAA,6BAA6BE,QAAQ,MAExCrE,KAAKie,IAAIvC,UAAU8C,kBAAkB5H,kBAGzCoH,EAAAve,UAAAyP,YAAA,WACElP,KAAKud,SAECS,EAAAve,UAAA4e,KAAA,mBACN,GAAIre,KAAKie,QACP,IAAmB,IAAAW,EAAAze,EAAA0e,EAAAA,aAAWC,EAAAF,EAAAje,QAAAme,EAAAje,KAAAie,EAAAF,EAAAje,OAAA,CAAzB,IAAMoe,EAAID,EAAAle,MACZZ,KAAKie,IAAIvC,UAAUE,SAAiBmD,GAAS/e,KAAa+e,uGAEzDf,EAAAve,UAAA8e,QAAA,WACN,IAAMjX,EAAOtH,KAAKiX,QAAQxI,cAC1B,GAAqB,UAAjBnH,EAAK0X,QAAqB,CAC5B1X,EAAK2X,UAAW,EAChB,IAAMre,EAAQZ,KAAKmE,EAAAA,6BAA6BE,OAChDiD,EAAK1G,MACO,OAAVA,EACI,GACiB,iBAAVA,EACLA,EACAA,EAAMmU,KAAK,OACnBzN,EAAK2J,SAAWjR,KAAKmE,EAAAA,6BAA6BmB,UAClDgC,EAAK2T,aAAa,gBAAiB,YAG/B+C,EAAAve,UAAAkf,WAAA,WACN3e,KAAKoI,OAASkI,EAAAA,kBACZtQ,KAAKmE,EAAAA,6BAA6BE,OAClCrE,KACAA,KAAKmE,EAAAA,6BAA6BI,kBAChC,IAAIkH,EAAAA,6BACFzL,KAAKmE,EAAAA,6BAA6BK,SAAW,UAGnDxE,KAAKiG,EAAAA,8BAA8BE,kBAAkBwL,KAAK3R,KAAKoI,QAC/DpI,KAAKqQ,cAEP2N,EAAAve,UAAAmR,WAAA,SAAWhQ,GACTZ,KAAKmE,EAAAA,6BAA6BE,OAASzD,EAC3CZ,KAAK2e,aACL3e,KAAKue,UACDve,KAAKie,KAAKje,KAAKie,IAAIvC,UAAUE,SAAShL,WAAWhQ,IAEvDod,EAAAve,UAAAoR,iBAAA,SAAiBC,GACf9Q,KAAKme,OAASrN,GAEhBkN,EAAAve,UAAAsR,kBAAA,SAAkBD,GAChB9Q,KAAKsR,QAAUR,GAEjBkN,EAAAve,UAAAuR,iBAAA,SAAiBpQ,GACfZ,KAAKmE,EAAAA,6BAA6BmB,UAAY1E,EAC9CZ,KAAKue,UACDve,KAAKie,KAAKje,KAAKie,IAAIvC,UAAUE,SAAS5K,iBAAiBpQ,IAE7Dod,EAAAve,UAAAyR,SAAA,WACE,OAAOlR,KAAKoI,OAAO1H,OAAS,CAAE0Q,KAAMpR,KAAKoI,QAAW,MAEtD4V,EAAAve,UAAA4R,0BAAA,SAA0BP,GACxB9Q,KAAKqQ,WAAaS,GAEpBkN,EAAAve,UAAAoL,iBAAA,SAAiB4C,EAAa2I,SAC5BpW,KAAK0a,OACG,QAAR3Y,EAAA/B,KAAKie,WAAG,IAAAlc,GAAAA,EAAE2Z,UAAUE,SAAS/Q,iBAAiB4C,EAAK2I,IAErD4H,EAAAve,UAAAoZ,qBAAA,SAAqB3K,EAAckI,SACjCpW,KAAK0a,OACG,QAAR3Y,EAAA/B,KAAKie,WAAG,IAAAlc,GAAAA,EAAE2Z,UAAUE,SAAS/C,qBAAqB3K,EAAMkI,IAE1D4H,EAAAve,UAAAqZ,qBAAA,SACE7I,EACAmG,SAEApW,KAAK0a,OACG,QAAR3Y,EAAA/B,KAAKie,WAAG,IAAAlc,GAAAA,EAAE2Z,UAAUE,SAAS9C,qBAAqB7I,EAAMmG,IAE1D4H,EAAAve,UAAAsZ,cAAA,SAAcnY,EAAewV,SAC3BpW,KAAK0a,OACG,QAAR3Y,EAAA/B,KAAKie,WAAG,IAAAlc,GAAAA,EAAE2Z,UAAUE,SAAS7C,cAAcnY,EAAOwV,OApK5C8C,wBAFT1S,EAAAA,sDAzIC0T,EAAAA,6CAwJCgF,EAAAA,aAAYzY,KAAA,CAAC,sBAiCbyY,EAAAA,aAAYzY,KAAA,CAAC,UAAW,CAAC,yBAUzByY,EAAAA,aAAYzY,KAAA,CAAC,8BAgId,SAAA0Y,EACElI,EACQmI,EACAC,GAHV,IAAA7X,EAKEC,EAAA9H,KAAAK,KAAMiX,IAAQjX,YAHNwH,EAAA4X,QAAAA,EACA5X,EAAA6X,gBAAAA,WAJ2Czf,EAAAuf,EAAA1X,GAQ3C0X,EAAA1f,UAAAS,OAAA,WAAA,IAAAsH,EAAAxH,KACR,OAAOA,KAAKof,QAAQ1E,KAClB1a,KAAKiX,QAAQxI,eACb,SAACyE,GAAW,OAAA1L,EAAK+V,MAAMrK,KACvBlT,KAAKmE,EAAAA,6BAA6B2B,iBAClC9F,KAAKqf,qBAb4CrB,yBAhBtDxX,EAAAA,UAASC,KAAA,CAAC,CACT2S,SAAU,6BACVkG,SAAU,aACVhG,UAAW,CACT,CACEC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAW,WAAM,OAAAyF,MAC9BxF,OAAO,GAET,CACEJ,QAASK,EAAAA,cACTH,YAAaC,EAAAA,YAAW,WAAM,OAAAyF,MAC9BxF,OAAO,kDA9TXO,EAAAA,kBAqUmBG,SAhUnBuD,EAAAA,8BCAF,SAAA2B,IAMWvf,KAAAY,MAAuB,EACvBZ,KAAAoU,MAAQ,GACRpU,KAAAwf,WAAY,EACZxf,KAAAyf,cAAgB,GAChBzf,KAAA0f,UAAY,GACZ1f,KAAAoO,IAAM,EACNpO,KAAAmO,IAAM,GACNnO,KAAA2f,KAAO,EACP3f,KAAAsL,OAAS,QACTtL,KAAAiR,UAAW,EACXjR,KAAA4f,SAAU,EACV5f,KAAA6f,OAAmC,KAClC7f,KAAA8f,YAAc,IAAIjc,EAAAA,aAClB7D,KAAA+f,SAAW,IAAIlc,EAAAA,aACjB7D,KAAAyW,OAAwB,KACxBzW,KAAAggB,OAAS,EACThgB,KAAAigB,WAAa,EACbjgB,KAAAkgB,cAAe,EACflgB,KAAAmgB,MAAuB,KACvBngB,KAAAogB,WAAmD,KACnDpgB,KAAAqgB,WAAmD,YAC3DjhB,OAAAqQ,eAAI8P,EAAA9f,UAAA,UAAO,KAAX,WACE,OAAmB,OAAfO,KAAKmgB,MAAuBngB,KAAKmgB,MACf,OAAfngB,KAAKY,MACR,GACAZ,KAAK6f,OACH7f,KAAK6f,OAAO7f,KAAKY,MAAQZ,KAAKoO,MAAQtO,OAAOE,KAAKY,OAClD,IAAI8L,KAAKgI,aAAa1U,KAAKsL,OAAQ,CACjCqJ,aAAa,EACb2L,qBAAsBtgB,KAAKmO,IAAM,GAAK,EAAI,IACzCyG,OAAO5U,KAAKY,wCAEvB2e,EAAA9f,UAAA0K,YAAA,SAAYC,GACV,GAAIA,EAAQxJ,OAASZ,KAAKoO,IAAM,GAAoB,OAAfpO,KAAKmgB,MAAgB,CACxD,IAAMI,EACW,KAAfvgB,KAAKmgB,OAA+B,MAAfngB,KAAKmgB,MAAgB,KAAOK,OAAOxgB,KAAKmgB,OAC3DngB,KAAKY,QAAU2f,IAEjBvgB,KAAKygB,cACLzgB,KAAKmgB,MAAQ,QAInBZ,EAAA9f,UAAAyP,YAAA,WACElP,KAAKygB,cACmB,OAApBzgB,KAAKqgB,YAAqBhR,aAAarP,KAAKqgB,aAElDd,EAAA9f,UAAAkB,KAAA,SAAKsV,GACH,IAAM8B,EAAQhN,KAAKC,OAAOhL,KAAKmO,IAAMnO,KAAKoO,KAAOpO,KAAK2f,MAAQ,EAC9D,OACE3f,KAAKoO,IACLsS,EAAAA,SACE3V,KAAKC,QACc,OAAfhL,KAAKY,MAAiBZ,KAAKoO,IAAMpO,KAAKY,OAASZ,KAAKoO,KACpDpO,KAAK2f,MACL1J,EACJ8B,GAEA/X,KAAK2f,MAGXJ,EAAA9f,UAAAkhB,SAAA,SAAS1K,GACP,IAAMlV,EAAIf,KAAKW,KAAKsV,GACpB,OAAOjW,KAAK6f,OACR7f,KAAK6f,OAAO9e,EAAIf,KAAKoO,MAAQ,GAC7B,IAAI1B,KAAKgI,aAAa1U,KAAKsL,OAAQ,CAAEqJ,aAAa,IAASC,OAAO7T,IAExEwe,EAAA9f,UAAAmhB,OAAA,SAAO3K,GACDjW,KAAKiR,WACTjR,KAAK6gB,SAAS5K,GACdjW,KAAK+f,SAASpO,SAEhB4N,EAAA9f,UAAAqhB,MAAA,SAAM9K,GACJhW,KAAKyW,OAASzW,KAAKY,MAClBoV,EAAM/B,OAA4B8B,UAErCwJ,EAAA9f,UAAAua,KAAA,SAAKhE,GAAL,IAAAxO,EAAAxH,KACE,IAAIA,KAAKiR,SAAT,CACA,IAAM8P,EAAQ/K,EAAM/B,OACd+M,EAAMD,EAAMngB,MACZqgB,EAAU1hB,MAAMyN,KAAKgU,GAAKzO,OAC9B,SAAC2O,GAAc,OAAsC,IAAtCC,EAAAA,gBAAgBD,GAAWxgB,UAE5C,GAAIV,KAAKoO,IAAM,IAAMpO,KAAK6f,OAAQ,CAEhC,IAAMuB,EAASJ,EACZvM,QAAQ,wBAAyB,IACjCA,QAAQ,UAAW,KAChB4M,EAASF,EAAAA,gBAAgBC,GAC/BphB,KAAKmgB,MAAQY,EAAMngB,OAASwgB,EAAOzR,WAAW,KAAO,IAAM,IAAM0R,EACjErhB,KAAKY,MACQ,KAAXygB,EACI,KACAtW,KAAKoD,IAAInO,KAAKoO,IAAKrD,KAAKqD,IAAIpO,KAAKmO,IAAKqS,OAAOxgB,KAAKmgB,SACrC,OAAfngB,KAAKY,OAAkB4f,OAAOxgB,KAAKmgB,SAAWngB,KAAKY,QACrDZ,KAAKmgB,MAAQY,EAAMngB,MAAQd,OAAOE,KAAKY,aACpC,GAAIqgB,EAAS,CAClB,IAAMK,EAAaH,EAAAA,gBAAgBH,GACnChhB,KAAKmgB,MAAQY,EAAMngB,MACjBZ,KAAKoO,KAAO,GAAKpO,KAAKmO,IAAM,IAAMmT,EAAWC,OAAO,GAAKD,EAC3DthB,KAAKY,MAAuB,KAAfZ,KAAKmgB,MAAe,KAAOK,OAAOxgB,KAAKmgB,YAC/C,GAAIngB,KAAK6f,OAAQ,CACtB,IAAM2B,EAASR,EAAIS,OAAOC,kBAAkB1hB,KAAKsL,QACjDtL,KAAKmgB,MAAQa,EACb,IAAMW,EAAU3hB,KAAK6f,OAClBzM,KAAI,SAACgB,EAAO/B,GAAU,MAAA,CAAG+B,MAAKA,EAAE/B,MAAKA,MACrCwK,QAAO,SAAC+E,GACP,OAAAA,EAAKxN,MAAMsN,kBAAkBla,EAAK8D,QAAQW,SAASuV,MAEvDxhB,KAAKY,MAA2B,IAAnB+gB,EAAQjhB,OAAeV,KAAKoO,IAAMuT,EAAQ,GAAGtP,MAAQ,UAElErS,KAAKmgB,MAAQY,EAAMngB,MAAQugB,EAAAA,gBAAgBH,GAC3ChhB,KAAKY,MAAuB,KAAfZ,KAAKmgB,MAAe,KAAOK,OAAOxgB,KAAKmgB,OAEtDngB,KAAK8f,YAAYnO,KAAK3R,KAAKY,OAC3BZ,KAAKygB,eACAQ,GAAWjhB,KAAK6f,QAAyB,OAAf7f,KAAKY,OAAgBZ,KAAK+f,SAASpO,OAClE3R,KAAKogB,WAAapM,YAAW,WAC3BxM,EAAK4Y,WAAa,KAClB5Y,EAAK2Y,MAAQ,KACR3Y,EAAKyJ,UAAUzJ,EAAKuY,SAASpO,SACjC,OAEL4N,EAAA9f,UAAA2L,IAAA,SAAI4K,GACgB,WAAdA,EAAM5K,MACR4K,EAAMG,iBACNH,EAAM6L,kBACN7hB,KAAKygB,cACLzgB,KAAKmgB,MAAQ,KACbngB,KAAKY,MAAQZ,KAAKyW,OAClBzW,KAAK8f,YAAYnO,KAAK3R,KAAKyW,QAC1BT,EAAM/B,OAA4BrT,MAAQZ,KAAKue,QAC/CvI,EAAM/B,OAA4BwK,QAEnB,UAAdzI,EAAM5K,MACR4K,EAAMG,iBACNH,EAAM6L,kBACN7hB,KAAK6S,UAEP,IAAMoD,EACU,YAAdD,EAAM5K,KACD,EACa,cAAd4K,EAAM5K,IACJ,EACc,WAAd4K,EAAM5K,KACH,EACa,aAAd4K,EAAM5K,IACJ,EACA,EACR6K,IACFD,EAAMG,iBACNnW,KAAK4gB,OAAO3K,KAGhBsJ,EAAA9f,UAAAoT,OAAA,WACE7S,KAAKygB,cACLzgB,KAAKmgB,MAAQ,KACbngB,KAAK+f,SAASpO,QAEhB4N,EAAA9f,UAAAqiB,MAAA,SAAM9L,GAAN,IAAAxO,EAAAxH,KACMA,KAAKiR,UAAYlG,KAAKsM,IAAIrB,EAAM+L,QAAU,IAC9C/L,EAAMG,iBACNnW,KAAK6gB,SAAS7K,EAAM+L,OAAS,EAAI,GAAK,GACd,OAApB/hB,KAAKqgB,YAAqBhR,aAAarP,KAAKqgB,YAChDrgB,KAAKqgB,WAAarM,YAAW,WAC3BxM,EAAK6Y,WAAa,KAClB7Y,EAAKuY,SAASpO,SACb,OAEL4N,EAAA9f,UAAAuiB,WAAA,SAAWhM,GACThW,KAAKggB,OAAShK,EAAMiM,QAAQ,GAAG1F,QAC/Bvc,KAAKigB,WAAa,EAClBjgB,KAAKkgB,cAAe,GAEtBX,EAAA9f,UAAAyiB,UAAA,SAAUlM,GACRhW,KAAKmiB,YAAYnM,EAAMiM,QAAQ,GAAG1F,UAEpCgD,EAAA9f,UAAA2iB,SAAA,SAASpM,GACPhW,KAAKmiB,YAAYnM,EAAMqM,eAAe,GAAG9F,SACrCvc,KAAKkgB,cAAclgB,KAAK+f,SAASpO,OACrC3R,KAAKkgB,cAAe,GAEdX,EAAA9f,UAAAghB,YAAA,WACkB,OAApBzgB,KAAKogB,YAAqB/Q,aAAarP,KAAKogB,YAChDpgB,KAAKogB,WAAa,MAEZb,EAAA9f,UAAAohB,SAAA,SAAS5K,IACXjW,KAAKiR,UAAagF,IACtBjW,KAAKygB,cACLzgB,KAAKmgB,MAAQ,KACbngB,KAAKY,MAAQZ,KAAKW,KAAKsV,GACvBjW,KAAK8f,YAAYnO,KAAK3R,KAAKY,SAErB2e,EAAA9f,UAAA0iB,YAAA,SAAYG,GAElB,IAAItiB,KAAKiR,SAAT,CACA,IAAMgF,EAAQjW,KAAKggB,OAASsC,EACtBC,EACJxX,KAAKsM,IAAIpB,GAAS,GACdlL,KAAKqM,KAAKnB,GAASlL,KAAKoD,IAAI,EAAGpD,KAAKgM,MAAMhM,KAAKsM,IAAIpB,GAAS,KAC5D,EACAkI,EAASoE,EAAQviB,KAAKigB,WACvB9B,IACLne,KAAK6gB,SAAS1C,GACdne,KAAKigB,WAAasC,EAClBviB,KAAKkgB,cAAe,+BAnNvB/G,EAAAA,UAAS1S,KAAA,CAAC,CACT2S,SAAU,aACVC,SAAA,4yDAICxS,EAAAA,qBACAA,EAAAA,yBACAA,EAAAA,6BACAA,EAAAA,yBACAA,EAAAA,mBACAA,EAAAA,mBACAA,EAAAA,oBACAA,EAAAA,sBACAA,EAAAA,wBACAA,EAAAA,uBACAA,EAAAA,sBACAA,EAAAA,2BACAC,EAAAA,yBACAA,EAAAA,iBCWH,kCAVC0b,EAAAA,SAAQ/b,KAAA,CAAC,CACRgc,QAAS,CAACC,EAAAA,cACVC,aAAc,CACZ5b,EACAoY,GACAI,IAEFqD,gBAAiB,CAAC7b,GAClB8b,QAAS,CAAC9b,EAA6BoY","sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import {\n Directive,\n EventEmitter,\n InjectionToken,\n Input,\n Output,\n} from \"@angular/core\";\nimport { WklyWeekOffset } from \"@wkly/core\";\nimport {\n WklyCalendarAdapter,\n WklyDisabledDatePredicate,\n WklyDisabledTimePredicate,\n WklyHourCycle,\n WklyPickerValue,\n WklyRangeValidator,\n WklySelectionMode,\n WklyValidationError,\n WklyViewportPreset,\n WklyWeekLabelFormatter,\n WklyWeekLabelMode,\n} from \"@wkly/adapters\";\nimport {\n DEFAULT_OVERSCAN_WEEKS,\n WklyClock,\n WklyConfiguration,\n WklyCloseReason,\n WklyPickerInputs as WklyPickerInputsContract,\n WklyPickerOutputs as WklyPickerOutputsContract,\n WklyStrings,\n WklyTranslations,\n WklyViewportChange,\n WklyPickerInputsPropertyKeys,\n WklyPickerOutputsPropertyKeys,\n} from \"@wkly/presentation\";\nexport * from \"@wkly/presentation\";\nexport const WKLY_CLOCK = new InjectionToken<WklyClock>(\"WKLY_CLOCK\", {\n providedIn: \"root\",\n factory: () => ({ now: () => new Date() }),\n});\nexport const WKLY_CONFIG = new InjectionToken<WklyConfiguration>(\n \"WKLY_CONFIG\",\n { providedIn: \"root\", factory: () => ({}) },\n);\nexport const WKLY_LOCALIZATION = new InjectionToken<WklyStrings>(\n \"WKLY_LOCALIZATION\",\n { providedIn: \"root\", factory: () => ({}) },\n);\nexport const WKLY_TRANSLATIONS = new InjectionToken<WklyTranslations>(\n \"WKLY_TRANSLATIONS\",\n { providedIn: \"root\", factory: () => ({}) },\n);\n/** Shared public inputs/outputs inherited by the picker and both trigger directives. */\n// Angular 11 consumers need literal names in published decorator metadata.\n@Directive({\n inputs: [\n \"mode\",\n \"value\",\n \"calendarAdapter\",\n \"locale\",\n \"weekOffset\",\n \"viewportPreset\",\n \"hourCycle\",\n \"showSeconds\",\n \"minuteStep\",\n \"secondStep\",\n \"min\",\n \"max\",\n \"isDateDisabled\",\n \"isTimeDisabled\",\n \"rangeValidator\",\n \"allowRangeAcrossDisabled\",\n \"required\",\n \"disabled\",\n \"weekLabelMode\",\n \"weekLabelFormatter\",\n \"weekCacheSize\",\n \"overscanWeeks\",\n \"ariaLabel\",\n \"ariaDescribedBy\",\n \"initialEpochDay\",\n \"closeOnBackdrop\",\n \"validators\",\n \"translations\",\n ],\n outputs: [\n \"valueChange\",\n \"validationChange\",\n \"opened\",\n \"closed\",\n \"viewportChange\",\n \"viewModeChange\",\n ],\n})\nexport abstract class WklyPickerInputs\n implements WklyPickerInputsContract, WklyPickerOutputsContract\n{\n @Input() [WklyPickerInputsPropertyKeys.Mode]: WklySelectionMode = \"datetime\";\n @Input() [WklyPickerInputsPropertyKeys.Value]: WklyPickerValue = null;\n @Input() [WklyPickerInputsPropertyKeys.CalendarAdapter]: WklyCalendarAdapter;\n @Input() [WklyPickerInputsPropertyKeys.Locale]: string = \"\";\n @Input() [WklyPickerInputsPropertyKeys.WeekOffset]: WklyWeekOffset | null =\n null;\n @Input() [WklyPickerInputsPropertyKeys.ViewportPreset]: WklyViewportPreset = {\n kind: \"full-month\",\n };\n @Input() [WklyPickerInputsPropertyKeys.HourCycle]: WklyHourCycle = \"locale\";\n @Input() [WklyPickerInputsPropertyKeys.ShowSeconds]: boolean = false;\n @Input() [WklyPickerInputsPropertyKeys.MinuteStep]: number = 1;\n @Input() [WklyPickerInputsPropertyKeys.SecondStep]: number = 1;\n @Input() [WklyPickerInputsPropertyKeys.Min]: string | null = null;\n @Input() [WklyPickerInputsPropertyKeys.Max]: string | null = null;\n @Input()\n [WklyPickerInputsPropertyKeys.IsDateDisabled]: WklyDisabledDatePredicate | null =\n null;\n @Input()\n [WklyPickerInputsPropertyKeys.IsTimeDisabled]: WklyDisabledTimePredicate | null =\n null;\n @Input()\n [WklyPickerInputsPropertyKeys.RangeValidator]: WklyRangeValidator | null =\n null;\n @Input() [WklyPickerInputsPropertyKeys.AllowRangeAcrossDisabled] = false;\n @Input() [WklyPickerInputsPropertyKeys.Required] = false;\n @Input() [WklyPickerInputsPropertyKeys.Disabled] = false;\n @Input() [WklyPickerInputsPropertyKeys.WeekLabelMode]: WklyWeekLabelMode =\n \"locale\";\n @Input()\n [WklyPickerInputsPropertyKeys.WeekLabelFormatter]: WklyWeekLabelFormatter | null =\n null;\n @Input() [WklyPickerInputsPropertyKeys.WeekCacheSize] = 256;\n @Input() [WklyPickerInputsPropertyKeys.OverscanWeeks] =\n DEFAULT_OVERSCAN_WEEKS;\n @Input() [WklyPickerInputsPropertyKeys.AriaLabel]: string | null = null;\n @Input() [WklyPickerInputsPropertyKeys.AriaDescribedBy]: string | null = null;\n @Input() [WklyPickerInputsPropertyKeys.InitialEpochDay]: number | null = null;\n @Input() [WklyPickerInputsPropertyKeys.CloseOnBackdrop] = true;\n @Input() [WklyPickerInputsPropertyKeys.Validators]: readonly ((\n value: WklyPickerValue,\n ) => WklyValidationError | null)[] = [];\n @Input()\n [WklyPickerInputsPropertyKeys.Translations]: WklyTranslations | null = null;\n @Output() [WklyPickerOutputsPropertyKeys.ValueChange] =\n new EventEmitter<WklyPickerValue>();\n @Output() [WklyPickerOutputsPropertyKeys.ValidationChange] = new EventEmitter<\n readonly WklyValidationError[]\n >(true);\n @Output() [WklyPickerOutputsPropertyKeys.Opened] = new EventEmitter<void>();\n @Output() [WklyPickerOutputsPropertyKeys.Closed] =\n new EventEmitter<WklyCloseReason>();\n @Output() [WklyPickerOutputsPropertyKeys.ViewportChange] =\n new EventEmitter<WklyViewportChange>(true);\n @Output() [WklyPickerOutputsPropertyKeys.ViewModeChange] = new EventEmitter<\n \"calendar\" | \"manual\"\n >();\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n LOCALE_ID,\n OnChanges,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n ViewChild,\n} from \"@angular/core\";\nimport { getLocaleFirstDayOfWeek, isPlatformBrowser } from \"@angular/common\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from \"@angular/forms\";\nimport {\n absoluteWeekOf,\n createWeekGenerator,\n firstEpochDayOf,\n integer,\n WklyWeekGenerator,\n WklyWeekOffset,\n} from \"@wkly/core\";\nimport {\n decodeIso,\n error,\n resolveWeekOffset,\n validateSelection,\n WklyCalendarAdapter,\n WklyCalendarDate,\n WklyDateTime,\n WklyGregorianCalendarAdapter,\n WklyPickerValue,\n WklyValidationError,\n} from \"@wkly/adapters\";\nimport {\n draftDayDifference,\n setDraftDayDifference,\n calendarMonthBounds,\n resolveWklyTranslation,\n createWeekRows,\n validateDrafts,\n WklyDraft as Draft,\n WklyWeekRow as Row,\n} from \"@wkly/presentation\";\nimport {\n coerceBoolean,\n WKLY_CLOCK,\n WKLY_CONFIG,\n WKLY_LOCALIZATION,\n WKLY_TRANSLATIONS,\n WklyClock,\n WklyCloseReason,\n WklyConfiguration,\n WklyJumpOptions,\n WklyPickerInputs,\n WklyPickerInputsPropertyKeys,\n WklyPickerOutputsPropertyKeys,\n WklyStrings,\n WklyTranslations,\n} from \"./config\";\ndeclare class ResizeObserver {\n constructor(callback: () => void);\n observe(element: Element): void;\n disconnect(): void;\n}\n@Component({\n selector: \"wkly-datetime-picker\",\n templateUrl: \"./picker.component.html\",\n styleUrls: [\"../../wkly-datetime-picker/src/picker.component.css\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WklyDateTimePickerComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => WklyDateTimePickerComponent),\n multi: true,\n },\n ],\n})\nexport class WklyDateTimePickerComponent\n extends WklyPickerInputs\n implements\n OnInit,\n OnChanges,\n AfterViewInit,\n OnDestroy,\n ControlValueAccessor,\n Validator\n{\n @ViewChild(\"scroller\") scroller?: ElementRef<HTMLElement>;\n presentation: \"inline\" | \"transient\" = \"inline\";\n viewMode: \"calendar\" | \"manual\" = \"calendar\";\n endView: \"date\" | \"days\" = \"date\";\n adapter!: WklyCalendarAdapter;\n effectiveLocale = \"en-US\";\n effectiveOffset: WklyWeekOffset = 0;\n effectiveHourCycle: \"h12\" | \"h24\" = \"h24\";\n direction = \"ltr\";\n rows: Row[] = [];\n weekdays: string[] = [];\n drafts: Draft[] = [];\n errors: readonly WklyValidationError[] = [];\n today = 0;\n focused = 0;\n anchorWeek = 0;\n firstWeek = 0;\n visibleCount = 6;\n rowHeight = 76;\n scrollHeight = 152076;\n paddingTop = 0;\n initialized = false;\n compact = false;\n readonly WklyPickerInputsPropertyKeys = WklyPickerInputsPropertyKeys;\n private baseWeek = 0;\n private firstSupportedDay = 0;\n private lastSupportedDay = 0;\n private firstSupportedWeek = 0;\n private lastSupportedWeek = 0;\n private generator!: WklyWeekGenerator;\n private initialMonth = \"\";\n private clipMonth = false;\n private browser = false;\n private observer?: ResizeObserver;\n private destroyed = false;\n private scrollEndTimer?: ReturnType<typeof setTimeout>;\n private snapPending = false;\n private onChange: (value: WklyPickerValue) => void = () => {};\n private onTouched: () => void = () => {};\n private validatorChanged: () => void = () => {};\n private configErrors: WklyValidationError[] = [];\n private pendingValue: WklyPickerValue = null;\n private emittedValue: string | null = null;\n private manualDateEndpoint = 0;\n constructor(\n @Inject(LOCALE_ID) private defaultLocale: string,\n @Inject(WKLY_CONFIG) private defaults: WklyConfiguration,\n @Inject(WKLY_CLOCK) private clock: WklyClock,\n @Inject(WKLY_LOCALIZATION) private strings: WklyStrings,\n @Inject(WKLY_TRANSLATIONS) private defaultTranslations: WklyTranslations,\n @Inject(PLATFORM_ID) platform: Object,\n private host: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n ) {\n super();\n this.browser = isPlatformBrowser(platform);\n }\n ngOnInit(): void {\n this.initialize();\n }\n ngOnChanges(changes: any): void {\n if (this.initialized) {\n if (\n Object.keys(changes).length === 1 &&\n changes[WklyPickerInputsPropertyKeys.Value] &&\n this.emittedValue ===\n JSON.stringify(this[WklyPickerInputsPropertyKeys.Value])\n ) {\n this.emittedValue = null;\n return;\n }\n const focus = this.focused;\n this.configure();\n if (\n changes[WklyPickerInputsPropertyKeys.Value] ||\n changes[WklyPickerInputsPropertyKeys.Mode] ||\n changes[WklyPickerInputsPropertyKeys.CalendarAdapter]\n ) {\n this.load(this[WklyPickerInputsPropertyKeys.Value]);\n this.position(this.focused, true);\n } else {\n this.check();\n if (changes[WklyPickerInputsPropertyKeys.ViewportPreset])\n this.position(focus, true);\n else this.scrollToEpochDay(focus);\n }\n }\n }\n initialize(): void {\n if (this.initialized) return;\n this.configure();\n const initialEpochDay = this[WklyPickerInputsPropertyKeys.InitialEpochDay];\n this.today = this.browser\n ? Math.floor(this.clock.now().getTime() / 86400000)\n : initialEpochDay === null\n ? 0\n : initialEpochDay;\n this.focused =\n initialEpochDay === null\n ? this.defaults.initialEpochDay === undefined\n ? this.today\n : this.defaults.initialEpochDay\n : initialEpochDay;\n this.load(this[WklyPickerInputsPropertyKeys.Value]);\n this.initialized = true;\n this.position(this.focused, true);\n }\n configure(): void {\n this.configErrors = [];\n [\n WklyPickerInputsPropertyKeys.ShowSeconds,\n WklyPickerInputsPropertyKeys.AllowRangeAcrossDisabled,\n WklyPickerInputsPropertyKeys.Required,\n WklyPickerInputsPropertyKeys.Disabled,\n WklyPickerInputsPropertyKeys.CloseOnBackdrop,\n ].forEach(\n (key) => ((this as any)[key] = coerceBoolean((this as any)[key])),\n );\n this.effectiveLocale =\n this[WklyPickerInputsPropertyKeys.Locale] ||\n this.defaults.locale ||\n this.defaultLocale;\n this.direction = /^(ar|he|fa|ur)(-|$)/.test(this.effectiveLocale)\n ? \"rtl\"\n : \"ltr\";\n this.adapter =\n this[WklyPickerInputsPropertyKeys.CalendarAdapter] ||\n new WklyGregorianCalendarAdapter(this.effectiveLocale);\n try {\n let firstDay: number | undefined;\n try {\n firstDay = getLocaleFirstDayOfWeek(this.effectiveLocale);\n } catch (_) {}\n this.effectiveOffset = resolveWeekOffset(\n this.effectiveLocale,\n this[WklyPickerInputsPropertyKeys.WeekOffset],\n this.defaults.weekOffset,\n firstDay,\n );\n integer(this[WklyPickerInputsPropertyKeys.WeekCacheSize]);\n integer(this[WklyPickerInputsPropertyKeys.OverscanWeeks]);\n if (\n this[WklyPickerInputsPropertyKeys.WeekCacheSize] < 0 ||\n this[WklyPickerInputsPropertyKeys.OverscanWeeks] < 0 ||\n this[WklyPickerInputsPropertyKeys.OverscanWeeks] > 50\n )\n throw new RangeError();\n if (\n ![\n \"datetime\",\n \"date\",\n \"time\",\n \"datetime-range\",\n \"date-range\",\n \"time-range\",\n ].includes(this[WklyPickerInputsPropertyKeys.Mode])\n )\n throw new RangeError();\n const preset = this[WklyPickerInputsPropertyKeys.ViewportPreset];\n if (preset.kind === \"weeks\") {\n integer(preset.visibleWeekCount);\n if (preset.visibleWeekCount < 1 || preset.visibleWeekCount > 52)\n throw new RangeError();\n }\n if (preset.kind === \"full-month-and-around\")\n for (const n of [\n preset.extraWeeksBefore || 0,\n preset.extraWeeksAfter || 0,\n ]) {\n integer(n);\n if (n < 0 || n > 52) throw new RangeError();\n }\n this.generator = createWeekGenerator({\n weekOffset: this.effectiveOffset,\n cacheSize: this[WklyPickerInputsPropertyKeys.WeekCacheSize],\n });\n } catch (_) {\n this.configErrors.push(\n error(\n \"configuration-error\",\n this[WklyPickerInputsPropertyKeys.WeekOffset],\n ),\n );\n this.generator = createWeekGenerator();\n this.effectiveOffset = 0;\n }\n this.setSupportedScrollRange();\n this.effectiveHourCycle =\n this[WklyPickerInputsPropertyKeys.HourCycle] === \"h12\"\n ? \"h12\"\n : this[WklyPickerInputsPropertyKeys.HourCycle] === \"locale\"\n ? new Intl.DateTimeFormat(this.effectiveLocale, {\n hour: \"numeric\",\n timeZone: \"UTC\",\n }).resolvedOptions().hour12\n ? \"h12\"\n : \"h24\"\n : \"h24\";\n this.weekdays = Array.from({ length: 7 }, (_, i) =>\n this.adapter.formatWeekday(this.effectiveOffset + i, \"short\"),\n );\n }\n private setSupportedScrollRange(): void {\n let [first, last] = this.adapter.supportedEpochDayRange;\n const [firstYear, lastYear] = this.adapter.supportedYearRange;\n const yearOf = (day: number) => this.adapter.epochDayToDate(day).year;\n if (yearOf(first) < firstYear) {\n let low = first,\n high = last;\n while (low < high) {\n const mid = Math.floor((low + high) / 2);\n if (yearOf(mid) < firstYear) low = mid + 1;\n else high = mid;\n }\n first = low;\n }\n if (yearOf(last) > lastYear) {\n let low = first,\n high = last;\n while (low < high) {\n const mid = Math.ceil((low + high) / 2);\n if (yearOf(mid) > lastYear) high = mid - 1;\n else low = mid;\n }\n last = low;\n }\n if (\n first > last ||\n yearOf(first) < firstYear ||\n yearOf(first) > lastYear ||\n yearOf(last) < firstYear ||\n yearOf(last) > lastYear\n )\n throw new RangeError(\"No supported days within the calendar year range\");\n this.firstSupportedDay = first;\n this.lastSupportedDay = last;\n this.firstSupportedWeek = absoluteWeekOf(first, this.effectiveOffset);\n this.lastSupportedWeek = absoluteWeekOf(last, this.effectiveOffset);\n }\n private clampFirstWeek(week: number): number {\n // Keep supported weeks inside the viewport; renderRows adds the buffer rows.\n const last = Math.max(\n this.firstSupportedWeek,\n this.lastSupportedWeek - this.visibleCount + 1,\n );\n return Math.max(this.firstSupportedWeek, Math.min(last, week));\n }\n ngAfterViewInit(): void {\n this.resetScroll();\n if (this.browser && typeof ResizeObserver !== \"undefined\") {\n this.observer = new ResizeObserver(() => {\n this.compact = this.host.nativeElement.clientWidth < 338;\n const row = this.host.nativeElement.querySelector(\n \".week-row\",\n ) as HTMLElement;\n // CSS heights and scrollTop use layout pixels; client rectangles include zoom.\n const height = row ? parseFloat(getComputedStyle(row).height) : 0;\n if (height && height !== this.rowHeight) {\n this.rowHeight = height;\n this.scrollHeight = this.rowHeight * 2001;\n this.renderRows();\n this.resetScroll();\n }\n });\n this.observer.observe(this.host.nativeElement);\n }\n }\n ngOnDestroy(): void {\n this.destroyed = true;\n if (this.observer) this.observer.disconnect();\n if (this.scrollEndTimer) clearTimeout(this.scrollEndTimer);\n if (this.generator) this.generator.clearCache();\n }\n t(key: string): string {\n return resolveWklyTranslation(\n key,\n this.effectiveLocale,\n this[WklyPickerInputsPropertyKeys.Translations] ||\n this.defaultTranslations,\n this.strings,\n );\n }\n get isRange(): boolean {\n return this[WklyPickerInputsPropertyKeys.Mode].endsWith(\"-range\");\n }\n get hasDate(): boolean {\n return !this[WklyPickerInputsPropertyKeys.Mode].startsWith(\"time\");\n }\n get hasTime(): boolean {\n return (\n this[WklyPickerInputsPropertyKeys.Mode] !== \"date\" &&\n this[WklyPickerInputsPropertyKeys.Mode] !== \"date-range\"\n );\n }\n get submitVisible(): boolean {\n return (\n this.presentation === \"transient\" &&\n (this[WklyPickerInputsPropertyKeys.Mode] !== \"date\" ||\n this.viewMode === \"manual\")\n );\n }\n get title(): string {\n try {\n const d = this.adapter.epochDayToDate(\n Math.max(\n this.firstSupportedDay,\n Math.min(\n this.lastSupportedDay,\n firstEpochDayOf(this.anchorWeek, this.effectiveOffset),\n ),\n ),\n );\n return this.adapter.formatMonth(d) + \" \" + this.adapter.formatYear(d);\n } catch (_) {\n return \"\";\n }\n }\n get canSubmit(): boolean {\n return (\n !this[WklyPickerInputsPropertyKeys.Disabled] &&\n !this.errors.length &&\n this.pendingValue !== null\n );\n }\n private blank(day: number): Draft {\n const safe = Math.max(\n this.firstSupportedDay,\n Math.min(this.lastSupportedDay, day),\n );\n return {\n date: this.adapter.epochDayToDate(safe),\n hour: 0,\n minute: 0,\n second: 0,\n present: false,\n };\n }\n load(value: WklyPickerValue): void {\n this.drafts = [this.blank(this.focused), this.blank(this.focused)];\n const validation = validateSelection(value, this, this.adapter);\n if (value !== null && !validation.length) {\n const values = typeof value === \"string\" ? [value] : value;\n values.forEach((v, i) => {\n const d = decodeIso(v);\n this.drafts[i] = {\n date: this.hasDate\n ? this.adapter.epochDayToDate(d.epochDay)\n : this.blank(this.today).date,\n hour: d.hour,\n minute: d.minute,\n second: d.second,\n present: true,\n };\n if (i === 0 && this.hasDate) this.focused = d.epochDay;\n });\n }\n if (validation.length) {\n this.pendingValue = null;\n this.report(validation);\n } else this.check();\n }\n writeValue(value: WklyPickerValue): void {\n this[WklyPickerInputsPropertyKeys.Value] = value;\n if (this.initialized) {\n this.load(value);\n this.position(this.focused, true);\n }\n }\n registerOnChange(fn: (value: WklyPickerValue) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(disabled: boolean): void {\n this[WklyPickerInputsPropertyKeys.Disabled] = disabled;\n }\n validate(_control: AbstractControl): ValidationErrors | null {\n return this.errors.length ? { wkly: this.errors } : null;\n }\n registerOnValidatorChange(fn: () => void): void {\n this.validatorChanged = fn;\n }\n touched(): void {\n Promise.resolve().then(() => this.onTouched());\n }\n private report(errors: readonly WklyValidationError[]): void {\n const changed = JSON.stringify(this.errors) !== JSON.stringify(errors);\n this.errors = errors;\n if (changed) {\n this[WklyPickerOutputsPropertyKeys.ValidationChange].emit(errors);\n this.validatorChanged();\n }\n }\n check(): void {\n const result = validateDrafts({\n drafts: this.drafts,\n configErrors: this.configErrors,\n adapter: this.adapter,\n selection: this,\n mode: this[WklyPickerInputsPropertyKeys.Mode],\n isRange: this.isRange,\n hasDate: this.hasDate,\n hasTime: this.hasTime,\n showSeconds: this[WklyPickerInputsPropertyKeys.ShowSeconds],\n required: this[WklyPickerInputsPropertyKeys.Required],\n });\n this.pendingValue = result.pendingValue;\n this.report(result.errors);\n }\n trackDraft(index: number): number {\n // Endpoint controls keep their identity and focus when draft objects swap.\n return index;\n }\n private orderDrafts(): void {\n if (!this.isRange || !this.drafts.every((draft) => draft.present)) return;\n if (this.drafts.some((draft) => draft.unsupportedEpochDay !== undefined))\n return;\n try {\n const a = this.drafts[0],\n b = this.drafts[1];\n const key = (d: Draft) =>\n this.adapter.dateToEpochDay(d.date) * 86400 +\n (d.hour || 0) * 3600 +\n (d.minute || 0) * 60 +\n (d.second || 0);\n if (key(a) > key(b)) this.drafts = [b, a];\n } catch (_) {\n // Impossible or incomplete dates remain editable until corrected.\n }\n }\n finish(): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n this.orderDrafts();\n if (this.viewMode === \"manual\" && this.hasDate) this.positionOnManualDate();\n this.check();\n if (this.presentation === \"inline\" && this.canSubmit) this.commit();\n }\n private commit(): void {\n if (!this.canSubmit) return;\n const next = this.pendingValue;\n if (\n JSON.stringify(next) !==\n JSON.stringify(this[WklyPickerInputsPropertyKeys.Value])\n ) {\n this[WklyPickerInputsPropertyKeys.Value] = next;\n this.emittedValue = JSON.stringify(next);\n this.onChange(next);\n this[WklyPickerOutputsPropertyKeys.ValueChange].emit(next);\n }\n this.onTouched();\n }\n submit(reason: WklyCloseReason = \"submit\"): void {\n this.check();\n if (!this.canSubmit) return;\n this.commit();\n if (this.presentation === \"transient\")\n this[WklyPickerOutputsPropertyKeys.Closed].emit(reason);\n }\n cancel(reason: WklyCloseReason = \"close-button\"): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n this.load(this[WklyPickerInputsPropertyKeys.Value]);\n this.onTouched();\n this[WklyPickerOutputsPropertyKeys.Closed].emit(reason);\n }\n now(): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n const n = this.clock.now();\n const day = Math.floor(n.getTime() / 86400000);\n this.drafts = [0, 1].map((index) => ({\n ...this.clockDraft(day, n),\n present: index === 0 || this.isRange,\n }));\n if (\n this.hasDate &&\n (day < this.firstSupportedDay || day > this.lastSupportedDay)\n ) {\n this.report([error(\"unsupported-adapter-date\", day)]);\n return;\n }\n this.focused = day;\n this.position(day, true);\n this.check();\n this.submit(\"now\");\n }\n private clockDraft(day: number, now: Date): Draft {\n return {\n ...this.blank(day),\n hour: now.getUTCHours(),\n minute:\n Math.floor(\n now.getUTCMinutes() / this[WklyPickerInputsPropertyKeys.MinuteStep],\n ) * this[WklyPickerInputsPropertyKeys.MinuteStep],\n second: this[WklyPickerInputsPropertyKeys.ShowSeconds]\n ? Math.floor(\n now.getUTCSeconds() / this[WklyPickerInputsPropertyKeys.SecondStep],\n ) * this[WklyPickerInputsPropertyKeys.SecondStep]\n : 0,\n };\n }\n private initializeManualRange(): void {\n if (\n !this.isRange ||\n !this.hasDate ||\n this.drafts.every((draft) => draft.present)\n )\n return;\n let seed = this.drafts.find((draft) => draft.present);\n if (!seed) {\n if (this[WklyPickerInputsPropertyKeys.Value] !== null) return;\n const now = this.clock.now();\n const initialEpochDay =\n this[WklyPickerInputsPropertyKeys.InitialEpochDay];\n const day =\n initialEpochDay === null\n ? this.defaults.initialEpochDay === undefined\n ? Math.floor(now.getTime() / 86400000)\n : this.defaults.initialEpochDay\n : initialEpochDay;\n seed = { ...this.clockDraft(day, now), present: true };\n }\n // Complete missing endpoints without replacing selected or invalid drafts.\n const initial = seed;\n this.drafts = this.drafts.map((draft) =>\n draft.present ? draft : { ...initial, date: { ...initial.date } },\n );\n this.finish();\n // Positioning renders before validation; refresh completion controls afterward.\n this.changeDetector.markForCheck();\n }\n toggleView(): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled] || !this.hasDate) return;\n this.viewMode = this.viewMode === \"calendar\" ? \"manual\" : \"calendar\";\n if (this.viewMode === \"manual\") this.initializeManualRange();\n if (this.viewMode === \"calendar\") this.positionOnManualDate();\n this[WklyPickerOutputsPropertyKeys.ViewModeChange].emit(this.viewMode);\n if (this.viewMode === \"calendar\") setTimeout(() => this.resetScroll());\n }\n private positionOnManualDate(): void {\n const draft = this.drafts[this.manualDateEndpoint];\n if (!draft || !draft.present) return;\n try {\n // A valid day follows the selection. An impossible day keeps its draft\n // fields but still shows the chosen month in the calendar.\n const target = this.adapter.dateToEpochDay(draft.date);\n this.focused = target;\n this.position(target, true);\n } catch (_) {\n try {\n const first = this.adapter.dateToEpochDay({ ...draft.date, day: 1 });\n this.focused = first;\n this.position(first, true);\n } catch (_) {}\n }\n }\n months(draft: Draft): readonly string[] {\n try {\n return this.adapter.getMonths(draft.date.year).map((m) => m.label);\n } catch (_) {\n return [];\n }\n }\n monthCount(draft: Draft): number {\n return this.months(draft).length || 12;\n }\n get inDays(): number | null {\n return draftDayDifference(this.drafts, this.adapter);\n }\n get inDaysLabel(): string {\n const days = this.inDays;\n return this.t(\"inDays\").replace(\n /{{\\s*days\\s*}}/g,\n days === null\n ? this.t(\"daysUnavailable\")\n : new Intl.NumberFormat(this.effectiveLocale, {\n useGrouping: false,\n }).format(days),\n );\n }\n get resultingEndDate(): string {\n try {\n const draft = this.drafts[1];\n if (\n draft.unsupportedEpochDay !== undefined ||\n this.adapter.validateDate(draft.date).length\n )\n return \"\";\n return [\n this.adapter.formatDay(draft.date),\n this.adapter.formatMonth(draft.date),\n this.adapter.formatYear(draft.date),\n ].join(\" \");\n } catch (_) {\n return \"\";\n }\n }\n toggleEndView(view: \"date\" | \"days\"): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n this.endView = view;\n }\n days(value: number | null): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n this.manualDateEndpoint = 1;\n setDraftDayDifference(this.drafts, this.adapter, value);\n this.check();\n }\n field(index: number, field: string, value: number | null): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n const draft = this.drafts[index];\n draft.present = true;\n if (field === \"day\" || field === \"year\" || field === \"month\") {\n this.manualDateEndpoint = index;\n delete draft.unsupportedEpochDay;\n let date = { ...draft.date, [field]: value } as WklyCalendarDate;\n if (field === \"month\") {\n let month;\n try {\n month = this.adapter\n .getMonths(date.year)\n .find((m) => m.month === value);\n } catch (_) {}\n date = { ...date, monthCode: month ? month.monthCode : \"\" };\n }\n if (field === \"year\" && value !== null) {\n try {\n const months = this.adapter.getMonths(value);\n const month = months.find((m) => m.monthCode === date.monthCode);\n if (month) date = { ...date, month: month.month };\n } catch (_) {}\n }\n draft.date = date;\n } else if (field === \"hour\" && this.effectiveHourCycle === \"h12\")\n draft.hour =\n value === null\n ? null\n : value >= 1 && value <= 12\n ? (value % 12) + ((draft.hour || 0) >= 12 ? 12 : 0)\n : 24 + value;\n else (draft as any)[field] = value;\n this.check();\n }\n displayHour(draft: Draft): number | null {\n return draft.hour === null\n ? null\n : this.effectiveHourCycle === \"h12\"\n ? draft.hour % 12 || 12\n : draft.hour;\n }\n period(index: number, period: \"am\" | \"pm\" | \"24\"): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled]) return;\n if (period === \"24\") this.effectiveHourCycle = \"h24\";\n else {\n this.effectiveHourCycle = \"h12\";\n this.drafts[index].hour =\n ((this.drafts[index].hour || 0) % 12) + (period === \"pm\" ? 12 : 0);\n this.drafts[index].present = true;\n this.finish();\n }\n }\n selected(day: number): boolean {\n return this.drafts.some((d) => {\n try {\n return d.present && this.adapter.dateToEpochDay(d.date) === day;\n } catch (_) {\n return false;\n }\n });\n }\n inRange(day: number): boolean {\n if (!this.isRange || !this.drafts.every((d) => d.present)) return false;\n try {\n const a = this.adapter.dateToEpochDay(this.drafts[0].date),\n b = this.adapter.dateToEpochDay(this.drafts[1].date);\n return day > Math.min(a, b) && day < Math.max(a, b);\n } catch (_) {\n return false;\n }\n }\n dayDisabled(day: number): boolean {\n if (day < this.firstSupportedDay || day > this.lastSupportedDay)\n return true;\n try {\n const date = this.adapter.epochDayToDate(day);\n const isDateDisabled = this[WklyPickerInputsPropertyKeys.IsDateDisabled];\n if (\n isDateDisabled &&\n isDateDisabled(day, {\n mode: this[WklyPickerInputsPropertyKeys.Mode],\n endpoint: this.isRange\n ? this.drafts[0]?.present && !this.drafts[1]?.present\n ? \"end\"\n : \"start\"\n : \"single\",\n calendarDate: date,\n })\n )\n return true;\n const min = this[WklyPickerInputsPropertyKeys.Min];\n const max = this[WklyPickerInputsPropertyKeys.Max];\n if (min && day < decodeIso(min).epochDay) return true;\n if (max && day > decodeIso(max).epochDay) return true;\n return false;\n } catch (_) {\n return true;\n }\n }\n select(day: number): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled] || this.dayDisabled(day))\n return;\n this.focused = day;\n const index =\n this.isRange && this.drafts[0].present && !this.drafts[1].present ? 1 : 0;\n if (this.isRange && index === 0) this.drafts[1].present = false;\n delete this.drafts[index].unsupportedEpochDay;\n this.drafts[index].date = this.adapter.epochDayToDate(day);\n this.drafts[index].present = true;\n this.orderDrafts();\n this.renderRows();\n this.finish();\n if (\n this.presentation === \"transient\" &&\n this[WklyPickerInputsPropertyKeys.Mode] === \"date\" &&\n this.viewMode === \"calendar\"\n )\n this.submit(\"auto-submit\");\n }\n key(event: KeyboardEvent, day: number): void {\n let delta = 0;\n if (event.key === \"ArrowLeft\") delta = -1;\n if (event.key === \"ArrowRight\") delta = 1;\n if (event.key === \"ArrowUp\") delta = -7;\n if (event.key === \"ArrowDown\") delta = 7;\n if (event.key === \"PageUp\")\n delta = -7 * (event.shiftKey ? this.visibleCount : 1);\n if (event.key === \"PageDown\")\n delta = 7 * (event.shiftKey ? this.visibleCount : 1);\n if (event.key === \"Home\") {\n event.preventDefault();\n this.scrollToEpochDay(this.today, { focus: true });\n }\n if (delta) {\n event.preventDefault();\n const target = day + delta;\n if (target >= this.firstSupportedDay && target <= this.lastSupportedDay)\n this.scrollToEpochDay(target, { focus: true });\n }\n }\n private position(\n day: number,\n preset = false,\n options: WklyJumpOptions = {},\n ): void {\n day = Math.max(\n this.firstSupportedDay,\n Math.min(this.lastSupportedDay, day),\n );\n this.anchorWeek = absoluteWeekOf(day, this.effectiveOffset);\n const viewportPreset = this[WklyPickerInputsPropertyKeys.ViewportPreset];\n this.clipMonth = preset && viewportPreset.kind === \"full-month\";\n if (preset && viewportPreset.kind !== \"weeks\") {\n const d = this.adapter.epochDayToDate(day);\n this.initialMonth = d.year + \"/\" + d.monthCode;\n const [start, end] = calendarMonthBounds(this.adapter, day);\n this.firstWeek = absoluteWeekOf(start, this.effectiveOffset);\n this.visibleCount =\n absoluteWeekOf(end, this.effectiveOffset) - this.firstWeek + 1;\n if (\n viewportPreset.kind === \"full-month-and-around\" &&\n !this.configErrors.length\n ) {\n const before = viewportPreset.extraWeeksBefore || 0,\n after = viewportPreset.extraWeeksAfter || 0;\n this.firstWeek -= before;\n this.visibleCount += before + after;\n }\n } else {\n if (viewportPreset.kind === \"weeks\")\n this.visibleCount = this.configErrors.length\n ? 6\n : viewportPreset.visibleWeekCount;\n this.firstWeek =\n this.anchorWeek -\n (options.align === \"start\"\n ? 0\n : options.align === \"end\"\n ? this.visibleCount - 1\n : Math.floor(this.visibleCount / 2));\n }\n this.firstWeek = this.clampFirstWeek(this.firstWeek);\n this.baseWeek = this.firstWeek - 1000;\n this.renderRows();\n // Apply the new runway before writing scrollTop or locating a focus target.\n this.changeDetector.detectChanges();\n this.resetScroll();\n }\n private resetScroll(): void {\n // Round week boundaries to avoid scrollTop truncation under CSS zoom.\n if (this.scroller)\n this.scroller.nativeElement.scrollTop = Math.round(1000 * this.rowHeight);\n }\n scroll(event: Event): void {\n const element = event.target as HTMLElement;\n this.snapPending = true;\n this.scheduleSnap();\n // Quantize displacement around the reset point, equally in both directions.\n const relativeRows = element.scrollTop / this.rowHeight - 1000;\n const index =\n 1000 + Math.sign(relativeRows) * Math.round(Math.abs(relativeRows));\n const requestedFirst = this.baseWeek + index;\n const first = this.clampFirstWeek(requestedFirst);\n if (requestedFirst !== first) {\n element.scrollTop = Math.round((first - this.baseWeek) * this.rowHeight);\n }\n if (first === this.firstWeek) return;\n this.clipMonth = false;\n this.firstWeek = first;\n this.anchorWeek = first + Math.floor(this.visibleCount / 2);\n if (index < 100 || index > 1900) {\n // Preserve signed displacement from this week; modulo turns fractional\n // rounding just below a boundary into almost a full row after rebasing.\n const offset =\n element.scrollTop - (first - this.baseWeek) * this.rowHeight;\n this.baseWeek = first - 1000;\n element.scrollTop = Math.round(1000 * this.rowHeight + offset);\n }\n this.renderRows();\n }\n private scheduleSnap(): void {\n if (this.scrollEndTimer) clearTimeout(this.scrollEndTimer);\n this.scrollEndTimer = setTimeout(() => this.snapWeek(), 200);\n }\n snapWeek(): void {\n if (this.scrollEndTimer) clearTimeout(this.scrollEndTimer);\n this.scrollEndTimer = undefined;\n if (!this.snapPending || !this.scroller) return;\n this.snapPending = false;\n // Align the current virtual week without rebuilding or rebasing its rows.\n const element = this.scroller.nativeElement;\n const target = Math.round(\n (this.firstWeek - this.baseWeek) * this.rowHeight,\n );\n if (element.scrollTop !== target) element.scrollTop = target;\n }\n private showFirstWeek(week: number): void {\n const first = this.clampFirstWeek(week);\n if (first === this.firstWeek) return;\n this.clipMonth = false;\n this.firstWeek = first;\n this.anchorWeek = first + Math.floor(this.visibleCount / 2);\n this.baseWeek = first - 1000;\n this.renderRows();\n this.resetScroll();\n }\n canMoveWeek(delta: number): boolean {\n return this.clampFirstWeek(this.firstWeek + delta) !== this.firstWeek;\n }\n moveWeek(delta: number): void {\n if (!this[WklyPickerInputsPropertyKeys.Disabled])\n this.showFirstWeek(this.firstWeek + delta);\n }\n private renderRows(): void {\n // Keep the virtual scroll offset here; row data is shared across Angular versions.\n const overscan = Math.max(\n 0,\n Math.min(50, this[WklyPickerInputsPropertyKeys.OverscanWeeks] || 0),\n );\n const start = this.firstWeek - overscan;\n this.paddingTop = (start - this.baseWeek) * this.rowHeight;\n this.rows = createWeekRows({\n generator: this.generator,\n adapter: this.adapter,\n startWeek: start,\n count: this.visibleCount + 2 * overscan,\n firstVisibleWeek: this.firstWeek,\n firstSupportedDay: this.firstSupportedDay,\n lastSupportedDay: this.lastSupportedDay,\n clipMonth: this.clipMonth,\n initialMonth: this.initialMonth,\n weekLabelMode: this[WklyPickerInputsPropertyKeys.WeekLabelMode],\n weekLabelFormatter:\n this[WklyPickerInputsPropertyKeys.WeekLabelFormatter] || null,\n isDayDisabled: (day) => this.dayDisabled(day),\n });\n this[WklyPickerOutputsPropertyKeys.ViewportChange].emit({\n firstVisibleAbsoluteWeek: this.firstWeek,\n lastVisibleAbsoluteWeek: this.firstWeek + this.visibleCount - 1,\n anchorAbsoluteWeek: this.anchorWeek,\n });\n }\n // Retain day DOM nodes and keyboard focus when row metadata is regenerated.\n trackCell(_i: number, cell: { epochDay: number }): number {\n return cell.epochDay;\n }\n trackRow(_i: number, row: Row): number {\n return row.week.absoluteWeek;\n }\n scrollToEpochDay(day: number, options: WklyJumpOptions = {}): void {\n integer(day);\n this.adapter.epochDayToDate(day);\n day = Math.max(\n this.firstSupportedDay,\n Math.min(this.lastSupportedDay, day),\n );\n // position renders synchronously; publish the tab stop before that render.\n if (options.focus) this.focused = day;\n this.position(day, false, options);\n if (options.select) this.select(day);\n if (options.focus) this.focusDay();\n }\n scrollToAbsoluteWeek(week: number, options: WklyJumpOptions = {}): void {\n // A boundary week can start before the adapter's first supported day.\n const first = firstEpochDayOf(week, this.effectiveOffset);\n this.scrollToEpochDay(\n week === this.firstSupportedWeek\n ? Math.max(first, this.firstSupportedDay)\n : first,\n options,\n );\n }\n scrollToCalendarDate(\n date: WklyCalendarDate,\n options: WklyJumpOptions = {},\n ): void {\n this.scrollToEpochDay(this.adapter.dateToEpochDay(date), options);\n }\n scrollToValue(value: string, options: WklyJumpOptions = {}): void {\n this.scrollToEpochDay(decodeIso(value).epochDay, options);\n }\n focusDay(): void {\n if (!this.browser) return;\n setTimeout(() => {\n if (this.destroyed) return;\n this.changeDetector.detectChanges();\n const day = this.host.nativeElement.querySelector(\n '[data-day=\"' + this.focused + '\"]',\n ) as HTMLElement;\n const fallback = this.host.nativeElement.querySelector(\n \"button:not(:disabled),input:not(:disabled)\",\n ) as HTMLElement;\n (day || fallback)?.focus({ preventScroll: true });\n });\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Inject,\n Injectable,\n Injector,\n OnChanges,\n OnDestroy,\n Optional,\n PLATFORM_ID,\n} from \"@angular/core\";\nimport { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from \"@angular/forms\";\nimport {\n validateSelection,\n WklyGregorianCalendarAdapter,\n WklyCalendarDate,\n WklyPickerValue,\n WklyValidationError,\n} from \"@wkly/adapters\";\nimport { Subscription } from \"rxjs\";\nimport {\n coerceBoolean,\n INPUT_NAMES,\n WklyCloseReason,\n WklyJumpOptions,\n WklyPickerInputs,\n WklyPickerInputsPropertyKeys,\n WklyPickerOutputsPropertyKeys,\n} from \"./config\";\nimport { WklyDateTimePickerComponent } from \"./picker.component\";\nexport interface WklyPresentationRef {\n readonly component: ComponentRef<WklyDateTimePickerComponent>;\n destroy(): void;\n}\n/** Native-dialog factory. Browser resources are allocated only by open(). */\n@Injectable({ providedIn: \"root\" })\nexport class WklyDateTimePickerDialogService {\n constructor(\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n private app: ApplicationRef,\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platform: Object,\n ) {}\n open(\n trigger: HTMLElement,\n onCancel: (reason: WklyCloseReason) => void,\n backdrop = true,\n injector?: Injector,\n ): WklyPresentationRef {\n if (!isPlatformBrowser(this.platform))\n throw new Error(\"Picker presentations can only open in a browser\");\n const dialog = this.document.createElement(\"dialog\");\n dialog.setAttribute(\"aria-label\", \"Date and time picker\");\n Object.assign(dialog.style, {\n padding: \"0\",\n border: \"0\",\n borderRadius: \"14px\",\n width: \"min(390px, 100vw)\",\n maxWidth: \"100vw\",\n maxHeight: \"94vh\",\n background: \"transparent\",\n });\n const component = this.resolver\n .resolveComponentFactory(WklyDateTimePickerComponent)\n .create(injector || this.injector);\n component.instance.presentation = \"transient\";\n dialog.appendChild(component.location.nativeElement);\n this.document.body.appendChild(dialog);\n this.app.attachView(component.hostView);\n const cancel = (event: Event) => {\n event.preventDefault();\n onCancel(\"escape\");\n };\n const click = (event: MouseEvent) => {\n if (backdrop && event.target === dialog) {\n const r = dialog.getBoundingClientRect();\n if (\n event.clientX < r.left ||\n event.clientX > r.right ||\n event.clientY < r.top ||\n event.clientY > r.bottom\n )\n onCancel(\"backdrop\");\n }\n };\n const keydown = (event: KeyboardEvent) => {\n if (event.key !== \"Tab\") return;\n const controls = Array.from(\n dialog.querySelectorAll<HTMLElement>(\n 'button:not(:disabled),input:not(:disabled),[tabindex=\"0\"]',\n ),\n ).filter(\n (el) =>\n el.tabIndex >= 0 &&\n el.getClientRects().length &&\n getComputedStyle(el).visibility !== \"hidden\",\n );\n const first = controls[0],\n last = controls[controls.length - 1];\n if (\n first &&\n (event.shiftKey\n ? this.document.activeElement === first\n : this.document.activeElement === last)\n ) {\n event.preventDefault();\n (event.shiftKey ? last : first).focus();\n }\n };\n dialog.addEventListener(\"cancel\", cancel);\n dialog.addEventListener(\"click\", click);\n dialog.addEventListener(\"keydown\", keydown);\n dialog.showModal();\n return {\n component,\n destroy: () => {\n dialog.removeEventListener(\"cancel\", cancel);\n dialog.removeEventListener(\"click\", click);\n dialog.removeEventListener(\"keydown\", keydown);\n dialog.close();\n this.app.detachView(component.hostView);\n component.destroy();\n dialog.remove();\n trigger.focus();\n },\n };\n }\n}\n/** Shared trigger lifecycle; optional presentation packages extend this class. */\n@Directive()\nexport abstract class WklyTriggerBase\n extends WklyPickerInputs\n implements ControlValueAccessor, Validator, OnChanges, OnDestroy\n{\n protected ref: WklyPresentationRef | null = null;\n protected subscriptions: Subscription[] = [];\n private errors: readonly WklyValidationError[] = [];\n private change: (value: WklyPickerValue) => void = () => {};\n private touched: () => void = () => {};\n private validation: () => void = () => {};\n constructor(protected element: ElementRef<HTMLElement>) {\n super();\n }\n protected abstract create(): WklyPresentationRef;\n @HostListener(\"click\") open(): void {\n if (this[WklyPickerInputsPropertyKeys.Disabled] || this.ref) return;\n this.ref = this.create();\n const picker = this.ref.component.instance;\n this.copy();\n this.subscriptions = [\n picker[WklyPickerOutputsPropertyKeys.ValueChange].subscribe((value) => {\n this[WklyPickerInputsPropertyKeys.Value] = value;\n this.change(value);\n this[WklyPickerOutputsPropertyKeys.ValueChange].emit(value);\n this.display();\n }),\n picker[WklyPickerOutputsPropertyKeys.ValidationChange].subscribe(\n (errors) => {\n this.errors = errors;\n this[WklyPickerOutputsPropertyKeys.ValidationChange].emit(errors);\n this.validation();\n },\n ),\n picker[WklyPickerOutputsPropertyKeys.Closed].subscribe((reason) =>\n this.close(reason),\n ),\n picker[WklyPickerOutputsPropertyKeys.ViewportChange].subscribe((value) =>\n this[WklyPickerOutputsPropertyKeys.ViewportChange].emit(value),\n ),\n picker[WklyPickerOutputsPropertyKeys.ViewModeChange].subscribe((value) =>\n this[WklyPickerOutputsPropertyKeys.ViewModeChange].emit(value),\n ),\n ];\n this.ref.component.changeDetectorRef.detectChanges();\n picker.focusDay();\n this[WklyPickerOutputsPropertyKeys.Opened].emit();\n }\n @HostListener(\"keydown\", [\"$event\"]) key(event: KeyboardEvent): void {\n if (\n event.key === \"Enter\" ||\n event.key === \" \" ||\n event.key === \"ArrowDown\"\n ) {\n event.preventDefault();\n this.open();\n }\n }\n @HostListener(\"blur\") blur(): void {\n this.touched();\n }\n close(reason: WklyCloseReason = \"programmatic\"): void {\n if (!this.ref) return;\n const ref = this.ref;\n this.ref = null;\n this.subscriptions.forEach((s) => s.unsubscribe());\n this.subscriptions = [];\n ref.destroy();\n this.touched();\n this[WklyPickerOutputsPropertyKeys.Closed].emit(reason);\n }\n ngOnChanges(): void {\n [\n WklyPickerInputsPropertyKeys.ShowSeconds,\n WklyPickerInputsPropertyKeys.AllowRangeAcrossDisabled,\n WklyPickerInputsPropertyKeys.Required,\n WklyPickerInputsPropertyKeys.Disabled,\n WklyPickerInputsPropertyKeys.CloseOnBackdrop,\n ].forEach(\n (key) => ((this as any)[key] = coerceBoolean((this as any)[key])),\n );\n this.checkValue();\n this.display();\n if (this.ref) {\n this.copy();\n this.ref.component.instance.ngOnChanges({\n [WklyPickerInputsPropertyKeys.Value]: true,\n });\n this.ref.component.changeDetectorRef.detectChanges();\n }\n }\n ngOnDestroy(): void {\n this.close();\n }\n private copy(): void {\n if (this.ref)\n for (const name of INPUT_NAMES)\n (this.ref.component.instance as any)[name] = (this as any)[name];\n }\n private display(): void {\n const host = this.element.nativeElement as HTMLInputElement;\n if (host.tagName === \"INPUT\") {\n host.readOnly = true;\n const value = this[WklyPickerInputsPropertyKeys.Value];\n host.value =\n value === null\n ? \"\"\n : typeof value === \"string\"\n ? value\n : value.join(\" — \");\n host.disabled = this[WklyPickerInputsPropertyKeys.Disabled];\n host.setAttribute(\"aria-haspopup\", \"dialog\");\n }\n }\n private checkValue(): void {\n this.errors = validateSelection(\n this[WklyPickerInputsPropertyKeys.Value],\n this,\n this[WklyPickerInputsPropertyKeys.CalendarAdapter] ||\n new WklyGregorianCalendarAdapter(\n this[WklyPickerInputsPropertyKeys.Locale] || \"en-US\",\n ),\n );\n this[WklyPickerOutputsPropertyKeys.ValidationChange].emit(this.errors);\n this.validation();\n }\n writeValue(value: WklyPickerValue): void {\n this[WklyPickerInputsPropertyKeys.Value] = value;\n this.checkValue();\n this.display();\n if (this.ref) this.ref.component.instance.writeValue(value);\n }\n registerOnChange(fn: (value: WklyPickerValue) => void): void {\n this.change = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.touched = fn;\n }\n setDisabledState(value: boolean): void {\n this[WklyPickerInputsPropertyKeys.Disabled] = value;\n this.display();\n if (this.ref) this.ref.component.instance.setDisabledState(value);\n }\n validate(): ValidationErrors | null {\n return this.errors.length ? { wkly: this.errors } : null;\n }\n registerOnValidatorChange(fn: () => void): void {\n this.validation = fn;\n }\n scrollToEpochDay(day: number, options?: WklyJumpOptions): void {\n this.open();\n this.ref?.component.instance.scrollToEpochDay(day, options);\n }\n scrollToAbsoluteWeek(week: number, options?: WklyJumpOptions): void {\n this.open();\n this.ref?.component.instance.scrollToAbsoluteWeek(week, options);\n }\n scrollToCalendarDate(\n date: WklyCalendarDate,\n options?: WklyJumpOptions,\n ): void {\n this.open();\n this.ref?.component.instance.scrollToCalendarDate(date, options);\n }\n scrollToValue(value: string, options?: WklyJumpOptions): void {\n this.open();\n this.ref?.component.instance.scrollToValue(value, options);\n }\n}\n@Directive({\n selector: \"[wklyDateTimePickerDialog]\",\n exportAs: \"wklyDialog\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => WklyDateTimePickerDialogDirective),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => WklyDateTimePickerDialogDirective),\n multi: true,\n },\n ],\n})\nexport class WklyDateTimePickerDialogDirective extends WklyTriggerBase {\n constructor(\n element: ElementRef<HTMLElement>,\n private service: WklyDateTimePickerDialogService,\n private triggerInjector: Injector,\n ) {\n super(element);\n }\n protected create(): WklyPresentationRef {\n return this.service.open(\n this.element.nativeElement,\n (reason) => this.close(reason),\n this[WklyPickerInputsPropertyKeys.CloseOnBackdrop],\n this.triggerInjector,\n );\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n} from \"@angular/core\";\nimport { floorMod } from \"@wkly/core\";\nimport { normalizeDigits } from \"@wkly/adapters\";\n@Component({\n selector: \"wkly-field\",\n templateUrl: \"./field.component.html\",\n styleUrls: [\"./field.component.css\"],\n})\nexport class WklyFieldComponent implements OnChanges, OnDestroy {\n @Input() value: number | null = 0;\n @Input() label = \"\";\n @Input() hideLabel = false;\n @Input() previousLabel = \"\";\n @Input() nextLabel = \"\";\n @Input() min = 0;\n @Input() max = 59;\n @Input() step = 1;\n @Input() locale = \"en-US\";\n @Input() disabled = false;\n @Input() invalid = false;\n @Input() labels: readonly string[] | null = null;\n @Output() valueChange = new EventEmitter<number | null>();\n @Output() complete = new EventEmitter<void>();\n private before: number | null = null;\n private touchY = 0;\n private touchSteps = 0;\n private touchChanged = false;\n private typed: string | null = null;\n private inputTimer: ReturnType<typeof setTimeout> | null = null;\n private wheelTimer: ReturnType<typeof setTimeout> | null = null;\n get display(): string {\n if (this.typed !== null) return this.typed;\n return this.value === null\n ? \"\"\n : this.labels\n ? this.labels[this.value - this.min] || String(this.value)\n : new Intl.NumberFormat(this.locale, {\n useGrouping: false,\n minimumIntegerDigits: this.max < 60 ? 2 : 1,\n }).format(this.value);\n }\n ngOnChanges(changes: any): void {\n if (changes.value && this.min < 0 && this.typed !== null) {\n const typedValue =\n this.typed === \"\" || this.typed === \"-\" ? null : Number(this.typed);\n if (this.value !== typedValue) {\n // External date edits replace a pending relative-day preview.\n this.cancelInput();\n this.typed = null;\n }\n }\n }\n ngOnDestroy(): void {\n this.cancelInput();\n if (this.wheelTimer !== null) clearTimeout(this.wheelTimer);\n }\n next(delta: number): number {\n const count = Math.floor((this.max - this.min) / this.step) + 1;\n return (\n this.min +\n floorMod(\n Math.floor(\n ((this.value === null ? this.min : this.value) - this.min) /\n this.step,\n ) + delta,\n count,\n ) *\n this.step\n );\n }\n neighbor(delta: number): string {\n const n = this.next(delta);\n return this.labels\n ? this.labels[n - this.min] || \"\"\n : new Intl.NumberFormat(this.locale, { useGrouping: false }).format(n);\n }\n stepBy(delta: number): void {\n if (this.disabled) return;\n this.scrollBy(delta);\n this.complete.emit();\n }\n begin(event: FocusEvent): void {\n this.before = this.value;\n (event.target as HTMLInputElement).select();\n }\n type(event: Event): void {\n if (this.disabled) return;\n const input = event.target as HTMLInputElement;\n const raw = input.value;\n const numeric = Array.from(raw).every(\n (character) => normalizeDigits(character).length === 1,\n );\n if (this.min < 0 && !this.labels) {\n // Preserve the sign while using the same locale digit normalization.\n const signed = raw\n .replace(/[\\u200e\\u200f\\u061c]/g, \"\")\n .replace(/\\u2212/g, \"-\");\n const digits = normalizeDigits(signed);\n this.typed = input.value = (signed.startsWith(\"-\") ? \"-\" : \"\") + digits;\n this.value =\n digits === \"\"\n ? null\n : Math.max(this.min, Math.min(this.max, Number(this.typed)));\n if (this.value !== null && Number(this.typed) !== this.value)\n this.typed = input.value = String(this.value);\n } else if (numeric) {\n const normalized = normalizeDigits(raw);\n this.typed = input.value =\n this.min >= 0 && this.max < 100 ? normalized.slice(-2) : normalized;\n this.value = this.typed === \"\" ? null : Number(this.typed);\n } else if (this.labels) {\n const search = raw.trim().toLocaleLowerCase(this.locale);\n this.typed = raw;\n const matches = this.labels\n .map((label, index) => ({ label, index }))\n .filter((item) =>\n item.label.toLocaleLowerCase(this.locale).includes(search),\n );\n this.value = matches.length === 1 ? this.min + matches[0].index : null;\n } else {\n this.typed = input.value = normalizeDigits(raw);\n this.value = this.typed === \"\" ? null : Number(this.typed);\n }\n this.valueChange.emit(this.value);\n this.cancelInput();\n if (!numeric && this.labels && this.value !== null) this.complete.emit();\n this.inputTimer = setTimeout(() => {\n this.inputTimer = null;\n this.typed = null;\n if (!this.disabled) this.complete.emit();\n }, 1000);\n }\n key(event: KeyboardEvent): void {\n if (event.key === \"Escape\") {\n event.preventDefault();\n event.stopPropagation();\n this.cancelInput();\n this.typed = null;\n this.value = this.before;\n this.valueChange.emit(this.before);\n (event.target as HTMLInputElement).value = this.display;\n (event.target as HTMLInputElement).blur();\n }\n if (event.key === \"Enter\") {\n event.preventDefault();\n event.stopPropagation();\n this.finish();\n }\n const delta =\n event.key === \"ArrowUp\"\n ? -1\n : event.key === \"ArrowDown\"\n ? 1\n : event.key === \"PageUp\"\n ? -5\n : event.key === \"PageDown\"\n ? 5\n : 0;\n if (delta) {\n event.preventDefault();\n this.stepBy(delta);\n }\n }\n finish(): void {\n this.cancelInput();\n this.typed = null;\n this.complete.emit();\n }\n wheel(event: WheelEvent): void {\n if (this.disabled || Math.abs(event.deltaY) < 1) return;\n event.preventDefault();\n this.scrollBy(event.deltaY > 0 ? 1 : -1);\n if (this.wheelTimer !== null) clearTimeout(this.wheelTimer);\n this.wheelTimer = setTimeout(() => {\n this.wheelTimer = null;\n this.complete.emit();\n }, 140);\n }\n touchStart(event: TouchEvent): void {\n this.touchY = event.touches[0].clientY;\n this.touchSteps = 0;\n this.touchChanged = false;\n }\n touchMove(event: TouchEvent): void {\n this.applyTouchY(event.touches[0].clientY);\n }\n touchEnd(event: TouchEvent): void {\n this.applyTouchY(event.changedTouches[0].clientY);\n if (this.touchChanged) this.complete.emit();\n this.touchChanged = false;\n }\n private cancelInput(): void {\n if (this.inputTimer !== null) clearTimeout(this.inputTimer);\n this.inputTimer = null;\n }\n private scrollBy(delta: number): void {\n if (this.disabled || !delta) return;\n this.cancelInput();\n this.typed = null;\n this.value = this.next(delta);\n this.valueChange.emit(this.value);\n }\n private applyTouchY(y: number): void {\n // Count total gesture steps so repeated move events do not duplicate changes.\n if (this.disabled) return;\n const delta = this.touchY - y;\n const steps =\n Math.abs(delta) > 16\n ? Math.sign(delta) * Math.max(1, Math.round(Math.abs(delta) / 40))\n : 0;\n const change = steps - this.touchSteps;\n if (!change) return;\n this.scrollBy(change);\n this.touchSteps = steps;\n this.touchChanged = true;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { WklyDateTimePickerComponent } from \"./picker.component\";\nimport { WklyDateTimePickerDialogDirective } from \"./presentation\";\nimport { WklyFieldComponent } from \"./field.component\";\nexport * from \"./config\";\nexport { WklyDateTimePickerComponent } from \"./picker.component\";\nexport {\n WklyPresentationRef,\n WklyDateTimePickerDialogService,\n WklyTriggerBase,\n WklyDateTimePickerDialogDirective,\n} from \"./presentation\";\nexport { WklyFieldComponent } from \"./field.component\";\nexport {\n WklyPickerValue,\n WklyIsoString,\n WklyRangeValue,\n WklySelectionMode,\n WklyValidationError,\n WklyValidationErrorCode,\n WklyViewportPreset,\n WklyHourCycle,\n WklyEndpoint,\n WklyDisabledDatePredicate,\n WklyDisabledTimePredicate,\n WklyRangeValidator,\n WklyWeekLabelMode,\n WklyWeekLabelFormatter,\n} from \"@wkly/adapters\";\n@NgModule({\n imports: [CommonModule],\n declarations: [\n WklyDateTimePickerComponent,\n WklyDateTimePickerDialogDirective,\n WklyFieldComponent,\n ],\n entryComponents: [WklyDateTimePickerComponent],\n exports: [WklyDateTimePickerComponent, WklyDateTimePickerDialogDirective],\n})\nexport class WklyDateTimePickerModule {}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"WklyDateTimePickerOverlayService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"Overlay","line":24,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":25,"character":22},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusTrapFactory","line":26,"character":19}]}],"open":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"WklyDateTimePickerOverlayDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@wkly/datetime-picker","name":"WklyTriggerBase","line":114,"character":56},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":98,"character":1},"arguments":[{"selector":"[wklyDateTimePickerOverlay]","exportAs":"wklyOverlay","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":103,"character":15},"useExisting":{"__symbolic":"reference","name":"WklyDateTimePickerOverlayDirective"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":108,"character":15},"useExisting":{"__symbolic":"reference","name":"WklyDateTimePickerOverlayDirective"},"multi":true}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":116,"character":24,"context":{"typeName":"HTMLElement"},"module":"./public-api"}]},{"__symbolic":"reference","name":"WklyDateTimePickerOverlayService"},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":25,"character":22}]}],"create":[{"__symbolic":"method"}]}},"WklyDateTimePickerOverlayModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":131,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/cdk/overlay","name":"OverlayModule","line":132,"character":12},{"__symbolic":"reference","module":"@wkly/datetime-picker","name":"WklyDateTimePickerModule","line":132,"character":27}],"declarations":[{"__symbolic":"reference","name":"WklyDateTimePickerOverlayDirective"}],"exports":[{"__symbolic":"reference","name":"WklyDateTimePickerOverlayDirective"}]}]}],"members":{}}},"origins":{"WklyDateTimePickerOverlayService":"./public-api","WklyDateTimePickerOverlayDirective":"./public-api","WklyDateTimePickerOverlayModule":"./public-api"},"importAs":"@wkly/datetime-picker/cdk-overlay"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, forwardRef, Injectable, Injector, NgModule, } from "@angular/core";
|
|
2
|
-
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
3
|
-
import { Overlay, OverlayModule } from "@angular/cdk/overlay";
|
|
4
|
-
import { ComponentPortal } from "@angular/cdk/portal";
|
|
5
|
-
import { FocusTrapFactory } from "@angular/cdk/a11y";
|
|
6
|
-
import { WklyDateTimePickerComponent, WklyDateTimePickerModule, WklyTriggerBase, WklyPickerInputsPropertyKeys, } from "@wkly/datetime-picker";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
9
|
-
import * as i2 from "@angular/cdk/a11y";
|
|
10
|
-
export class WklyDateTimePickerOverlayService {
|
|
11
|
-
constructor(overlay, injector, traps) {
|
|
12
|
-
this.overlay = overlay;
|
|
13
|
-
this.injector = injector;
|
|
14
|
-
this.traps = traps;
|
|
15
|
-
}
|
|
16
|
-
open(trigger, onCancel, backdrop = true, injector) {
|
|
17
|
-
const overlay = this.overlay.create({
|
|
18
|
-
width: "390px",
|
|
19
|
-
maxWidth: "100vw",
|
|
20
|
-
maxHeight: "94vh",
|
|
21
|
-
hasBackdrop: true,
|
|
22
|
-
backdropClass: "cdk-overlay-transparent-backdrop",
|
|
23
|
-
scrollStrategy: this.overlay.scrollStrategies.block(),
|
|
24
|
-
positionStrategy: this.overlay
|
|
25
|
-
.position()
|
|
26
|
-
.flexibleConnectedTo(trigger)
|
|
27
|
-
.withPush(true)
|
|
28
|
-
.withFlexibleDimensions(false)
|
|
29
|
-
.withLockedPosition(true)
|
|
30
|
-
.withPositions([
|
|
31
|
-
{
|
|
32
|
-
originX: "start",
|
|
33
|
-
originY: "bottom",
|
|
34
|
-
overlayX: "start",
|
|
35
|
-
overlayY: "top",
|
|
36
|
-
offsetY: 6,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
originX: "start",
|
|
40
|
-
originY: "top",
|
|
41
|
-
overlayX: "start",
|
|
42
|
-
overlayY: "bottom",
|
|
43
|
-
offsetY: -6,
|
|
44
|
-
},
|
|
45
|
-
]),
|
|
46
|
-
});
|
|
47
|
-
const component = overlay.attach(new ComponentPortal(WklyDateTimePickerComponent, null, injector || this.injector));
|
|
48
|
-
component.instance.presentation = "transient";
|
|
49
|
-
overlay.overlayElement.setAttribute("role", "dialog");
|
|
50
|
-
overlay.overlayElement.setAttribute("aria-modal", "true");
|
|
51
|
-
overlay.overlayElement.setAttribute("aria-label", "Date and time picker");
|
|
52
|
-
overlay.overlayElement.style.overflow = "auto";
|
|
53
|
-
const trap = this.traps.create(overlay.overlayElement);
|
|
54
|
-
const sub = overlay.backdropClick().subscribe(() => {
|
|
55
|
-
if (backdrop)
|
|
56
|
-
onCancel("backdrop");
|
|
57
|
-
});
|
|
58
|
-
const key = overlay.keydownEvents().subscribe((event) => {
|
|
59
|
-
if (event.key === "Escape") {
|
|
60
|
-
event.preventDefault();
|
|
61
|
-
onCancel("escape");
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
return {
|
|
65
|
-
component,
|
|
66
|
-
destroy: () => {
|
|
67
|
-
sub.unsubscribe();
|
|
68
|
-
key.unsubscribe();
|
|
69
|
-
trap.destroy();
|
|
70
|
-
overlay.dispose();
|
|
71
|
-
trigger.focus();
|
|
72
|
-
},
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
WklyDateTimePickerOverlayService.ɵprov = i0.ɵɵdefineInjectable({ factory: function WklyDateTimePickerOverlayService_Factory() { return new WklyDateTimePickerOverlayService(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i2.FocusTrapFactory)); }, token: WklyDateTimePickerOverlayService, providedIn: "root" });
|
|
77
|
-
WklyDateTimePickerOverlayService.decorators = [
|
|
78
|
-
{ type: Injectable, args: [{ providedIn: "root" },] }
|
|
79
|
-
];
|
|
80
|
-
WklyDateTimePickerOverlayService.ctorParameters = () => [
|
|
81
|
-
{ type: Overlay },
|
|
82
|
-
{ type: Injector },
|
|
83
|
-
{ type: FocusTrapFactory }
|
|
84
|
-
];
|
|
85
|
-
export class WklyDateTimePickerOverlayDirective extends WklyTriggerBase {
|
|
86
|
-
constructor(element, service, triggerInjector) {
|
|
87
|
-
super(element);
|
|
88
|
-
this.service = service;
|
|
89
|
-
this.triggerInjector = triggerInjector;
|
|
90
|
-
}
|
|
91
|
-
create() {
|
|
92
|
-
return this.service.open(this.element.nativeElement, (reason) => this.close(reason), this[WklyPickerInputsPropertyKeys.CloseOnBackdrop], this.triggerInjector);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
WklyDateTimePickerOverlayDirective.decorators = [
|
|
96
|
-
{ type: Directive, args: [{
|
|
97
|
-
selector: "[wklyDateTimePickerOverlay]",
|
|
98
|
-
exportAs: "wklyOverlay",
|
|
99
|
-
providers: [
|
|
100
|
-
{
|
|
101
|
-
provide: NG_VALUE_ACCESSOR,
|
|
102
|
-
useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),
|
|
103
|
-
multi: true,
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
provide: NG_VALIDATORS,
|
|
107
|
-
useExisting: forwardRef(() => WklyDateTimePickerOverlayDirective),
|
|
108
|
-
multi: true,
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
},] }
|
|
112
|
-
];
|
|
113
|
-
WklyDateTimePickerOverlayDirective.ctorParameters = () => [
|
|
114
|
-
{ type: ElementRef },
|
|
115
|
-
{ type: WklyDateTimePickerOverlayService },
|
|
116
|
-
{ type: Injector }
|
|
117
|
-
];
|
|
118
|
-
export class WklyDateTimePickerOverlayModule {
|
|
119
|
-
}
|
|
120
|
-
WklyDateTimePickerOverlayModule.decorators = [
|
|
121
|
-
{ type: NgModule, args: [{
|
|
122
|
-
imports: [OverlayModule, WklyDateTimePickerModule],
|
|
123
|
-
declarations: [WklyDateTimePickerOverlayDirective],
|
|
124
|
-
exports: [WklyDateTimePickerOverlayDirective],
|
|
125
|
-
},] }
|
|
126
|
-
];
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3drbHktZGF0ZXRpbWUtcGlja2VyLjExL2Nkay1vdmVybGF5L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHdCQUF3QixFQUd4QixlQUFlLEVBQ2YsNEJBQTRCLEdBQzdCLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFFL0IsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNVLE9BQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLEtBQXVCO1FBRnZCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUM5QixDQUFDO0lBQ0osSUFBSSxDQUNGLE9BQW9CLEVBQ3BCLFFBQTJDLEVBQzNDLFFBQVEsR0FBRyxJQUFJLEVBQ2YsUUFBbUI7UUFFbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDbEMsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsT0FBTztZQUNqQixTQUFTLEVBQUUsTUFBTTtZQUNqQixXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUUs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ZUFBZSxDQUFVO0lBR25DLENBQUM7SUFDUyxNQUFNO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQzFCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUM5QixJQUFJLENBQUMsNEJBQTRCLENBQUMsZUFBZSxDQUFDLEVBQ2xELElBQUksQ0FBQyxlQUFlLENBQ3JCLENBQUM7SUFDSixDQUFDOzs7WUEvQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQzt3QkFDakUsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0NBQWtDLENBQUM7d0JBQ2pFLEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2FBQ0Y7OztZQTlHQyxVQUFVO1lBa0hTLGdDQUFnQztZQS9HbkQsUUFBUTs7QUFrSVYsTUFBTSxPQUFPLCtCQUErQjs7O1lBTDNDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUM7Z0JBQ2xELFlBQVksRUFBRSxDQUFDLGtDQUFrQyxDQUFDO2dCQUNsRCxPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQzthQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3RhYmxlLFxuICBJbmplY3RvcixcbiAgTmdNb2R1bGUsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IEZvY3VzVHJhcEZhY3RvcnkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2ExMXlcIjtcbmltcG9ydCB7XG4gIFdrbHlEYXRlVGltZVBpY2tlckNvbXBvbmVudCxcbiAgV2tseURhdGVUaW1lUGlja2VyTW9kdWxlLFxuICBXa2x5Q2xvc2VSZWFzb24sXG4gIFdrbHlQcmVzZW50YXRpb25SZWYsXG4gIFdrbHlUcmlnZ2VyQmFzZSxcbiAgV2tseVBpY2tlcklucHV0c1Byb3BlcnR5S2V5cyxcbn0gZnJvbSBcIkB3a2x5L2RhdGV0aW1lLXBpY2tlclwiO1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIFdrbHlEYXRlVGltZVBpY2tlck92ZXJsYXlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgdHJhcHM6IEZvY3VzVHJhcEZhY3RvcnksXG4gICkge31cbiAgb3BlbihcbiAgICB0cmlnZ2VyOiBIVE1MRWxlbWVudCxcbiAgICBvbkNhbmNlbDogKHJlYXNvbjogV2tseUNsb3NlUmVhc29uKSA9PiB2b2lkLFxuICAgIGJhY2tkcm9wID0gdHJ1ZSxcbiAgICBpbmplY3Rvcj86IEluamVjdG9yLFxuICApOiBXa2x5UHJlc2VudGF0aW9uUmVmIHtcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICB3aWR0aDogXCIzOTBweFwiLFxuICAgICAgbWF4V2lkdGg6IFwiMTAwdndcIixcbiAgICAgIG1heEhlaWdodDogXCI5NHZoXCIsXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIixcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRyaWdnZXIpXG4gICAgICAgIC53aXRoUHVzaCh0cnVlKVxuICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbih0cnVlKVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogXCJzdGFydFwiLFxuICAgICAgICAgICAgb3JpZ2luWTogXCJib3R0b21cIixcbiAgICAgICAgICAgIG92ZXJsYXlYOiBcInN0YXJ0XCIsXG4gICAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIixcbiAgICAgICAgICAgIG9mZnNldFk6IDYsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiBcInN0YXJ0XCIsXG4gICAgICAgICAgICBvcmlnaW5ZOiBcInRvcFwiLFxuICAgICAgICAgICAgb3ZlcmxheVg6IFwic3RhcnRcIixcbiAgICAgICAgICAgIG92ZXJsYXlZOiBcImJvdHRvbVwiLFxuICAgICAgICAgICAgb2Zmc2V0WTogLTYsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSksXG4gICAgfSk7XG4gICAgY29uc3QgY29tcG9uZW50ID0gb3ZlcmxheS5hdHRhY2goXG4gICAgICBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgICBXa2x5RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQsXG4gICAgICAgIG51bGwsXG4gICAgICAgIGluamVjdG9yIHx8IHRoaXMuaW5qZWN0b3IsXG4gICAgICApLFxuICAgICk7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlLnByZXNlbnRhdGlvbiA9IFwidHJhbnNpZW50XCI7XG4gICAgb3ZlcmxheS5vdmVybGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJyb2xlXCIsIFwiZGlhbG9nXCIpO1xuICAgIG92ZXJsYXkub3ZlcmxheUVsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1tb2RhbFwiLCBcInRydWVcIik7XG4gICAgb3ZlcmxheS5vdmVybGF5RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWxhYmVsXCIsIFwiRGF0ZSBhbmQgdGltZSBwaWNrZXJcIik7XG4gICAgb3ZlcmxheS5vdmVybGF5RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9IFwiYXV0b1wiO1xuICAgIGNvbnN0IHRyYXAgPSB0aGlzLnRyYXBzLmNyZWF0ZShvdmVybGF5Lm92ZXJsYXlFbGVtZW50KTtcbiAgICBjb25zdCBzdWIgPSBvdmVybGF5LmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKGJhY2tkcm9wKSBvbkNhbmNlbChcImJhY2tkcm9wXCIpO1xuICAgIH0pO1xuICAgIGNvbnN0IGtleSA9IG92ZXJsYXkua2V5ZG93bkV2ZW50cygpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRXNjYXBlXCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25DYW5jZWwoXCJlc2NhcGVcIik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIGRlc3Ryb3k6ICgpID0+IHtcbiAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGtleS51bnN1YnNjcmliZSgpO1xuICAgICAgICB0cmFwLmRlc3Ryb3koKTtcbiAgICAgICAgb3ZlcmxheS5kaXNwb3NlKCk7XG4gICAgICAgIHRyaWdnZXIuZm9jdXMoKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIlt3a2x5RGF0ZVRpbWVQaWNrZXJPdmVybGF5XVwiLFxuICBleHBvcnRBczogXCJ3a2x5T3ZlcmxheVwiLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdrbHlEYXRlVGltZVBpY2tlck92ZXJsYXlEaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gV2tseURhdGVUaW1lUGlja2VyT3ZlcmxheURpcmVjdGl2ZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXa2x5RGF0ZVRpbWVQaWNrZXJPdmVybGF5RGlyZWN0aXZlIGV4dGVuZHMgV2tseVRyaWdnZXJCYXNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBXa2x5RGF0ZVRpbWVQaWNrZXJPdmVybGF5U2VydmljZSxcbiAgICBwcml2YXRlIHRyaWdnZXJJbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnQpO1xuICB9XG4gIHByb3RlY3RlZCBjcmVhdGUoKTogV2tseVByZXNlbnRhdGlvblJlZiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5vcGVuKFxuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAocmVhc29uKSA9PiB0aGlzLmNsb3NlKHJlYXNvbiksXG4gICAgICB0aGlzW1drbHlQaWNrZXJJbnB1dHNQcm9wZXJ0eUtleXMuQ2xvc2VPbkJhY2tkcm9wXSxcbiAgICAgIHRoaXMudHJpZ2dlckluamVjdG9yLFxuICAgICk7XG4gIH1cbn1cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtPdmVybGF5TW9kdWxlLCBXa2x5RGF0ZVRpbWVQaWNrZXJNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtXa2x5RGF0ZVRpbWVQaWNrZXJPdmVybGF5RGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW1drbHlEYXRlVGltZVBpY2tlck92ZXJsYXlEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBXa2x5RGF0ZVRpbWVQaWNrZXJPdmVybGF5TW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview This file was generated by the Angular template compiler. Do not edit.
|
|
3
|
-
*
|
|
4
|
-
* @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
|
|
5
|
-
* tslint:disable
|
|
6
|
-
*/
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./public-api";
|
|
9
|
-
import * as i2 from "../../../dist/wkly-datetime-picker.11/wkly-datetime-picker.ngfactory";
|
|
10
|
-
import * as i3 from "@angular/cdk/overlay";
|
|
11
|
-
import * as i4 from "@angular/common";
|
|
12
|
-
import * as i5 from "@angular/cdk/bidi";
|
|
13
|
-
import * as i6 from "@angular/cdk/portal";
|
|
14
|
-
import * as i7 from "@angular/cdk/platform";
|
|
15
|
-
import * as i8 from "@angular/cdk/scrolling";
|
|
16
|
-
import * as i9 from "@wkly/datetime-picker";
|
|
17
|
-
var WklyDateTimePickerOverlayModuleNgFactory = i0.ɵcmf(i1.WklyDateTimePickerOverlayModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i2.WklyDateTimePickerComponentNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i3.Overlay, i3.Overlay, [i3.ScrollStrategyOptions, i3.OverlayContainer, i0.ComponentFactoryResolver, i3.OverlayPositionBuilder, i3.OverlayKeyboardDispatcher, i0.Injector, i0.NgZone, i4.DOCUMENT, i5.Directionality, i4.Location, i3.OverlayOutsideClickDispatcher]), i0.ɵmpd(5120, i3.ɵangular_material_src_cdk_overlay_overlay_a, i3.ɵangular_material_src_cdk_overlay_overlay_b, [i3.Overlay]), i0.ɵmpd(4608, i4.NgLocalization, i4.NgLocaleLocalization, [i0.LOCALE_ID]), i0.ɵmpd(1073742336, i5.BidiModule, i5.BidiModule, []), i0.ɵmpd(1073742336, i6.PortalModule, i6.PortalModule, []), i0.ɵmpd(1073742336, i7.PlatformModule, i7.PlatformModule, []), i0.ɵmpd(1073742336, i8.CdkScrollableModule, i8.CdkScrollableModule, []), i0.ɵmpd(1073742336, i8.ScrollingModule, i8.ScrollingModule, []), i0.ɵmpd(1073742336, i3.OverlayModule, i3.OverlayModule, []), i0.ɵmpd(1073742336, i4.CommonModule, i4.CommonModule, []), i0.ɵmpd(1073742336, i9.WklyDateTimePickerModule, i9.WklyDateTimePickerModule, []), i0.ɵmpd(1073742336, i1.WklyDateTimePickerOverlayModule, i1.WklyDateTimePickerOverlayModule, [])]); });
|
|
18
|
-
export { WklyDateTimePickerOverlayModuleNgFactory as WklyDateTimePickerOverlayModuleNgFactory };
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5uZ2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy93a2x5LWRhdGV0aW1lLXBpY2tlci4xMS9jZGstb3ZlcmxheS9wdWJsaWMtYXBpLm5nZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBpMSBmcm9tICcuL3B1YmxpYy1hcGknO1xuaW1wb3J0ICogYXMgaTIgZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0ICogYXMgaTMgZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgKiBhcyBpNCBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgKiBhcyBpNSBmcm9tICdAd2tseS9kYXRldGltZS1waWNrZXInO1xuZXhwb3J0IGNvbnN0IFdrbHlEYXRlVGltZVBpY2tlck92ZXJsYXlNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLldrbHlEYXRlVGltZVBpY2tlck92ZXJsYXlNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5EaXIgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTppMy5DZGtTY3JvbGxhYmxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI6aTMuQ2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOmkzLkNka1ZpcnR1YWxGb3JPZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTMuQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzU6aTQuQ2RrQ29ubmVjdGVkT3ZlcmxheSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF82Omk0LkNka092ZXJsYXlPcmlnaW4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzppNS5Xa2x5RGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODppNS5Xa2x5RGF0ZVRpbWVQaWNrZXJEaWFsb2dEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTppMS5Xa2x5RGF0ZVRpbWVQaWNrZXJPdmVybGF5RGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmk0Lk92ZXJsYXlNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE6aTUuV2tseURhdGVUaW1lUGlja2VyTW9kdWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmkwLlRlbXBsYXRlUmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTAuRWxlbWVudFJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":1,"members":[]},{"__symbol":2,"members":[]},{"__symbol":3,"members":[]}]}],"open":[{"__symbolic":"method"}]}},"type":{"summaryKind":3,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":3,"members":[]}}}}],"lifecycleHooks":[]}}},{"symbol":{"__symbol":4,"members":[]},"metadata":{"__symbolic":"class","extends":{"__symbol":5,"members":[]},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":6,"members":[]},{"__symbol":0,"members":[]},{"__symbol":2,"members":[]}]}],"create":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":4,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":6,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":0,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2,"members":[]}}}}],"lifecycleHooks":[1,3]},"isComponent":false,"selector":"[wklyDateTimePickerOverlay]","exportAs":"wklyOverlay","inputs":{},"outputs":{},"hostListeners":{"click":"open()","keydown":"key($event)","blur":"blur()"},"hostProperties":{},"hostAttributes":{},"providers":[{"token":{"identifier":{"reference":{"__symbol":33,"members":[]}}},"useClass":null,"useFactory":null,"useExisting":{"identifier":{"reference":{"__symbol":4,"members":[]}}},"multi":true},{"token":{"identifier":{"reference":{"__symbol":34,"members":[]}}},"useClass":null,"useFactory":null,"useExisting":{"identifier":{"reference":{"__symbol":4,"members":[]}}},"multi":true}],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[],"entryComponents":[],"changeDetection":null,"template":null,"componentViewType":null,"rendererType":null,"componentFactory":null}},{"symbol":{"__symbol":7,"members":[]},"metadata":{"__symbolic":"class"},"type":{"summaryKind":2,"type":{"reference":{"__symbol":7,"members":[]},"diDeps":[],"lifecycleHooks":[]},"entryComponents":[{"componentType":{"__symbol":8,"members":[]},"componentFactory":{"__symbol":9,"members":[]}}],"providers":[{"provider":{"token":{"identifier":{"reference":{"__symbol":1,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":10,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":11,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":12,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":13,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":14,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":15,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":16,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":17,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":18,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":19,"members":[]}}}}],"lifecycleHooks":[]}},"useClass":{"reference":{"__symbol":1,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":10,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":11,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":12,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":13,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":14,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":15,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":16,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":17,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":18,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":19,"members":[]}}}}],"lifecycleHooks":[]},"useFactory":null,"deps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":10,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":11,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":12,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":13,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":14,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":2,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":15,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":16,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":17,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":18,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":19,"members":[]}}}}],"multi":false},"module":{"reference":{"__symbol":20,"members":[]},"diDeps":[],"lifecycleHooks":[]}},{"provider":{"token":{"identifier":{"reference":{"__symbol":21,"members":[]}}},"useClass":null,"useFactory":{"reference":{"__symbol":22,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1,"members":[]}}}}]},"deps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":1,"members":[]}}}}],"multi":false},"module":{"reference":{"__symbol":20,"members":[]},"diDeps":[],"lifecycleHooks":[]}},{"provider":{"token":{"identifier":{"reference":{"__symbol":23,"members":[]}}},"useClass":{"reference":{"__symbol":24,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":25,"members":[]}}}}],"lifecycleHooks":[]},"useFactory":null,"deps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":25,"members":[]}}}}],"multi":false},"module":{"reference":{"__symbol":26,"members":[]},"diDeps":[],"lifecycleHooks":[]}}],"modules":[{"reference":{"__symbol":27,"members":[]},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":28,"members":[]},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":29,"members":[]},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":30,"members":[]},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":31,"members":[]},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":20,"members":[]},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":26,"members":[]},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":32,"members":[]},"diDeps":[],"lifecycleHooks":[]},{"reference":{"__symbol":7,"members":[]},"diDeps":[],"lifecycleHooks":[]}],"exportedDirectives":[{"reference":{"__symbol":4,"members":[]}}],"exportedPipes":[]}}],"symbols":[{"__symbol":0,"name":"WklyDateTimePickerOverlayService","filePath":"./public-api"},{"__symbol":1,"name":"Overlay","filePath":"@angular/cdk/overlay/index"},{"__symbol":2,"name":"Injector","filePath":"@angular/core"},{"__symbol":3,"name":"FocusTrapFactory","filePath":"@angular/cdk/a11y/index"},{"__symbol":4,"name":"WklyDateTimePickerOverlayDirective","filePath":"./public-api"},{"__symbol":5,"name":"WklyTriggerBase","filePath":"../../../dist/wkly-datetime-picker.11/wkly-datetime-picker"},{"__symbol":6,"name":"ElementRef","filePath":"@angular/core"},{"__symbol":7,"name":"WklyDateTimePickerOverlayModule","filePath":"./public-api"},{"__symbol":8,"name":"WklyDateTimePickerComponent","filePath":"../../../dist/wkly-datetime-picker.11/wkly-datetime-picker"},{"__symbol":9,"name":"WklyDateTimePickerComponentNgFactory","filePath":"../../../dist/wkly-datetime-picker.11/wkly-datetime-picker.ngfactory"},{"__symbol":10,"name":"ScrollStrategyOptions","filePath":"@angular/cdk/overlay/index"},{"__symbol":11,"name":"OverlayContainer","filePath":"@angular/cdk/overlay/index"},{"__symbol":12,"name":"ComponentFactoryResolver","filePath":"@angular/core"},{"__symbol":13,"name":"OverlayPositionBuilder","filePath":"@angular/cdk/overlay/index"},{"__symbol":14,"name":"OverlayKeyboardDispatcher","filePath":"@angular/cdk/overlay/index"},{"__symbol":15,"name":"NgZone","filePath":"@angular/core"},{"__symbol":16,"name":"DOCUMENT","filePath":"@angular/common"},{"__symbol":17,"name":"Directionality","filePath":"@angular/cdk/bidi/index"},{"__symbol":18,"name":"Location","filePath":"@angular/common"},{"__symbol":19,"name":"OverlayOutsideClickDispatcher","filePath":"@angular/cdk/overlay/index"},{"__symbol":20,"name":"OverlayModule","filePath":"@angular/cdk/overlay/index"},{"__symbol":21,"name":"ɵangular_material_src_cdk_overlay_overlay_a","filePath":"@angular/cdk/overlay/index"},{"__symbol":22,"name":"ɵangular_material_src_cdk_overlay_overlay_b","filePath":"@angular/cdk/overlay/index"},{"__symbol":23,"name":"NgLocalization","filePath":"@angular/common"},{"__symbol":24,"name":"NgLocaleLocalization","filePath":"@angular/common"},{"__symbol":25,"name":"LOCALE_ID","filePath":"@angular/core"},{"__symbol":26,"name":"CommonModule","filePath":"@angular/common"},{"__symbol":27,"name":"BidiModule","filePath":"@angular/cdk/bidi/index"},{"__symbol":28,"name":"PortalModule","filePath":"@angular/cdk/portal/index"},{"__symbol":29,"name":"PlatformModule","filePath":"@angular/cdk/platform/index"},{"__symbol":30,"name":"CdkScrollableModule","filePath":"@angular/cdk/scrolling/index"},{"__symbol":31,"name":"ScrollingModule","filePath":"@angular/cdk/scrolling/index"},{"__symbol":32,"name":"WklyDateTimePickerModule","filePath":"../../../dist/wkly-datetime-picker.11/wkly-datetime-picker"},{"__symbol":33,"name":"NG_VALUE_ACCESSOR","filePath":"@angular/forms"},{"__symbol":34,"name":"NG_VALIDATORS","filePath":"@angular/forms"}]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbol":1,"members":[]}},{"symbol":{"__symbol":2,"members":[]},"metadata":{"__symbol":3,"members":[]}},{"symbol":{"__symbol":4,"members":[]},"metadata":{"__symbol":5,"members":[]}}],"symbols":[{"__symbol":0,"name":"WklyDateTimePickerOverlayService","filePath":"./wkly-datetime-picker-cdk-overlay"},{"__symbol":1,"name":"WklyDateTimePickerOverlayService","filePath":"./public-api"},{"__symbol":2,"name":"WklyDateTimePickerOverlayDirective","filePath":"./wkly-datetime-picker-cdk-overlay"},{"__symbol":3,"name":"WklyDateTimePickerOverlayDirective","filePath":"./public-api"},{"__symbol":4,"name":"WklyDateTimePickerOverlayModule","filePath":"./wkly-datetime-picker-cdk-overlay"},{"__symbol":5,"name":"WklyDateTimePickerOverlayModule","filePath":"./public-api"}]}
|