{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./wwwroot/Schedule/js/ScheduleManager.module.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","3","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","SectionIndex","parcelRE","PODetail","appointment","palletNum","self","this","poDetails","po","shipmentSize","indexOf","match","internalPurchaseOrderNumber","isScheduled","palletCount","AppointmentId","ko","observable","appointmentId","POID","poid","TimeZoneDefaultCity","timeZoneDefaultCity","SupplierPONum","supplierPONum","Destination","destination","DestinationID","destinationID","ShipmentSize","ShipmentSizeType","shipmentSizeType","TrackingNum","trackingNumber","trackingNum","MasterBillOfLading","masterBillOfLadingNumber","masterBillOfLadingNum","BillOfLading","billOfLadingNumber","billOfLadingNum","CarriersReferenceNumber","carrierProNumber","carriersReferenceNum","ConfirmationNumber","confirmationNumber","OriginID","originID","WarehouseEmail","warehouse","email","PNCount","pnCount","CartonCount","cartonCount","NewPNCount","newPNCount","InternalPurchaseOrder","PalletNum","ShippingCo","shippingCo","ContainerNum","containerNum","IsContainer","IsScheduled","ScheduledDate","appointmentDate","DisplayInternalPurchaseOrder","VendorReferenceNumber","vendorReferenceNumber","IsCustomPalletCountQualified","computed","CanEditPalletNum","AllowSchedulingAfterLFD","allowSchedulingAfterLFD","PalletAcknowledge","Reschedule","RescheduleReason","subscribe","newValue","SelectedPODetail","ScheduleManagerViewModel","submitted","stepTracker","SelectedTimeZone","SelectedShipment","isPreviousVisible","isNextVisible","isFinishedVisible","nextText","nextClass","poSearchText","isError","possiblePOs","observableArray","searched","isInternalPOSearch","shipmentTableClass","SelectedPurchaseOrder","newPODetailValue","activePurchaseOrderNumber","activeVendorPurchaseOrderNumber","activePurchaseOrderDestination","CurrentDate","Date","DesiredEDD","DateSelected","AvailableDates","NoAvailableDates","SelectedTime","FirstSelectedDate","MyDate","LastSelectedDate","LFDRequestReason","ContactInfoID","ContactName","CarrierName","Phone","Email","isBusy","extend","throttle","FormatPODate","date","timezone","moment","tz","format","HasContainer","IsShipmentInfoStepComplete","isNaN","Number","IsAnySelectedPOScheduled","IsRescheduleReasoningStepComplete","POSelectStepComplete","undefined","selectPO","searchPO","EDD","$","steps","ajax","type","url","contentType","success","test","emptyDetail","appointments","pop","message","temp","_","each","sortedTemp","sort","a","b","error","console","log","fullCalendar","events","start","LFD","currentDateExtension","getExtendedTimes","event","request","TimeRequest","StartDate","clone","utc","lastListedDate","latestDate","dailyCapacity","add","EndDate","parseInt","POs","PODTO","JSON","stringify","handleDatesLoad","getAvailableTimes","fromCal","local","tempDates","availableDates","tempSlots","receivingCapacities","slot","display","firstListedTimeSlot","growl","title","style","size","location","saveAppointment","removeClass","addClass","attr","SaveRequest","errorMessage","showConfirmation","submitRequestForApproval","requestReason","ScheduleAfterLFDRequest","RequestReason","showConfirmationOfRequestToScheduleAfterLFD","alert","response","amplify","validForm","find","any","time","phoneMatch","index","ForceSkipSteps","priorIndex","currentIndex","nextStep","previousStep","form","show","getUniqueId","wizard","uniqueId","_id","concat","_uniqueId","headerTag","bodyTag","transitionEffect","autoFocus","enableKeyNavigation","enablePagination","onStepChanging","newIndex","focus","validate","settings","ignore","valid","onStepChanged","publish","onFinishing","onFinished","fn","reset","state","stepCount","parent","_enableAria","ContactInfo","vm","WarehouseDTO","Appointment","AppointmentDTO","InternalPurchaseOrderNumber","PO","Warehouse","Contact","PurchaseOrderNumber","IsReschedule","WarehouseID","PalletCount","TrackingNumber","CarrierProNumber","BillOfLadingNumber","MasterBillOfLadingNumber","AppointmentDate","DesiredEarliestDeliveryDate","EarliestDeliveryDate","LastFreeDate","SchedulerName","ConfirmationEmailAddress","ContactPhone","bindingHandlers","datepicker","init","element","valueAccessor","allBindingsAccessor","$el","options","datepickerOptions","utils","registerEventHandler","domNodeDisposal","addDisposeCallback","update","unwrapObservable","current","minDate","dateRangePicker","dateTimePickerOptions","inline","datetimepicker","isObservable","toDate","picker","destroy","allBindings","viewModel","bindingContext","koDate","parseFloat","replace","inlineDateTimePicker","withPausing","notifySubscribers","pauseNotifications","subscribable","arguments","sneakyUpdate","document","ready","tooltip","myScheduleManagerViewModel","height","selectable","select","end","jsEvent","view","scheduledDate","currentEST","currentESTDay","isoWeekday","currentESTHour","hours","currentESTMinutes","minutes","daysToAdd","diff","isValidDate","startOf","isValid","getScheduledDateData","rendering","block","selectOverlap","selectConstraint","header","left","center","right","fixedWeekCount","nextButton","getElementById","prevButton","finishButton","addEventListener","applyBindings"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAKlC,IAFGe,GAAqBA,EAAoBhB,GAEtCO,EAASC,QACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrBiB,EAAG,GAGAZ,EAAkB,GAGtB,SAASS,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU8B,QAGnC,IAAIC,EAASH,EAAiB5B,GAAY,CACzCK,EAAGL,EACHgC,GAAG,EACHF,QAAS,IAUV,OANAhB,EAAQd,GAAUW,KAAKoB,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAG/DK,EAAOC,GAAI,EAGJD,EAAOD,QAKfJ,EAAoBO,EAAInB,EAGxBY,EAAoBQ,EAAIN,EAGxBF,EAAoBS,EAAI,SAASL,EAASM,EAAMC,GAC3CX,EAAoBY,EAAER,EAASM,IAClC5B,OAAO+B,eAAeT,EAASM,EAAM,CAAEI,YAAY,EAAMC,IAAKJ,KAKhEX,EAAoBgB,EAAI,SAASZ,GACX,oBAAXa,QAA0BA,OAAOC,aAC1CpC,OAAO+B,eAAeT,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DrC,OAAO+B,eAAeT,EAAS,aAAc,CAAEe,OAAO,KAQvDnB,EAAoBoB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQnB,EAAoBmB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKzC,OAAO0C,OAAO,MAGvB,GAFAxB,EAAoBgB,EAAEO,GACtBzC,OAAO+B,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOnB,EAAoBS,EAAEc,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRvB,EAAoB2B,EAAI,SAAStB,GAChC,IAAIM,EAASN,GAAUA,EAAOiB,WAC7B,WAAwB,OAAOjB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAL,EAAoBS,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRX,EAAoBY,EAAI,SAASgB,EAAQC,GAAY,OAAO/C,OAAOC,UAAUC,eAAeC,KAAK2C,EAAQC,IAGzG7B,EAAoB8B,EAAI,GAExB,IAAIC,EAAaC,OAAqB,aAAIA,OAAqB,cAAK,GAChEC,EAAmBF,EAAW5C,KAAKuC,KAAKK,GAC5CA,EAAW5C,KAAOf,EAClB2D,EAAaA,EAAWG,QACxB,IAAI,IAAIvD,EAAI,EAAGA,EAAIoD,EAAWlD,OAAQF,IAAKP,EAAqB2D,EAAWpD,IAC3E,IAAIU,EAAsB4C,EAI1B1C,EAAgBJ,KAAK,CAAC,IAAI,IAEnBM,I,qSCtJT,IAAM0C,EACM,EADNA,EAEY,EAFZA,EAGmB,EAHnBA,EAIoB,EAJpBA,EAKY,EALZA,EAMe,EANfA,EAOW,EAIXC,EAAW,sBAEbC,EAAW,SAAUC,GACrB,IAIIC,EAJAC,EAAOC,KAELC,EAAYJ,EAAYK,GAC1BC,EAAe,GAGfN,EAAYM,aACZA,EAAeN,EAAYM,aACpBF,EAAUE,eACjBA,EAAeF,EAAUE,cAG7BL,GAA8C,IAAjCK,EAAaC,QAAQ,QAAiBD,EAAaE,MAAMV,IAAuD,OAA1CM,EAAUK,4BACvFT,EAAYU,YAAcV,EAAYW,YAAcP,EAAUO,aAClB,IAA5CL,EAAaC,QAAQ,kBAA2B,GAAK,GAE3DL,EAAKU,cAAgBC,GAAGC,WAAWd,EAAYe,eAC/Cb,EAAKc,KAAOH,GAAGC,WAAWV,EAAUa,MACpCf,EAAKgB,oBAAsBL,GAAGC,WAAWV,EAAUe,qBACnDjB,EAAKkB,cAAgBP,GAAGC,WAAWV,EAAUiB,eAC7CnB,EAAKoB,YAAcT,GAAGC,WAAWV,EAAUmB,aAC3CrB,EAAKsB,cAAgBX,GAAGC,WAAWV,EAAUqB,eAC7CvB,EAAKwB,aAAeb,GAAGC,WAAWR,GAClCJ,EAAKyB,iBAAmBd,GAAGC,WAAWV,EAAUwB,kBAChD1B,EAAK2B,YAAchB,GAAGC,WAAWd,EAAYU,YAAcV,EAAY8B,eAAiB1B,EAAU2B,aAClG7B,EAAK8B,mBAAqBnB,GAAGC,WAAWd,EAAYU,YAAcV,EAAYiC,yBAA2B7B,EAAU8B,uBACnHhC,EAAKiC,aAAetB,GAAGC,WAAWd,EAAYU,YAAcV,EAAYoC,mBAAqBhC,EAAUiC,iBACvGnC,EAAKoC,wBAA0BzB,GAAGC,WAAWd,EAAYU,YAAcV,EAAYuC,iBAAmBnC,EAAUoC,sBAChHtC,EAAKuC,mBAAqB5B,GAAGC,WAAWd,EAAY0C,oBACpDxC,EAAKyC,SAAW9B,GAAGC,WAAWV,EAAUwC,UACxC1C,EAAK2C,eAAiBhC,GAAGC,WAAWd,EAAY8C,UAAY9C,EAAY8C,UAAUC,MAAQ,IAC1F7C,EAAK8C,QAAUnC,GAAGC,WAAWd,EAAYU,YAAcV,EAAYiD,QAAU7C,EAAU6C,SACvF/C,EAAKgD,YAAcrC,GAAGC,WAAWd,EAAYmD,YAAcnD,EAAYmD,YAAc,GACrFjD,EAAKkD,WAAavC,GAAGC,WAAWd,EAAYqD,YAC5CnD,EAAKoD,sBAAwBzC,GAAGC,WAAWV,EAAUK,6BACrDP,EAAKqD,UAAY1C,GAAGC,WAAWb,GAC/BC,EAAKsD,WAAa3C,GAAGC,WAAWV,EAAUqD,YAC1CvD,EAAKwD,aAAe7C,GAAGC,WAAWV,EAAUuD,cAC5CzD,EAAK0D,YAAc/C,GAAGC,YAAyD,IAA9CZ,EAAKwB,eAAenB,QAAQ,cAC7DL,EAAK2D,YAAchD,GAAGC,WAAWd,EAAYU,aAC7CR,EAAK4D,cAAgBjD,GAAGC,WAAWd,EAAY+D,iBAC/C7D,EAAK8D,6BAA+BnD,GAAGC,WAwBQ,OAxBmCV,EAAUK,6BAC5FP,EAAK+D,sBAAwBpD,GAAGC,WAAWd,EAAYkE,uBACvDhE,EAAKuC,mBAAqB5B,GAAGC,WAAWd,EAAY0C,oBACpDxC,EAAKiE,6BAA+BtD,GAAGuD,UAAS,WAC5C,OAA+C,IAAxClE,EAAKwB,eAAenB,QAAQ,QAAiBL,EAAKwB,eAAelB,MAAMV,IAA8C,OAAjCI,EAAKoD,2BAEpGpD,EAAKmE,iBAAmBxD,GAAGuD,UAAS,WAChC,OAAOlE,EAAKiE,gCAAkCjE,EAAKwB,kBAGvDxB,EAAKoE,wBAA0BzD,GAAGC,WAAWV,EAAUmE,yBAEvDrE,EAAKsE,kBAAoB3D,GAAGC,YAAW,GACvCZ,EAAKuE,WAAa5D,GAAGC,YAAW,GAChCZ,EAAKwE,iBAAmB7D,GAAGC,WAAW,IAEtCZ,EAAKwB,aAAaiD,WAAU,SAACC,IAW0B,IAAxC1E,EAAKwB,eAAenB,QAAQ,QAAiBL,EAAKwB,eAAelB,MAAMV,IAA8C,OAAjCI,EAAKoD,0BAThGpD,EAAKqD,WAAkD,IAAxCqB,EAASrE,QAAQ,kBAA2B,GAAK,IAChEL,EAAK0D,aAA+C,IAAnCgB,EAASrE,QAAQ,mBAY1CsE,EAAmB,SAAUzE,GAC7B,IAAIF,EAAOC,KAEXD,EAAK2D,YAAchD,GAAGC,WAAWV,EAAUyD,eAE3C3D,EAAKU,cAAgBC,GAAGC,WAAWV,EAAUQ,iBAC7CV,EAAKc,KAAOH,GAAGC,WAAWV,EAAUY,QACpCd,EAAKgB,oBAAsBL,GAAGC,WAAWV,EAAUc,uBACnDhB,EAAKkB,cAAgBP,GAAGC,WAAWV,EAAUgB,iBAC7ClB,EAAKoB,YAAcT,GAAGC,WAAWV,EAAUkB,eAC3CpB,EAAKsB,cAAgBX,GAAGC,WAAWV,EAAUoB,iBAC7CtB,EAAKwB,aAAeb,GAAGC,WAAWZ,EAAK2D,cAAgBzD,EAAUsB,eAAiB,IAClFxB,EAAKyB,iBAAmBd,GAAGC,WAAWV,EAAUuB,oBAChDzB,EAAK2B,YAAchB,GAAGC,WAAWZ,EAAK2D,cAAgBzD,EAAUyB,cAAgB,IAChF3B,EAAK8B,mBAAqBnB,GAAGC,WAAWZ,EAAK2D,cAAgBzD,EAAU4B,qBAAuB,IAC9F9B,EAAKiC,aAAetB,GAAGC,WAAWZ,EAAK2D,cAAgBzD,EAAU+B,eAAiB,IAClFjC,EAAKoC,wBAA0BzB,GAAGC,WAAWZ,EAAK2D,cAAgBzD,EAAUkC,0BAA4B,IACxGpC,EAAKuC,mBAAqB5B,GAAGC,WAAWV,EAAUqC,sBAClDvC,EAAKyC,SAAW9B,GAAGC,WAAWV,EAAUuC,YACxCzC,EAAK2C,eAAiBhC,GAAGC,WAAWV,EAAUyC,kBAC9C3C,EAAK8C,QAAUnC,GAAGC,WAAWZ,EAAK2D,cAAgBzD,EAAU4C,UAAY,GACxE9C,EAAKgD,YAAcrC,GAAGC,WAAWZ,EAAK2D,cAAgBzD,EAAU8C,cAAgB,GAChFhD,EAAKkD,WAAavC,GAAGC,WAAWV,EAAUgD,cAC1ClD,EAAKoD,sBAAwBzC,GAAGC,WAAWV,EAAUkD,yBACrDpD,EAAKqD,UAAY1C,GAAGC,WAAWZ,EAAK2D,cAAgBzD,EAAUmD,YAAc,GAC5ErD,EAAKsD,WAAa3C,GAAGC,WAAWV,EAAUoD,cAC1CtD,EAAKwD,aAAe7C,GAAGC,WAAWV,EAAUsD,gBAC5CxD,EAAK0D,YAAc/C,GAAGC,YAAyD,IAA9CZ,EAAKwB,eAAenB,QAAQ,cAE7DL,EAAK4D,cAAgBjD,GAAGC,WAAWV,EAAU0D,iBAC7C5D,EAAK8D,6BAA+BnD,GAAGC,WAuBQ,OAvBmCV,EAAUkD,yBAC5FpD,EAAK+D,sBAAwBpD,GAAGC,WAAWZ,EAAK2D,YAAczD,EAAU6D,wBAA0B,IAClG/D,EAAKiE,6BAA+BtD,GAAGuD,UAAS,WAC5C,OAA+C,IAAxClE,EAAKwB,eAAenB,QAAQ,QAAiBL,EAAKwB,eAAelB,MAAMV,IAA8C,OAAjCI,EAAKoD,2BAEpGpD,EAAKmE,iBAAmBxD,GAAGuD,UAAS,WAChC,OAAOlE,EAAKiE,gCAAkCjE,EAAKwB,kBAGvDxB,EAAKoE,wBAA0BzD,GAAGC,WAAWV,EAAUmE,yBAEvDrE,EAAKsE,kBAAoB3D,GAAGC,YAAW,GACvCZ,EAAKuE,WAAa5D,GAAGC,WAAWZ,EAAK2D,eACrC3D,EAAKwE,iBAAmB7D,GAAGC,WAAW,IAEtCZ,EAAKwB,aAAaiD,WAAU,SAACC,IAW0B,IAAxC1E,EAAKwB,eAAenB,QAAQ,QAAiBL,EAAKwB,eAAelB,MAAMV,IAA8C,OAAjCI,EAAKoD,0BAThGpD,EAAKqD,WAAkD,IAAxCqB,EAASrE,QAAQ,kBAA2B,GAAK,IAChEL,EAAK0D,aAA+C,IAAnCgB,EAASrE,QAAQ,mBAY1CuE,EAA2B,WAC3B,IAAI5E,EAAOC,KACXD,EAAK6E,UAAYlE,GAAGC,YAAW,GAE/BZ,EAAK8E,YAAcnE,GAAGC,WAAW,GACjCZ,EAAK+E,iBAAmBpE,GAAGC,WAAW,mBAEtCZ,EAAKgF,iBAAmBrE,GAAGC,aAG3BZ,EAAKiF,kBAAoBtE,GAAGC,YAAW,GACvCZ,EAAKkF,cAAgBvE,GAAGC,YAAW,GACnCZ,EAAKmF,kBAAoBxE,GAAGC,YAAW,GAEvCZ,EAAKoF,SAAWzE,GAAGC,WAAW,YAC9BZ,EAAKqF,UAAY1E,GAAGC,WAAW,eAG/BZ,EAAKsF,aAAe3E,GAAGC,WAAW,IAClCZ,EAAKuF,QAAU5E,GAAGC,YAAW,GAC7BZ,EAAKwF,YAAc7E,GAAG8E,gBAAgB,IACtCzF,EAAK0F,SAAW/E,GAAGC,YAAW,GAC9BZ,EAAK2F,mBAAqBhF,GAAGC,YAAW,GACxCZ,EAAK4F,mBAAqBjF,GAAGC,WAAW,aAExCZ,EAAK6F,sBAAwBlF,GAAGC,aAChCZ,EAAK8F,iBAAmBnF,GAAGC,WAAW,MAEtCZ,EAAK+F,0BAA4BpF,GAAGC,WAAW,IAC/CZ,EAAKgG,gCAAkCrF,GAAGC,WAAW,IACrDZ,EAAKiG,+BAAiCtF,GAAGC,WAAW,IAGpDZ,EAAKkG,YAAcvF,GAAGC,WAAW,IAAIuF,MACrCnG,EAAKoG,WAAazF,GAAGC,WAAW,MAChCZ,EAAKqG,aAAe1F,GAAGC,YAAW,GAGlCZ,EAAKsG,eAAiB3F,GAAG8E,gBAAgB,IACzCzF,EAAKuG,iBAAmB5F,GAAGC,YAAW,GACtCZ,EAAKwG,aAAe7F,GAAGC,aACvBZ,EAAKyG,kBAAoB9F,GAAGC,aAC5BZ,EAAK0G,OAAS/F,GAAGC,WAAW,IAAIuF,KAAK,eACrCnG,EAAK2G,iBAAmBhG,GAAGC,aAC3BZ,EAAK4G,iBAAmBjG,GAAGC,WAAW,IAGtCZ,EAAK6G,cAAgBlG,GAAGC,aACxBZ,EAAK8G,YAAcnG,GAAGC,WAAW,IACjCZ,EAAK+G,YAAcpG,GAAGC,WAAW,IACjCZ,EAAKgH,MAAQrG,GAAGC,WAAW,IAC3BZ,EAAKiH,MAAQtG,GAAGC,WAAW,IAE3BZ,EAAKkH,OAASvG,GAAGC,YAAW,GAAOuG,OAAO,CAAEC,SAAU,MAEtDpH,EAAKqH,aAAe,SAAClH,GACjB,IAGMmH,EAAOnH,EAAGyD,gBACV2D,EAAWpH,EAAGa,sBAOpB,OALwBwG,OACnBC,GAAGH,EAPiB,mBAQpBG,GAAGF,GAC8BG,OARN,qBAcpC1H,EAAK6F,sBAAsBpB,WAAU,SAACC,GAClC1E,EAAKgF,iBAAiB,IAAIL,EAAiBD,OAI/C1E,EAAK2H,aAAehH,GAAGuD,UAAS,WAC5B,QAAOlE,EAAKgF,oBAAqBhF,EAAKgF,mBAAmBtB,iBAE7D1D,EAAKoE,wBAA0BzD,GAAGuD,UAAS,WACvC,QAAOlE,EAAKgF,oBAAqBhF,EAAKgF,mBAAmBZ,6BAG7DpE,EAAK4H,2BAA6BjH,GAAGuD,UAAS,WAC1C,IAAM/D,EAAKH,EAAKgF,mBAChB,QAAK7E,IAEyB,GAA1BA,EAAGmE,wBAGkB,KAArBnE,EAAG6C,eAAwB6E,MAAMC,OAAO3H,EAAG6C,iBAAmB8E,OAAO3H,EAAG6C,gBAAkB,OAGvE,KAAnB7C,EAAGkD,aAAsBwE,MAAMC,OAAO3H,EAAGkD,eAAiByE,OAAO3H,EAAGkD,cAAgB,KAGrD,KAA/BlD,EAAG4D,yBAGmB,KAAtB5D,EAAG8B,sBAOXjC,EAAK+H,yBAA2BpH,GAAGuD,UAAS,WACxC,IAAM/D,EAAKH,EAAKgF,mBAChB,QAAO7E,GAAKA,EAAGwD,iBAGnB3D,EAAKgI,kCAAoCrH,GAAGuD,UAAS,WACjD,IAAM/D,EAAKH,EAAKgF,mBAChB,QAAK7E,KAEDA,EAAGwD,iBAAmBxD,EAAGoE,cAAyC,IAAzBpE,EAAGqE,wBAOpDxE,EAAKiI,qBAAuBtH,GAAGuD,UAAS,WAEpC,OAA+BgE,MAA3BlI,EAAKgF,oBAA8D,MAA3BhF,EAAKgF,oBAAgE,GAAlChF,EAAKgF,mBAAmB3I,SAKvG2D,EAAKmI,SAASnI,EAAKgF,qBAEZ,MAGXhF,EAAKmI,SAAW,SAAUhI,GAElBA,EAAGwD,eACHxD,EAAGoE,YAAW,GACdvE,EAAKoF,SAAS,cACdpF,EAAKqF,UAAU,4BAEfrF,EAAKoF,SAAS,YACdpF,EAAKqF,UAAU,gBAGnBrF,EAAK+E,iBAAiB5E,EAAGa,wBAG7BhB,EAAKoI,SAAW,WACZpI,EAAKwF,YAAY,IACjBxF,EAAKkH,QAAO,GACZlH,EAAKqI,MACLrI,EAAK0F,UAAS,GACd1F,EAAK2F,oBAAmB,GACxB3F,EAAK8F,iBAAiB,MACtB9F,EAAK4F,mBAAmB,aACxB5F,EAAKoF,SAAS,YACdpF,EAAKqF,UAAU,eAEfrF,EAAKyG,oBACLzG,EAAK2G,mBACL3G,EAAKsG,eAAe,IACpBtG,EAAKwG,eACL8B,EAAE,kBAAkBC,MAAM,SAE1BD,EAAEE,KAAK,CACHC,KAAM,MACNC,IAAK,cAAe1I,EAAKsF,eACzBqD,YAAa,mBACbC,QAAS,SAAU/M,GAIf,GAHAmE,EAAKkH,QAAO,GACZlH,EAAK0F,UAAS,GAEV,+BAA+BmD,KAAK7I,EAAKsF,gBAAiB,CAC1DtF,EAAK2F,oBAAmB,GACxB,IAAMmD,EAAcjN,EAAKkN,aAAaC,MAElCF,IACA9I,EAAK8F,iBAAiB,IAAIjG,EAASiJ,IACnC9I,EAAK+F,0BAA0B+C,EAAY3I,GAAGI,6BAC9CP,EAAKgG,gCAAgC8C,EAAY3I,GAAGgB,eACpDnB,EAAKiG,+BAA+B6C,EAAY3I,GAAGkB,aACnDrB,EAAK4F,mBAAmB,6BAIhC,GAAqB,KAAjB/J,EAAKoN,QAAT,CAIAjJ,EAAKuF,SAAQ,GAEb,IAAI2D,EAAO,GACXC,EAAEC,KAAKvN,EAAKkN,cAAc,SAAUjJ,GAChCoJ,EAAKvM,KAAK,IAAIkD,EAASC,OAG3B,IAAMuJ,EAAaH,EAAKI,MAAK,SAACC,EAAGC,GAAJ,OAAU,IAAIrD,KAAKqD,EAAE5F,iBAAmB,IAAIuC,KAAKoD,EAAE3F,oBAChF5D,EAAKwF,YAAY6D,QAXbrJ,EAAKuF,SAAQ,IAarBkE,MAAO,SAAUA,GACbC,QAAQC,IAAI,eACZ3J,EAAKkH,QAAO,OAKxBlH,EAAKqI,IAAM,WACP,OAAIC,EAAE,oBAAoBsB,aAAa,mBAAmBvN,OAAS,EACxDiM,EAAE,oBAAoBsB,aAAa,mBAAmBtB,EAAE,oBAAoBsB,aAAa,mBAAmBvN,OAAS,GAAGwN,OAAO,GAAGC,MAElI,IAGf9J,EAAK+J,IAAM,WACP,OAAIzB,EAAE,oBAAoBsB,aAAa,mBAAmBvN,OAAS,EACxDiM,EAAE,oBAAoBsB,aAAa,mBAAmBtB,EAAE,oBAAoBsB,aAAa,mBAAmBvN,OAAS,GAAGwN,OAAO,GAAGC,MAElI,IAIf9J,EAAKgK,qBAAuB,KAC5BhK,EAAKiK,iBAAmB,SAAUpO,EAAMqO,GACpC,IAAIC,EAAU,IAAIC,EAGlB,GAFAD,EAAQE,UAAYrK,EAAKqI,MAAMiC,QAAQC,MAEL,OAA9BvK,EAAKgK,qBACL,GAAIhK,EAAKsG,kBAAoBtG,EAAKsG,iBAAiBjK,OAAS,EAAG,CAC3D,IAAImO,EAAiBxK,EAAKsG,iBAAiBtG,EAAKsG,iBAAiBjK,OAAS,GACtEoO,EAAa,IAAIjD,OAAOgD,EAAeE,cAAc/L,OACzDqB,EAAKgK,qBAAuBS,EAAWH,QAAQK,IAAI,EAAG,aAEtD3K,EAAKgK,qBAAuBhK,EAAK+J,MAAMO,QAAQK,IAAI,EAAG,QAAQJ,WAIlEvK,EAAKgK,qBAAuBhK,EAAKgK,qBAAqBW,IAAI,EAAG,QAEjER,EAAQS,QAAU5K,EAAKgK,qBAAqBO,MAG5C,IAAMpK,EAAKH,EAAKgF,mBAEZ7E,IACAgK,EAAQ9G,WAAawH,SAAS1K,EAAGkD,aACjC8G,EAAQrH,SAAW+H,SAAS1K,EAAG2C,WAC/BqH,EAAQjH,YAAc2H,SAAS1K,EAAG+C,cAClCiH,EAAQnH,aAAe6H,SAAS1K,EAAG6C,eAE/B7C,EAAGyD,iBACHzD,EAAGyD,cAAc4D,OAAOrH,EAAGyD,kBAG/BuG,EAAQW,IAAInO,KAAK,IAAIoO,EAAM5K,KAG/BmI,EAAEE,KAAK,CACHC,KAAM,OACNC,IAAK,mBACLC,YAAa,mBACb9M,KAAMmP,KAAKC,UAAUd,GACrBvB,QAAS5I,EAAKkL,gBACdzB,MAAO,SAAUA,GACbC,QAAQC,IAAI,mBAKxB3J,EAAKmL,kBAAoB,SAAUtP,EAAMqO,EAAOkB,GAC5C,IAAIjB,EAAU,IAAIC,EAYlB,GAXIgB,GACyB,MAArBpL,EAAKoG,cAELpG,EAAKoG,WAAW,IAAID,KAAKnG,EAAKqI,MAAMiC,QAAQe,UAEhDrL,EAAKyG,kBAAkB,IAAIN,KAAKnG,EAAKqI,MAAMiC,QAAQe,UACnDlB,EAAQE,UAAYrK,EAAKqI,MAAMiC,QAAQC,OAEvCJ,EAAQE,UAAY7C,OAAOxH,EAAKyG,qBAGhC2E,EACA,GAAIpL,EAAK2H,gBAAkB3H,EAAK+J,MAAQ/J,EAAKqI,MACzC8B,EAAQS,QAAU5K,EAAK+J,MAAMO,QAAQC,MACrCvK,EAAK2G,iBAAiB,IAAIR,KAAKnG,EAAK+J,MAAMO,QAAQe,cAC/C,CACH,IAAItN,EAAIiC,EAAKqI,MAAMiC,QAAQK,IAAI,GAAI,QACnCR,EAAQS,QAAU7M,EAAEuM,QAAQC,MAC5BvK,EAAK2G,iBAAiB,IAAIR,KAAKpI,EAAEuM,QAAQe,eAG7ClB,EAAQS,QAAUpD,OAAOxH,EAAK2G,oBAGlC,IAAMxG,EAAKH,EAAKgF,mBAEZ7E,IACAgK,EAAQ9G,WAAawH,SAAS1K,EAAGkD,aACjC8G,EAAQrH,SAAW+H,SAAS1K,EAAG2C,WAC/BqH,EAAQjH,YAAc2H,SAAS1K,EAAG+C,cAClCiH,EAAQnH,aAAe6H,SAAS1K,EAAG6C,eACnCmH,EAAQW,IAAInO,KAAK,IAAIoO,EAAM5K,KAG/BmI,EAAEE,KAAK,CACHC,KAAM,OACNC,IAAK,mBACLC,YAAa,mBACb9M,KAAMmP,KAAKC,UAAUd,GACrBvB,QAAS5I,EAAKkL,gBACdzB,MAAO,SAACN,GACJO,QAAQC,IAAI,mBAKxB3J,EAAKkL,gBAAkB,SAAUrP,GAC7B,IAAIyP,EAAY,GAuBhB,GAtBAnC,EAAEC,KAAKvN,EAAK0P,gBAAgB,SAAUjE,GAClC,IAAIkE,EAAY,GAChBrC,EAAEC,KAAK9B,EAAKmE,qBAAqB,SAAUC,GACvCF,EAAU7O,KAAK,CACXgC,MAAO+M,EAAK/M,MACZgN,QAASnE,OAAOC,GAAGiE,EAAK/M,MAAO,mBAAmB8I,GAAGzH,EAAK+E,yBAI9DuC,EAAKoD,cAAciB,SAAW3L,EAAKqI,MAAMX,OAAO,YAChDJ,EAAKoD,cAAciB,SAAW,SACvBrE,EAAKoD,cAAciB,SAAW3L,EAAK+J,MAAMrC,OAAO,cACvDJ,EAAKoD,cAAciB,SAAW,UAGlCL,EAAU3O,KAAK,CACX+N,cAAepD,EAAKoD,cACpBe,oBAAqBD,OAI7BxL,EAAKsG,eAAegF,QACapD,IAA7BlI,EAAKsG,iBAAiB,GAAkB,CACxC,IAAIsF,EAAsB5L,EAAKsG,iBAAiB,GAAGmF,oBAAoB,GACvEzL,EAAKwG,aAAaoF,GAClB5L,EAAKuG,kBAAiB,QAEtB+B,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,+HAAgI8C,MAAO,QAASC,KAAM,QAASC,SAAU,OACvMjM,EAAKuG,kBAAiB,IAI9BvG,EAAKkM,gBAAkB,WACnB,IAAIlM,EAAK6E,YAAT,CAGI7E,EAAK6E,WAAU,GACfyD,EAAE,YAAY6D,YAAY,UAC1B7D,EAAE,+BAA+B8D,SAAS,YAAYC,KAAK,gBAAiB,QAGhF,IAAIlC,EAAU,IAAImC,EAAYtM,GAE9BsI,EAAEE,KAAK,CACHC,KAAM,OACNC,IAAK,kBACLC,YAAa,mBACb9M,KAAMmP,KAAKC,UAAUd,GACrBvB,QAAS,SAAU1L,GAIf,GAHAoL,EAAE,YAAY8D,SAAS,UACvB9D,EAAE,+BAA+B6D,YAAY,YAAYE,KAAK,gBAAiB,SAEzD,GAAlBnP,EAAO0L,QAGP,OAFAN,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS/L,EAAOqP,aAAcR,MAAO,QAASC,KAAM,QAASC,SAAU,YAC5FjM,EAAK6E,WAAU,GAGnB7E,EAAKwM,oBAET/C,MAAO,SAAUA,GACbnB,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,cAAe8C,MAAO,QAASC,KAAM,QAASC,SAAU,OACtFjM,EAAK6E,WAAU,GAEfyD,EAAE,YAAY8D,SAAS,UACvB9D,EAAE,+BAA+B6D,YAAY,YAAYE,KAAK,gBAAiB,cAM3FrM,EAAKyM,yBAA2B,SAAU1L,EAAM8B,EAAO6J,GACnD,IAAIvC,EAAU,IAAIwC,EAClBxC,EAAQrJ,KAAOC,EACfoJ,EAAQlD,MAAQpE,EAChBsH,EAAQyC,cAAgBF,EAIxB,IADY1M,EAAKiH,QAAQ3G,MADhB,cAIL,OADAgI,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,6BAA8B8C,MAAO,QAASC,KAAM,QAASC,SAAU,QAC9F,EAGX3D,EAAEE,KAAK,CACHC,KAAM,OACNC,IAAK,8CACLC,YAAa,mBACb9M,KAAMmP,KAAKC,UAAUd,GACrBvB,QAAS,SAAU1L,GACf8C,EAAK6M,+CAETpD,MAAO,SAAUA,GACbqD,MAAM,kEAKlB9M,EAAKwM,iBAAmB,WACpBlE,EAAEE,KAAK,CACHC,KAAM,MACNC,IAAK,0BACLC,YAAa,mBACb9M,KAAM,GACN+M,QAAS,SAAUmE,GACQ,YAAnBA,EAAS7P,SACTsC,OAAOyM,SAAWc,EAASrE,SAM3C1I,EAAK6M,4CAA8C,SAAUrK,GACzD8F,EAAEE,KAAK,CACHC,KAAM,MACNC,IAAK,8BACLC,YAAa,mBACb9M,KAAM,GACN+M,QAAS,SAAUmE,GACQ,YAAnBA,EAAS7P,SACTsC,OAAOyM,SAAWc,EAASrE,SAK3CsE,QAAQvI,UAAU,eAAe,WAC7BzE,EAAKqG,cAAa,MAGtB2G,QAAQvI,UAAU,mBAAmB,WACjCzE,EAAKqG,cAAa,MAItBrG,EAAKiN,UAAYtM,GAAGuD,UAAS,WAGzB,OAFoBlE,EAAK8E,eAGrB,KAAKnF,EACD,OAAOK,EAAKiI,uBAChB,KAAKtI,EACD,OAAOK,EAAKgI,oCAChB,KAAKrI,EACD,OAAOK,EAAK4H,6BAChB,KAAKjI,EACD,IAAKK,EAAKqG,gBAAgC,IAAdrG,EAAKqI,MAAe,OAAO,EACvD,MACJ,KAAK1I,EACD,GAAIK,EAAK2H,kBAAoB3H,EAAKqG,gBAAgC,IAAdrG,EAAK+J,OAAgB,OAAO,EAChF,MACJ,KAAKpK,EACD,GAAIK,EAAKsG,iBAAiBjK,OAAS,EAAK,OAAO,EAO/C,GAAa,OANTiE,EAAQ6I,EAAE+D,KAAKlN,EAAKsG,kBAAkB,SAAUgB,GAChD,IAAI6F,EAAMhE,EAAE+D,KAAK5F,EAAKmE,qBAAqB,SAAU2B,GACjD,OAAOpN,EAAKwG,gBAAkB4G,EAAKzO,OAASqB,EAAKwG,eAAe7H,SAEpE,OAAc,MAAPwO,GAAsBjF,MAAPiF,OAEIjF,MAAT5H,EAAsB,OAAO,EAClD,MACJ,KAAKX,EACD,GAA0B,IAAtBK,EAAK8G,eAA6C,IAAtB9G,EAAK+G,eAAuC,IAAhB/G,EAAKgH,QAAiB,OAAO,EACzF,IACIqG,EAAarN,EAAKgH,QAAQ1G,MADpB,sDAEV,IAAK+M,GAAkC,GAApBA,EAAWC,MAAc,OAAO,EACnD,IACIhN,EACJ,KADIA,EAAQN,EAAKiH,QAAQ3G,MADf,eAEI,OAAO,EACrB,MACJ,QACI,OAAO,EAEf,OAAO,KAGXN,EAAKuN,eAAiB,SAACC,EAAYC,EAAb,GAA0D,IAA7BC,EAA6B,EAA7BA,SAAUC,EAAmB,EAAnBA,aAEzD,OAAIF,GAAgB9N,GAAqCK,EAAK+H,2BAW1D0F,IAAiB9N,GAA8BK,EAAK2H,oBAAxD,EACQ6F,IAAe7N,OACfgO,SAGAD,IAfAF,EAAa7N,OACbgO,SAGAD,KAiBZ1N,EAAKiN,UAAUxI,WAAU,WACjBzE,EAAKiN,YAoMT3E,EAAE,+BAA+B6D,YAAY,YAAYE,KAAK,gBAAiB,SAJ/E/D,EAAE,+BAA+B8D,SAAS,YAAYC,KAAK,gBAAiB,WAxLhF,IAAIuB,EAAOtF,EAAE,kBAAkBuF,OA+L/B,SAASC,EAAYC,GACjB,IAAIC,EAAWD,EAAOlS,KAAK,OAa3B,OAXgB,MAAZmS,IAEgB,OADhBA,EAAWD,EAAOE,SAEdD,EAAW,aAAaE,OAAOC,WAC/BJ,EAAOE,IAAID,IAGfG,YACAJ,EAAOlS,KAAK,MAAOmS,IAGhBA,EA5MXJ,EAAKrF,MAAM,CACP6F,UAAW,KACXC,QAAS,UACTC,iBAAkB,OAClBC,WAAW,EACXC,qBAAqB,EACrBC,kBAAkB,EAClBC,eAAgB,SAAUxE,EAAOuD,EAAckB,GAG3C,GAAIlB,EAAekB,EACf,OAAO,EASX,GAJIA,IAAahP,GACb2I,EAAE,aAAasG,QAGfnB,IAAiB9N,EAAqB,CACtC,IAAKK,EAAKiI,uBAEN,OADAK,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,6CAA8C8C,MAAO,QAASC,KAAM,QAASC,SAAU,QAC9G,EAGXjM,EAAKoF,SAAS,QACdpF,EAAKiF,mBAAkB,GACvBjF,EAAKqF,UAAU,eAInB,GAAIoI,GAAgB9N,IACXK,EAAKgI,oCASN,OARAM,EAAEuD,MAAM,CACJC,MAAO,GACP7C,QAAS,0CACT8C,MAAO,QACPC,KAAM,QACNC,SAAU,QAGP,EAIf,GAAIwB,GAAgB9N,IACXK,EAAK4H,6BASN,OARAU,EAAEuD,MAAM,CACJC,MAAO,GACP7C,QAAS,yFACT8C,MAAO,QACPC,KAAM,QACNC,SAAU,QAGP,EAKf,GAAI0C,IAAahP,GAA6B8N,IAAiB9N,EAAmC,CAC9F,IAAKK,EAAKqG,eAEN,OADAiC,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,uBAAwB8C,MAAO,QAASC,KAAM,QAASC,SAAU,QACxF,EAGNjM,EAAK2H,gBACN3H,EAAKmL,kBAAkB,KAAM,MAAM,GAI3C,GAAInL,EAAK2H,gBAAkBgH,IAAahP,GAAgC8N,IAAiB9N,EAA2B,CAChH,IAAKK,EAAKqG,eAEN,OADAiC,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,uBAAwB8C,MAAO,QAASC,KAAM,QAASC,SAAU,QACxF,EAIXjM,EAAKgK,qBAAuB,KAE5BhK,EAAKmL,kBAAkB,KAAM,MAAM,GAIvC,GAAIsC,GAAgB9N,EAA8B,CAC9C,GAAIK,EAAKsG,iBAAiBjK,OAAS,EAE/B,OADAiM,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,kFAAmF8C,MAAO,QAASC,KAAM,QAASC,SAAU,QACnJ,EASX,GAAa,OAPT3L,EAAQ6I,EAAE+D,KAAKlN,EAAKsG,kBAAkB,SAAUgB,GAChD,IAAI6F,EAAMhE,EAAE+D,KAAK5F,EAAKmE,qBAAqB,SAAU2B,GACjD,OAAOpN,EAAKwG,gBAAkB4G,EAAKzO,OAASqB,EAAKwG,eAAe7H,SAEpE,OAAc,MAAPwO,GAAsBjF,MAAPiF,OAGIjF,MAAT5H,EAEjB,OADAgI,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,qDAAsD8C,MAAO,QAASC,KAAM,QAASC,SAAU,QACtH,EAKf,GAAIwB,IAAiB9N,EAA0B,CAC3C,IACI0N,EAAarN,EAAKgH,QAAQ1G,MADpB,sDAEV,IAAK+M,GAAkC,GAApBA,EAAWC,MAE1B,OADAhF,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,oCAAqC8C,MAAO,QAASC,KAAM,QAASC,SAAU,QACrG,EAEX,IACI3L,EACJ,KADIA,EAAQN,EAAKiH,QAAQ3G,MADhB,eAIL,OADAgI,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAAS,6BAA8B8C,MAAO,QAASC,KAAM,QAASC,SAAU,QAC9F,EAGXjM,EAAKkF,eAAc,GACnBlF,EAAKmF,mBAAkB,GAI3B,OADAyI,EAAKiB,WAAWC,SAASC,OAAS,oBAC3BnB,EAAKoB,SAEhBC,cAAe,SAAU/E,EAAOuD,EAAcD,GAAY,WAGtDxN,EAAKuN,eACDC,EACAC,EACA,CACIC,SAAU,kBAAMpF,EAAE,GAAMC,MAAM,SAC9BoF,aAAc,kBAAMrF,EAAE,GAAMC,MAAM,eAGtCkF,IAAiB9N,IACjB2I,EAAE,oBAAoBsB,aAAa,UACjB,IAAd5J,EAAKqI,OACL2E,QAAQkC,QAAQ,oBAIpBzB,IAAiB9N,IACjB2I,EAAE,oBAAoBsB,aAAa,UACjB,IAAd5J,EAAK+J,OACLiD,QAAQkC,QAAQ,oBAIxBlP,EAAK8E,YAAY2I,IAErB0B,YAAa,SAAUjF,EAAOuD,GAE1B,OADAG,EAAKiB,WAAWC,SAASC,OAAS,YAC3BnB,EAAKoB,SAEhBI,WAAY,SAAUlF,EAAOuD,GACzBzN,EAAKkM,qBAGb5D,EAAE,aAAasG,QAGftG,EAAE+G,GAAG9G,MAAM+G,MAAQ,WAGFrP,KAEIpE,KAAK,WAKtB,IAPA,IAIA0T,EAJatP,KAIEpE,KAAK,SAGXM,EAAI,EAAGA,EAAIoT,EAAMC,UAAWrT,IAAK,CAEtC,IAAI6R,EAAWF,EATN7N,WAWeiN,KAAK,IAAMc,EADlB,MAC0C7R,GAChDsT,SAAStD,YAAY,QAAQuD,aAAY,MA8B5DC,EAAc,SAAUC,GACb3P,KACN4G,cAAgB+I,EAAG/I,gBADb5G,KAEN6G,YAAc8I,EAAG9I,cAFX7G,KAGN8G,YAAc6I,EAAG7I,cAHX9G,KAIN+G,MAAQ4I,EAAG5I,QAJL/G,KAKNgH,MAAQ2I,EAAG3I,SAGhB4I,EAAe,SAAU1P,GACdF,KACNwC,SAAWtC,EAAGsC,WADRxC,KAENgH,MAAQ9G,EAAGwC,kBAGhB2J,EAAc,SAAUsD,GACb3P,KACN6P,YAAc,IAAIC,EAAeH,EAAIA,EAAG5K,qBAG7C+F,EAAQ,SAAU5K,GACPF,KACNa,KAAOX,EAAGW,OADJb,KAENiB,cAAgBf,EAAGe,gBAFbjB,KAGNuD,aAAerD,EAAGqD,eAHZvD,KAIN0B,YAAcxB,EAAGwB,cAJX1B,KAKNwC,SAAWtC,EAAGsC,WALRxC,KAMNmB,YAAcjB,EAAGiB,cANXnB,KAONqB,cAAgBnB,EAAGmB,gBAPbrB,KAQNuB,aAAerB,EAAGqB,eARZvB,KASNwB,iBAAmBtB,EAAGsB,mBAThBxB,KAUN+C,YAAc7C,EAAG6C,cAVX/C,KAWN6C,QAAU3C,EAAG2C,UAXP7C,KAYNiD,WAAa/C,EAAG+C,aAZVjD,KAaN0D,YAAcxD,EAAGwD,cAbX1D,KAcN2D,cAAgBzD,EAAGyD,gBAdb3D,KAeN+P,4BAA8B7P,EAAGiD,yBAGtC2M,EAAiB,SAAUH,EAAIzP,GACpBF,KACNS,cAAgBP,EAAGO,gBADbT,KAENgQ,GAAK,IAAIlF,EAAM5K,GAFTF,KAGNiQ,UAAY,IAAIL,EAAa1P,GAHvBF,KAINkQ,QAAU,IAAIR,EAAYC,GAJpB3P,KAKNsC,mBAAqBpC,EAAGoC,qBALlBtC,KAMNmQ,oBAAsBjQ,EAAGiD,wBANnBnD,KAONoQ,aAAelQ,EAAGoE,aAPZtE,KAQNuE,iBAAmBrE,EAAGqE,mBARhBvE,KASNqQ,YAAcnQ,EAAGmB,gBATXrB,KAUNuB,aAAerB,EAAGqB,eAVZvB,KAWNsQ,YAAcpQ,EAAGkD,YAXXpD,KAYN+C,YAAc7C,EAAG6C,cAZX/C,KAaN6C,QAAU3C,EAAG2C,UAbP7C,KAcNiD,WAAa/C,EAAG+C,aAdVjD,KAeN8D,sBAAwB5D,EAAG4D,wBAfrB9D,KAgBNuQ,eAAiBrQ,EAAGwB,cAhBd1B,KAiBNwQ,iBAAmBtQ,EAAGiC,0BAjBhBnC,KAkBNyQ,mBAAqBvQ,EAAG8B,eAlBlBhC,KAmBN0Q,yBAA2BxQ,EAAG2B,qBAnBxB7B,KAqBN2Q,gBAAkBhB,EAAGpJ,eAAe7H,MArB9BsB,KAsBN4Q,4BAA8BjB,EAAGxJ,aAtB3BnG,KAuBN6Q,qBAAuBlB,EAAGvH,MAvBpBpI,KAwBN8Q,aAAenB,EAAG7F,MAxBZ9J,KA0BN+Q,cAAgBpB,EAAG9I,cA1Bb7G,KA2BNgR,yBAA2BrB,EAAG3I,QA3BxBhH,KA4BNiR,aAAetB,EAAG5I,SAGvBoD,EAAc,WACHnK,KACNoK,UAAY,GADNpK,KAEN2K,QAAU,GAFJ3K,KAGNoD,UAAY,EAHNpD,KAIN6C,QAAU,EAJJ7C,KAKNiD,WAAa,EALPjD,KAMN+C,YAAc,EANR/C,KAON6K,IAAM,IAGX6B,EAA0B,WACf1M,KACNgH,MAAQ,GADFhH,KAEN2M,cAAgB,GAFV3M,KAGNa,KAAO,GAGZ6L,EAA0B,WACf1M,KACNgH,MAAQ,GADFhH,KAEN2M,cAAgB,GAFV3M,KAGNa,KAAO,GAGhBH,GAAGwQ,gBAAgBC,WAAa,CAC5BC,KAAM,SAAUC,EAASC,EAAeC,GACpC,IAAIC,EAAMnJ,EAAEgJ,GAGRI,EAAUF,IAAsBG,mBAAqB,GACzDF,EAAIL,WAAWM,GAGf/Q,GAAGiR,MAAMC,qBAAqBP,EAAS,UAAU,WAC5BC,GACjB3Q,CAAW6Q,EAAIL,WAAW,eAI9BzQ,GAAGiR,MAAME,gBAAgBC,mBAAmBT,GAAS,WACjDG,EAAIL,WAAW,eAIvBY,OAAQ,SAAUV,EAASC,EAAeC,GACtC,IAAI7S,EAAQgC,GAAGiR,MAAMK,iBAAiBV,KAClCG,EAAUF,IAAsBG,mBAAqB,GACrDF,EAAMnJ,EAAEgJ,GACRY,EAAUT,EAAIL,WAAW,WAE7BK,EAAIL,WAAW,SAAU,UAAWM,EAAQS,SAExCxT,EAAQuT,GAAY,GACpBT,EAAIL,WAAW,UAAWzS,KAKtCgC,GAAGwQ,gBAAgBiB,gBAAkB,CACjCf,KAAM,SAAUC,EAASC,EAAeC,GACpC,IAAIE,EAAUF,IAAsBa,uBAAyB,CACzD3K,OAAQ,aACR4K,QAAQ,GAEZhK,EAAEgJ,GAASiB,eAAeb,GAG1B/Q,GAAGiR,MAAMC,qBAAqBP,EAAS,aAAa,SAAUpH,GAC1D,IAAIvL,EAAQ4S,IACR5Q,GAAG6R,aAAa7T,KACE,MAAduL,EAAM5C,MAAkB4C,EAAM5C,gBAAgBnB,KAG9CxH,EAAMuL,EAAM5C,MAFZ3I,EAAMuL,EAAM5C,KAAKmL,cAO7B9R,GAAGiR,MAAME,gBAAgBC,mBAAmBT,GAAS,WACjD,IAAIoB,EAASpK,EAAEgJ,GAASzV,KAAK,kBACzB6W,GACAA,EAAOC,cAInBX,OAAQ,SAAUV,EAASC,EAAeqB,EAAaC,EAAWC,GAE9D,IAAIJ,EAASpK,EAAEgJ,GAASzV,KAAK,kBAE7B,GAAI6W,EAAQ,CACR,IAAIK,EAASpS,GAAGiR,MAAMK,iBAAiBV,KAGvCwB,EAA8B,WAApB,EAAQA,GAAwB,IAAI5M,KAAK6M,WAAWD,EAAOE,QAAQ,UAAW,MAAQF,EAEhGL,EAAOpL,KAAKyL,MAKxBpS,GAAGwQ,gBAAgB+B,qBAAuB,CACtC7B,KAAM,SAAUC,EAASC,EAAeC,GACpC,IAAIE,EAAUF,IAAsBa,uBAAyB,CACzD3K,OAAQ,aACR4K,QAAQ,GAEZhK,EAAEgJ,GAASiB,eAAeb,GAG1B/Q,GAAGiR,MAAMC,qBAAqBP,EAAS,aAAa,SAAUpH,GAC1D,IAAIvL,EAAQ4S,IACR5Q,GAAG6R,aAAa7T,KACE,MAAduL,EAAM5C,MAAkB4C,EAAM5C,gBAAgBnB,KAG9CxH,EAAMuL,EAAM5C,MAFZ3I,EAAMuL,EAAM5C,KAAKmL,cAO7B9R,GAAGiR,MAAME,gBAAgBC,mBAAmBT,GAAS,WACjD,IAAIoB,EAASpK,EAAEgJ,GAASzV,KAAK,kBACzB6W,GACAA,EAAOC,cAInBX,OAAQ,SAAUV,EAASC,EAAeqB,EAAaC,EAAWC,GAE9D,IAAIJ,EAASpK,EAAEgJ,GAASzV,KAAK,kBAE7B,GAAI6W,EAAQ,CACR,IAAIK,EAASpS,GAAGiR,MAAMK,iBAAiBV,KAGvCwB,EAA8B,WAApB,EAAQA,GAAwB,IAAI5M,KAAK6M,WAAWD,EAAOE,QAAQ,UAAW,MAAQF,EAEhGL,EAAOpL,KAAKyL,MAQxBpS,GAAGC,WAAWyO,GAAG8D,YAAc,WAa3B,OAZAlT,KAAKmT,kBAAoB,WAChBnT,KAAKoT,oBACN1S,GAAG2S,aAAajE,GAAG+D,kBAAkBpW,MAAMiD,KAAMsT,YAIzDtT,KAAKuT,aAAe,SAAU9O,GAC1BzE,KAAKoT,oBAAqB,EAC1BpT,KAAKyE,GACLzE,KAAKoT,oBAAqB,GAGvBpT,MAGXqI,EAAEmL,UAAUC,OAAM,WACdpL,EAAE,2BAA2BqL,UAC7B,IAAIC,EAA6B,IAAIhP,EAkCrC0D,EAAE,oBAAoBsB,aAAa,CAC/BiK,OAAQ,OACRC,YAAY,EACZC,OAAQ,SAAUjK,EAAOkK,EAAKC,EAASC,GACnC,IAR+B3H,EAQ3B4H,EArCe,SAASrK,GAChC,IAAIyC,EAAe,4FACf6H,EAAa5M,SAASC,GAAG,oBACzB4M,EAAgBD,EAAWE,aAC3BC,EAAiB1J,SAASuJ,EAAWI,QAAS,IAC9CC,EAAoB5J,SAASuJ,EAAWM,UAAW,IACnDC,EAAY,EAGO,IAAlBN,GAAuBE,GAAkB,IAAME,GAAqB,IAAyB,IAAlBJ,GAAyC,IAAlBA,GAEnGM,EADkBnN,SAASmD,IAAI,EAAG,SAAS2J,WAAW,GAC9BM,KAAKR,EAAY,QAGd,IAAvBtK,EAAMwK,eACN/H,EAAe,oFAEZgI,GAAkB,IAAME,GAAqB,KACpDE,EAAY,GAGhB,IAAIE,EAAc/K,GAAStC,SAAS+C,MAAMI,IAAIgK,EAAW,QAAQG,QAAQ,OAEzE,MAAO,CACHC,QAASF,EACTtI,cAAesI,GAAetI,GAYVyI,CAAqBlL,GACzCxB,EAAE,oBAAoBsB,aAAa,gBAE/BuK,EAAcY,SACdzM,EAAE,oBAAoBsB,aAAa,iBAAkB,CAAC,CAClDE,MAAOA,EACPkK,IAAKA,EACLiB,UAAW,aACXC,OAAO,KAEXlI,QAAQkC,QAAQ,iBAlBW3C,EAoBH4H,EAAc5H,aAnB9CjE,EAAEuD,MAAM,CAAEC,MAAO,GAAI7C,QAASsD,EAAcR,MAAO,QAASC,KAAM,QAASC,SAAU,OAoB7E3D,EAAE,oBAAoBsB,aAAa,YACnCoD,QAAQkC,QAAQ,qBAGxBiG,cAAe,SAAUjL,GACrB,OAAO,GAEXkL,iBAAkB,CACdtL,MAAO,QACPkK,IAAK,SAETqB,OAAQ,CACJC,KAAM,GACNC,OAAQ,QACRC,MAAO,mBAEXC,gBAAgB,IAGpBnN,EAAE,oBAAoBsB,aAAa,CAC/BiK,OAAQ,OACRC,YAAY,EACZC,OAAQ,SAAUjK,EAAOkK,EAAKC,EAASC,GACnC5L,EAAE,oBAAoBsB,aAAa,gBACnCtB,EAAE,oBAAoBsB,aAAa,iBAAkB,CAAC,CAClDE,MAAOA,EACPkK,IAAKA,EACLiB,UAAW,aACXC,OAAO,KAEXlI,QAAQkC,QAAQ,gBAEpBiG,cAAe,SAAUjL,GACrB,OAAO,GAEXkL,iBAAkB,CACdtL,MAAO,QACPkK,IAAK,SAETqB,OAAQ,CACJC,KAAM,GACNC,OAAQ,QACRC,MAAO,mBAEXC,gBAAgB,IAGpB,IAAMC,EAAajC,SAASkC,eAAe,eACrCC,EAAanC,SAASkC,eAAe,mBACrCE,EAAepC,SAASkC,eAAe,mBAE7CD,EAAWI,iBAAiB,SAAS,WACjCxN,EAAE,kBAAkBC,MAAM,WAG9BqN,EAAWE,iBAAiB,SAAS,WACjCxN,EAAE,kBAAkBC,MAAM,eAG9BsN,EAAaC,iBAAiB,SAAS,WACnCxN,EAAE,kBAAkBC,MAAM,aAG9B5H,GAAGoV,cAAcnC","file":"wwwroot/Schedule/js/ScheduleManager.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t3: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([311,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","\nconst SectionIndex = {\n search: 0,\n shipmentInfo: 1,\n rescheduleReasoning: 2,\n earliestDeliveryDate: 3,\n lastFreeDate: 4,\n appointmentTime: 5,\n contactInfo: 6,\n confirm: 7,\n};\n\nconst parcelRE = /small parcel [^_]*/i;\n\nvar PODetail = function (appointment) {\n var self = this;\n\n const poDetails = appointment.po;\n let shipmentSize = \"\";\n let palletNum = 0;\n\n if (appointment.shipmentSize) {\n shipmentSize = appointment.shipmentSize;\n } else if (poDetails.shipmentSize) {\n shipmentSize = poDetails.shipmentSize;\n }\n\n palletNum = (shipmentSize.indexOf('LTL') !== -1 || shipmentSize.match(parcelRE) || poDetails.internalPurchaseOrderNumber !== null)\n ? appointment.isScheduled ? appointment.palletCount : poDetails.palletCount\n : shipmentSize.indexOf(\"20ft Container\") !== -1 ? 13 : 26;\n\n self.AppointmentId = ko.observable(appointment.appointmentId);\n self.POID = ko.observable(poDetails.poid);\n self.TimeZoneDefaultCity = ko.observable(poDetails.timeZoneDefaultCity);\n self.SupplierPONum = ko.observable(poDetails.supplierPONum);\n self.Destination = ko.observable(poDetails.destination);\n self.DestinationID = ko.observable(poDetails.destinationID);\n self.ShipmentSize = ko.observable(shipmentSize);\n self.ShipmentSizeType = ko.observable(poDetails.shipmentSizeType);\n self.TrackingNum = ko.observable(appointment.isScheduled ? appointment.trackingNumber : poDetails.trackingNum);\n self.MasterBillOfLading = ko.observable(appointment.isScheduled ? appointment.masterBillOfLadingNumber : poDetails.masterBillOfLadingNum);\n self.BillOfLading = ko.observable(appointment.isScheduled ? appointment.billOfLadingNumber : poDetails.billOfLadingNum);\n self.CarriersReferenceNumber = ko.observable(appointment.isScheduled ? appointment.carrierProNumber : poDetails.carriersReferenceNum);\n self.ConfirmationNumber = ko.observable(appointment.confirmationNumber);\n self.OriginID = ko.observable(poDetails.originID);\n self.WarehouseEmail = ko.observable(appointment.warehouse ? appointment.warehouse.email : '');\n self.PNCount = ko.observable(appointment.isScheduled ? appointment.pnCount : poDetails.pnCount);\n self.CartonCount = ko.observable(appointment.cartonCount ? appointment.cartonCount : 0);\n self.NewPNCount = ko.observable(appointment.newPNCount);\n self.InternalPurchaseOrder = ko.observable(poDetails.internalPurchaseOrderNumber);\n self.PalletNum = ko.observable(palletNum);\n self.ShippingCo = ko.observable(poDetails.shippingCo);\n self.ContainerNum = ko.observable(poDetails.containerNum);\n self.IsContainer = ko.observable(self.ShipmentSize().indexOf(\"Container\") !== -1);\n self.IsScheduled = ko.observable(appointment.isScheduled);\n self.ScheduledDate = ko.observable(appointment.appointmentDate);\n self.DisplayInternalPurchaseOrder = ko.observable(CanDisplayInternalPurchaseOrder(poDetails.internalPurchaseOrderNumber));\n self.VendorReferenceNumber = ko.observable(appointment.vendorReferenceNumber);\n self.ConfirmationNumber = ko.observable(appointment.confirmationNumber);\n self.IsCustomPalletCountQualified = ko.computed(() => {\n return self.ShipmentSize().indexOf('LTL') !== -1 || self.ShipmentSize().match(parcelRE) || self.InternalPurchaseOrder() !== null;\n })\n self.CanEditPalletNum = ko.computed(() => {\n return self.IsCustomPalletCountQualified() && self.ShipmentSize();\n });\n\n self.AllowSchedulingAfterLFD = ko.observable(poDetails.allowSchedulingAfterLFD);\n\n self.PalletAcknowledge = ko.observable(false);\n self.Reschedule = ko.observable(false);\n self.RescheduleReason = ko.observable('');\n\n self.ShipmentSize.subscribe((newValue) => {\n if (!CustomPalletCountQualified()) {\n self.PalletNum(newValue.indexOf(\"20ft Container\") !== -1 ? 13 : 26);\n self.IsContainer(newValue.indexOf(\"Container\") !== -1);\n }\n });\n\n function CanDisplayInternalPurchaseOrder(internalPurchaseOrderNumber){\n return internalPurchaseOrderNumber !== null;\n };\n function CustomPalletCountQualified() {\n return self.ShipmentSize().indexOf('LTL') !== -1 || self.ShipmentSize().match(parcelRE) || self.InternalPurchaseOrder() !== null;\n };\n};\n\nvar SelectedPODetail = function (poDetails) {\n var self = this;\n\n self.IsScheduled = ko.observable(poDetails.IsScheduled());\n\n self.AppointmentId = ko.observable(poDetails.AppointmentId());\n self.POID = ko.observable(poDetails.POID());\n self.TimeZoneDefaultCity = ko.observable(poDetails.TimeZoneDefaultCity());\n self.SupplierPONum = ko.observable(poDetails.SupplierPONum());\n self.Destination = ko.observable(poDetails.Destination());\n self.DestinationID = ko.observable(poDetails.DestinationID());\n self.ShipmentSize = ko.observable(self.IsScheduled() ? poDetails.ShipmentSize() : \"\");\n self.ShipmentSizeType = ko.observable(poDetails.ShipmentSizeType());\n self.TrackingNum = ko.observable(self.IsScheduled() ? poDetails.TrackingNum() : \"\");\n self.MasterBillOfLading = ko.observable(self.IsScheduled() ? poDetails.MasterBillOfLading() : \"\");\n self.BillOfLading = ko.observable(self.IsScheduled() ? poDetails.BillOfLading() : \"\");\n self.CarriersReferenceNumber = ko.observable(self.IsScheduled() ? poDetails.CarriersReferenceNumber() : \"\");\n self.ConfirmationNumber = ko.observable(poDetails.ConfirmationNumber());\n self.OriginID = ko.observable(poDetails.OriginID());\n self.WarehouseEmail = ko.observable(poDetails.WarehouseEmail());\n self.PNCount = ko.observable(self.IsScheduled() ? poDetails.PNCount() : 0);\n self.CartonCount = ko.observable(self.IsScheduled() ? poDetails.CartonCount() : 0);\n self.NewPNCount = ko.observable(poDetails.NewPNCount());\n self.InternalPurchaseOrder = ko.observable(poDetails.InternalPurchaseOrder());\n self.PalletNum = ko.observable(self.IsScheduled() ? poDetails.PalletNum() : 0);\n self.ShippingCo = ko.observable(poDetails.ShippingCo());\n self.ContainerNum = ko.observable(poDetails.ContainerNum());\n self.IsContainer = ko.observable(self.ShipmentSize().indexOf(\"Container\") !== -1);\n\n self.ScheduledDate = ko.observable(poDetails.ScheduledDate()); //\n self.DisplayInternalPurchaseOrder = ko.observable(CanDisplayInternalPurchaseOrder(poDetails.InternalPurchaseOrder()));\n self.VendorReferenceNumber = ko.observable(self.IsScheduled ? poDetails.VendorReferenceNumber() : \"\");\n self.IsCustomPalletCountQualified = ko.computed(() => {\n return self.ShipmentSize().indexOf('LTL') !== -1 || self.ShipmentSize().match(parcelRE) || self.InternalPurchaseOrder() !== null;\n })\n self.CanEditPalletNum = ko.computed(() => {\n return self.IsCustomPalletCountQualified() && self.ShipmentSize();\n });\n\n self.AllowSchedulingAfterLFD = ko.observable(poDetails.allowSchedulingAfterLFD);\n\n self.PalletAcknowledge = ko.observable(false);\n self.Reschedule = ko.observable(self.IsScheduled());\n self.RescheduleReason = ko.observable('');\n\n self.ShipmentSize.subscribe((newValue) => {\n if (!CustomPalletCountQualified()) {\n self.PalletNum(newValue.indexOf(\"20ft Container\") !== -1 ? 13 : 26);\n self.IsContainer(newValue.indexOf(\"Container\") !== -1);\n }\n });\n\n function CanDisplayInternalPurchaseOrder(internalPurchaseOrderNumber){\n return internalPurchaseOrderNumber !== null;\n };\n function CustomPalletCountQualified() {\n return self.ShipmentSize().indexOf('LTL') !== -1 || self.ShipmentSize().match(parcelRE) || self.InternalPurchaseOrder() !== null;\n };\n}\n\nvar ScheduleManagerViewModel = function () {\n var self = this;\n self.submitted = ko.observable(false);\n\n self.stepTracker = ko.observable(0);\n self.SelectedTimeZone = ko.observable('America/Chicago');\n\n self.SelectedShipment = ko.observable(); //Shipment to Save\n\n //next button observables\n self.isPreviousVisible = ko.observable(false);\n self.isNextVisible = ko.observable(true);\n self.isFinishedVisible = ko.observable(false);\n\n self.nextText = ko.observable(\"Schedule\");\n self.nextClass = ko.observable(\"next-action\")\n\n //search observables\n self.poSearchText = ko.observable('');\n self.isError = ko.observable(false);\n self.possiblePOs = ko.observableArray([]);\n self.searched = ko.observable(false);\n self.isInternalPOSearch = ko.observable(false);\n self.shipmentTableClass = ko.observable(\"shipments\");\n\n self.SelectedPurchaseOrder = ko.observable();\n self.newPODetailValue = ko.observable(null);\n\n self.activePurchaseOrderNumber = ko.observable(\"\");\n self.activeVendorPurchaseOrderNumber = ko.observable(\"\");\n self.activePurchaseOrderDestination = ko.observable(\"\");\n\n //Select Date Range\n self.CurrentDate = ko.observable(new Date());\n self.DesiredEDD = ko.observable(null);\n self.DateSelected = ko.observable(false);\n\n //Select Appointment Time\n self.AvailableDates = ko.observableArray([]);\n self.NoAvailableDates = ko.observable(false);\n self.SelectedTime = ko.observable();//use SelectedTime to store chosen date AND time\n self.FirstSelectedDate = ko.observable();\n self.MyDate = ko.observable(new Date(\"2017-01-01\"));\n self.LastSelectedDate = ko.observable();\n self.LFDRequestReason = ko.observable('');\n\n //Contact Info\n self.ContactInfoID = ko.observable();\n self.ContactName = ko.observable('');\n self.CarrierName = ko.observable('');\n self.Phone = ko.observable('');\n self.Email = ko.observable('');\n\n self.isBusy = ko.observable(false).extend({ throttle: 500 });\n\n self.FormatPODate = (po) => {\n const DEFAULT_TIMEZONE = 'America/Chicago';\n const APPOINTMENT_DATE_FORMAT = \"MM/DD/YY, H:mm A\";\n\n const date = po.ScheduledDate();\n const timezone = po.TimeZoneDefaultCity();\n\n const unformattedDate = moment\n .tz(date, DEFAULT_TIMEZONE)\n .tz(timezone);\n const formattedDate = unformattedDate.format(APPOINTMENT_DATE_FORMAT);\n\n return formattedDate;\n };\n\n //Handle selected shipment in step 1\n self.SelectedPurchaseOrder.subscribe((newValue) => {\n self.SelectedShipment(new SelectedPODetail(newValue));\n });\n\n // PO validity checks\n self.HasContainer = ko.computed(function () {\n return self.SelectedShipment() ? self.SelectedShipment().IsContainer() : false;\n });\n self.AllowSchedulingAfterLFD = ko.computed(function () {\n return self.SelectedShipment() ? self.SelectedShipment().AllowSchedulingAfterLFD() : false;\n });\n\n self.IsShipmentInfoStepComplete = ko.computed(function () {\n const po = self.SelectedShipment();\n if (!po) return false;\n\n if (po.PalletAcknowledge() != true) {\n return false;\n }\n if (po.CartonCount() === '' || isNaN(Number(po.CartonCount())) || Number(po.CartonCount()) <= 0) {\n return false;\n }\n if (po.PalletNum() === '' || isNaN(Number(po.PalletNum())) || Number(po.PalletNum()) <= 0) {\n return false;\n }\n if (po.VendorReferenceNumber() === \"\") {\n return false;\n }\n if (po.BillOfLading() === \"\") {\n return false;\n }\n\n return true;\n });\n\n self.IsAnySelectedPOScheduled = ko.computed(function() {\n const po = self.SelectedShipment()\n return po ? po.IsScheduled() : false;\n });\n\n self.IsRescheduleReasoningStepComplete = ko.computed(function () {\n const po = self.SelectedShipment();\n if (!po) return false;\n\n if (po.IsScheduled() && (!po.Reschedule() || po.RescheduleReason() == '')) {\n return false;\n }\n\n return true;;\n });\n\n self.POSelectStepComplete = ko.computed(function () {\n // Make sure atleast 1 PO is selected.\n if (self.SelectedShipment() == undefined || self.SelectedShipment() == null || self.SelectedShipment().length == 0) {\n return false;\n }\n\n // set selected PO for next steps\n self.selectPO(self.SelectedShipment());\n\n return true;\n });\n\n self.selectPO = function (po) {\n\n if (po.IsScheduled()) {\n po.Reschedule(true);\n self.nextText(\"Reschedule\")\n self.nextClass(\"next-action-reschedule\");\n } else {\n self.nextText(\"Schedule\")\n self.nextClass(\"next-action\");\n }\n\n self.SelectedTimeZone(po.TimeZoneDefaultCity());\n };\n\n self.searchPO = function () {\n self.possiblePOs([]);\n self.isBusy(true);\n self.EDD(); // Earliest Delivery Date\n self.searched(false);\n self.isInternalPOSearch(false);\n self.newPODetailValue(null);\n self.shipmentTableClass(\"shipments\");\n self.nextText(\"Schedule\");\n self.nextClass(\"next-action\");\n\n self.FirstSelectedDate();\n self.LastSelectedDate();\n self.AvailableDates([]);\n self.SelectedTime();\n $(\"#schedule-form\").steps('reset');\n\n $.ajax({\n type: 'GET',\n url: '/schedules/'+ self.poSearchText(),\n contentType: 'application/json',\n success: function (data) {\n self.isBusy(false);\n self.searched(true);\n\n if (/PO[0-9]{5}-[A-z]{2}-[0-9]{3}/.test(self.poSearchText())) {\n self.isInternalPOSearch(true);\n const emptyDetail = data.appointments.pop();\n\n if (emptyDetail) {\n self.newPODetailValue(new PODetail(emptyDetail));\n self.activePurchaseOrderNumber(emptyDetail.po.internalPurchaseOrderNumber);\n self.activeVendorPurchaseOrderNumber(emptyDetail.po.supplierPONum);\n self.activePurchaseOrderDestination(emptyDetail.po.destination);\n self.shipmentTableClass(\"purchase-order-shipments\");\n }\n }\n\n if (data.message !== '') {\n self.isError(true);\n return;\n }\n self.isError(false);\n\n var temp = [];\n _.each(data.appointments, function (appointment) {\n temp.push(new PODetail(appointment));\n });\n\n const sortedTemp = temp.sort((a, b) => new Date(b.ScheduledDate()) - new Date(a.ScheduledDate()));\n self.possiblePOs(sortedTemp);\n },\n error: function (error) {\n console.log(\"Call Failed\");\n self.isBusy(false);\n }\n });\n };\n\n self.EDD = function () {\n if ($(\"#js-edd-calendar\").fullCalendar('getEventSources').length > 0) {\n return $(\"#js-edd-calendar\").fullCalendar('getEventSources')[$(\"#js-edd-calendar\").fullCalendar('getEventSources').length - 1].events[0].start;\n } else {\n return '';\n }\n }\n self.LFD = function () {\n if ($(\"#js-lfd-calendar\").fullCalendar('getEventSources').length > 0) {\n return $(\"#js-lfd-calendar\").fullCalendar('getEventSources')[$(\"#js-lfd-calendar\").fullCalendar('getEventSources').length - 1].events[0].start;\n } else {\n return '';\n }\n };\n\n self.currentDateExtension = null;\n self.getExtendedTimes = function (data, event) {\n var request = new TimeRequest()\n request.StartDate = self.EDD().clone().utc();\n\n if (self.currentDateExtension === null) {\n if (self.AvailableDates() && self.AvailableDates().length > 0) {\n var lastListedDate = self.AvailableDates()[self.AvailableDates().length - 1];\n var latestDate = new moment(lastListedDate.dailyCapacity.value);\n self.currentDateExtension = latestDate.clone().add(5, 'days');\n } else {\n self.currentDateExtension = self.LFD().clone().add(5, 'days').utc();\n }\n\n } else {\n self.currentDateExtension = self.currentDateExtension.add(5, 'days');\n }\n request.EndDate = self.currentDateExtension.utc();\n\n\n const po = self.SelectedShipment();\n\n if (po) {\n request.PalletNum += parseInt(po.PalletNum());\n request.PNCount += parseInt(po.PNCount());\n request.NewPNCount += parseInt(po.NewPNCount());\n request.CartonCount += parseInt(po.CartonCount());\n\n if (po.ScheduledDate()) {\n po.ScheduledDate(moment(po.ScheduledDate()));\n }\n\n request.POs.push(new PODTO(po));\n }\n\n $.ajax({\n type: 'POST',\n url: '/schedules/times',\n contentType: 'application/json',\n data: JSON.stringify(request),\n success: self.handleDatesLoad,\n error: function (error) {\n console.log(\"Call Failed\");\n }\n });\n }\n\n self.getAvailableTimes = function (data, event, fromCal) {\n var request = new TimeRequest()\n if (fromCal) {\n if (self.DesiredEDD() == null) {\n // if this is the first EDD that is selected, set the \"Desired Delivery Date\" for logging\n self.DesiredEDD(new Date(self.EDD().clone().local()));\n }\n self.FirstSelectedDate(new Date(self.EDD().clone().local()));\n request.StartDate = self.EDD().clone().utc();\n } else {\n request.StartDate = moment(self.FirstSelectedDate());\n }\n\n if (fromCal) {\n if (self.HasContainer() && self.LFD() > self.EDD()) {\n request.EndDate = self.LFD().clone().utc();\n self.LastSelectedDate(new Date(self.LFD().clone().local()));\n } else {\n var m = self.EDD().clone().add(10, 'days');\n request.EndDate = m.clone().utc();\n self.LastSelectedDate(new Date(m.clone().local()));\n }\n } else {\n request.EndDate = moment(self.LastSelectedDate());\n }\n\n const po = self.SelectedShipment();\n\n if (po) {\n request.PalletNum += parseInt(po.PalletNum());\n request.PNCount += parseInt(po.PNCount());\n request.NewPNCount += parseInt(po.NewPNCount());\n request.CartonCount += parseInt(po.CartonCount());\n request.POs.push(new PODTO(po));\n }\n\n $.ajax({\n type: 'POST',\n url: '/schedules/times',\n contentType: 'application/json',\n data: JSON.stringify(request),\n success: self.handleDatesLoad,\n error: (_) => {\n console.log(\"Call Failed\");\n }\n });\n };\n\n self.handleDatesLoad = function (data) {\n var tempDates = [];\n _.each(data.availableDates, function (date) {\n var tempSlots = [];\n _.each(date.receivingCapacities, function (slot) {\n tempSlots.push({\n value: slot.value,\n display: moment.tz(slot.value, 'America/Chicago').tz(self.SelectedTimeZone()),\n });\n });\n\n if (date.dailyCapacity.display == self.EDD().format(\"M/D/YYYY\")) {\n date.dailyCapacity.display += \" - EDD\";\n } else if (date.dailyCapacity.display == self.LFD().format(\"M/D/YYYY\")) {\n date.dailyCapacity.display += \" - LFD\";\n }\n\n tempDates.push({\n dailyCapacity: date.dailyCapacity,\n receivingCapacities: tempSlots,\n });\n });\n\n self.AvailableDates(tempDates);\n if (self.AvailableDates()[0] !== undefined) {\n var firstListedTimeSlot = self.AvailableDates()[0].receivingCapacities[0];\n self.SelectedTime(firstListedTimeSlot);\n self.NoAvailableDates(false);\n } else {\n $.growl({ title: \"\", message: \"No available times in this range. Adjust the selected date range and click 'More Times' or contact us for manual scheduling.\", style: \"error\", size: \"large\", location: \"tr\" });\n self.NoAvailableDates(true);\n }\n }\n\n self.saveAppointment = function () {\n if (self.submitted()) {\n return;\n } else {\n self.submitted(true);\n $(\"#loading\").removeClass(\"hidden\");\n $(\".actions ul li:nth-child(3)\").addClass(\"disabled\").attr(\"aria-disabled\", \"true\");\n }\n\n var request = new SaveRequest(self);\n\n $.ajax({\n type: 'POST',\n url: '/schedules/save',\n contentType: 'application/json',\n data: JSON.stringify(request),\n success: function (result) {\n $(\"#loading\").addClass(\"hidden\");\n $(\".actions ul li:nth-child(3)\").removeClass(\"disabled\").attr(\"aria-disabled\", \"false\");\n\n if (result.success == false) {\n $.growl({ title: \"\", message: result.errorMessage, style: \"error\", size: \"large\", location: \"tr\" });\n self.submitted(false);\n return;\n }\n self.showConfirmation();\n },\n error: function (error) {\n $.growl({ title: \"\", message: \"Call Failed\", style: \"error\", size: \"large\", location: \"tr\" });\n self.submitted(false);\n\n $(\"#loading\").addClass(\"hidden\");\n $(\".actions ul li:nth-child(3)\").removeClass(\"disabled\").attr(\"aria-disabled\", \"false\");\n }\n });\n\n };\n\n self.submitRequestForApproval = function (poid, email, requestReason) {\n var request = new ScheduleAfterLFDRequest();\n request.POID = poid;\n request.Email = email;\n request.RequestReason = requestReason;\n\n var re = /.*@.+\\..+/i;\n var match = self.Email().match(re);\n if (!match) {\n $.growl({ title: \"\", message: \"Please Enter a Valid Email\", style: \"error\", size: \"large\", location: \"tr\" });\n return false;\n }\n\n $.ajax({\n type: 'POST',\n url: '/Schedule/RequestApprovalToScheduleAfterLFD',\n contentType: 'application/json',\n data: JSON.stringify(request),\n success: function (result) {\n self.showConfirmationOfRequestToScheduleAfterLFD();\n },\n error: function (error) {\n alert('Unable to submit your request. Please contact us for help.');\n }\n });\n };\n\n self.showConfirmation = function () {\n $.ajax({\n type: 'GET',\n url: '/schedules/confirmation',\n contentType: 'application/json',\n data: \"\",\n success: function (response) {\n if (response.result == \"Redirect\") {\n window.location = response.url;\n }\n }\n });\n }\n\n self.showConfirmationOfRequestToScheduleAfterLFD = function (confirmationNumber) {\n $.ajax({\n type: 'GET',\n url: '/schedules/lfd-confirmation',\n contentType: 'application/json',\n data: \"\",\n success: function (response) {\n if (response.result == \"Redirect\") {\n window.location = response.url;\n }\n }\n });\n }\n amplify.subscribe('date-picked', function () {\n self.DateSelected(true);\n });\n\n amplify.subscribe('date-not-picked', function () {\n self.DateSelected(false);\n });\n\n // next button state handling\n self.validForm = ko.computed(function () {\n const currentStep = self.stepTracker();\n\n switch (currentStep) {\n case SectionIndex.search:\n return self.POSelectStepComplete();\n case SectionIndex.rescheduleReasoning:\n return self.IsRescheduleReasoningStepComplete();\n case SectionIndex.shipmentInfo:\n return self.IsShipmentInfoStepComplete();\n case SectionIndex.earliestDeliveryDate:\n if (!self.DateSelected() || self.EDD() == '') { return false; }\n break;\n case SectionIndex.lastFreeDate:\n if (self.HasContainer() && (!self.DateSelected() || self.LFD() == '')) { return false; }\n break;\n case SectionIndex.appointmentTime:\n if (self.AvailableDates().length < 1) { return false; }\n var match = _.find(self.AvailableDates(), function (date) {\n var any = _.find(date.receivingCapacities, function (time) {\n return self.SelectedTime() && time.value == self.SelectedTime().value;\n });\n return any != null && any != undefined;\n });\n if (match == null || match == undefined) { return false; }\n break;\n case SectionIndex.contactInfo:\n if (self.ContactName() == '' || self.CarrierName() == '' || self.Phone() == '') { return false; }\n var pRE = /\\+?\\d?[-\\s]*\\(?\\d\\d\\d\\)?[-\\s]*\\d\\d\\d[-\\s]*\\d\\d\\d\\d/;\n var phoneMatch = self.Phone().match(pRE);\n if (!phoneMatch || phoneMatch.index != 0) { return false; }\n var eRE = /.*@.+\\..+/i;\n var match = self.Email().match(eRE);\n if (!match) { return false; }\n break;\n default:\n return true;\n }\n return true;\n });\n\n self.ForceSkipSteps = (priorIndex, currentIndex, { nextStep, previousStep }) => {\n\n if (currentIndex == SectionIndex.rescheduleReasoning && !self.IsAnySelectedPOScheduled()) {\n if (priorIndex > SectionIndex.rescheduleReasoning) {\n previousStep();\n return;\n } else {\n nextStep();\n return;\n }\n }\n\n //only allow containers to enter LFD\n if (currentIndex === SectionIndex.lastFreeDate && !self.HasContainer()) {\n if (priorIndex === SectionIndex.appointmentTime) {\n previousStep();\n return;\n } else {\n nextStep();\n return;\n }\n }\n }\n\n self.validForm.subscribe(function () {\n if (self.validForm()) {\n enableNext();\n } else {\n disableNext();\n }\n });\n\n // form wizard\n var form = $(\"#schedule-form\").show();\n form.steps({\n headerTag: \"h3\",\n bodyTag: \"section\",\n transitionEffect: \"fade\",\n autoFocus: true,\n enableKeyNavigation: true,\n enablePagination: false,\n onStepChanging: function (event, currentIndex, newIndex) {\n\n // Allways allow previous action even if the current form is not valid\n if (currentIndex > newIndex) {\n return true;\n }\n\n // Everything below, the step is changing to the NEXT step\n\n if (newIndex === SectionIndex.search) {\n $('#poSearch').focus();\n }\n\n if (currentIndex === SectionIndex.search) {\n if (!self.POSelectStepComplete()) {\n $.growl({ title: \"\", message: \"Please select a shipment before continuing\", style: \"error\", size: \"large\", location: \"tr\" });\n return false;\n }\n\n self.nextText(\"Next\");\n self.isPreviousVisible(true);\n self.nextClass(\"next-action\");\n }\n\n\n if (currentIndex == SectionIndex.rescheduleReasoning) {\n if (!self.IsRescheduleReasoningStepComplete()) {\n $.growl({\n title: \"\",\n message: \"Please enter a reason for rescheduling.\",\n style: \"error\",\n size: \"large\",\n location: \"tr\"\n });\n\n return false;\n }\n }\n\n if (currentIndex == SectionIndex.shipmentInfo) {\n if (!self.IsShipmentInfoStepComplete()) {\n $.growl({\n title: \"\",\n message: \"Please enter required information and acknowledge the information entered is accurate.\",\n style: \"error\",\n size: \"large\",\n location: \"tr\"\n });\n\n return false;\n }\n }\n\n //get times based on PO and EDD info so far\n if (newIndex === SectionIndex.lastFreeDate && currentIndex === SectionIndex.earliestDeliveryDate) {\n if (!self.DateSelected()) {\n $.growl({ title: \"\", message: \"Please Select a Date\", style: \"error\", size: \"large\", location: \"tr\" });\n return false;\n }\n\n if (!self.HasContainer()) {\n self.getAvailableTimes(null, null, true);\n }\n }\n\n if (self.HasContainer() && newIndex === SectionIndex.appointmentTime && currentIndex === SectionIndex.lastFreeDate) {\n if (!self.DateSelected()) {\n $.growl({ title: \"\", message: \"Please Select a Date\", style: \"error\", size: \"large\", location: \"tr\" });\n return false;\n }\n\n // reset date extension for \"Load More Times\" on fresh date load\n self.currentDateExtension = null;\n\n self.getAvailableTimes(null, null, true);\n }\n\n // check if they have selected a valid time, if not prevent them from moving on.\n if (currentIndex == SectionIndex.appointmentTime) {\n if (self.AvailableDates().length < 1) {\n $.growl({ title: \"\", message: \"Please Select New Date Range and Click More Times for Available Receiving Times\", style: \"error\", size: \"large\", location: \"tr\" });\n return false;\n }\n var match = _.find(self.AvailableDates(), function (date) {\n var any = _.find(date.receivingCapacities, function (time) {\n return self.SelectedTime() && time.value == self.SelectedTime().value;\n });\n return any != null && any != undefined;\n });\n\n if (match == null || match == undefined) {\n $.growl({ title: \"\", message: \"Please Select an Available Time Slot for Receiving\", style: \"error\", size: \"large\", location: \"tr\" });\n return false;\n }\n }\n\n //force selected time formatted strings to update\n if (currentIndex === SectionIndex.contactInfo) {\n var pRE = /\\+?\\d?[-\\s]*\\(?\\d\\d\\d\\)?[-\\s]*\\d\\d\\d[-\\s]*\\d\\d\\d\\d/;\n var phoneMatch = self.Phone().match(pRE);\n if (!phoneMatch || phoneMatch.index != 0) {\n $.growl({ title: \"\", message: \"Please Enter a Valid Phone Number\", style: \"error\", size: \"large\", location: \"tr\" });\n return false;\n }\n var re = /.*@.+\\..+/i;\n var match = self.Email().match(re);\n if (!match) {\n $.growl({ title: \"\", message: \"Please Enter a Valid Email\", style: \"error\", size: \"large\", location: \"tr\" });\n return false;\n }\n\n self.isNextVisible(false);\n self.isFinishedVisible(true);\n }\n\n form.validate().settings.ignore = \":disabled,:hidden\";\n return form.valid();\n },\n onStepChanged: function (event, currentIndex, priorIndex) {\n\n // Used to force skip steps (could alter this and put it in onStepChanging to clean up the animation)\n self.ForceSkipSteps(\n priorIndex,\n currentIndex,\n {\n nextStep: () => $(this).steps(\"next\"),\n previousStep: () => $(this).steps(\"previous\"),\n });\n\n if (currentIndex === SectionIndex.earliestDeliveryDate) {\n $('#js-edd-calendar').fullCalendar('render');\n if (self.EDD() == '') {\n amplify.publish('date-not-picked');\n }\n }\n\n if (currentIndex === SectionIndex.lastFreeDate) {\n $('#js-lfd-calendar').fullCalendar('render');\n if (self.LFD() == '') {\n amplify.publish('date-not-picked');\n }\n }\n\n self.stepTracker(currentIndex);\n },\n onFinishing: function (event, currentIndex) {\n form.validate().settings.ignore = \":disabled\";\n return form.valid();\n },\n onFinished: function (event, currentIndex) {\n self.saveAppointment();\n }\n });\n $('#poSearch').focus();\n\n\n $.fn.steps.reset = function () {\n //These private methods aren't working so it's hardcoded for now\n //See https://searchcode.com/codesearch/view/100050605/ for original methods\n var wizard = this,\n //options = getOptions(this),\n options = wizard.data(\"options\"),\n //state = getState(this);\n state = wizard.data(\"state\");\n //goToStep(wizard, options, state, 0);\n\n for (var i = 1; i < state.stepCount; i++) {\n //var stepAnchor = getStepAnchor(wizard, i);\n var uniqueId = getUniqueId(wizard);\n var _tabSuffix = \"-t-\";\n var stepAnchor = wizard.find(\"#\" + uniqueId + _tabSuffix + i);\n stepAnchor.parent().removeClass(\"done\")._enableAria(false);\n }\n };\n\n function disableNext() {\n $(\".actions ul li:nth-child(2)\").addClass(\"disabled\").attr(\"aria-disabled\", \"true\");\n };\n\n function enableNext() {\n $(\".actions ul li:nth-child(2)\").removeClass(\"disabled\").attr(\"aria-disabled\", \"false\");\n };\n\n function getUniqueId(wizard) {\n var uniqueId = wizard.data(\"uid\");\n\n if (uniqueId == null) {\n uniqueId = wizard._id();\n if (uniqueId == null) {\n uniqueId = \"steps-uid-\".concat(_uniqueId);\n wizard._id(uniqueId);\n }\n\n _uniqueId++;\n wizard.data(\"uid\", uniqueId);\n }\n\n return uniqueId;\n }\n};\n\nvar ContactInfo = function (vm) {\n var self = this;\n self.ContactInfoID = vm.ContactInfoID();\n self.ContactName = vm.ContactName();\n self.CarrierName = vm.CarrierName();\n self.Phone = vm.Phone();\n self.Email = vm.Email();\n};\n\nvar WarehouseDTO = function (po) {\n var self = this;\n self.OriginID = po.OriginID();\n self.Email = po.WarehouseEmail();\n}\n\nvar SaveRequest = function (vm) {\n var self = this;\n self.Appointment = new AppointmentDTO(vm, vm.SelectedShipment());\n}\n\nvar PODTO = function (po) {\n var self = this;\n self.POID = po.POID();\n self.SupplierPONum = po.SupplierPONum();\n self.ContainerNum = po.ContainerNum();\n self.TrackingNum = po.TrackingNum();\n self.OriginID = po.OriginID();\n self.Destination = po.Destination();\n self.DestinationID = po.DestinationID();\n self.ShipmentSize = po.ShipmentSize();\n self.ShipmentSizeType = po.ShipmentSizeType();\n self.CartonCount = po.CartonCount();\n self.PNCount = po.PNCount();\n self.NewPNCount = po.NewPNCount();\n self.IsScheduled = po.IsScheduled();\n self.ScheduledDate = po.ScheduledDate();\n self.InternalPurchaseOrderNumber = po.InternalPurchaseOrder();\n}\n\nvar AppointmentDTO = function (vm, po) {\n var self = this;\n self.AppointmentId = po.AppointmentId();\n self.PO = new PODTO(po);\n self.Warehouse = new WarehouseDTO(po);\n self.Contact = new ContactInfo(vm);\n self.ConfirmationNumber = po.ConfirmationNumber();\n self.PurchaseOrderNumber = po.InternalPurchaseOrder();\n self.IsReschedule = po.Reschedule();\n self.RescheduleReason = po.RescheduleReason();\n self.WarehouseID = po.DestinationID();\n self.ShipmentSize = po.ShipmentSize();\n self.PalletCount = po.PalletNum();\n self.CartonCount = po.CartonCount();\n self.PNCount = po.PNCount();\n self.NewPNCount = po.NewPNCount();\n self.VendorReferenceNumber = po.VendorReferenceNumber();\n self.TrackingNumber = po.TrackingNum();\n self.CarrierProNumber = po.CarriersReferenceNumber();\n self.BillOfLadingNumber = po.BillOfLading();\n self.MasterBillOfLadingNumber = po.MasterBillOfLading();\n\n self.AppointmentDate = vm.SelectedTime().value;\n self.DesiredEarliestDeliveryDate = vm.DesiredEDD();\n self.EarliestDeliveryDate = vm.EDD();\n self.LastFreeDate = vm.LFD();\n\n self.SchedulerName = vm.ContactName();\n self.ConfirmationEmailAddress = vm.Email();\n self.ContactPhone = vm.Phone();\n};\n\nvar TimeRequest = function () {\n var self = this;\n self.StartDate = '';\n self.EndDate = '';\n self.PalletNum = 0;\n self.PNCount = 0;\n self.NewPNCount = 0;\n self.CartonCount = 0;\n self.POs = [];\n}\n\nvar ScheduleAfterLFDRequest = function () {\n var self = this;\n self.Email = '';\n self.RequestReason = '';\n self.POID = 0;\n}\n\nvar ScheduleAfterLFDRequest = function () {\n var self = this;\n self.Email = '';\n self.RequestReason = '';\n self.POID = 0;\n}\n\nko.bindingHandlers.datepicker = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n var $el = $(element);\n\n //initialize datepicker with some optional options\n var options = allBindingsAccessor().datepickerOptions || {};\n $el.datepicker(options);\n\n //handle the field changing\n ko.utils.registerEventHandler(element, \"change\", function () {\n var observable = valueAccessor();\n observable($el.datepicker(\"getDate\"));\n });\n\n //handle disposal (if KO removes by the template binding)\n ko.utils.domNodeDisposal.addDisposeCallback(element, function () {\n $el.datepicker(\"destroy\");\n });\n\n },\n update: function (element, valueAccessor, allBindingsAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor()),\n options = allBindingsAccessor().datepickerOptions || {},\n $el = $(element),\n current = $el.datepicker(\"getDate\");\n\n $el.datepicker(\"option\", \"minDate\", options.minDate);\n\n if (value - current !== 0) {\n $el.datepicker(\"setDate\", value);\n }\n }\n};\n\nko.bindingHandlers.dateRangePicker = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n var options = allBindingsAccessor().dateTimePickerOptions || {\n format: \"MM/DD/YYYY\",\n inline: false\n };\n $(element).datetimepicker(options);\n\n //when a user changes the date, update the view model\n ko.utils.registerEventHandler(element, \"dp.change\", function (event) {\n var value = valueAccessor();\n if (ko.isObservable(value)) {\n if (event.date != null && !(event.date instanceof Date)) {\n value(event.date.toDate());\n } else {\n value(event.date);\n }\n }\n });\n\n ko.utils.domNodeDisposal.addDisposeCallback(element, function () {\n var picker = $(element).data(\"DateTimePicker\");\n if (picker) {\n picker.destroy();\n }\n });\n },\n update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n\n var picker = $(element).data(\"DateTimePicker\");\n //when the view model is updated, update the widget\n if (picker) {\n var koDate = ko.utils.unwrapObservable(valueAccessor());\n\n //in case return from server datetime is in this form /Date(93989393)/ then fomat it here\n koDate = (typeof (koDate) !== 'object') ? new Date(parseFloat(koDate.replace(/[^0-9]/g, ''))) : koDate;\n\n picker.date(koDate);\n }\n }\n};\n\nko.bindingHandlers.inlineDateTimePicker = {\n init: function (element, valueAccessor, allBindingsAccessor) {\n var options = allBindingsAccessor().dateTimePickerOptions || {\n format: \"MM/DD/YYYY\",\n inline: true\n };\n $(element).datetimepicker(options);\n\n //when a user changes the date, update the view model\n ko.utils.registerEventHandler(element, \"dp.change\", function (event) {\n var value = valueAccessor();\n if (ko.isObservable(value)) {\n if (event.date != null && !(event.date instanceof Date)) {\n value(event.date.toDate());\n } else {\n value(event.date);\n }\n }\n });\n\n ko.utils.domNodeDisposal.addDisposeCallback(element, function () {\n var picker = $(element).data(\"DateTimePicker\");\n if (picker) {\n picker.destroy();\n }\n });\n },\n update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n\n var picker = $(element).data(\"DateTimePicker\");\n //when the view model is updated, update the widget\n if (picker) {\n var koDate = ko.utils.unwrapObservable(valueAccessor());\n\n //if return from server datetime is in this form /Date(93989393)/ then fomat it here\n koDate = (typeof (koDate) !== 'object') ? new Date(parseFloat(koDate.replace(/[^0-9]/g, ''))) : koDate;\n\n picker.date(koDate);\n }\n }\n};\n\n//Allows observable updating without notifying subscribers\n//I took the usage out but it still looks useful in general\n//use ko.observable(initialValue).withPausing() for the observable declaration and call with observableName.sneakyUpdate(newValue)\nko.observable.fn.withPausing = function () {\n this.notifySubscribers = function () {\n if (!this.pauseNotifications) {\n ko.subscribable.fn.notifySubscribers.apply(this, arguments);\n }\n };\n\n this.sneakyUpdate = function (newValue) {\n this.pauseNotifications = true;\n this(newValue);\n this.pauseNotifications = false;\n };\n\n return this;\n};\n\n$(document).ready(function () {\n $('[data-toggle=\"tooltip\"]').tooltip()\n var myScheduleManagerViewModel = new ScheduleManagerViewModel();\n var getScheduledDateData = function(start) {\n var errorMessage = \"All shipments must be scheduled prior to 2:30pm EST the day before the requested shipment\";\n var currentEST = moment().tz(\"America/New_York\");\n var currentESTDay = currentEST.isoWeekday();\n var currentESTHour = parseInt(currentEST.hours(), 10);\n var currentESTMinutes = parseInt(currentEST.minutes(), 10);\n var daysToAdd = 1;\n\n // If it's currently a Friday after 3pm EST, Saturday or Sunday\n if ((currentESTDay === 5 && currentESTHour >= 14 && currentESTMinutes >= 30) || currentESTDay === 6 || currentESTDay === 7) {\n var nextTuesday = moment().add(1, 'weeks').isoWeekday(2);\n daysToAdd = nextTuesday.diff(currentEST, 'days');\n\n // If scheduling for Monday show more relevant error message\n if (start.isoWeekday() === 1) {\n errorMessage = \"All shipments must be scheduled prior to 2:30pm EST Friday for Monday shipments\";\n }\n } else if (currentESTHour >= 14 && currentESTMinutes >= 30) { // If the time is later than 2:30pm eastern time\n daysToAdd = 2;\n }\n\n var isValidDate = start >= moment().utc().add(daysToAdd, 'days').startOf('day');\n\n return {\n isValid: isValidDate,\n errorMessage: !isValidDate && errorMessage\n };\n };\n\n var showInvalidErrorMessage = function(errorMessage) {\n $.growl({ title: \"\", message: errorMessage, style: \"error\", size: \"large\", location: \"tr\" });\n };\n\n $('#js-edd-calendar').fullCalendar({\n height: 'auto',\n selectable: true,\n select: function (start, end, jsEvent, view) {\n var scheduledDate = getScheduledDateData(start);\n $(\"#js-edd-calendar\").fullCalendar('removeEvents');\n\n if (scheduledDate.isValid) {\n $(\"#js-edd-calendar\").fullCalendar('addEventSource', [{\n start: start,\n end: end,\n rendering: 'background',\n block: true\n }]);\n amplify.publish('date-picked');\n } else {\n showInvalidErrorMessage(scheduledDate.errorMessage);\n $(\"#js-edd-calendar\").fullCalendar(\"unselect\");\n amplify.publish('date-not-picked');\n }\n },\n selectOverlap: function (event) {\n return true;\n },\n selectConstraint: {\n start: '00:00',\n end: '24:00'\n },\n header: {\n left: '',\n center: 'title',\n right: 'today prev,next'\n },\n fixedWeekCount: false\n });\n\n $('#js-lfd-calendar').fullCalendar({\n height: 'auto',\n selectable: true,\n select: function (start, end, jsEvent, view) {\n $(\"#js-lfd-calendar\").fullCalendar('removeEvents');\n $(\"#js-lfd-calendar\").fullCalendar('addEventSource', [{\n start: start,\n end: end,\n rendering: 'background',\n block: true,\n }]);\n amplify.publish('date-picked');\n },\n selectOverlap: function (event) {\n return true;\n },\n selectConstraint: {\n start: '00:00',\n end: '24:00'\n },\n header: {\n left: '',\n center: 'title',\n right: 'today prev,next'\n },\n fixedWeekCount: false\n });\n\n const nextButton = document.getElementById(\"next-action\");\n const prevButton = document.getElementById(\"previous-action\");\n const finishButton = document.getElementById(\"finished-action\");\n\n nextButton.addEventListener(\"click\", () => {\n $(\"#schedule-form\").steps(\"next\");\n });\n\n prevButton.addEventListener(\"click\", () => {\n $(\"#schedule-form\").steps(\"previous\");\n });\n\n finishButton.addEventListener(\"click\", () => {\n $(\"#schedule-form\").steps(\"finish\");\n });\n\n ko.applyBindings(myScheduleManagerViewModel);\n});\n\n"],"sourceRoot":""}