{"version":3,"sources":["scripts/app.js"],"names":["registerClientController","$scope","$state","$mdDialog","$rootScope","UTILS","APP_SETTINGS","msNavigationService","$api","$q","localStorageService","$accountDialogs","$clientDialogs","ProjectHub","errorMessage","agreePersonalData","contact","Address","nextStep","activeTab","prevStep","console","log","verifyForm","sendCode","users","code","get","Code","result","showToast","error","data","Message","cancelCode","codeSended","confirmPhone","confirm","userId","user","Id","token","setSession","setup","updateProfile","finishRegistration","createUser","deferred","defer","create","save","Type","Email","Password","Phone","Name","FirstName","AvatarAssetId","set","resolve","reject","promise","registerUser","AgreePersonalData","then","hide","clientNavigation","message","dialogTitle","mainMessage","descMessage","buttonText","buttonAction","go","reload","createOrderDialog","registerCarrierController","$files","$ctrl","this","teamUnits","Profile","PhoneVerified","angular","copy","Contact","teamAssets","getFilesCollection","Team","AssetsId","Assets","register","getToken","username","password","authResult","saveAddress","address","addresses","put","update","createContacts","contacts","post","c","moderateContacts","moderate","teamId","TeamId","saveContacts","saveBankDetails","savePrivate","toNextStep","ShortName","FIO","saveTeam","saveUserContacts","checkTeamContact","edit","teams","team","ContactId","AddressId","joinUser","updateUser","trimTel","changephone","phone","finishUpdate","verifiedPhone","saveDocs","documents","finishreg","profile","closeDialog","OrdersMapController","$timeout","init","defaultLayers","hplatform","createDefaultLayers","lg","mapDiv","document","getElementById","vm","myMap","H","Map","vector","normal","map","zoom","center","lat","lng","getViewPort","padding","left","right","top","bottom","mapEvents","mapevents","MapEvents","Behavior","addEventListener","event","target","Marker","element","style","cursor","loadOrders","filter","createMarkers","removeObjects","getObjects","group","Group","forEach","orders","order","icon","Icon","orderMarker","StartPoint","Lat","Lng","setData","e","ps","setZoom","setCenter","selectedPS","setIcon","params","$apply","addObject","length","getViewModel","setLookAtData","bounds","getBoundingBox","$top","States","$expand","Delivery","window","StartFrom","StartTo","Date","setHours","setMinutes","setSeconds","list","ODATA","value","showOrderPage","id","orderId","MapDialogs","showCarriers","show","controller","CarriersMapController","templateUrl","bindToController","clickOutsideToClose","locals","showOrders","showRoute","routeDialogController","DoerDialogs","$mdSidenav","_this","sendOfferDialog","offer","isAuthenticated","loginDialog","preserveScope","dblValue","Text","Cash","SafeDeal","hasTag","Tags","send","Price","controllerAs","doerAcceptDialog","question","okButtonText","cancelButtonText","doeraccept","doerStartDialog","start","doerFinishDialog","finish","sendReviewDialog","feedback","Rating","doerfeedback","DoerFeedback","DoerFeedbackId","parent","body","doerRejectDialog","doerreject","sendMessageDialog","msg","buyCashPacketDialog","count","price","scope","cashpacketcode","makePayment","cashpacket","enterCodeDialog","createRouteDialog","route","createRouteController","escapeToClose","deleteRouteDialog","DeliveryId","City","routes","remove","sendOutTransactionRequestConfirm","request","outtransactioncode","makeRequest","outtransaction","sendOutTransactionRequestDialog","Class","UserId","Start","moment","startOf","add","toDate","Finish","today","alreadyRegistered","needRegisterUser","saveOrUpdate","isValidRoute","createOrderController","requestContacts","finishOrder","EmailVerified","CategoryRateId","backState","orderCreated","isValidOrder","Path","ClientDialogs","simpleDialog","sendOrderDialog","isDoer","ClientId","$orderby","myorders","setSelected","i","selected","setHover","hover","submit","clientoffer","safeDealDialog","clientAcceptDialog","accept","cash","clientaccept","DoerId","showBizon","deffered","addMoney","addMoneyDialog","clientfeedback","ClientFeedbackId","ClientFeedback","deliveryAckDialog","deliveryack","clientAcceptStdOfferDialog","clientacceptstdoffer","noMoneyDialog","Math","floor","payOrderByCreditDialog","orderNo","orderNumber","now","orderComment","Amount","ReturnUrl","location","href","paymentDialog","sendPaymentCode","paymentcode","payment","deliveryRejectDialog","deliveryreject","comments","cancelOrderDialog","clientcancel","sendMessageToTeamDialog","loadCarriers","carriers","teamMarker","CategoryId","sendMessage","sendOrder","AccountDialogs","PannelData","cancelAction","showNotifications","toggle","qvtChatMessages","qvtOrderMessages","registerDialog","type","logoutDialog","unjoinUser","logout","Clear","verifyEmailDialog","confirmemail","carrier","registerCarrierDialog","client","registerClientDialog","continueRegistration","s","registerPrivateCarrierDialog","registerCompanyCarrierDialog","company","editCarrierDialog","editPrivateCarrierDialog","editCompanyCarrierDialog","applyCode","$interval","getcodewait","codewait","wait","codestop","cancel","newCode","sum","byCreditCard","patch","Balance","byBill","open","iconStart","startPointMarker","iconEnd","endPointMarker","addObjects","routingParameters","mode","waypoint0","waypoint1","representation","onResult","routeShape","linestring","response","shape","geo","LineString","point","parts","split","pushLatLngAlt","routeLine","Polyline","strokeColor","lineWidth","bb","router","getRoutingService","calculateRoute","alert","Order","AddressController","$filter","$stateParams","$kladr","fillAddress","addr","address_components","types","item","Country","long_name","CountryCode","short_name","cityAutocompleteOptions","componentRestrictions","country","Region","Street","House","geometry","StreetHouse","$onInit","CountryRegion","getCountryRegion","$watch","placeSelected","place","getDetails","details","citySelected","cityPlace","getResults","countryCode","query","autocompleteService","google","maps","places","AutocompleteService","getPlacePredictions","input","status","PlacesServiceStatus","OK","createElement","placeService","PlacesService","placeId","place_id","language","VerifyController","changePhone","UnitController","number","unit","MarkModel","getMarkModel","loadModifications","units","itemId","ModelId","modelId","withParams","modifications","mm","Mark","Model","search","text","carsearch","$promise","isUnitOk","PTS","BodyLength","BodyWidth","BodyHeight","markSelected","model","getParam","nameOrId","fullModification","Params","p","Value","modificationSelected","modificationId","ModificationId","modification","Seats","Volume","Carrying","uploadFile","file","tag","size","asset","push","CollectionId","files","deleteUnit","getAsset","assets","a","TeamUnitsController","loadUnits","addUnit","deleteUnitAck","ack","deleteAck","Status","ix","indexOf","splice","isAllUnitsOk","u","isUnitsOk","saveAll","RoutePlanController","evt","coord","screenToGeo","currentPointer","viewportX","viewportY","focus","geocode","fromAddressSearch","toAddressSearch","orderStart","predictions","q","results","x","showAddress","city","street","houseNumber","mapObjects","o","removeObject","routeAttributes","summary","distance","ll","geocoder","Geocoder","latlng","LatLng","showAlert","startDateChange","placeSelectedFrom","locationId","placeSelectedTo","presEnter","autoChild","firstElementChild","el","$mdAutocompleteCtrl","hidden","hereid","OrderStatusController","$doerDialogs","categories","getCategories","loadOffers","events","OrderId","Classes","Types","offers","myoffer","to","State","StateEnter","enterState","curDate","diff","getTime","autoPay","slice","makeOffer","doerReject","doerAccept","startOrder","sendReview","deliveryAck","deliveryReject","cancelOrder","OrderRouteController","$resource","ymaps","ready","controls","control","routePanel","state","fromEnabled","from","toEnabled","options","allowSwitch","reverseGeocoding","masstransit","pedestrian","taxi","switchPointsButton","Button","content","title","selectOnClick","maxWidth","switchPoints","tomorrow","getDate","models","catId","cat","getCategory","modelIndex","findRecomendedModel","manualSet","CatId","recmendedCat","TimeSelectorController","hour","setTime","ngModel","OrderCreateController","Properties","Stuff","createOrder","OrderController","TagsHash","selectPrev","selectNext","selectModel","setTag","CategoryController","select","selectedItem","StdOffersController","stdoffers","OrderProcessController","getState","DocsController","collectionId","collection","docTypes","categoryId","showWidget","toString","upload","updateFilesCollection","onChanged","removeAsset","index","DocsCollectionController","ContactController","itemCopy","getFIO","PrevPhone","email","oldPhone","cancelChanges","afterSuccessFn","success","showError","fio","LastName","MiddleName","fn","contactId","selectAddress","$usersui","selectAddressGoogle","FIOSelected","name","surname","patronymic","FIOChanged","substring","innChanged","INN","replace","bicChanged","BIK","innSelected","org","KPP","kpp","OGRN","ogrn","FullName","full_with_opf","short_with_opf","Director","management","LegalAddress","bicSelected","bank","BankName","BankBill","correspondent_account","changePassword","changeEmail","ChatController","$anchorScroll","loadCnt","isImage","mimetype","messageFiles","createFilesCollection","fc","messages","Room","Last","uploadFiles","preventDefault","loadMessages","expand","chat","$on","RoomId","read","ClientPrivateChatController","m","NewMessage","CarrierPrivateChatController","$location","CarrierController","AvatarController","assetId","getFile","changed","removeSpaces","pastedText","clipboardData","getData","beep","snd","Audio","play","UnitsController","Units","UnitsResource","UnitsResourceParams","enableShowMoreUnits","showMoreUnits","$skip","concat","TeamsController","Resource","ResourceParams","isModelTag","ParentId","TeamsFilterController","countries","category","getRegions","regions","getCities","region","cities","TeamItemController","hasDocument","checkedDocument","configSettingsStates","$stateProvider","url","views","content@app","SettingsController","header@app.client.settings","bodyClass","main@app.client.settings","configOrdersStates","navigation@app.client.orders","header@app.client.orders","right@app.client.orders","page","psize","sort","sortOrder","$count","ForMyCars","formycars","toISOString","FromCountry","fromcountry","FromRegion","fromregion","FromCity","fromcity","ToCountry","tocountry","ToRegion","toregion","ToCity","tocity","main@app.client.orders.item","chat@app.client.orders.item","MyOffer","header@app.client.orders.item","offers@app.client.orders.item","template","getTemplateUrl","clientAcceptStdOffer","offer@app.client.orders.item","carrier@app.client.orders.item","route@app.client.orders.item","routeController","what@app.client.orders.item","user@app.client.orders.item","status@app.client.orders.item","Offers","SelectedOffer","configMyOrdersStates","redirectTo","myordersState","current","mainheader@app.client.myorders","header@app.client.myorders","main@app.client.myorders","ODATAOffers","sendOffer","left@app.client.myorders.offers","right@app.client.myorders.offers","ODATAActive","left@app.client.myorders.active","right@app.client.myorders.active","ODATAInProgress","left@app.client.myorders.inprogress","right@app.client.myorders.inprogress","ODATAArchive","left@app.client.myorders.archive","right@app.client.myorders.archive","PlanController","left@app.client.myorders.plan","right@app.client.myorders.plan","configMainStates","abstract","Settings","settings","carriers@app.client.main","Carriers","orders@app.client.main","Orders","parseInt","refId","Title","Subtitle","subtitle","BackgroundUrl","Logo","orders@app.client.page-carrier","AvgPrice","configChatStates","Rooms","groups","rooms","room","Hide","d","r","roomId","NewMessages","main@app.client.messages","room@app.client.messages","Private","chat@app.client.messages","configCarriersStates","header@app.client.carriers","navigation@app.client.carriers","main@app.client.carriers","right@app.client.carriers","Online","online","$mapDialogs","header@app.client.carriers.item","main@app.client.carriers.item","cars@app.client.carriers.item","unit@app.client.carriers.item","docs@app.client.carriers.item","reviews@app.client.carriers.item","feedback@app.client.carriers.item","right@app.client.carriers.item","FeedbacksResource","feedbacks","FeedbacksResourceParams","Feedbacks","configCabinetStates","header@app.client.cabinet-client","main@app.client.cabinet-client","contacts@app.client.cabinet-client.profile","right@app.client.cabinet-client.profile","reviews@app.client.cabinet-client.profile","FeedbacksController","ToUserId","feedback@app.client.cabinet-client.profile","Transactions","transactions","TransactionsResource","TransactionsResourceParams","header@app.client.cabinet-carrier","main@app.client.cabinet-carrier","contacts@app.client.cabinet-carrier.profile","cars@app.client.cabinet-carrier.profile","docs@app.client.cabinet-carrier.profile","unit@app.client.cabinet-carrier.profile","right@app.client.cabinet-carrier.profile","cash@app.client.cabinet-carrier.profile","status@app.client.cabinet-carrier.profile","busy","setStatus","reviews@app.client.cabinet-carrier.profile","reviewsFrom","feedback@app.client.cabinet-carrier.profile","saveMain","saveAbout","Info","saveNotifications","StatusEmail","StatusSMS","ChatEmail","ChatSMS","OfferEmail","OfferSMS","BalanceEmail","BalanceSMS","savePassword","initMap","yandexMapDisablePoiInteractivity","behaviors","disable","multiRoute","multiRouter","MultiRoute","referencePoints","boundsAutoApply","zoomMargin","wayPointStartIconLayout","wayPointStartIconImageHref","wayPointStartIconImageSize","wayPointStartIconImageOffset","wayPointFinishIconLayout","wayPointFinishIconImageHref","wayPointFinishIconImageSize","wayPointFinishIconImageOffset","routeActiveStrokeWidth","routeActiveStrokeColor","geoObjects","ProfileController","fullText","showFullText","updateCurPlace","CurPlace","saveTeamData","addRoute","editRoute","removeRoute","PageNavigationController","$parent","total","totalPages","ceil","tripointPrev","max","tripointNext","min","prevPage","nextPage","minIndex","maxIndex","enableShowMore","showMore","pages","OrdersController","OrderItemController","editOrder","clientAccept","getStatusTemplate","OrdersFilterController","applyStart","format","fromregions","fromcities","toregions","tocities","applyFormycars","v","mapController","randomNumberX","random","randomNumberY","myPlacemark","Placemark","enableShowMoreFeedbacks","showMoreFeedbacks","closeFeedbacks","fb","deleteItem","saveItem","weight","$inject","config","$translatePartialLoaderProvider","msApiProvider","addPart","module","service","ChatMessages","OrderMessages","NewEvent","ev","AddMessage","UpdateCounters","found","Update","Unread","RecipientId","Load","readall","ChatNotifications","OrderNotifications","Notifications","ChatTabController","msApi","toggleChat","chatActive","replyMessage","scrollToBottomOfChat","reply","dialog","who","time","speed","chatDialog","animate","scrollTop","scrollHeight","run","directive","restrict","link","$element","bind","$","val","component","bindings","form","change","clearStart","initialize","momentFn","args","Array","prototype","call","arguments","momentObj","apply","n","undefined","zeros","repeat","intervals","days","offset","months","years","getInterval","interval","interresultval","force","promises","all","enums","categoriesList","deleteCategory","updateCategory","userTypeText","userTypes","eventTypeText","eventTypes","eventClassText","eventClasses","userTypeName","usersTypes","userStatusText","userStatuses","userStatusStyle","userStatusStyles","styleAdmin","orderTypeText","orderTypes","orderStatusColor","orderStates","orderStatusText","teamTypeText","teamTypes","get2","dics","res","Items","objects","orgid","OrgId","getUnits","objid","ObjId","getUnit","classes","marks","hasSavedSession","ContinueRegistration","exp","expiresAt","JSON","parse","tokenExpired","isAdmin","isClient","isSuperAdmin","expiresIn","stringify","expires_in","accessToken","access_token","idToken","refresh_token","tags","t","ratingColor","numEnd","getNumEnding","tel","trim","formatTel","iNumber","aEndings","sEnding","oEndings","$parse","array","groupByField","reverse","prev_item","groupKey","filteredData","initInjector","injector","$http","constant","project","auth","baseUrl","apiVer","dtOptions","dom","pagingType","pageLength","lengthMenu","paging","searching","autoWidth","responsive","scrollY","paginate","previous","next","emptyTable","info","taOptions","toolbar","bootstrap","HubService","Hub","$mdToast","_hub","connectionOk","createHub","_connect","connection","done","fail","reason","_hubDisconnected","lastError","signalR","ajaxDefaults","headers","Authorization","listeners","_event","$broadcast","methods","queryParams","Bearer","tokenHeader","errorHandler","stateChanged","newState","connectionState","connecting","connected","reconnecting","disconnected","rootPath","transport","useSharedConnection","hubDisconnected","JoinUser","UnjoinUser","disconnect","stop","global","factory","exports","require","define","amd","plural","word","num","forms","relativeTimeWithPlural","withoutSuffix","key","hh","dd","MM","yy","monthsParse","ru","defineLocale","standalone","monthsShort","weekdays","isFormat","weekdaysShort","weekdaysMin","longMonthsParse","shortMonthsParse","monthsRegex","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","lastDay","nextWeek","week","day","lastWeek","sameElse","relativeTime","future","past","h","M","y","meridiemParse","isPM","test","meridiem","minute","isLower","dayOfMonthOrdinalParse","ordinal","period","dow","doy","elem","attrs","showLightboxModal","image","lightboxController","addClass","on","src","mdLightboxTitle","KladrService","parameters","requestOptions","method","extend","limit","resp","addressString","getPart","join","b","contentType","typeShort","parents","part","updateAddress","dadata","Content-Type","Accept","timeout","cache","suggestions","FilesService","Upload","fileId","GetFile","updateCollection","fn1","fn2","PutFCollection","createCollection","PostFCollection","removeFile","DeleteFile","err","uploadFileInCollection","_filesCollection","GetFCollection","removeFileFromCollection","_","$update","apiService","api","_token","defaults","common","_profile","TagsJson","resource","object","buildService","delete","dic","$users","verifyemail","forgot","forgotcode","counters","refresh","addorder","unread","bankdetails","find","generate","catitems","filescollection","getProfile","getTeam","refreshToken","inProcess","configProcess","$httpProvider","interceptors","numberOfHttpRequests","requestError","responseError","submitLoader","$compile","loader","append","attr","removeAttr","rejection","path","$provide","getDecimals","getVF","opt_precision","base","pow","f","PLURAL_CATEGORY","ZERO","ONE","TWO","FEW","MANY","OTHER","DATETIME_FORMATS","AMPMS","DAY","ERANAMES","ERAS","FIRSTDAYOFWEEK","MONTH","SHORTDAY","SHORTMONTH","STANDALONEMONTH","WEEKENDRANGE","fullDate","longDate","medium","mediumDate","mediumTime","short","shortDate","shortTime","NUMBER_FORMATS","CURRENCY_SYM","DECIMAL_SEP","GROUP_SEP","PATTERNS","gSize","lgSize","maxFrac","minFrac","minInt","negPre","negSuf","posPre","posSuf","localeID","pluralCat","vf","g","charAt","j","k","l","Function","Object","Ea","Da","Oa","w","z","substr","B","A","isNaN","C","D","F","E","Ta","G","I","Ua","J","K","N","O","P","Q","R","S","T","U","V","W","X","vb","Y","Z","nominative","accusative","genitive","aa","hours","weekdaysParseExact","ba","1","2","3","4","5","6","7","8","9","0","ca","da","ea","fa","preparse","postformat","ga","ha","١","٢","٣","٤","٥","٦","٧","٨","٩","٠","ia","ja","ka","la","ma","na","oa","70","80","20","50","100","10","30","60","90","pa","qa","১","২","৩","৪","৫","৬","৭","৮","৯","০","meridiemHour","ra","sa","༡","༢","༣","༤","༥","༦","༧","༨","༩","༠","monthsParseExact","lll","llll","ta","ua","RegExp","exec","va","wa","monthsNominativeEl","monthsGenitiveEl","_monthsGenitiveEl","month","_monthsNominativeEl","toLowerCase","calendarEl","_calendarEl","xa","ya","za","Aa","Ba","Ca","۱","۲","۳","۴","۵","۶","۷","۸","۹","۰","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","१","२","३","४","५","६","७","८","९","०","Pa","40","Qa","Ra","೧","೨","೩","೪","೫","೬","೭","೮","೯","೦","ss","Sa","Va","words","correctGrammaticalCase","translate","Wa","Xa","Ya","Za","၁","၂","၃","၄","၅","၆","၇","၈","၉","၀","$a","_a","ab","cb","db","eb","gb","hb","ib","jb","੧","੨","੩","੪","੫","੬","੭","੮","੯","੦","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","௧","௨","௩","௪","௫","௬","௭","௮","௯","௦","wb","xb","yb","locale","Idle","watch","checkSession","authzero","compareTo","otherModelValue","attributes","$validators","modelValue","$validate","AuthZeroLoginController","enterCode","sent","hasCode","resetPasswordCode","resetPassword","sendReset","loginPhone","noclose","ExceptionMessage","MsWidgetController","flip","isFlippable","flipped","toggleClass","isDefined","flippable","msWidgetDirective","transclude","compile","tElement","iElement","iAttrs","MsWidgetCtrl","transcludeFn","clone","empty","msWidgetFrontDirective","flipWidget","msWidgetBackDirective","MsTimelineController","setScrollEl","scrollEl","getScrollEl","msTimelineDirective","msTimeline","loadMore","MsTimelineCtrl","onScroll","height","threshold","loadMoreEl","position","unregisterOnScroll","removeClass","registerOnScroll","off","msTimelineItemDirective","cardEl","testForImage","itemLoaded","testForVisibility","imgEl","itemInViewport","itemReadyWatcher","old","equals","MsStepperController","setOrientation","orientation","registerMainForm","mainForm","registerStep","step","stepNumber","steps","stepTitle","stepTitleTranslate","setupSteps","setCurrentStep","currentStepNumber","resetForm","$setPristine","$setUntouched","gotoFirstStep","isStepNumberValid","gotoStep","isStepHidden","gotoPreviousStep","gotoNextStep","gotoLastStep","isFirstStep","isLastStep","isStepCurrent","isStepDisabled","disabled","isStepValid","isStepOptional","optionalStep","hideStep","filterHiddenStep","$valid","isUndefined","isFormValid","currentStep","msHorizontalStepperDirective","priority","ctrls","FormCtrl","MsStepperCtrl","msHorizontalStepperStepDirective","msVerticalStepperDirective","msVerticalStepperStepDirective","stepInfo","MsStepper","msSplashScreenDirective","$animate","splashScreenRemoveEvent","leave","msRandomClassDirective","msRandomClass","randomClass","msSidenavHelperDirective","MdSidenavCtrl","isOpen","isLockedOpen","MsShortcutsController","$cookies","$document","loadShortcuts","shortcuts","resultsLoading","populateResults","flatNavigation","getFlatNavigation","uisref","lowercase","hasShortcut","_id","selectedResultIndex","fromJson","children","_path","toJson","saveShortcuts","addShortcut","removeShortcut","handleResultClick","absorbEvent","handleKeydown","keyCode","keys","ensureSelectedResultIsVisible","handleMouseenter","ignoreMouseEvents","temporarilyIgnoreMouseEvents","mouseEventIgnoreTimeout","resultsEl","selectedItemEl","outerHeight","toggleMobileBar","mobileBarActive","queryOptions","debounce","sortableOptions","ghostClass","forceFallback","fallbackClass","onSort","msShortcutsDirective","MsSearchBarController","collapsed","onSearchEvaluated","$eval","onSearch","isArray","isPromise","isNull","onExpand","isFunction","collapse","onCollapse","onResultClick","msSearchBarDirective","inputEl","bodyEl","msScrollConfigProvider","configuration","defaultConfiguration","wheelSpeed","wheelPropagation","swipePropagation","minScrollbarLength","maxScrollbarLength","useBothWheelAxes","useKeyboard","suppressScrollX","suppressScrollY","scrollXMarginOffset","scrollYMarginOffset","stopPropagationOnClick","$get","getConfig","msScrollDirective","msScrollConfig","msUtils","fuseConfig","isMobile","updateScrollbar","PerfectScrollbar","msScroll","prop","destroy","provider","msResponsiveTableDirective","wrapper","after","msNavigationServiceProvider","isString","$log","_findOrCreateParent","updateItem","_getUiSref","isNumber","navigation","sortByWeight","_byWeight","pop","createParent","stateParams","isObject","clearNavigation","navigationScope","setActiveItem","node","activeItem","getActiveItem","getNavigation","root","_flattenNavigation","setNavigationScope","setFolded","folded","getFolded","setFoldedOpen","foldedOpen","getFoldedOpen","toggleFolded","flatNav","navToPush","MsNavigationController","toggleHorizontalMobileMenu","msNavigationDirective","setFoldExpander","$emit","removeFoldCollapser","foldExpanderEl","onFoldExpanderHover","setFoldCollapser","foldCollapserEl","onFoldCollapserHover","sidenav","close","MsNavigationNodeController","hasChildren","collapsable","includes","$evalAsync","givenPathParts","activePathParts","toggleCollapsed","collapseEl","offsetHeight","display","animateHeightClass","css","expandEl","visibility","getClass","isHidden","msNavigationNodeDirective","MsNavigationNodeCtrl","msNavigationItemDirective","msNavigationHorizontalDirective","MsNavigationHorizontalNodeController","isActive","msNavigationHorizontalNodeDirective","MsNavigationHorizontalNodeCtrl","msNavigationHorizontalItemDirective","$mdMedia","onClick","msMaterialColorPickerController","$mdColorPalette","$mdMenu","fuseGenerator","activateHueSelection","palette","hues","selectedPalette","selectedHues","selectColor","hue","updateSelectedColor","updateModel","removeColor","selectedColor","class","setSelectedColor","modelCtrl","$viewValue","msModelType","color","bgColorValue","rgba","palettes","fgColorValue","contrast","$selectedColor","$setViewValue","msMaterialColorPicker","controllers","ctrl","nodeType","replaceWith","msNavFoldService","setFoldable","foldable","isNavFoldedOpen","toggleFold","openFolded","closeFolded","msNavIsFoldedDirective","isFoldedOpen","isFolded","fold","unfold","sidenavEl","openOverlay","closeOverlay","msNavIsFolded","MsNavController","isDisabled","enable","setToggleItem","toggleItems","getLockedItems","lockedItems","setLockedItem","clearLockedItems","msNavDirective","$mdComponentRegistry","stateChangeSuccessEvent","when","msNavTitleDirective","msNavButtonDirective","msNavToggleDirective","tAttrs","MsNavCtrl","isCollapsed","isExpanded","elementToExpand","expandAnimation","expanded","elementToCollapse","collapseAnimation","links","states","regExp","locked","lockedItem","currentState","shouldExpand","msMasonryController","$window","defaultOpts","watchContainerResize","waitImagesLoaded","callback","imagesLoaded","imgLoad","container","width","newValue","oldValue","reLayout","containerPos","getBoundingClientRect","updateColumnOptions","items","referenceArr","columnCount","xPos","yPos","column","refTop","columnWidth","respectItemOrder","round","transform","reLayoutTimeout","reLayoutDebounce","md","sm","xs","msMasonry","pre","msMasonryItem","newVal","oldVal","msInfoBarDirective","removeInfoBar","$destroy","MsFormWizardController","registerForm","previousStep","selectedIndex","firstStep","lastStep","totalSteps","currentStepInvalid","$invalid","previousStepInvalid","formsIncomplete","msFormWizardDirective","msFormWizardFormDirective","formCtrl","MsFormWizardCtrl","msCardDirective","templatePath","card","cardTemplateLoaded","msDatepickerFixConfigProvider","defaultConfig","formatter","parser","utcOffset","msDatepickerFix","msDatepickerFixConfig","$formatters","$parsers","MsThemeOptionsController","fuseTheming","setActiveTheme","themeName","getActiveTheme","themes","active","updateLayoutMode","layoutMode","updateLayoutStyle","layoutStyle","layoutModes","label","layoutStyles","figure","msThemeOptions","toggleOptionsSidenav","fuseThemingService","$mdTheming","getRegisteredPalettes","PALETTES","getRegisteredThemes","THEMES","warn","theme","setThemesList","themeList","$mdThemingProvider","fusePalettes","fuseThemes","invoke","_$cookies","customTheme","getObject","alwaysWatchTheme","definePalette","primaryPalette","primary","accentPalette","accent","warnPalette","backgroundPalette","background","default","hue-1","hue-2","hue-3","bizon-red","bizon-white","bizon-orange","bizon-green","bizon-blue","bizon-black","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","contrastDarkColors","contrastStrongLightColors","fuseGeneratorService","registeredThemes","registeredPalettes","registeredTheme","colors","colorType","colorTypeName","levels","contrast1","contrast2","contrast3","contrast4","hue1","hue2","hue3","processAndStoreThemes","styleVars","colorTypes","colorLevelName","colorName","ucfirst","render","_themes","selectedTheme","cssTemplate","regex","matched","headEl","styleEl","html","_contrastLevel","contrastLevel","applyContrast","contrastLevels","white","black","string","toUpperCase","exists","detectBrowser","searchString","dataString","dataProp","versionSearchString","versionSearch","identity","subString","searchVersion","browserInfo","browserData","navigator","userAgent","vendor","opera","osData","platform","browser","version","appVersion","os","guidGenerator","S4","mobileDetect","mobile","toggleInArray","MobileDetect","setBaseUrl","getBaseUrl","getApiObject","paramDefaults","actions","action","actionParts","apiObject","resourceObject","apiResolverService","resourceParts","filterByTags","filtered","match","every","tagExists","itemTag","filterSingleByTags","itemTags","filterByPropIds","parameter","ids","filterByIds","toTrustedFilter","$sce","trustAsHtml","htmlToPlainTextFilter","String","nospaceFilter","humanizeDocFilter","doc","$1","altDate","fromNow","hljsDirective","$interpolate","contents","codeElement","lines","line","firstLineWhitespace","startingWhitespaceRegex","highlightedCode","hljs","highlight","lang","shouldInterpolate","contentParent","fuseConfigProvider","fuseConfiguration","disableCustomScrollbars","disableMdInkRippleOnMobile","disableCustomScrollbarsOnMobile","configName","setConfig","configValue","ToolbarController","$translate","userStatus","userStatusOptions","selectedLanguage","languages","preferredLanguage","toggleSidenav","sidenavId","setUserStatus","changeLanguage","hideDelay","use","toggleMsNavigationFolded","searchResultClick","en","translation","flag","es","tr","goHome","QuickPanelController","date","notify","cloud","retro","navigate","HTMLPictureElement","timer","dummySrc","fixRespimg","img","source","sizes","picture","parentNode","nodeName","cloneNode","insertBefore","setTimeout","removeChild","_pfLastSize","offsetWidth","findPictureImgs","imgs","querySelectorAll","onResize","clearTimeout","mq","matchMedia","addListener","srcset","readyState","isSpace","detectTypeSupport","typeUri","Image","onerror","picturefill","onload","updateMetrics","isVwDirty","DPR","devicePixelRatio","cssCache","sizeLengthCache","pf","innerWidth","docElem","clientWidth","innerHeight","clientHeight","vw","vh","evalId","em","getEmValue","rem","chooseLowRes","lowerValue","higherValue","dprValue","isCached","bonusFactor","tooMuch","bonus","meanDensity","cfg","algorithm","sqrt","applyBestCandidate","srcSetCandidates","matchingSet","getSet","evaluated","setRes","applySetCandidate","ns","evaled","ascendingSort","setSrcToCur","candidate","sets","getCandidateForSrc","makeUrl","curSrc","curCan","setResolution","candidates","parseSet","getAllSourceElements","len","sources","getElementsByTagName","getAttribute","media","parseSrcset","collectCharacters","regEx","chars","pos","parseDescriptors","desc","lastChar","intVal","floatVal","pError","descriptors","parseFloat","regexNonNegativeInteger","regexFloatingPoint","has1x","tokenize","regexLeadingSpaces","currentDescriptor","inputLength","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","parseSizes","strValue","parseComponentValues","str","pushComponent","componentArray","pushComponentArray","listArray","chrctr","parenDepth","inComment","isValidNonNegativeSourceSizeValue","regexCssLengthWithUnits","regexCssCalc","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","matchesMedia","eminpx","alwaysCheckWDescriptor","isSupportTestReady","noop","getImgAttr","setImgAttr","setAttribute","removeImgAttr","removeAttribute","documentElement","srcAttr","srcsetAttr","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","baseStyle","fsCss","px","in","anchor","alreadyRun","obj","capture","attachEvent","memoize","evalCSS","regLength","buildStr","parsedLength","sizesattr","cWidth","calcListLength","opt","elements","plen","context","qsa","reevaluate","reselect","sel","selShort","setupRun","fillImg","teardownRun","implementation","hasFeature","supSrcset","supSizes","supPicture","image2","complete","width2","width1","setSize","matches","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","div","originalHTMLCSS","cssText","originalBodyCSS","appendChild","sourceSizeListStr","uT","winningLength","bestCandidate","candidateSrc","abortCurSrc","imageData","dpr","cached","setSrc","origWidth","parseSets","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","supported","parsed","extreme","isDomReady","regReady","timerId","fillImgs","func","timestamp","later","last","lastClientWidth","shift","sampleElement","isIE11","HTMLFormElement","appendField","is","$form","each","appendTo","serializeArray","$fields","click","reset","defaultValue","checked","defaultChecked","defaultSelected","jQuery","NavigationController","msScrollOptions","MainController","targetScope","$id","CheckMobileController","hideInstallMobile","closeMobileCheck","runBlock","htmlClass","$ariaProvider","$logProvider","debugEnabled","tabindex","stateChangeStartEvent","loadingProgress","routeConfig","$urlRouterProvider","$locationProvider","html5Mode","otherwise","layouts","verticalNavigation","main","verticalNavigationFullwidthToolbar","verticalNavigationFullwidthToolbar2","horizontalNavigation","footer","contentOnly","contentWithToolbar","main@","toolbar@app","navigation@app","footer@app","mobile@app","quickPanel@app","IndexController","showBizonFunc","$translateProvider","$mdIconProvider","defaultFontSet","configLocale","$mdDateLocaleProvider","localeData","_months","shortMonths","_weekdays","shortDays","_weekdaysMin","firstDayOfWeek","_week","parseDate","dateString","isValid","NaN","formatDate","configIdle","KeepaliveProvider","IdleProvider","idle","toast","simple","textContent","_options","$templateCache"],"mappings":"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","file":"scripts/app-94aa1ac334.js","sourcesContent":["/** @ngInject */\r\nfunction registerClientController($scope, $state, $mdDialog, $rootScope, UTILS, APP_SETTINGS, msNavigationService, $api, $q, localStorageService,$accountDialogs, $clientDialogs, ProjectHub){\r\n\tvar $ctrl = this;\r\n\r\n\t$scope.$mdDialog = $mdDialog;\r\n $scope.errorMessage = null;\r\n $scope.agreePersonalData = false;\r\n $scope.contact = { Address: { } };\r\n \r\n $scope.nextStep = function(){ $scope.activeTab = $scope.activeTab+1;}\r\n $scope.prevStep = function(){ \r\n console.log('prev step'); \r\n if ($scope.activeTab > 0) \r\n $scope.activeTab = $scope.activeTab - 1; \r\n else\r\n $scope.verifyForm = false;\r\n }\r\n\r\n $scope.sendCode = function(){\r\n $api.users.code.get({code: $scope.contact.Code }, function(result){\r\n console.log(result);\r\n $rootScope.showToast('Новый код выслан на Ваш телефон');\r\n },function(error){\r\n $scope.error = error.data.Message;\r\n console.log(error.data.Message);\r\n });\r\n } \r\n\r\n $scope.cancelCode = function (){\r\n $scope.codeSended = false;\r\n }\r\n\r\n $scope.confirmPhone = function(){\r\n $api.users.confirm.get({userId: $scope.user.Id, code: $scope.user.Code }, function(token){\r\n console.log(token);\r\n\r\n $rootScope.showToast('Номер телефона успешно подтвержден!');\r\n\r\n UTILS.setSession(token);\r\n $api.setup();\r\n\r\n $api.updateProfile();\r\n\r\n $scope.finishRegistration();\r\n },\r\n function(error){\r\n $scope.error = 'Ошибка при подтверждении номера телефона : ' + error.data.Message;\r\n })\r\n }\r\n\r\n var createUser = function () {\r\n var deferred = $q.defer(); \r\n\r\n console.log($scope.contact);\r\n $api.users.create.save({}, {\r\n Type: 'Client', \r\n Email: $scope.contact.Email, \r\n Password: $scope.contact.Password, \r\n Phone: $scope.contact.Phone,\r\n Name: $scope.contact.FirstName,\r\n AvatarAssetId: $scope.contact.AvatarAssetId\r\n }, \r\n function(user){\r\n console.log(user);\r\n $scope.user = user;\r\n localStorageService.set('registerUser', user);\r\n $scope.errorMessage = null;\r\n deferred.resolve(user);\r\n },\r\n function(error){\r\n console.log(error);\r\n $scope.errorMessage = error.data.Message; \r\n $rootScope.showToast($scope.errorMessage); \r\n deferred.reject(error); \r\n });\r\n return deferred.promise;\r\n\t}\t\r\n\r\n\t$scope.registerUser = function(){\r\n console.log('register user') \r\n $scope.errorMessage = null; \r\n if (!$scope.contact.AgreePersonalData)\r\n {\r\n $scope.errorMessage = 'Для продолжения необходимо согласиться с условиями предоставления и обработки персональных данных';\r\n return;\r\n }\r\n else\r\n $scope.contact.AgreePersonalData = false;\r\n\r\n \t\tcreateUser() // Создаем пользователя\r\n .then(function(user){\r\n console.log(user); \r\n $scope.codeSended = true;\r\n \t\t}, function(error){\r\n $scope.errorMessage = error.data.Message; \r\n }) \t\t\r\n\t}\r\n\r\n $scope.finishRegistration = function(){\r\n\r\n $api.updateProfile().then(function(){ \r\n $mdDialog.hide(); \r\n clientNavigation(msNavigationService,UTILS); \r\n //$rootScope.showBizon(); \r\n $accountDialogs.message(\r\n {\r\n dialogTitle: 'Регистрация грузоотправителя', \r\n mainMessage: 'Регистрация завершена', \r\n descMessage: 'Поздравялем, теперь Вы - грузоотправитель в сервисе \"Бизон\". Не забудьте подтвердить свой email. Создать свой заказ Вы можете уже сейчас! ', \r\n buttonText: 'Создать заказ', \r\n buttonAction: function(){ \r\n $mdDialog.hide(); \r\n $state.go('app.client.carriers', {}, {reload: true});\r\n $clientDialogs.createOrderDialog();\r\n }\r\n }); \r\n });\r\n\r\n } \r\n}\n/** @ngInject */\r\nfunction registerCarrierController($scope, $state, $mdDialog, $files, $rootScope, UTILS, APP_SETTINGS, ProjectHub, msNavigationService, $api, $q, localStorageService, $accountDialogs){\r\n\r\n \tvar $ctrl = this;\r\n\r\n \t$scope.$mdDialog = $mdDialog;\r\n $scope.teamUnits = {};\r\n $scope.errorMessage = null;\r\n $scope.agreePersonalData = false;\r\n $scope.user = APP_SETTINGS.Profile && APP_SETTINGS.Profile.PhoneVerified ? angular.copy(APP_SETTINGS.Profile) : null;\r\n $scope.verifyForm = $scope.user ? !$scope.user.PhoneVerified : false;\r\n\r\n console.log($scope.user);\r\n $scope.contact = APP_SETTINGS.Profile && APP_SETTINGS.Profile.PhoneVerified ? angular.copy(APP_SETTINGS.Profile.Contact) : {Address: {}};\r\n //$scope.contact.Password = null; $scope.contact.Confirm = null;\r\n $scope.teamAssets = APP_SETTINGS.Profile && APP_SETTINGS.Profile.PhoneVerified ? $files.getFilesCollection(APP_SETTINGS.Profile.Team.AssetsId) : { Assets: [] };\r\n\r\n if ($ctrl.register) {\r\n $scope.activeTab = APP_SETTINGS.Profile ? (APP_SETTINGS.Profile.PhoneVerified ? 1 : 0) : 0; \r\n }\r\n else\r\n $scope.activeTab = 0;\r\n\r\n console.log($scope.activeTab);\r\n\r\n $scope.nextStep = function(){ console.log('next step'); $scope.activeTab = $scope.activeTab + 1; }\r\n $scope.prevStep = function(){ \r\n console.log('prev step'); \r\n if ($scope.activeTab > 0) \r\n $scope.activeTab = $scope.activeTab - 1; \r\n else\r\n $scope.verifyForm = false;\r\n }\r\n\r\n var createUser = function () {\r\n var deferred = $q.defer(); \r\n\r\n\t console.log($scope.contact);\r\n\t $api.users.create.save({}, {Type: 'Doer', Email: $scope.contact.Email, Password: $scope.contact.Password, Phone: $scope.contact.Phone }, \r\n\t function(user){\r\n\t console.log(user);\r\n $scope.errorMessage = null;\r\n\t deferred.resolve(user);\r\n\t },\r\n\t function(error){\r\n\t console.log(error);\r\n\t $scope.errorMessage = error.data.Message; \r\n\t $rootScope.showToast($scope.errorMessage); \r\n deferred.reject(error); \r\n\t });\r\n\r\n\t return deferred.promise;\r\n \t}\t\r\n \r\n var getToken = function(){\r\n var deferred = $q.defer(); \r\n\r\n $api.users.token.get({username: $scope.contact.Email,password: $scope.contact.Password}, \r\n function(authResult) {\r\n console.log(authResult);\r\n UTILS.setSession(authResult);\r\n $api.setup();\r\n $scope.errorMessage = null; \r\n deferred.resolve(authResult);\r\n },function(error){\r\n $rootScope.showToast('Ошибка при входе в систему!');\r\n deferred.reject(error);\r\n }); \r\n\r\n return deferred.promise;\r\n }\r\n\r\n $scope.saveAddress = function (address){\r\n var deferred = $q.defer(); \r\n\r\n $api.addresses.put.update(address, function(address){\r\n deferred.resolve(address);\r\n },\r\n function(error){\r\n console.log(error);\r\n $rootScope.showToast('Ошибка сохранения адреса!');\r\n $scope.errorMessage = error.data.Message;\r\n deferred.reject(error);\r\n }); \r\n\r\n return deferred.promise;\r\n }\r\n\r\n $scope.createContacts = function(contact){\r\n var deferred = $q.defer(); \r\n contact.Id = null;\r\n $api.contacts.post.save(contact, function(c){\r\n console.log(c);\r\n $scope.errorMessage = null;\r\n deferred.resolve(c);\r\n },\r\n function(error){\r\n console.log(error);\r\n $rootScope.showToast('Ошибка сохранения контактных данных!');\r\n $scope.errorMessage = error.data.Message;\r\n deferred.reject(error);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n $scope.moderateContacts = function(contact){\r\n var deferred = $q.defer(); \r\n $api.contacts.moderate.get({Id: contact.Id, teamId: $scope.user.TeamId }, \r\n function(c){\r\n $scope.errorMessage = null;\r\n deferred.resolve(contact);\r\n },\r\n function(error){\r\n console.log(error);\r\n $rootScope.showToast('Ошибка сохранения контактных данных!');\r\n $scope.errorMessage = error.data.Message;\r\n deferred.reject(error);\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n \t$scope.saveContacts = function(contact){\r\n\r\n console.log('save contacts')\r\n console.log(contact)\r\n\r\n $scope.errorMessage = null; \r\n if ($ctrl.register && $scope.activeTab == 1 && !$scope.contact.AgreePersonalData)\r\n {\r\n $scope.errorMessage = 'Для продолжения необходимо согласиться с условиями предоставления и обработки персональных данных';\r\n return;\r\n }\r\n else{\r\n $scope.errorMessage = null; \r\n }\r\n\r\n \tvar deferred = $q.defer(); \r\n\r\n \t$api.contacts.put.update(contact, function(c){\r\n \t\tconsole.log(c);\r\n $scope.errorMessage = null;\r\n \t\tdeferred.resolve(contact);\r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка сохранения контактных данных!');\r\n \t\t$scope.errorMessage = error.data.Message;\r\n \t\tdeferred.reject(error);\r\n \t});\r\n\r\n \treturn deferred.promise;\r\n \t}\r\n\r\n $scope.saveBankDetails = function(){ \r\n console.log('save bank details');\r\n return $scope.saveContacts($scope.user.Team.Contact).then($scope.nextStep);\r\n }\r\n\r\n $scope.savePrivate = function(toNextStep){ \r\n console.log('save private data');\r\n\r\n $scope.errorMessage = null; \r\n\r\n $scope.user.Team.Contact.Type = 'User';\r\n\r\n return $scope.saveContacts($scope.user.Team.Contact).then(\r\n function(contact) {\r\n console.log(contact);\r\n $scope.user.Team.Contact = contact;\r\n $scope.user.Team.Type = $ctrl.Type;\r\n $scope.user.Team.Name = $scope.user.Team.Contact.ShortName || $scope.user.Contact.FIO;\r\n return $scope.saveTeam($scope.user.Team);\r\n })\r\n .then(function (){ \r\n if (toNextStep != false) \r\n $scope.nextStep()\r\n else\r\n $rootScope.showToast('Данные сохранены!')\r\n });\r\n }\r\n\r\n $scope.saveUserContacts = function() {\r\n console.log('save user contacts');\r\n return $scope.saveContacts($scope.contact).then($scope.nextStep);\r\n }\r\n\r\n $scope.checkTeamContact = function(toNextStep){ \r\n if (!$ctrl.register && $scope.user.Team.Contact.edit) \r\n return $scope.createContacts($scope.user.Team.Contact)\r\n .then(function(c) { return $scope.moderateContacts(c); })\r\n .then(function(){ \r\n if ($scope.toNextStep != false)\r\n $scope.nextStep();\r\n else\r\n $rootScope.showToast('Данные сохранены!')\r\n });\r\n\r\n $scope.user.Team.Type = $ctrl.Type;\r\n $scope.user.Team.Name = $scope.user.Team.Contact.ShortName || $scope.user.Contact.FIO; \r\n\r\n return $scope.saveContacts($scope.user.Team.Contact)\r\n .then( function() { $scope.saveTeam($scope.user.Team) })\r\n .then(function(){ \r\n if ($scope.toNextStep != false)\r\n $scope.nextStep();\r\n else\r\n $rootScope.showToast('Данные сохранены!')\r\n\r\n });\r\n } \r\n\r\n \t$scope.saveTeam = function(){\r\n \tvar deferred = $q.defer(); \r\n \t$api.teams.put.update($scope.user.Team, function(team){\r\n \t\tconsole.log(team);\r\n \t\t$scope.user.Team = team;\r\n \t\tdeferred.resolve(team);\r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка сохранения контактных данных!');\r\n \t\t$scope.errorMessage = error.data.Message;\r\n \t\tdeferred.reject(error);\r\n \t});\r\n \treturn deferred.promise;\r\n \t}\r\n\r\n \t$scope.registerUser = function(){\r\n console.log('register user') \r\n $scope.errorMessage = null; \r\n if (!$scope.contact.AgreePersonalData)\r\n {\r\n $scope.errorMessage = 'Для продолжения необходимо согласиться с условиями предоставления и обработки персональных данных';\r\n return;\r\n }\r\n\r\n \t\tcreateUser() // Создаем пользователя\r\n .then(function(user){\r\n console.log(user); \r\n $scope.user = user; \r\n $scope.user.Phone = $scope.contact.Phone; \r\n return getToken();\r\n },\r\n function (error){\r\n $scope.errorMessage = error.data.Message; \r\n }) \r\n \t\t.then(function(authResult){\r\n \t\t\t$scope.contact.Id = $scope.user.ContactId;\r\n $scope.contact.Address.Id = $scope.user.Contact.AddressId;\r\n $scope.contact.AddressId = $scope.user.Contact.AddressId; \r\n \t\t\treturn $scope.saveContacts($scope.contact); // Сохраняем контактные данные пользователя\r\n \t\t}, function(error){\r\n \t\t$scope.errorMessage = error.data.Message;\t\t\t\r\n \t\t})\r\n \t\t.then(function(contact){\r\n \t\t\t$scope.verifyForm = true;\r\n \t\t}, function(error){\r\n $scope.errorMessage = error.data.Message;\r\n })\r\n .then($api.updateProfile)\r\n .then(function(){ ProjectHub.joinUser(); }); \t\t\r\n \t}\r\n\r\n $scope.updateUser = function(toNextStep){\r\n console.log('update user') \r\n $scope.errorMessage = null; \r\n\r\n localStorageService.set('registerContact', $scope.contact);\r\n $scope.saveContacts($scope.contact).then(function(contact){\r\n if (!contact || !contact.Id) return;\r\n $scope.contact = contact;\r\n $scope.user.Contact = contact;\r\n return contact; \r\n }, function(error){\r\n $scope.errorMessage = error.data.Message; \r\n })\r\n .then(function(contact){\r\n $rootScope.showToast('Данные сохранены!');\r\n\r\n if ($rootScope.trimTel($scope.user.Phone) != $rootScope.trimTel($scope.contact.Phone)) // Изменился телефон\r\n {\r\n $scope.user.PhoneVerified = false;\r\n $scope.user.Phone = $scope.contact.Phone;\r\n $api.users.changephone.get({phone: $scope.contact.Phone });\r\n $scope.verifyForm = true; \r\n return;\r\n }\r\n if (toNextStep != false && $scope.activeTab >= 3)\r\n return $scope.finishUpdate();\r\n\r\n if (!$scope.user.PhoneVerified)\r\n $scope.verifyForm = true;\r\n\r\n\r\n }, function(error){}); \r\n }\r\n\r\n $scope.sendCode = function(toNextStep){\r\n if ($scope.verifiedPhone || $scope.user.PhoneVerified) {\r\n if (toNextStep != false)\r\n $scope.nextStep(); \r\n return;\r\n }\r\n\r\n $api.users.confirm.get({userId: $scope.user.Id, code: $scope.user.Code }, function(){\r\n $rootScope.showToast('Номер телефона успешно подтвержден!');\r\n $scope.verifiedPhone = true;\r\n $scope.user.PhoneVerified = true;\r\n\r\n if (toNextStep != false)\r\n {\r\n if ($ctrl.register || $scope.activeTab == 0)\r\n $scope.activeTab = $scope.activeTab+1;\r\n else\r\n $scope.finishUpdate();\r\n }\r\n\r\n },\r\n function(error){\r\n $scope.errorMessage = error.data.Message;\r\n })\r\n }\r\n\r\n $scope.saveDocs = function (toNextStep){\r\n $api.teams.documents.update({Id: $scope.user.TeamId}, $scope.teamAssets, \r\n function(){\r\n $rootScope.showToast('Данные сохранены!');\r\n if (toNextStep != false)\r\n $scope.nextStep();\r\n }, \r\n function (){\r\n $rootScope.showToast('ОШИБКА при сохранении!');\r\n }) \r\n }\r\n\r\n $scope.finishRegistration = function(){\r\n $api.users.finishreg.get({},function(profile){ \r\n return $api.updateProfile().then(function(){\r\n clientNavigation(msNavigationService,UTILS); \r\n $mdDialog.hide(); \r\n $state.reload(); \r\n// $rootScope.showBizon();\r\n $accountDialogs.message(\r\n {\r\n dialogTitle: 'Регистрация перевозчика', \r\n mainMessage: 'Регистрация завершена', \r\n descMessage: 'Поздравялем, теперь Вы перевозчик в сервисе \"Бизон\". Вы можете начать поиск груза прямо сейчас!', \r\n buttonText: 'Найти груз', \r\n buttonAction: function(){ $mdDialog.hide(); \r\n $state.go('app.client.orders'); \r\n }\r\n }); \r\n });\r\n });\r\n }\r\n\r\n $scope.closeDialog = function (){\r\n return $api.updateProfile().then(function(){\r\n clientNavigation(msNavigationService,UTILS); \r\n $mdDialog.hide(); \r\n $state.reload();\r\n });\r\n \r\n }\r\n\r\n $scope.finishUpdate = function(){\r\n return $api.updateProfile().then(function(){\r\n clientNavigation(msNavigationService,UTILS); \r\n $mdDialog.hide(); \r\n $state.reload();\r\n //$rootScope.showBizon(); \r\n $accountDialogs.message(\r\n {\r\n dialogTitle: 'Редактирование данных перевозчика', \r\n mainMessage: 'Обновление данных завершено', \r\n descMessage: 'Поздравялем, Ваши данные обновлены. Вы можете начать поиск груза прямо сейчас!', \r\n buttonText: 'Найти груз', \r\n buttonAction: function(){ $mdDialog.hide(); \r\n $state.go('app.client.orders'); \r\n }\r\n }); \r\n });\r\n }\r\n}\n/** @ngInject */\r\nfunction OrdersMapController($scope,$timeout,$api,$state,UTILS, $mdDialog) { \r\n var vm = this;\r\n\r\n $scope.$mdDialog = $mdDialog;\r\n $scope.UTILS = UTILS;\r\n $scope.filter = this.filter || {$top: 100, States: 'OrderCreated', $expand: 'StartPoint,Delivery' };\r\n $scope.filter.StartPoint = true;\r\n $scope.filter.Delivery = false;\r\n $scope.orders = [];\r\n\r\n var hplatform = window.hplatform; \r\n \r\n console.log('map controller');\r\n \r\n function init() {\r\n console.log('init map');\r\n\r\n // Obtain the default map types from the platform object:\r\n var defaultLayers = hplatform.createDefaultLayers({lg: 'ru'});\r\n\r\n // Instantiate (and display) a map object:\r\n var mapDiv = document.getElementById('map');\r\n vm.myMap = new H.Map(\r\n mapDiv,\r\n defaultLayers.vector.normal.map,\r\n {\r\n zoom: 14,\r\n center: { lat: 55.745508, lng: 55.745508 }\r\n }); \r\n vm.myMap.getViewPort().padding = { left:30, right: 30, top: 30, bottom: 30 }; \r\n\r\n // Add map events functionality to the map\r\n var mapEvents = new H.mapevents.MapEvents(vm.myMap);\r\n\r\n // Add behavior to the map: panning, zooming, dragging.\r\n var behavior = new H.mapevents.Behavior(mapEvents); \r\n\r\n vm.myMap.addEventListener('pointermove', function (event) {\r\n if (event.target instanceof H.map.Marker) {\r\n vm.myMap.getViewPort().element.style.cursor = 'pointer';\r\n } else {\r\n vm.myMap.getViewPort().element.style.cursor = 'auto';\r\n }\r\n }, false);\r\n\r\n $scope.loadOrders($scope.filter);\r\n } \r\n\r\n\r\n function createMarkers(filter){\r\n vm.myMap.removeObjects( vm.myMap.getObjects() );\r\n var group = new H.map.Group(); \r\n angular.forEach( $scope.orders, function(order){\r\n\r\n var icon = new H.map.Icon('../assets/images/bizon/placemark.png');\r\n var orderMarker = new H.map.Marker({ lat: order.StartPoint.Lat, lng: order.StartPoint.Lng }, { icon: icon });\r\n orderMarker.setData(order);\r\n orderMarker.addEventListener('tap', function (e){\r\n var ps = e.target; \r\n var order = ps.data;\r\n console.log(order);\r\n $scope.order = order;\r\n\r\n vm.myMap.setZoom(12);\r\n vm.myMap.setCenter({ lat: order.StartPoint.Lat, lng: order.StartPoint.Lng }); \r\n\r\n if ($scope.selectedPS)\r\n $scope.selectedPS.setIcon( new H.map.Icon('../assets/images/bizon/placemark.png') );\r\n\r\n $scope.selectedPS = ps;\r\n $scope.selectedPS.setIcon( new H.map.Icon('../assets/images/bizon/placemark-selected.png') ); \r\n $scope.params = 0; \r\n\r\n $scope.$apply();\r\n });\r\n group.addObject(orderMarker); \r\n\r\n });\r\n\r\n // add markers to the group\r\n vm.myMap.addObject(group); \r\n\r\n if ($scope.orders.length > 1)\r\n {\r\n vm.myMap.getViewModel().setLookAtData({\r\n bounds: group.getBoundingBox()\r\n }); \r\n }\r\n else if ($scope.orders.length == 1)\r\n {\r\n var order = $scope.orders[0];\r\n vm.myMap.setZoom(12);\r\n vm.myMap.setCenter({ lat: order.StartPoint.Lat, lng: order.StartPoint.Lng }); \r\n }\r\n else if ($scope.orders.length == 0)\r\n vm.myMap.setCenter([60,100], 3); \r\n }\r\n\r\n $scope.loadOrders = function(filter){\r\n console.log('load orders')\r\n\r\n if (filter.StartFrom) {\r\n filter.StartTo = new Date(filter.StartFrom);\r\n filter.StartTo.setHours(23);filter.StartTo.setMinutes(59); filter.StartTo.setSeconds(59);\r\n }\r\n\r\n console.log(filter);\r\n\r\n $api.orders.list.get(filter, function(ODATA){\r\n $scope.orders = ODATA.value;\r\n console.log($scope.orders);\r\n createMarkers(filter);\r\n });\r\n }\r\n\r\n $scope.showOrderPage = function (id){\r\n $mdDialog.hide();\r\n $state.go( 'app.client.orders.item', {orderId: id});\r\n }\r\n\r\n $timeout( init, 100 ); \r\n\r\n}\r\n\n /** @ngInject */\r\n function MapDialogs($mdDialog) {\r\n\r\n this.showCarriers = function(filter) { \r\n console.log('show carriers') \r\n console.log(filter);\r\n\r\n $mdDialog.show({\r\n controller: CarriersMapController,\r\n templateUrl: 'app/main/apps/client/views/map/carriers.html',\r\n bindToController: true, \r\n clickOutsideToClose: true,\r\n locals: {filter: angular.copy(filter) } \r\n }) \r\n }\r\n\r\n this.showOrders = function (filter) { \r\n console.log('show orders') \r\n console.log(filter);\r\n $mdDialog.show({\r\n controller: OrdersMapController,\r\n templateUrl: 'app/main/apps/client/views/map/orders.html',\r\n bindToController: true,\r\n clickOutsideToClose:true,\r\n locals: {filter: angular.copy(filter) }\r\n }) \r\n } \r\n\r\n this.showRoute = function (order){\r\n console.log(order);\r\n $mdDialog.show({\r\n controller: routeDialogController,\r\n templateUrl: 'app/main/apps/client/views/dialogs/route.full.html',\r\n clickOutsideToClose:true,\r\n bindToController: true, \r\n locals: { order: order }\r\n }) \r\n }\r\n\r\n return this; \r\n }\r\n\n/** @ngInject */\r\nfunction DoerDialogs($mdDialog, $rootScope, $api, $q, $mdSidenav, $accountDialogs, UTILS, APP_SETTINGS, $state,msNavigationService) {\r\n\r\n var _this = this;\r\n\r\n this.sendOfferDialog = function(order, offer) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n\r\n $mdDialog.show({\r\n preserveScope: true, \r\n controller: function($scope,$mdDialog, $api, $timeout, UTILS){\r\n var vm = this;\r\n $scope.offer = vm.offer || { dblValue: null, Text: null, Cash: true, SafeDeal: true };\r\n console.log($scope.offer);\r\n if (!$scope.offer.Cash)\r\n $scope.offer.Cash = UTILS.hasTag($scope.offer.Tags, 'Cash'); \r\n if (!$scope.offer.SafeDeal)\r\n $scope.offer.SafeDeal = UTILS.hasTag($scope.offer.Tags, 'SafeDeal'); \r\n $scope.$mdDialog = $mdDialog; \r\n $scope.send = function(){ \r\n console.log($scope.offer);\r\n $api.orders.offer.save( {Id: vm.order.Id, Price: $scope.offer.dblValue, Message: $scope.offer.Text, Cash: $scope.offer.Cash, SafeDeal: $scope.offer.SafeDeal },\r\n function(offer){\r\n $mdDialog.hide(); \r\n vm.deferred.resolve(offer);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n });\r\n } \r\n },\r\n controllerAs: 'vm', \r\n templateUrl: 'app/main/apps/client/views/dialogs/send.offer.html',\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n locals: {deferred: deferred, order: order, offer: offer }\r\n }); \r\n\r\n return deferred.promise; \r\n }\r\n \r\n this.doerAcceptDialog = function(order) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Подтверждение', \r\n mainMessage: 'Желаете выполнить заказ на указанных условиях?', \r\n descMessage: 'Внимание! После согласия Вы автоматически будете выбраны исполнителем', \r\n okButtonText: 'Согласиться', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $api.orders.doeraccept.get( {Id: order.Id },\r\n function(order){\r\n $mdDialog.hide(); \r\n deferred.resolve(order);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n });\r\n }\r\n }); \r\n return deferred.promise; \r\n }\r\n\r\n this.doerStartDialog = function(order) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n \tvar deferred = $q.defer(); \r\n\r\n \t$accountDialogs.question(\r\n \t{\r\n\t dialogTitle: 'Отгрузка', \r\n\t mainMessage: 'Подтверждаете, что закончили отгрузку?', \r\n\t descMessage: 'Внимание! После отгрузки Вы должны следовать в пункт назначения', \r\n\t okButtonText: 'Подтвердить', \r\n\t cancelButtonText: 'Отмена', \r\n\t buttonAction: function(){ \r\n\t $api.orders.start.get( {Id: order.Id },\r\n\t function(order){\r\n\t $mdDialog.hide(); \r\n\t deferred.resolve(order);\r\n\t },\r\n\t function (error){\r\n\t $scope.error = error.data.Message;\r\n\t });\r\n\t }\r\n\t }); \r\n\r\n \treturn deferred.promise; \r\n \t}\r\n\r\n this.doerFinishDialog = function(order) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Разгрузка', \r\n mainMessage: 'Подтверждаете, что закончили разгрузку?', \r\n descMessage: 'После этого грузоотправитель должен подтвердить, что получил груз и заказ будет закрыт', \r\n okButtonText: 'Подтвердить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $api.orders.finish.get( {Id: order.Id },\r\n function(order){\r\n $mdDialog.hide(); \r\n deferred.resolve(order);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n });\r\n }\r\n }); \r\n return deferred.promise; \r\n \t}\r\n\r\n this.sendReviewDialog = function(order) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: function($scope,$rootScope, $api, $mdDialog, $timeout) {\r\n var vm = this;\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.feedback = { Id: this.order.Id, Type: 'DoerFeedback', Rating: 5 };\r\n $scope.send = function(){ \r\n $api.orders.doerfeedback.save($scope.feedback, function(feedback){\r\n $rootScope.showToast('Отзыв успешно отправлен!'); \r\n $mdDialog.hide();\r\n vm.order.DoerFeedback = feedback;\r\n vm.order.DoerFeedbackId = feedback.Id;\r\n console.log(feedback); \r\n vm.deferred.resolve(feedback);\r\n }, function(error){\r\n $scope.error = error.data.Message;\r\n $rootScope.showToast($scope.error);\r\n });\r\n }\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/send.review.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n locals: { deferred: deferred, order: order }\r\n }) \r\n return deferred.promise; \r\n } \r\n\r\n \tthis.doerRejectDialog = function(order) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Отказ от заказа', \r\n mainMessage: 'Вы уверены, что хотите отказаться от заказа?', \r\n descMessage: 'При желании Вы сможете сделать предложение повторно', \r\n okButtonText: 'Отказаться', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $api.orders.doerreject.get( {Id: order.Id },\r\n function(order){\r\n $mdDialog.hide(); \r\n deferred.resolve(order);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n });\r\n }\r\n }); \r\n return deferred.promise; \r\n \t} \r\n\r\n this.sendMessageDialog = function(order) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: function($scope, $rootScope, $api, $mdDialog, $timeout, $clientDialogs){\r\n var vm = this;\r\n $scope.message = {Id: vm.order.Id };\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.send = function(){ \r\n $api.orders.message.save($scope.message, function(msg){\r\n $mdDialog.hide();\r\n $rootScope.showToast('Сообщение успешно отправлено!'); \r\n vm.deferred.resolve(msg);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n $rootScope.showToast($scope.error);\r\n });\r\n }\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/send.message.html',\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n locals: {order: order, deferred: deferred }\r\n }) \r\n return deferred.promise; \r\n } \r\n\r\n this.buyCashPacketDialog = function(count, price) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Купить пакет НАЛИЧНЫЕ', \r\n mainMessage: 'Вы уверены, что хотите приобрести пакет НАЛИЧНЫЕ за ' + price + '₽ ?', \r\n descMessage: 'Этот пакет НАЛИЧНЫЕ дает возможность ' + count + ' раз расчитаться с заказчиком наличными', \r\n okButtonText: 'Подтвердить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(scope){ \r\n var sendCode = function (){\r\n var deferred = $q.defer(); \r\n $api.users.cashpacketcode.get( {},\r\n function(){\r\n $rootScope.showToast('Код успешно отправлен!'); \r\n deferred.resolve();\r\n },\r\n function (error){\r\n console.log(error);\r\n $rootScope.showToast(error.data.Message);\r\n deferred.resolve();\r\n }); \r\n return deferred.promise;\r\n }\r\n var makePayment = function(code){\r\n var deferred = $q.defer(); \r\n $api.users.cashpacket.get({code: code, count: count, price: price},\r\n function(){\r\n $api.updateProfile();\r\n $mdDialog.hide(); \r\n $rootScope.showToast('Пакет НАЛИЧНЫЕ успешно приобретен!');\r\n deferred.resolve();\r\n },\r\n function (error){ \r\n deferred.reject(error); \r\n });\r\n return deferred.promise; \r\n }\r\n \r\n $accountDialogs.enterCodeDialog(sendCode,makePayment)\r\n .then( function (){\r\n $mdDialog.hide();\r\n $rootScope.showToast('Оплата произведена успешно!'); \r\n deferred.resolve(order);\r\n }); \r\n } \r\n }); \r\n return deferred.promise;\r\n } \r\n\r\n this.createRouteDialog = function(route) { \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: createRouteController,\r\n templateUrl: 'app/main/apps/client/views/dialogs/create.route.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: false,\r\n escapeToClose: false,\r\n bindToController: true,\r\n locals: {route: angular.copy(route), deferred: deferred } \r\n }) \r\n return deferred.promise; \r\n } \r\n\r\n this.deleteRouteDialog = function(route) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Исключить из плана', \r\n mainMessage: 'Вы уверены, что хотите исключить из плана ' \r\n + (route.DeliveryId ? ' МАРШРУТ ' : ' СТОЯНКУ в ') \r\n + route.StartPoint.City + (route.DeliveryId ? ' - ' + route.Delivery.City : '') + ' ?', \r\n descMessage: 'После исключения система не будет искать заказы, связанные с этим пунктом плана', \r\n okButtonText: 'Исключить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $api.routes.delete.remove( {Id: route.Id },\r\n function(order){\r\n $mdDialog.hide(); \r\n $rootScope.showToast('Указанный пункт плана исключен!'); \r\n deferred.resolve(route);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n });\r\n }\r\n }); \r\n return deferred.promise; \r\n } \r\n\r\n\r\n this.sendOutTransactionRequestConfirm = function(request) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var profile = UTILS.profile();\r\n\r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Отправить заявление на вывод средств', \r\n mainMessage: 'Вы уверены, что хотите вывести ' + request.dblValue + ' ₽ с сервиса БИЗОН ?', \r\n descMessage: 'Для подачи заявления на вывод средств необходимо ввести код подтверждения, который будет отправлен СМС сообщением на номер ' + profile.Phone,\r\n okButtonText: 'Подтвердить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(scope){ \r\n var sendCode = function (){\r\n var deferred = $q.defer(); \r\n $api.users.outtransactioncode.get( {},\r\n function(){\r\n $rootScope.showToast('Код успешно отправлен!'); \r\n deferred.resolve();\r\n },\r\n function (error){\r\n console.log(error);\r\n $rootScope.showToast(error.data.Message);\r\n deferred.resolve();\r\n }); \r\n return deferred.promise;\r\n }\r\n var makeRequest = function(code){\r\n var deferred = $q.defer(); \r\n $api.users.outtransaction.save({code: code}, request,\r\n function(){\r\n $mdDialog.hide(); \r\n\r\n $accountDialogs.message(\r\n {\r\n dialogTitle: 'Заявление на вывод средств', \r\n mainMessage: 'Ваше заявление успешно зарегистрировано', \r\n descMessage: 'Заявление будет обработано в течении 2-х рабочих дней.', \r\n buttonText: 'ОК', \r\n buttonAction: function(){ $mdDialog.hide(); deferred.resolve(); }\r\n }); \r\n },\r\n function (error){ \r\n deferred.reject(error); \r\n });\r\n return deferred.promise; \r\n }\r\n \r\n return $accountDialogs.enterCodeDialog(sendCode,makeRequest);\r\n } \r\n }); \r\n return deferred.promise;\r\n } \r\n\r\n this.sendOutTransactionRequestDialog = function() { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n\r\n var deferred = $q.defer(); \r\n\r\n $mdDialog.show({\r\n preserveScope: true, \r\n controller: function($scope,$rootScope,$mdDialog, $api, $timeout, UTILS){\r\n var vm = this;\r\n vm.profile = $rootScope.profile; \r\n $scope.request = vm.request || { dblValue: null, Class: 'Request', UserId: vm.profile.Id };\r\n console.log($scope.request);\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.send = function(){ \r\n _this.sendOutTransactionRequestConfirm($scope.request);\r\n }\r\n },\r\n controllerAs: 'vm', \r\n templateUrl: 'app/main/apps/client/views/dialogs/send.outtransaction.request.html',\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n locals: {deferred: deferred }\r\n }); \r\n\r\n return deferred.promise; \r\n } \r\n\r\n\treturn this;\t\r\n}\n/** @ngInject */\r\nfunction createRouteController($scope,$timeout,$mdDialog,UTILS,$api,$state,$q,$rootScope,msNavigationService,localStorageService,$accountDialogs) { \r\n var vm = this;\r\n\r\n \t$scope.route = vm.route || { Start: moment().startOf('day').add(1, 'days').toDate(), Finish: moment().startOf('day').add(2,'days').toDate(), Tags: []};\r\n \t$scope.contact = {};\r\n \t$scope.$mdDialog = $mdDialog;\r\n \t$scope.UTILS = UTILS;\r\n $scope.today = new Date();\r\n $scope.alreadyRegistered = UTILS.isAuthenticated();\r\n \r\n \tconsole.log('create route controller');\r\n\r\n $scope.prevStep = function(){ \r\n if ($scope.activeTab > 0) \r\n $scope.activeTab = $scope.activeTab-1; \r\n }\r\n \t$scope.nextStep = function(){ $scope.activeTab = $scope.activeTab+1; }\r\n\r\n $scope.needRegisterUser = !UTILS.isAuthenticated();\r\n\r\n\r\n var saveAddress = function (addr) {\r\n var deferred = $q.defer(); \r\n\t console.log(addr);\r\n\t $api.saveOrUpdate($api.addresses, addr).then( \r\n\t function(_addr){\r\n\t deferred.resolve(_addr);\r\n\t },\r\n\t function(error){\r\n\t console.log(error);\r\n\t $scope.errorMessage = error.data.Message; \r\n\t $rootScope.showToast($scope.errorMessage); \r\n\t });\r\n\t return deferred.promise;\r\n \t}\t\r\n\r\n $scope.save = function(){\r\n console.log('save route');\r\n $scope.route.UserId = UTILS.userId();\r\n $scope.route.TeamId = UTILS.teamId();\r\n $api.saveOrUpdate($api.routes, $scope.route).then(\r\n function (order){\r\n $mdDialog.hide(); \r\n //$rootScope.showBizon();\r\n $accountDialogs.message(\r\n {\r\n dialogTitle: 'Планирование', \r\n mainMessage: 'Успешно сохранено!', \r\n descMessage: 'Мы уже подбираем заказы в соответствии с Вашим планом!', \r\n buttonText: 'ОК', \r\n buttonAction: function(){ \r\n $mdDialog.hide(); \r\n vm.deferred.resolve(order);\r\n }\r\n }); \r\n },\r\n function (error){\r\n $rootScope.showToast( 'Ошибка при сохранении на сервере: ' + error.data.Message );\r\n });\r\n } \r\n\r\n $scope.isValidRoute = function (route){\r\n if (route.Start < new Date())\r\n {\r\n $scope.errorMessage = \"Неверная дата отправления!\";\r\n return false;\r\n }\r\n if (route.Finish < new Date())\r\n {\r\n $scope.errorMessage = \"Неверная дата прибытия!\";\r\n return false;\r\n }\r\n if (route.Start > route.Finish)\r\n {\r\n $scope.errorMessage = \"Дата отправления позже даты прибытия!\";\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\n/** @ngInject */\r\nfunction createOrderController($scope,$timeout,$mdDialog,UTILS,$api,$state,$q,$rootScope,msNavigationService,localStorageService,$accountDialogs) { \r\n var vm = this;\r\n\r\n \t$scope.order = vm.order || { Start: moment().startOf('day').add(1, 'days').toDate(), Finish: moment().startOf('day').add(2,'days').toDate(), Tags: []};\r\n \t$scope.contact = {};\r\n \t$scope.$mdDialog = $mdDialog;\r\n \t$scope.UTILS = UTILS;\r\n $scope.today = new Date();\r\n $scope.alreadyRegistered = UTILS.isAuthenticated();\r\n \r\n \tconsole.log('create order controller');\r\n\r\n $scope.prevStep = function(){ \r\n if ($scope.activeTab > 0) \r\n $scope.activeTab = $scope.activeTab-1; \r\n }\r\n \t$scope.nextStep = function(){ $scope.activeTab = $scope.activeTab+1; }\r\n $scope.requestContacts = function () { $scope.activeTab = 4; }\r\n\r\n $scope.needRegisterUser = !UTILS.isAuthenticated();\r\n\r\n\r\n var createUser = function () {\r\n var deferred = $q.defer(); \r\n\r\n\t console.log($scope.contact);\r\n\t $api.users.create.save({}, {Type: 'Client', Email: $scope.contact.Email, Password: $scope.contact.Password, Phone: $scope.contact.Phone }, \r\n\t function(user){\r\n\t console.log(user);\r\n\t localStorageService.set('registerUser', user);\r\n $scope.errorMessage = null;\r\n\t deferred.resolve(user);\r\n\t },\r\n\t function(error){\r\n\t console.log(error);\r\n\t $scope.errorMessage = error.data.Message; \r\n\t $rootScope.showToast($scope.errorMessage); \r\n\t });\r\n\t return deferred.promise;\r\n \t}\t\r\n\r\n var saveAddress = function (addr) {\r\n var deferred = $q.defer(); \r\n\t console.log(addr);\r\n\t $api.saveOrUpdate($api.addresses, addr).then( \r\n\t function(_addr){\r\n\t deferred.resolve(_addr);\r\n\t },\r\n\t function(error){\r\n\t console.log(error);\r\n\t $scope.errorMessage = error.data.Message; \r\n\t $rootScope.showToast($scope.errorMessage); \r\n\t });\r\n\t return deferred.promise;\r\n \t}\t\r\n\r\n var getToken = function(){\r\n var deferred = $q.defer(); \r\n\r\n $api.users.token.get({username: $scope.contact.Email,password: $scope.contact.Password}, \r\n function(authResult) {\r\n console.log(authResult);\r\n UTILS.setSession(authResult);\r\n $api.setup();\r\n $scope.errorMessage = null; \r\n deferred.resolve(authResult);\r\n },function(error){\r\n $rootScope.showToast('Ошибка при входе в систему!');\r\n deferred.reject(error);\r\n }); \r\n\r\n return deferred.promise;\r\n }\r\n\r\n \t$scope.saveContacts = function(contact){\r\n \tvar deferred = $q.defer(); \r\n\r\n \t$api.contacts.put.update(contact, function(c){\r\n $scope.errorMessage = null; \t\r\n \t\tdeferred.resolve(contact);\r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка сохранения контактных данных!');\r\n \t\t$scope.errorMessage = error.Message;\r\n \t\tdeferred.reject(error);\r\n \t});\r\n\r\n \treturn deferred.promise;\r\n \t}\r\n\r\n \t$scope.registerUser = function(){\r\n console.log('register user') \r\n $scope.errorMessage = null; \r\n if (!$scope.contact.AgreePersonalData)\r\n {\r\n $scope.errorMessage = 'Для продолжения необходимо согласиться с условиями предоставления и обработки персональных данных';\r\n return;\r\n }\r\n\r\n localStorageService.set('registerContact', $scope.contact);\r\n \t return createUser() // Создаем пользователя\r\n .then(function(user){\r\n console.log(user); \r\n $scope.user = user; \r\n $scope.user.Phone = $scope.contact.Phone; \r\n return getToken();\r\n }) \r\n \t .then(function(authResult){\r\n \t\t\t$scope.contact.Id = $scope.user.ContactId;\r\n \t$scope.contact.Address.Id = $scope.user.Contact.AddressId;\r\n \t$scope.contact.AddressId = $scope.user.Contact.AddressId; \r\n \t\t\treturn $scope.saveContacts($scope.contact); // Сохраняем контактные данные пользователя\r\n \t\t}, function(error){\r\n \t\t$scope.errorMessage = 'Ошибка при регистрации пользователя: ' + error.data.Message;\t\t\t\r\n \t\t})\r\n \t\t.then(function(contact){\r\n \t\t\t$scope.contact = contact;\r\n \t\t\t$scope.verifyForm = true; \r\n $scope.activeTab = 4;\r\n \t\t\t}, \r\n \t\t\tfunction(error){\t\t\t\r\n \t\t}); \t\t\r\n \t}\r\n\r\n $scope.sendCode = function(){\r\n $api.users.confirm.get({userId: $scope.user.Id, code: $scope.user.Code }, function(){\r\n $rootScope.showToast('Номер телефона успешно подтвержден!');\r\n $scope.verifiedPhone = true;\r\n\r\n return $api.users.finishreg.get({},function(profile){ \r\n return $api.updateProfile().then(function(){\r\n clientNavigation(msNavigationService,UTILS); \r\n $scope.finishOrder();\r\n });\r\n });\r\n },\r\n function(error){\r\n $scope.errorMessage = 'Ошибка при подтверждении номера телефона : ' + error.data.Message;\r\n })\r\n }\r\n\r\n $scope.finishOrder = function(){\r\n \t\tconsole.log($scope.order);\r\n\t \t$api.saveOrUpdate($api.orders, $scope.order).then(\r\n function (order){\r\n\t\t $mdDialog.hide(); \r\n //$rootScope.showBizon();\r\n\t\t $accountDialogs.message(\r\n\t\t {\r\n\t\t dialogTitle: 'Заказ на перевозку', \r\n\t\t mainMessage: 'Регистрация заказа завершена', \r\n\t\t descMessage: UTILS.profile().EmailVerified ? \r\n (order.CategoryRateId ? \r\n 'Для того чтобы запустить заказ в работу Вам необходимо выбрать способ оплаты на странице заказа.' : \r\n 'Перевозчики уже видят Ваш заказ и в ближайшее время смогут предложить Вам свои услуги.') : \r\n 'Ваш заказ появится в системе сразу после подтверждения Email-адреса. Для этого откройте почтовый ящик, указанный при регистрации и перейдите по ссылке в этом письме',\r\n\t\t buttonText: 'ОК', \r\n\t\t buttonAction: function(){ \r\n\t\t $mdDialog.hide(); \r\n $state.go( 'app.client.orders.item', { orderId: order.Id, backState: 'app.client.myorders.active'} );\r\n vm.deferred.resolve(order);\r\n\t\t }\r\n\t\t }); \r\n \t \t},\r\n \t \tfunction (error){\r\n \t \t\t$rootScope.showToast( 'Ошибка при сохранении заказа на сервере: ' + error.data.Message );\r\n \t \t});\r\n } \r\n\r\n $scope.orderCreated = function(){\r\n if (!$scope.isValidOrder($scope.order)) return;\r\n \tif (!$scope.needRegisterUser)\r\n \t{\r\n \t\t$scope.finishOrder();\r\n \t}\r\n \telse\r\n \t{\r\n $scope.activeTab = $scope.activeTab + 1;\r\n \t}\r\n }\r\n\r\n $scope.isValidOrder = function (order){\r\n if (order.Start < new Date())\r\n {\r\n $scope.errorMessage = \"Неверная дата загрузки!\";\r\n return false;\r\n }\r\n if (order.Finish < new Date())\r\n {\r\n $scope.errorMessage = \"Неверная дата отгрузки!\";\r\n return false;\r\n }\r\n if (order.Start > order.Finish)\r\n {\r\n $scope.errorMessage = \"Дата загрузки позже даты отгрузки!\";\r\n return false;\r\n }\r\n if (!$scope.order.Path) \r\n {\r\n $scope.errorMessage = \"Не указан маршрут!\";\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\n/** @ngInject */\r\nfunction ClientDialogs($mdDialog, $rootScope, $api, $q, $mdSidenav, $accountDialogs, UTILS, APP_SETTINGS, $state,msNavigationService) {\r\n\r\n console.log('client dialogs create');\r\n var _this = this;\r\n \r\n this.simpleDialog = function() { \r\n $mdDialog.show({\r\n controller: function($scope, $mdDialog, $timeout){\r\n $scope.$mdDialog = $mdDialog;\r\n\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/simple-dialog.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true\r\n }) \r\n }\r\n\r\n this.createOrderDialog = function(order) { \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: function ($scope,$mdDialog){ $scope.$mdDialog = $mdDialog; },\r\n templateUrl: 'app/main/apps/client/views/dialogs/create.order.simple.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: false,\r\n escapeToClose: false,\r\n bindToController: true\r\n }) \r\n\r\n /*$mdDialog.show({\r\n controller: createOrderController,\r\n templateUrl: 'app/main/apps/client/views/dialogs/create.order.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: false,\r\n escapeToClose: false,\r\n bindToController: true,\r\n locals: {order: angular.copy(order), deferred: deferred } \r\n }) */\r\n return deferred.promise; \r\n }\r\n\r\n this.sendOrderDialog = function(teamId) { \r\n if (!UTILS.isAuthenticated() || UTILS.isDoer()) return $accountDialogs.loginDialog(); \r\n $mdDialog.show({\r\n controller: function($scope,$mdDialog,$accountDialogs,$api, UTILS) {\r\n $scope.$mdDialog = $mdDialog;\r\n $api.orders.list.get({ClientId: UTILS.userId(), \r\n $expand: 'StartPoint,Delivery', \r\n States: 'OrderCreated', \r\n $orderby: 'Created desc' }, \r\n function(orders){\r\n $scope.myorders = orders.value;\r\n console.log(orders);\r\n });\r\n $scope.setSelected = function(i) { $scope.selected = i; }\r\n $scope.setHover = function(i){ $scope.hover = i; }\r\n $scope.submit = function(){ \r\n $api.orders.clientoffer.save({ Id: $scope.selected.Id, TeamId: teamId }, function(){\r\n $mdDialog.hide(); \r\n $accountDialogs.message(\r\n {\r\n dialogTitle: 'Предложение заказа', \r\n mainMessage: 'Заказ предложен', \r\n descMessage: 'Если перевозчика заинтересует Ваш заказ - он сделает предложение и Вы получите уведомление об этом!', \r\n buttonText: 'Продолжить', \r\n buttonAction: function(){ $mdDialog.hide(); }\r\n }); \r\n }, function (error){\r\n $scope.error = error.data.Message;\r\n $rootScope.showToast($scope.error);\r\n })\r\n }\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/send.order.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: true\r\n }) \r\n }\r\n\r\n this.safeDealDialog = function() { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n $mdDialog.show({\r\n controller: function($scope, $mdDialog, $timeout, $clientDialogs){\r\n $scope.$mdDialog = $mdDialog; \r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/safe.deal.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true\r\n }) \r\n }\r\n\r\n\r\n\r\n this.clientAcceptDialog = function(order, offer) {\r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: function($scope,$rootScope,$mdDialog,$clientDialogs,$api, UTILS, APP_SETTINGS) {\r\n var vm = this;\r\n console.log(vm);\r\n $scope.$mdDialog = $mdDialog;\r\n $scope.APP_SETTINGS = APP_SETTINGS;\r\n $scope.UTILS = UTILS;\r\n $scope.order = vm.order;\r\n $scope.offer = vm.offer;\r\n $scope.accept = function (cash){\r\n $api.orders.clientaccept.get({Id: vm.order.Id, DoerId: vm.offer.UserId, cash:cash }, function (order){\r\n $mdDialog.hide();\r\n $rootScope.showBizon(); \r\n $rootScope.showToast('Перевозчик успешно выбран!'); \r\n vm.deffered.resolve(order);\r\n },\r\n function (error){\r\n $scope.errorMessage = error.data.Message;\r\n })\r\n }\r\n $scope.addMoney = function (){\r\n $mdDialog.hide();\r\n $accountDialogs.addMoneyDialog($scope.offer.dblValue);\r\n }\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/client.accept.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: true,\r\n bindToController: true,\r\n locals: { offer: offer, order: order, deffered: deferred }\r\n }) \r\n return deferred.promise;\r\n } \r\n\r\n this.sendReviewDialog = function(order) {\r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: function($scope,$rootScope, $api, $mdDialog, $timeout) {\r\n var vm = this;\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.feedback = { Id: this.order.Id, Type: 'ClientFeedback', Rating: 5 };\r\n $scope.send = function(){ \r\n $api.orders.clientfeedback.save($scope.feedback, function(feedback){\r\n $rootScope.showToast('Отзыв успешно отправлен!'); \r\n $mdDialog.hide();\r\n vm.order.ClientFeedbackId = feedback.Id;\r\n vm.order.ClientFeedback = feedback;\r\n console.log(feedback);\r\n vm.deferred.resolve(feedback);\r\n }, function(error){\r\n $scope.error = error.data.Message;\r\n $rootScope.showToast($scope.error);\r\n });\r\n }\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/send.review.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n locals: { deferred: deferred, order: order }\r\n }) \r\n return deferred.promise; \r\n } \r\n\r\n \r\n this.deliveryAckDialog = function(order) {\r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Подтвердить доставку', \r\n mainMessage: 'Желаете подтвердить доставку груза в пункт назначения?', \r\n descMessage: 'Этим Вы подтвердите, что перевозчик выполнил свою работу', \r\n okButtonText: 'Подтвердить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $api.orders.deliveryack.get( {Id: order.Id },\r\n function(order){\r\n $mdDialog.hide(); \r\n deferred.resolve(order);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n });\r\n }\r\n }); \r\n return deferred.promise; \r\n } \r\n\r\n this.clientAcceptStdOfferDialog = function(order) {\r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Подтвердить выполнение заказа', \r\n mainMessage: 'Желаете подтвердить заказ и известить исполнителя?', \r\n descMessage: 'После подтверждения исполнителю придет оповещение и он начнет выполнение заказа в назначенное время', \r\n okButtonText: 'Подтвердить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $api.orders.clientacceptstdoffer.get( {Id: order.Id },\r\n function(order){\r\n $mdDialog.hide(); \r\n deferred.resolve(order);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n });\r\n }\r\n }); \r\n return deferred.promise; \r\n } \r\n\r\n this.noMoneyDialog = function(order) {\r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Предупреждение', \r\n mainMessage: 'На Вашем счете недостаточно средств. Желаете оплатить заказ банковской картой?', \r\n descMessage: 'Для оплаты заказа необходимо наличие на карте ' + Math.floor(order.Price) + ' ₽', \r\n okButtonText: 'Оплатить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $mdDialog.hide(); \r\n _this.payOrderByCreditDialog(order);\r\n }\r\n }); \r\n return deferred.promise; \r\n }\r\n\r\n\r\n this.payOrderByCreditDialog = function(order) { \r\n console.log('pay order by credit card ' + order.Price)\r\n if (!UTILS.isAuthenticated()) return this.loginDialog(); \r\n $mdDialog.show({\r\n controller: function($scope,$api,$state,$mdDialog, $timeout, $clientDialogs,APP_SETTINGS){\r\n $scope.$mdDialog = $mdDialog;\r\n $scope.orderNo = order.Id;\r\n $scope.profile = APP_SETTINGS.Profile;\r\n $scope.orderNumber = \"#\" + order.Id + \"_\" + Date.now();\r\n $scope.orderComment = \"Оплата заказа №\" + order.Id\r\n $scope.Amount = order.Price;\r\n $scope.ReturnUrl = location.href;\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/pay.order.credit.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true\r\n }) \r\n } \r\n\r\n this.paymentDialog = function(order) {\r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $accountDialogs.question(\r\n {\r\n dialogTitle: 'Оплата заказа', \r\n mainMessage: 'Оплатить заказ и информировать перевозчика о выполнении заказа?', \r\n descMessage: 'Для оплаты Вам необходимо будет ввести код поддтверждения, который будет выслан на номер ' + APP_SETTINGS.Profile.Phone + '. С Вашего счета будет зарезервирована сумма в размере ' + Math.floor(order.Price) + ' ₽', \r\n okButtonText: 'Оплатить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $mdDialog.hide(); \r\n var sendPaymentCode = function (){\r\n var deferred = $q.defer(); \r\n $api.orders.paymentcode.get( {},\r\n function(){\r\n $rootScope.showToast('Код успешно отправлен!'); \r\n deferred.resolve();\r\n },\r\n function (error){\r\n console.log(error);\r\n $rootScope.showToast(error.data.Message);\r\n deferred.resolve();\r\n }); \r\n return deferred.promise;\r\n }\r\n var makePayment = function(code){\r\n var deferred = $q.defer(); \r\n $api.orders.payment.get( {Id: order.Id, code: code },\r\n function(order){\r\n $mdDialog.hide(); \r\n $rootScope.showToast('Оплата произведена успешно!'); \r\n deferred.resolve(order);\r\n },\r\n function (error){\r\n console.log(error);\r\n $rootScope.showToast(error.data.Message);\r\n deferred.reject(error);\r\n });\r\n return deferred.promise; \r\n }\r\n \r\n $accountDialogs.enterCodeDialog(sendPaymentCode,makePayment)\r\n .then( function (order){\r\n $mdDialog.hide();\r\n $rootScope.showToast('Оплата произведена успешно!'); \r\n deferred.resolve(order);\r\n }); \r\n }\r\n }); \r\n\r\n return deferred.promise; \r\n }\r\n\r\n this.deliveryRejectDialog = function(order) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: function($scope, $rootScope, $mdDialog, $timeout, $api){\r\n var vm = this;\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.send = function(){ \r\n $api.orders.deliveryreject.get({Id: vm.order.Id, comments: $scope.comments },function(order){\r\n $mdDialog.hide(); \r\n $rootScope.showToast('Заявление на оспаривание заказа зарегистрировано!'); \r\n vm.deferred.resolve(order); \r\n })\r\n } \r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/delivery.reject.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n locals: { order: order, deferred: deferred }\r\n }) \r\n return deferred.promise; \r\n }\r\n\r\n this.cancelOrderDialog = function(order) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n\r\n var params = {\r\n dialogTitle: 'Отмена заказа', \r\n mainMessage: 'Вы уверены, что хотите отменить заказ?', \r\n descMessage: 'При желании Вы всегда сможете создать новый заказ', \r\n okButtonText: 'Отменить заказ', \r\n cancelButtonText: 'Закрыть это окно' \r\n };\r\n\r\n params.buttonAction = function(){ \r\n $api.orders.clientcancel.get( {Id: order.Id },\r\n function(order){\r\n $mdDialog.hide(); \r\n deferred.resolve(order);\r\n },\r\n function (error){\r\n console.log(error);\r\n params.error = error.data.Message;\r\n console.log(params);\r\n });\r\n }\r\n\r\n $accountDialogs.question(params); \r\n\r\n return deferred.promise; \r\n } \r\n\r\n this.sendMessageToTeamDialog = function(team) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: function($scope, $rootScope, $api, $mdDialog, $timeout, $clientDialogs){\r\n var vm = this;\r\n $scope.message = {Id: vm.team.Id };\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.send = function(){ \r\n $api.teams.message.save($scope.message,function(msg){\r\n $mdDialog.hide();\r\n $rootScope.showToast('Сообщение успешно отправлено!');\r\n vm.deferred.resolve(msg);\r\n },\r\n function (error){\r\n $scope.error = error.data.Message;\r\n $rootScope.showToast($scope.error);\r\n })\r\n }\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/send.message.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n locals: {team: team, deferred : deferred }\r\n }) \r\n return deferred.promise; \r\n } \r\n\r\n return this; \r\n}\r\n\n/** @ngInject */\r\nfunction CarriersMapController($scope,$timeout,$clientDialogs, $api, UTILS, $mdDialog) { \r\n $scope.$mdDialog = $mdDialog;\r\n $scope.UTILS = UTILS;\r\n console.log(this.filter);\r\n $scope.filter = this.filter || {$top: 100, $expand: 'Contact($expand=Address)' };\r\n $scope.carriers = [];\r\n\r\n var vm = this;\r\n var hplatform = window.hplatform; \r\n \r\n console.log('map controller');\r\n\r\n var myMap = null;\r\n function init() {\r\n console.log('init map');\r\n\r\n // Obtain the default map types from the platform object:\r\n var defaultLayers = hplatform.createDefaultLayers({lg: 'ru'});\r\n\r\n // Instantiate (and display) a map object:\r\n var mapDiv = document.getElementById('map');\r\n vm.myMap = new H.Map(\r\n mapDiv,\r\n defaultLayers.vector.normal.map,\r\n {\r\n zoom: 14,\r\n center: { lat: 55.745508, lng: 55.745508 }\r\n }); \r\n vm.myMap.getViewPort().padding = { left:30, right: 30, top: 30, bottom: 30 }; \r\n\r\n // Add map events functionality to the map\r\n var mapEvents = new H.mapevents.MapEvents(vm.myMap);\r\n\r\n // Add behavior to the map: panning, zooming, dragging.\r\n var behavior = new H.mapevents.Behavior(mapEvents); \r\n\r\n vm.myMap.addEventListener('pointermove', function (event) {\r\n if (event.target instanceof H.map.Marker) {\r\n vm.myMap.getViewPort().element.style.cursor = 'pointer';\r\n } else {\r\n vm.myMap.getViewPort().element.style.cursor = 'auto';\r\n }\r\n }, false);\r\n\r\n $scope.loadCarriers($scope.filter);\r\n }\r\n\r\n function createMarkers(filter){\r\n vm.myMap.removeObjects( vm.myMap.getObjects() );\r\n\r\n var group = new H.map.Group();\r\n angular.forEach( $scope.carriers, function(team){\r\n if (!team.Contact || !team.Contact.Address) return;\r\n\r\n var icon = new H.map.Icon('../assets/images/bizon/placemark.png');\r\n var teamMarker = new H.map.Marker({ lat: team.Contact.Address.Lat, lng: team.Contact.Address.Lng }, { icon: icon });\r\n teamMarker.setData(team);\r\n teamMarker.addEventListener('tap', function (e){\r\n var ps = e.target; \r\n var team = ps.data;\r\n console.log(team);\r\n $scope.team = team;\r\n\r\n vm.myMap.setZoom(12);\r\n vm.myMap.setCenter({ lat: team.Contact.Address.Lat, lng: team.Contact.Address.Lng }); \r\n\r\n if ($scope.selectedPS)\r\n $scope.selectedPS.setIcon( new H.map.Icon('../assets/images/bizon/placemark.png') );\r\n\r\n $scope.selectedPS = ps;\r\n $scope.selectedPS.setIcon( new H.map.Icon('../assets/images/bizon/placemark-selected.png') ); \r\n $scope.params = 0; \r\n\r\n $scope.$apply();\r\n });\r\n group.addObject(teamMarker); \r\n\r\n });\r\n\r\n // add markers to the group\r\n vm.myMap.addObject(group); \r\n\r\n if ($scope.carriers.length > 1)\r\n {\r\n vm.myMap.getViewModel().setLookAtData({\r\n bounds: group.getBoundingBox()\r\n }); \r\n }\r\n else if ($scope.carriers.length == 1)\r\n {\r\n var team = $scope.carriers[0];\r\n vm.myMap.setZoom(12);\r\n vm.myMap.setCenter({ lat: team.Contact.Address.Lat, lng: team.Contact.Address.Lng }); \r\n }\r\n else if ($scope.carriers.length == 0)\r\n myMap.setCenter([60,100], 3); \r\n }\r\n\r\n $scope.loadCarriers = function(filter){\r\n console.log('load carriers')\r\n console.log(filter);\r\n\r\n $api.teams.list.get({CategoryId: filter.CategoryId, $expand: 'Contact($expand=Address)'}, function (ODATA) {\r\n $scope.carriers = ODATA.value;\r\n console.log($scope.carriers);\r\n createMarkers(filter);\r\n });\r\n }\r\n\r\n $scope.sendMessage = function(){\r\n $mdDialog.hide();\r\n $clientDialogs.sendMessageToTeamDialog($scope.team); \r\n }\r\n\r\n $scope.sendOrder = function(){\r\n $mdDialog.hide();\r\n $clientDialogs.sendOrderDialog($scope.team.Id);\r\n }\r\n\r\n $timeout( init, 100 ); \r\n\r\n}\r\n\n/** @ngInject */\r\nfunction AccountDialogs($mdDialog, $rootScope, $api, $q, $mdSidenav, UTILS, APP_SETTINGS, $state,msNavigationService,localStorageService,$timeout, PannelData,ProjectHub) {\r\n\r\n\r\n this.message = function(params) { \r\n $mdDialog.show({\r\n controller: function($scope, $mdDialog, $timeout, $clientDialogs, params){\r\n $scope.vm = params;\r\n $scope.$mdDialog = $mdDialog; \r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/message.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: true,\r\n locals: { params: params } \r\n }) \r\n }\r\n\r\n this.question = function(params) { \r\n $mdDialog.show({\r\n controller: function($scope, $mdDialog, $timeout,$api,$state){\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.cancelAction = function (){\r\n $mdDialog.hide();\r\n if ($scope.vm.cancelAction != null)\r\n $scope.vm.cancelAction(vm)\r\n }\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/question.html',\r\n clickOutsideToClose: true,\r\n bindToController: true,\r\n controllerAs: 'vm',\r\n locals: { params: params } \r\n }) \r\n }\r\n\r\n this.showNotifications = function() {\r\n $mdSidenav('quick-panel').toggle();\r\n $timeout(PannelData.qvtChatMessages, 1000 );\r\n $timeout(PannelData.qvtOrderMessages, 1000 ); \r\n }\r\n\r\n this.loginDialog = function() { \r\n $mdDialog.show({\r\n controller: 'AuthZeroLoginController as vm',\r\n templateUrl: 'app/main/apps/client/views/dialogs/login.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n controllerAs: 'vm'\r\n }) \r\n }\r\n\r\n this.registerDialog = function(type) { \r\n var deferred = $q.defer(); \r\n $mdDialog.show({\r\n controller: 'AuthZeroLoginController as vm',\r\n templateUrl: 'app/main/apps/client/views/dialogs/register.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true,\r\n locals: { deferred: deferred, type: type }\r\n }) \r\n return deferred.promise; \r\n }\r\n\r\n this.logoutDialog = function() { \r\n console.log('logout dialog');\r\n $mdDialog.hide(); \r\n this.question(\r\n {\r\n dialogTitle: 'Выход из системы', \r\n mainMessage: 'Вы уверены, что хотите выйти из системы?', \r\n descMessage: 'При желании Вы сможете вернуться в систему под этой или другой учетной записью', \r\n okButtonText: 'Выйти', \r\n cancelButtonText: 'Остаться', \r\n buttonAction: function(){ \r\n $mdDialog.hide(); \r\n ProjectHub.unjoinUser();\r\n UTILS.logout(); \r\n PannelData.Clear();\r\n\r\n clientNavigation(msNavigationService, UTILS, APP_SETTINGS );\r\n\r\n $rootScope.showToast('Выполнен выход из системы БИЗОН' );\r\n\r\n $state.go('app.client.main');\r\n }\r\n }); \r\n }\r\n\r\n this.verifyEmailDialog = function() { \r\n console.log('verifyEmailDialog dialog');\r\n $mdDialog.hide(); \r\n this.question(\r\n {\r\n dialogTitle: 'Подтверждение Email', \r\n mainMessage: 'Желаете, чтобы мы повторно выслали ссылку для подтверждения Email адреса?', \r\n descMessage: 'Если Вам не удается найти наше письмо, не забудьте заглянуть в папку СПАМ', \r\n okButtonText: 'Выслать', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n $api.users.confirmemail.get({}, function(){\r\n $mdDialog.hide();\r\n $rootScope.showToast('Ссылка отправлена!'); \r\n })\r\n }\r\n }); \r\n }\r\n\r\n\r\n this.register = function() { \r\n UTILS.logout();\r\n $mdDialog.show({\r\n controller: function($scope, $mdDialog, $timeout, $accountDialogs){\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.carrier = function(){ $mdDialog.hide(); $accountDialogs.registerCarrierDialog(); }\r\n $scope.client = function(){ $mdDialog.hide(); $accountDialogs.registerClientDialog(); } \r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/register.select.role.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true\r\n }) \r\n }\r\n\r\n this.continueRegistration = function(){ \r\n console.log(APP_SETTINGS.Profile); \r\n if (!APP_SETTINGS.Profile) return;\r\n var s = this;\r\n $api.updateProfile().then(function(){\r\n if (APP_SETTINGS.Profile.Type == 'Client') \r\n s.registerClientDialog(true);\r\n else if (APP_SETTINGS.Profile.Type == 'Doer')\r\n {\r\n if (APP_SETTINGS.Profile.Team.Type == 'Private')\r\n s.registerPrivateCarrierDialog(true);\r\n else\r\n s.registerCompanyCarrierDialog(true);\r\n } \r\n });\r\n }\r\n\r\n this.registerClientDialog = function(continueRegistration) { \r\n if (!continueRegistration) UTILS.logout();\r\n\r\n localStorageService.remove('registerContact'); \r\n $mdDialog.show({\r\n controller: registerClientController,\r\n templateUrl: 'app/main/apps/client/views/dialogs/register.client.html',\r\n preserveScope: true, \r\n clickOutsideToClose:true\r\n }) \r\n }\r\n\r\n this.registerCarrierDialog = function(continueRegistration) { \r\n if (!continueRegistration) UTILS.logout();\r\n $mdDialog.show({\r\n controller: function($scope, $mdDialog, $timeout, $accountDialogs){\r\n $scope.$mdDialog = $mdDialog; \r\n $scope.private = function(){ $mdDialog.hide(); $accountDialogs.registerPrivateCarrierDialog(continueRegistration); }\r\n $scope.company = function(){ $mdDialog.hide(); $accountDialogs.registerCompanyCarrierDialog(continueRegistration); } \r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/register.select.carrier.type.html',\r\n parent: angular.element(document.body),\r\n bindToController: true, \r\n clickOutsideToClose: true\r\n }) \r\n }\r\n\r\n this.editCarrierDialog = function () {\r\n if (!UTILS.isAuthenticated()) return this.loginDialog(); \r\n if (APP_SETTINGS.Profile.Team.Type == 'Private')\r\n return this.editPrivateCarrierDialog();\r\n else\r\n return this.editCompanyCarrierDialog();\r\n }\r\n\r\n this.editPrivateCarrierDialog = function() { \r\n if (!UTILS.isAuthenticated()) return this.loginDialog(); \r\n $mdDialog.show({\r\n controller: registerCarrierController,\r\n templateUrl: 'app/main/apps/client/views/dialogs/edit.private.carrier.html',\r\n clickOutsideToClose: true,\r\n bindToController: true,\r\n locals: { Type: APP_SETTINGS.Profile.Team.Type, register: false } \r\n }) \r\n } \r\n\r\n\r\n this.editCompanyCarrierDialog = function() { \r\n if (!UTILS.isAuthenticated()) return this.loginDialog(); \r\n $mdDialog.show({\r\n controller: registerCarrierController,\r\n templateUrl: 'app/main/apps/client/views/dialogs/edit.company.carrier.html',\r\n clickOutsideToClose: true,\r\n bindToController: true,\r\n locals: { Type: APP_SETTINGS.Profile.Team.Type, register: false } \r\n }) \r\n } \r\n\r\n this.registerPrivateCarrierDialog = function(continueRegistration) { \r\n if (!continueRegistration) UTILS.logout(); \r\n localStorageService.remove('registerContact');\r\n $mdDialog.show({\r\n controller: registerCarrierController,\r\n templateUrl: 'app/main/apps/client/views/dialogs/register.carrier-private.html',\r\n clickOutsideToClose: true,\r\n bindToController: true,\r\n locals: { Type: 'Private', register: true }\r\n }) \r\n }\r\n\r\n this.registerCompanyCarrierDialog = function(continueRegistration) { \r\n if (!continueRegistration) UTILS.logout(); \r\n localStorageService.remove('registerContact'); \r\n $mdDialog.show({\r\n controller: registerCarrierController,\r\n templateUrl: 'app/main/apps/client/views/dialogs/register.carrier-company.html',\r\n clickOutsideToClose: true,\r\n bindToController: true,\r\n locals: { Type: 'Simple', register: true } \r\n }) \r\n }\r\n\r\n this.enterCodeDialog = function(sendCode,applyCode) { \r\n if (!UTILS.isAuthenticated()) return $accountDialogs.loginDialog(); \r\n var deferred = $q.defer(); \r\n\r\n $mdDialog.show({\r\n controller: function($scope, $rootScope, $api, $mdDialog, $interval, $clientDialogs, APP_SETTINGS){\r\n var vm = this;\r\n $scope.$mdDialog = $mdDialog;\r\n $scope.APP_SETTINGS = APP_SETTINGS;\r\n $scope.getcodewait = function (){\r\n $api.users.codewait.get({}, function (code){\r\n console.log(code);\r\n $scope.codewait = code.wait;\r\n if ($scope.codewait > 0)\r\n {\r\n $scope.codestop = $interval( function () { \r\n $scope.codewait--; \r\n if ($scope.codewait <= 0) \r\n $interval.cancel($scope.codestop);\r\n }, 1000 );\r\n }\r\n }); \r\n }\r\n\r\n $scope.send = function(){\r\n console.log('send button')\r\n vm.applyCode($scope.code).then(function(result){\r\n return vm.deferred.resolve(result);\r\n },\r\n function(error){\r\n console.log(error);\r\n $scope.errorMessage = error.data.Message;\r\n });\r\n }\r\n\r\n $scope.newCode = function(){\r\n vm.sendCode().then(function(){\r\n $scope.getcodewait();\r\n });\r\n }\r\n\r\n $scope.newCode();\r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/enter.code.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true,\r\n bindToController: true,\r\n locals: { sendCode: sendCode, applyCode: applyCode, deferred: deferred }\r\n }) \r\n\r\n return deferred.promise;\r\n } \r\n\r\n this.addMoneyDialog = function(sum) { \r\n console.log('add money ' + sum)\r\n if (!UTILS.isAuthenticated()) return this.loginDialog(); \r\n $mdDialog.show({\r\n controller: function($scope,$api,$state,$mdDialog, $timeout, $clientDialogs,APP_SETTINGS){\r\n $scope.$mdDialog = $mdDialog;\r\n $scope.profile = APP_SETTINGS.Profile;\r\n $scope.orderNumber = Date.now();\r\n $scope.Amount = sum;\r\n $scope.byCreditCard = function(){\r\n $api.users.patch.update({Id: UTILS.userId(), Balance: APP_SETTINGS.Profile.Balance + $scope.Amount}, function(){\r\n $mdDialog.hide();\r\n $api.updateProfile(); \r\n $rootScope.showToast('Оплата произведена!'); \r\n })\r\n } \r\n $scope.byBill = function(){\r\n if (UTILS.isDoer())\r\n window.open('https://api.bisone.ru:2100/home/teambillpdf?userId=' + UTILS.userId() + '&sum=' + $scope.Amount);\r\n else\r\n window.open('https://api.bisone.ru:2100/home/clientbillpdf?userId=' + UTILS.userId() + '&sum=' + $scope.Amount); \r\n /*$api.users.patch.update({Id: UTILS.userId(), Balance: APP_SETTINGS.Profile.Balance + $scope.Amount}, function(){ \r\n $mdDialog.hide();\r\n $api.updateProfile();\r\n $rootScope.showToast('Счет успешно создан!'); \r\n })*/\r\n\r\n } \r\n },\r\n templateUrl: 'app/main/apps/client/views/dialogs/add.money.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose:true\r\n }) \r\n }\r\n\r\n return this;\r\n}\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.quick-panel', ['app.common'])\n .service('PannelData', function($api,$rootScope,localStorageService,$filter,$timeout,APP_SETTINGS,UTILS){\n var s = this; \n\n s.Clear = function(){\n s.ChatMessages = [];\n s.OrderMessages = []; \n }\n\n s.NewEvent = function (ev){\n s.AddMessage(ev);\n $timeout( s.UpdateCounters, 500 ); \n }\n\n s.AddMessage = function(ev){\n console.log(ev);\n if (ev.Class == 'User' && ev.Type == 'Updated') return;\n\n if ((ev.Class == 'Chat') && !ev.OrderId){\n var found = $filter('filter')(s.ChatMessages, function (x){ return x.Id == ev.Id; }) \n if (found.length > 0) return;\n s.ChatMessages.push(ev);\n }\n else { \n var found = $filter('filter')(s.OrderMessages, function (x){ return x.Id == ev.Id; }) \n if (found.length > 0) return; \n if (ev.OrderId) \n {\n $api.orders.get.get({Id: ev.OrderId}, function(order) {\n ev.Order = order;\n s.OrderMessages.push(ev); \n }); \n }\n else\n s.OrderMessages.push(ev); \n } \n }\n\n s.Update = function (){\n if (!UTILS.isAuthenticated()) return;\n $api.events.list.get({Unread: true, $expand: 'Room,Team($expand=Contact($expand=Address)),User($expand=Contact)', \n RecipientId: UTILS.userId(),\n $orderby: 'DT desc'}, \n function(events){\n\n console.log(events);\n\n angular.forEach(events.value, function (ev){\n s.AddMessage(ev);\n })\n\n s.UpdateCounters();\n });\n }\n\n s.Load = function (){\n s.Clear();\n\n if (!UTILS.isAuthenticated()) return;\n $api.events.list.get({$top: 100, \n RecipientId: UTILS.userId(),\n $expand: 'Room,Team($expand=Contact($expand=Address)),User($expand=Contact)', $orderby: 'DT desc'}, \n function(events){\n\n console.log(events);\n\n s.ChatMessages = $filter('filter')(events.value, function (x) { return x.Class === 'Chat' && !x.OrderId; })\n s.OrderMessages = $filter('filter')(events.value, function (x) { return x.OrderId; })\n\n s.UpdateCounters();\n\n $timeout( function() { $api.events.readall.get(); }, 1000 ); \n });\n }\n\n s.UpdateCounters = function ()\n {\n if (UTILS.isAuthenticated()) \n {\n $rootScope.profile.ChatNotifications = $filter('filter')(s.ChatMessages, function (x){ return x.NewMessage == true; }).length; \n $rootScope.profile.OrderNotifications = $filter('filter')(s.OrderMessages, function (x){ return x.NewMessage == true; }).length;\n $rootScope.profile.Notifications = $rootScope.profile.ChatNotifications + $rootScope.profile.OrderNotifications; \n }\n }\n\n s.qvtChatMessages = function (){\n console.log('qvtChat')\n angular.forEach( s.ChatMessages, function (x) { \n if (x.NewMessage){\n x.NewMessage = false; \n $api.events.read.get({ Id: x.Id });\n } \n });\n\n s.UpdateCounters();\n }\n\n s.qvtOrderMessages = function (){\n console.log('qvtOrders') \n angular.forEach( s.OrderMessages, function (x){\n if (x.NewMessage){\n x.NewMessage = false; \n $api.events.read.get({ Id: x.Id });\n } \n });\n s.UpdateCounters(); \n }\n\n return s;\n })\n .config(config);\n\n /** @ngInject */\n function config($translatePartialLoaderProvider, msApiProvider)\n {\n // Translation\n $translatePartialLoaderProvider.addPart('app/quick-panel');\n }\n})();\n\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.quick-panel')\n .controller('ChatTabController', ChatTabController);\n\n /** @ngInject */\n function ChatTabController(msApi, $timeout)\n {\n var vm = this;\n\n // Data\n vm.chat = {};\n vm.chatActive = false;\n vm.replyMessage = '';\n\n /*msApi.request('quickPanel.contacts@get', {},\n // Success\n function (response)\n {\n vm.contacts = response.data;\n }\n );*/\n vm.contacts = [];\n\n // Methods\n vm.toggleChat = toggleChat;\n vm.reply = reply;\n\n //////////\n\n function toggleChat(contact)\n {\n vm.chatActive = !vm.chatActive;\n\n if ( vm.chatActive )\n {\n vm.replyMessage = '';\n vm.chat.contact = contact;\n scrollToBottomOfChat(0);\n }\n }\n\n function reply()\n {\n if ( vm.replyMessage === '' )\n {\n return;\n }\n\n if ( !vm.chat.contact.dialog )\n {\n vm.chat.contact.dialog = [];\n }\n\n vm.chat.contact.dialog.push({\n who : 'user',\n message: vm.replyMessage,\n time : 'Just now'\n });\n\n vm.replyMessage = '';\n\n scrollToBottomOfChat(400);\n }\n\n function scrollToBottomOfChat(speed)\n {\n var chatDialog = angular.element('#chat-dialog');\n\n $timeout(function ()\n {\n chatDialog.animate({\n scrollTop: chatDialog[0].scrollHeight\n }, speed);\n }, 0);\n\n }\n }\n\n})();\n/** @ngInject */\r\nfunction routeDialogController($scope,$timeout,$mdDialog) { \r\n \r\n $scope.$mdDialog = $mdDialog;\r\n var Order = this.order;\r\n $scope.order = Order;\r\n\r\n console.log('route dialog controller');\r\n\r\n var vm = this;\r\n var hplatform = window.hplatform;\r\n\r\n function init() {\r\n console.log('init map');\r\n\r\n // Obtain the default map types from the platform object:\r\n var defaultLayers = hplatform.createDefaultLayers({lg: 'ru'});\r\n\r\n // Instantiate (and display) a map object:\r\n var mapDiv = document.getElementById('routeDialogMap2');\r\n vm.myMap = new H.Map(\r\n mapDiv,\r\n defaultLayers.vector.normal.map,\r\n {\r\n zoom: 14,\r\n center: { lat: 55.745508, lng: 55.745508 }\r\n }); \r\n vm.myMap.getViewPort().padding = { left:20, right: 20, top: 20, bottom: 20 }; \r\n\r\n // Add map events functionality to the map\r\n var mapEvents = new H.mapevents.MapEvents(vm.myMap);\r\n\r\n // Add behavior to the map: panning, zooming, dragging.\r\n var behavior = new H.mapevents.Behavior(mapEvents); \r\n\r\n\r\n var iconStart = new H.map.Icon('assets/images/bizon/red-circle.png');\r\n var startPointMarker = new H.map.Marker({ lat: $scope.order.StartPoint.Lat, lng: $scope.order.StartPoint.Lng }, { icon: iconStart });\r\n\r\n var iconEnd = new H.map.Icon('assets/images/bizon/green-circle.png');\r\n var endPointMarker = new H.map.Marker({ lat: $scope.order.Delivery.Lat, lng: $scope.order.Delivery.Lng }, { icon: iconEnd });\r\n\r\n vm.myMap.addObjects([startPointMarker,endPointMarker]);\r\n\r\n // Create the parameters for the routing request:\r\n var routingParameters = {\r\n // The routing mode:\r\n 'mode': 'fastest;car',\r\n // The start point of the route:\r\n 'waypoint0': 'geo!'+$scope.order.StartPoint.Lat+','+$scope.order.StartPoint.Lng,\r\n // The end point of the route:\r\n 'waypoint1': 'geo!'+$scope.order.Delivery.Lat+','+$scope.order.Delivery.Lng,\r\n // To retrieve the shape of the route we choose the route\r\n // representation mode 'display'\r\n 'representation': 'display'\r\n };\r\n\r\n // Define a callback function to process the routing response:\r\n var onResult = function(result) {\r\n var route,\r\n routeShape,\r\n linestring;\r\n\r\n console.log(result);\r\n\r\n if (!result.response.route) return;\r\n\r\n // Pick the first route from the response:\r\n route = result.response.route[0];\r\n // Pick the route's shape:\r\n routeShape = route.shape;\r\n\r\n // Create a linestring to use as a point source for the route line\r\n linestring = new H.geo.LineString();\r\n\r\n // Push all the points in the shape into the linestring:\r\n routeShape.forEach(function(point) {\r\n var parts = point.split(',');\r\n linestring.pushLatLngAlt(parts[0], parts[1]);\r\n });\r\n\r\n // Create a polyline to display the route:\r\n var routeLine = new H.map.Polyline(linestring, {\r\n style: { strokeColor: 'green', lineWidth: 3 }\r\n });\r\n\r\n\r\n // Add the route polyline and the two markers to the map:\r\n vm.myMap.addObjects([routeLine, startPointMarker,endPointMarker]);\r\n\r\n // Set the map's viewport to make the whole route visible:\r\n var bb = routeLine.getBoundingBox();\r\n console.log(bb);\r\n vm.myMap.getViewModel().setLookAtData(\r\n { bounds: bb }\r\n );\r\n window.myMap = vm.myMap;\r\n };\r\n\r\n // Get an instance of the routing service:\r\n var router = hplatform.getRoutingService();\r\n\r\n // Call calculateRoute() with the routing parameters,\r\n // the callback and an error callback function (called if a\r\n // communication error occurs):\r\n router.calculateRoute(routingParameters, onResult,\r\n function(error) {\r\n alert(error.message);\r\n }); \r\n }\r\n\r\n $timeout( init, 100 );\r\n}\r\n\n /** @ngInject */\r\nfunction AddressController($scope, $state, $api, $q, $filter, $timeout, $stateParams, UTILS, $kladr) {\r\n var vm = this;\r\n\r\n this.$onInit = function() { \r\n vm.item.CountryRegion = getCountryRegion();\r\n };\r\n\r\n var getCountryRegion = function (){\r\n if (vm.item.Country && vm.item.Region)\r\n return vm.item.Country + ', ' + vm.item.Region; \r\n else\r\n return null;\r\n }\r\n\r\n $scope.$watch('vm.item', function(){ vm.item.CountryRegion = getCountryRegion(); });\r\n\r\n $scope.UTILS = UTILS; \r\n\r\n function geocode(latLng){\r\n var geocoder = new google.maps.Geocoder; \r\n geocoder.geocode({'location': latLng}, function(results, status) {\r\n if (status === 'OK') {\r\n console.log(results);\r\n if (results[0]) {\r\n var addr = results[0];\r\n vm.item.place_address = addr;\r\n vm.item.Lat = latLng.lat();\r\n vm.item.Lng = latLng.lng();\r\n $scope.$apply(); \r\n } else {\r\n $rootScope.showAlert('Адрес не распознан');\r\n }\r\n } else {\r\n window.alert('Geocoder failed due to: ' + status);\r\n }\r\n }); \r\n }\r\n\r\n function addressSelected(){\r\n console.log($scope.place);\r\n if (!$scope.place) return;\r\n getDetails($scope.place).then(function(details){\r\n console.log(details);\r\n fillAddress(details);\r\n }) \r\n }\r\n\r\n $scope.placeSelected = function(place) {\r\n console.log(place);\r\n if (!place) return;\r\n getDetails(place).then(function(details){\r\n console.log(details);\r\n fillAddress(details);\r\n if (vm.selected)\r\n vm.selected(details);\r\n }) \r\n }\r\n\r\n $scope.citySelected = function() {\r\n console.log($scope.cityPlace);\r\n if (!$scope.cityPlace) return;\r\n getDetails($scope.cityPlace).then(function(details){\r\n console.log(details);\r\n fillAddress(details);\r\n }) \r\n } \r\n\r\n $scope.getResults = function(type, countryCode, query) {\r\n var deferred = $q.defer();\r\n var autocompleteService = new google.maps.places.AutocompleteService();\r\n autocompleteService.getPlacePredictions({\r\n input: query,\r\n types: [type],\r\n componentRestrictions: countryCode ? {country : countryCode } : null\r\n }, function(data, status) {\r\n if (status != google.maps.places.PlacesServiceStatus.OK)\r\n data = [];\r\n console.log(data);\r\n deferred.resolve(data);\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n var getDetails = function(place) {\r\n var deferred = $q.defer();\r\n var map = new google.maps.Map(document.createElement('div'));\r\n var placeService = new google.maps.places.PlacesService(map);\r\n placeService.getDetails({\r\n 'placeId': place.place_id,\r\n 'language': 'ru'\r\n }, function(details) {\r\n deferred.resolve(details);\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n function fillAddress(addr){\r\n\r\n angular.forEach(addr.address_components, function(c){\r\n console.log(c);\r\n if ($filter('filter')( c.types, function(type){ return type == 'country'; }).length > 0) {\r\n vm.item.Country = c.long_name;\r\n vm.item.CountryCode = c.short_name;\r\n $scope.cityAutocompleteOptions = { componentRestrictions: { country : c.short_name }};\r\n }\r\n if ($filter('filter')( c.types, function(type){ return type == 'administrative_area_level_1' || type == 'administrative_area_level_2'; }).length > 0) \r\n vm.item.Region = c.long_name; \r\n if ($filter('filter')( c.types, function(type){ return type == 'locality'; }).length > 0) \r\n vm.item.City = c.long_name;\r\n if ($filter('filter')( c.types, function(type){ return type == 'street' || type == 'route'; }).length > 0)\r\n vm.item.Street = c.long_name; \r\n if ($filter('filter')( c.types, function(type){ return type == 'street_number'; }).length > 0)\r\n vm.item.House = c.long_name; \r\n });\r\n //vm.item.Address.CountryRegion = vm.item.Address.Country + \", \" + vm.item.Address.Region; \r\n vm.item.Lat = addr.geometry.location.lat();\r\n vm.item.Lng = addr.geometry.location.lng(); \r\n vm.item.Address = vm.item.City + \", \" + vm.item.StreetHouse; \r\n\r\n }\r\n}\r\n\n /** @ngInject */\r\nfunction VerifyController($scope, $state, $api, $rootScope, $filter, UTILS, $kladr)\r\n{\r\n\tvar vm = this;\r\n\r\n\tthis.$onInit = function(){\r\n\t\t$scope.user = this.item;\r\n\t}\r\n\t\r\n\t$scope.codeSended = true;\r\n\r\n\t$scope.changePhone = function(){\r\n $api.users.changephone.get({ phone: $scope.user.Phone }, function(){\r\n \t$scope.codeSended = true;\r\n \t$rootScope.showToast('Номер телефона изменен!');\r\n },function(error){\r\n \t$rootScope.showToast('Ошибка при изменении номера телефона: ' + error.data.Message );\r\n });\r\n \t}\r\n\r\n\t$scope.sendCode = function(){\r\n $api.users.code.get({code: $scope.user.Code }, function(result){\r\n \tconsole.log(result);\r\n \t$rootScope.showToast('Новый код выслан на Ваш телефон');\r\n },function(error){\r\n \t$scope.error = error.data.Message;\r\n \tconsole.log(error.data.Message);\r\n });\r\n \t} \t\r\n}\n(function ()\r\n{ \r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls', [ 'ngFileUpload' ] )\r\n .config(config)\r\n .directive('disallowSpaces', function() {\r\n return {\r\n restrict: 'A',\r\n link: function($scope, $element) {\r\n $element.bind('input', function() {\r\n $(this).val($(this).val().replace(/ /g, ''));\r\n });\r\n }\r\n };\r\n })\r\n .run(run); \r\n\r\n /** @ngInject */\r\n function config() {\r\n }\r\n\r\n /** @ngInject */\r\n function run($api,$rootScope) {\r\n\r\n }\r\n\r\n})();\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls')\r\n .component('verify', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/verify.html',\r\n controller: VerifyController,\r\n controllerAs: 'vm'\r\n })\r\n\r\n})();\r\n\n/** @ngInject */\r\nfunction UnitController($scope,$rootScope,$api,$filter,$files, UTILS){\r\n\tvar vm = this;\r\n\r\n\tthis.$onInit = function() { \r\n\t\t$scope.number = vm.number;\r\n\t\tif (vm.item) {\t\t\r\n\t\t\t$scope.unit = vm.item;\r\n\t\t\t$scope.unit.MarkModel = getMarkModel(vm.item);\t\t\r\n\t\t\tloadModifications();\r\n\t\t}\r\n\t\telse\t\r\n\t\t\t$api.units.get.get({Id: vm.itemId}, function(unit){\r\n\t\t\t\tconsole.log(unit);\r\n\t\t\t\t$scope.unit = unit;\r\n\t\t\t\t$scope.unit.MarkModel = getMarkModel(unit);\r\n\t\t\t\tloadModifications();\t\r\n\t\t\t});\r\n\t}\r\n\r\n\tvar loadModifications = function(){\r\n\t\tif ($scope.unit.ModelId)\r\n\t\t\t$api.units.details.query({modelId: $scope.unit.ModelId, withParams: false}, function (details){\r\n\t\t\t\t$scope.modifications = details;\t\t\t\r\n\t\t\t});\t\t\t\r\n\t}\r\n\r\n\tvar getMarkModel = function (item) {\r\n\t\tvar mm = '';\r\n\t\tif (item.Mark) mm += item.Mark;\r\n\t\tif (item.Model) mm += ' ' + item.Model;\r\n\t\treturn mm;\r\n\t}\r\n\r\n\t$scope.UTILS = UTILS;\r\n\r\n\r\n\t$scope.search = function(text){\r\n\t\tif (!text) return;\r\n\t\treturn $api.units.carsearch.query({ search: text }).$promise; \r\n\t}\r\n\r\n\t$scope.isUnitOk = function (){\r\n\t\treturn vm.item.Mark && vm.item.Model && vm.item.PTS && vm.item.BodyLength > 0 && vm.item.BodyWidth > 0 && vm.item.BodyHeight > 0;\r\n\t}\r\n\r\n\t$scope.markSelected = function(model){\r\n\t\tconsole.log(model);\r\n\t\t$scope.unit.MarkModel = getMarkModel(model);\t\r\n\t\t$scope.unit.Mark = model.Mark;\r\n\t\t$scope.unit.Model = model.Model;\r\n\t\t$scope.unit.ModelId = model.ModelId;\t\r\n\t\t$api.units.details.query({modelId: model.ModelId, withParams: false}, function (details){\r\n\t\t\t$scope.modifications = details;\t\t\t\r\n\t\t});\r\n\t}\r\n\r\n\tvar getParam = function (nameOrId){\r\n\t\tvar params = $filter('filter')($scope.fullModification.Params, function (p){ return p.Id == nameOrId || p.Name == nameOrId; });\r\n\t\treturn params != null && params.length > 0 ? params[0].Value : null;\r\n\t}\r\n\r\n\t$scope.modificationSelected = function(){\r\n\t\t$api.units.params.get({modelId: $scope.unit.ModelId, modificationId: $scope.unit.ModificationId}, \r\n\t\t\tfunction(modification){\r\n\t\t\t\tconsole.log(modification);\r\n\t\t\t\t$scope.fullModification = modification;\r\n\t\t\t\t$scope.unit.BodyLength = (getParam(371) || getParam(444) || getParam(534)) * 1;\r\n\t\t\t\t$scope.unit.BodyWidth = (getParam(372) || getParam(445) || getParam(519)) * 1;\t\t\r\n\t\t\t\t$scope.unit.BodyHeight = (getParam(373) || getParam(446) || getParam(520)) * 1;\r\n\t\t\t\t$scope.unit.Seats = (getParam(395)) * 1;\t\t\t\t\r\n\t\t\t\t$scope.unit.Volume = getParam(418) * 1;\t\r\n\t\t\t\t$scope.unit.Carrying = getParam(394) * 1;\t\t\r\n\t\t});\r\n\t}\t\r\n\r\n \t$scope.uploadFile = function(file, tag) {\r\n\t console.log('upload file');\r\n\t console.log(file);\r\n\t if (!file) return;\r\n\t if (file[0].size > 2048000)\r\n\t {\r\n\t alert('Размер файла должен быть до 2Мб');\r\n\t return;\r\n\t } \t \r\n\t $files.uploadFile(file).then( function(asset) {\r\n\t $scope.unit.Assets.Assets.push(asset);\r\n\t asset.Tags = [tag];\r\n\t asset.CollectionId = $scope.unit.AssetsId;\r\n\t return $api.files.update(asset).$promise;\r\n\t }, function(error){ \r\n\t console.log('upload error'); \r\n\t })\r\n\t .then(function(data){\r\n\t \tconsole.log(data);\r\n\t }, function(error){\r\n\t \tconsole.log(error);\r\n\t });\r\n\t}\r\n\r\n\t$scope.save = function(){\r\n\t\t$api.units.put.update( $scope.unit, function(unit) {\r\n\t\t\tconsole.log(unit);\r\n\t\t\t$scope.unit = unit;\r\n\t\t\t$scope.unit.MarkModel = getMarkModel(unit);\r\n\t\t\t$rootScope.showToast('Данные сохранены!');\r\n\t\t},\r\n\t\tfunction (error) { \r\n\t\t\t$rootScope.showToast('ОШИБКА при сохранении данных!');\t\t\t\r\n\t\t\tconsole.log(error);\r\n\t\t});\r\n\t}\r\n\t$scope.delete = function(){\r\n\t\tconsole.log($scope.unit);\r\n\t\tif (vm.deleteUnit)\r\n\t\t\tvm.deleteUnit($scope.unit);\r\n\t}\r\n\r\n\t$scope.getAsset = function(tag){\r\n\t\tif (!$scope.unit.Assets) return;\t\t\r\n\t\tvar assets = $filter('filter')( $scope.unit.Assets.Assets, function (a) { return a.Tags && UTILS.hasTag(a.Tags, tag); } );\r\n\t\treturn assets != null && assets.length > 0 ? assets[0] : null;\r\n\t}\r\n}\r\n\r\nfunction TeamUnitsController($scope,$api,$rootScope,$filter,APP_SETTINGS,$mdDialog,$accountDialogs)\r\n{\r\n\tvar vm = this;\r\n\t\r\n\tthis.$onInit = function(){\r\n\t\tloadUnits();\r\n\t}\r\n\tfunction loadUnits (){\r\n\t\t$scope.units = $api.units.list.get({TeamId: vm.teamId, $orderby: 'Created', $expand: \"Assets($expand=Assets)\" });\t\t\t\r\n\t}\r\n\r\n\t$scope.addUnit = function() {\r\n\t\tconsole.log('add unit');\r\n\t\t$api.units.post.save({TeamId: vm.teamId, CategoryId: 201 },function(unit){\r\n\t\t\tconsole.log(unit);\r\n\t\t\t$rootScope.showToast('Добавлен новый автомобиль');\r\n\t\t\t$scope.units.value.push(unit);\r\n\t\t\tunit.edit = true;\r\n\t\t},\r\n\t\tfunction(error){\r\n\t\t\tconsole.log(error);\r\n\t\t\t$rootScope.showToast('ОШИБКА при добавлении нового автомобиля');\r\n\t\t});\r\n\t}\r\n\t$scope.deleteUnitAck = function(unit, ack){\r\n\t\tunit.deleteAck = ack;\r\n\t}\r\n\t$scope.deleteUnit = function(unit) {\r\n \tunit.Status = \"Deleted\";\r\n\t\t$api.units.put.update(unit,function(){\r\n\t\t\tvar ix = $scope.units.value.indexOf(unit);\t\t\t\r\n\t\t\t$scope.units.value.splice(ix,1);\r\n\t\t\tconsole.log($scope.units);\r\n\t\t\t$rootScope.showToast('Автомобиль удален!');\t\t\t\t\t\t\r\n\t\t});\t\t\r\n /*$accountDialogs.question(\r\n {\r\n dialogTitle: 'Удаление автомобиля', \r\n mainMessage: 'Вы уверены, что хотите удалить автомобиль ' + unit.MarkModel + '?', \r\n descMessage: 'Восстановить удаленный автомобиль сможет только служба поддержки по Вашей заявке', \r\n okButtonText: 'Да, удалить', \r\n cancelButtonText: 'Отмена', \r\n buttonAction: function(){ \r\n \t$mdDialog.hide(); \r\n \tconsole.log(unit);\r\n \tunit.Status = \"Deleted\";\r\n\t\t\t\t$api.units.put.update(unit,function(){\r\n\t\t\t\t\t$scope.units = $api.units.list.get({TeamId: this.TeamId, $orderby: 'Created', $expand: \"Assets($expand=Assets)\" });\r\n\t\t\t\t\t$rootScope.showToast('Автомобиль удален!');\t\t\t\t\t\r\n\t\t\t\t});\r\n } \r\n }); */\r\n\t}\r\n\r\n\t$scope.isAllUnitsOk = function (){\r\n\t\treturn $filter('filter')($scope.units.value, function (u){ \r\n\t\t\treturn !u.Mark || !u.Model || !u.PTS || u.BodyHeight == 0 || u.BodyWidth == 0 || u.BodyLength == 0; }).length == 0;\r\n\t}\r\n\r\n\t$scope.isUnitsOk = function (){\r\n\t\tif ($scope.units.value.length == 0)\r\n\t\t{\r\n\t\t\talert('Необходимо добавить как минимум один автомобиль');\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (!$scope.isAllUnitsOk())\r\n\t\t{\r\n\t\t\talert('Заполните информацию по всем добавленным автомобилям!');\r\n\t\t\treturn false;\t\t\t\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t$scope.saveAll = function (){\r\n\t\tconsole.log('save all units')\r\n\t\tangular.forEach( $scope.units.value, function (unit){\r\n\t\t\t$api.units.put.update( unit, \r\n\t\t\t\tfunction(){},\r\n\t\t\t\tfunction (error) { \r\n\t\t\t\t\t$rootScope.showToast('ОШИБКА при сохранении данных!');\t\t\t\r\n\t\t\t\t\tconsole.log(error);\r\n\t\t\t\t});\r\n\t\t});\r\n\t\tif (vm.submit) vm.submit();\r\n\t}\r\n}\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls')\r\n .component('unit', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n number: '=',\r\n item: '=',\r\n deleteUnit: '=',\r\n itemId: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/unit.html',\r\n controller: UnitController,\r\n controllerAs: 'vm'\r\n })\r\n .component('teamunits', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n teamId: '=',\r\n units: '=',\r\n submit: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/teamunits.html',\r\n controller: TeamUnitsController,\r\n controllerAs: 'vm'\r\n })\r\n})();\r\n\n /** @ngInject */\r\nfunction RoutePlanController($scope,$timeout,$q,$api,$filter) { \r\n\r\n var vm = this;\r\n var Order = null;\r\n var hplatform = window.hplatform;\r\n\r\n vm.getResults = getResults;\r\n vm.getDetails = getDetails;\r\n\r\n console.log('route plan controller');\r\n\r\n this.$onInit = function(){\r\n\r\n Order = vm.item;\r\n $scope.order = Order;\r\n if ($scope.order.StartPoint)\r\n $scope.fromAddressSearch = $scope.order.StartPoint.Address;\r\n else\r\n $scope.order.StartPoint = {};\r\n if ($scope.order.Delivery)\r\n $scope.toAddressSearch = $scope.order.Delivery.Address;\r\n else\r\n $scope.order.Delivery = {};\r\n $scope.today = new Date();\r\n\r\n init(); \r\n }\r\n\r\n\r\n function init() {\r\n console.log('init map');\r\n\r\n // Obtain the default map types from the platform object:\r\n var defaultLayers = hplatform.createDefaultLayers({lg: 'ru'});\r\n\r\n // Instantiate (and display) a map object:\r\n vm.myMap = new H.Map(\r\n document.getElementById('routeDialogMap'),\r\n defaultLayers.vector.normal.map,\r\n {\r\n zoom: 14,\r\n center: { lat: 55.745508, lng: 55.745508 }\r\n }); \r\n vm.myMap.getViewPort().padding = { left:20, right: 20, top: 20, bottom: 20 };\r\n\r\n route();\r\n\r\n // Enable the event system on the map instance:\r\n var mapEvents = new H.mapevents.MapEvents(vm.myMap);\r\n\r\n // Add event listener:\r\n vm.myMap.addEventListener('tap', function(evt) {\r\n // Log 'tap' and 'mouse' events:\r\n var coord = vm.myMap.screenToGeo(evt.currentPointer.viewportX, evt.currentPointer.viewportY);\r\n console.log(coord);\r\n if ($scope.focus == 1){\r\n geocode(coord).then(function(addr){\r\n console.log(addr);\r\n $scope.order.StartPoint = addr;\r\n $scope.fromAddressSearch = $scope.order.StartPoint.Address;\r\n $scope.focus = 2;\r\n route();\r\n })\r\n }\r\n else if ($scope.focus==2){\r\n geocode(coord).then(function(addr){\r\n console.log(addr);\r\n $scope.order.Delivery = addr;\r\n $scope.toAddressSearch = $scope.order.Delivery.Address;\r\n route(); \r\n })\r\n }\r\n }); \r\n // Instantiate the default behavior, providing the mapEvents object: \r\n var behavior = new H.mapevents.Behavior(mapEvents); \r\n }\r\n\r\n $scope.startDateChange = function (){\r\n if (vm.item.Finish || vm.item.Start > vm.item.Finish)\r\n vm.item.Finish = vm.item.Start;\r\n }\r\n\r\n\r\n $scope.placeSelectedFrom = function (place) { \r\n console.log(place);\r\n if (!place) return;\r\n var deferred = $q.defer(); \r\n\r\n return getDetails(place.locationId).then(function(details){\r\n console.log(details);\r\n $scope.order.StartPoint = details; \r\n //$scope.fromAddressSearch = $scope.order.StartPoint.Address;\r\n route();\r\n\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise; \r\n }\r\n\r\n $scope.placeSelectedTo = function (place) {\r\n console.log(place); \r\n if (!place) return;\r\n var deferred = $q.defer(); \r\n return getDetails(place.locationId).then(function(details){\r\n console.log(details);\r\n $scope.order.Delivery = details; \r\n //$scope.toAddressSearch = $scope.order.Delivery.Address;\r\n route(); \r\n\r\n deferred.resolve(); \r\n });\r\n return deferred.promise; \r\n }\r\n\r\n $scope.presEnter = function(id){\r\n var autoChild = document.getElementById(id).firstElementChild;\r\n var el = angular.element(autoChild);\r\n el.scope().$mdAutocompleteCtrl.hidden = true;\r\n };\r\n\r\n function getResults(query) {\r\n var deferred = $q.defer();\r\n var orderStart = $scope.order.StartPoint;\r\n var lat = orderStart ? orderStart.Lat : null;\r\n var lng = orderStart ? orderStart.Lng : null;\r\n $api.addresses.predictions.query({q: query, lat: lat, lng: lng}, function (results){\r\n console.log(results);\r\n angular.forEach(results, function(x){\r\n x.showAddress = (x.address.city || '');\r\n if (x.showAddress && x.showAddress.length > 0 && x.address.street)\r\n x.showAddress += ', ';\r\n if (x.address.street)\r\n x.showAddress += (x.address.street || '') + ' ' + (x.address.houseNumber || '')\r\n })\r\n console.log(results); \r\n deferred.resolve(results); \r\n }, function (error){\r\n deferred.reject(error);\r\n })\r\n return deferred.promise; \r\n };\r\n\r\n var getDetails = function(id) {\r\n var deferred = $q.defer();\r\n $api.addresses.location.get({hereid: id}, function (result){\r\n console.log(result);\r\n deferred.resolve(result); \r\n }, function (error){\r\n deferred.reject(error);\r\n })\r\n return deferred.promise; \r\n };\r\n\r\n function fillAddress(target, addr){\r\n target.Region = null; target.City = ''; target.Country = null; target.Address = ''; target.House = null;\r\n\r\n angular.forEach(addr.address_components, function(c){\r\n console.log(c);\r\n if ($filter('filter')( c.types, function(type){ return type == 'country'; }).length > 0) {\r\n target.Country = c.long_name;\r\n target.CountryCode = c.short_name;\r\n vm.cityAutocompleteOptions = { componentRestrictions: { country : c.short_name }};\r\n }\r\n if ($filter('filter')( c.types, function(type){ return type == 'administrative_area_level_1' || type == 'administrative_area_level_2'; }).length > 0) \r\n target.Region = c.long_name; \r\n if ($filter('filter')( c.types, function(type){ return type == 'locality'; }).length > 0) \r\n target.City = c.long_name;\r\n if ($filter('filter')( c.types, function(type){ return type == 'street' || type == 'route'; }).length > 0)\r\n target.Street = c.long_name; \r\n if ($filter('filter')( c.types, function(type){ return type == 'street_number'; }).length > 0)\r\n target.House = c.long_name; \r\n });\r\n\r\n target.Lat = target.Lat || addr.geometry.location.lat();\r\n target.Lng = target.Lng || addr.geometry.location.lng(); \r\n if (target.City && target.City.length > 0)\r\n \ttarget.Address = target.City;\r\n if (target.Street && target.Street.length > 0) {\r\n \ttarget.Address += target.Address ? ', ' : '';\r\n \ttarget.Address += target.Street; \r\n }\r\n if (target.House && target.House.length > 0) {\r\n \ttarget.Address += target.Address ? ', ' : '';\r\n \ttarget.Address += target.House; \r\n }\r\n\r\n console.log(target);\r\n }\r\n\r\n function route(){\r\n if (!Order.StartPoint) return;\r\n if (!Order.StartPoint.Lat || !Order.StartPoint.Lng) return;\r\n\r\n if (vm.mapObjects) { angular.forEach( vm.mapObjects, function (o) { vm.myMap.removeObject(o) } ); vm.mapObjects = null; } \r\n\r\n vm.mapObjects = new H.map.Group()\r\n\r\n var iconStart = new H.map.Icon('assets/images/bizon/red-circle.png');\r\n var startPointMarker = new H.map.Marker({ lat: $scope.order.StartPoint.Lat, lng: $scope.order.StartPoint.Lng }, { icon: iconStart });\r\n\r\n if (!Order.Delivery || !Order.Delivery.Lat || !Order.Delivery.Lng) {\r\n vm.myMap.setZoom(12);\r\n vm.myMap.setCenter({ lat: Order.StartPoint.Lat, lng: Order.StartPoint.Lng }); \r\n return;\r\n }\r\n\r\n var iconEnd = new H.map.Icon('assets/images/bizon/green-circle.png');\r\n var endPointMarker = new H.map.Marker({ lat: $scope.order.Delivery.Lat, lng: $scope.order.Delivery.Lng }, { icon: iconEnd });\r\n\r\n // Create the parameters for the routing request:\r\n var routingParameters = {\r\n 'mode': 'balanced;truck',\r\n // The start point of the route:\r\n 'waypoint0': 'geo!'+$scope.order.StartPoint.Lat+','+$scope.order.StartPoint.Lng,\r\n // The end point of the route:\r\n 'waypoint1': 'geo!'+$scope.order.Delivery.Lat+','+$scope.order.Delivery.Lng,\r\n // To retrieve the shape of the route we choose the route\r\n // representation mode 'display'\r\n 'representation': 'display',\r\n 'routeAttributes': 'summary'\r\n };\r\n\r\n // Define a callback function to process the routing response:\r\n var onResult = function(result) {\r\n var route,\r\n routeShape,\r\n linestring;\r\n\r\n console.log(result);\r\n\r\n if (result.response.route) {\r\n\r\n // Pick the first route from the response:\r\n route = result.response.route[0];\r\n // Pick the route's shape:\r\n routeShape = route.shape;\r\n\r\n vm.item.Path = route.summary.distance/1000;\r\n\r\n // Create a linestring to use as a point source for the route line\r\n linestring = new H.geo.LineString();\r\n\r\n // Push all the points in the shape into the linestring:\r\n routeShape.forEach(function(point) {\r\n var parts = point.split(',');\r\n linestring.pushLatLngAlt(parts[0], parts[1]);\r\n });\r\n\r\n // Create a polyline to display the route:\r\n var routeLine = new H.map.Polyline(linestring, {\r\n style: { strokeColor: 'green', lineWidth: 3 }\r\n });\r\n\r\n\r\n // Add the route polyline and the two markers to the map:\r\n vm.myMap.addObjects([routeLine, startPointMarker,endPointMarker]);\r\n vm.mapObjects = [routeLine, startPointMarker,endPointMarker];\r\n\r\n // Set the map's viewport to make the whole route visible:\r\n vm.myMap.getViewModel().setLookAtData(\r\n {bounds: routeLine.getBoundingBox()}\r\n );\r\n }\r\n $scope.$apply();\r\n };\r\n\r\n // Get an instance of the routing service:\r\n var router = hplatform.getRoutingService();\r\n\r\n // Call calculateRoute() with the routing parameters,\r\n // the callback and an error callback function (called if a\r\n // communication error occurs):\r\n router.calculateRoute(routingParameters, onResult,\r\n function(error) {\r\n alert(error.message);\r\n });\r\n }\r\n function geocode(ll){\r\n var deferred = $q.defer(); \r\n var geocoder = new google.maps.Geocoder; \r\n var latlng = new google.maps.LatLng(ll[0],ll[1]); \r\n geocoder.geocode({'location': latlng}, function(results, status) {\r\n if (status === 'OK') {\r\n console.log(results);\r\n if (results[0]) {\r\n deferred.resolve(results[0]);\r\n } else {\r\n $rootScope.showAlert('Адрес не распознан');\r\n }\r\n } else {\r\n window.alert('Ошибка при определении адреса!');\r\n }\r\n }); \r\n return deferred.promise; \r\n } \r\n\r\n}\r\n\n\r\n/** @ngInject */\r\nfunction OrderStatusController($scope,$rootScope,$interval,$state,$api,$doerDialogs,$clientDialogs,APP_SETTINGS,UTILS) {\r\n $scope.UTILS = UTILS;\r\n var vm = this;\r\n\r\n this.$onInit = function(){\r\n $scope.categories = UTILS.getCategories(100);\r\n $scope.loadOffers();\r\n $scope.$watch('vm.item', $scope.loadOffers, true ); \r\n }\r\n\r\n $scope.loadOffers = function(){\r\n console.log(vm.item);\r\n if (!vm.item) return;\r\n $api.events.list.get({OrderId: vm.item.Id, Classes: 'Offer', Types: 'Created', TeamId: UTILS.teamId() }, \r\n function(offers){\r\n if (offers.value.length > 0)\r\n $scope.myoffer = offers.value[0];\r\n console.log($scope.myoffer);\r\n });\r\n\r\n $api.events.list.get({OrderId: vm.item.Id, Classes: 'ClientOffer', Types: 'Created', TeamId: UTILS.teamId(), UserId: vm.item.ClientId, to: UTILS.userId() },\r\n function(offers){\r\n if (offers.value.length > 0)\r\n $scope.clientoffer = offers.value[0];\r\n console.log($scope.clientoffer); \r\n }); \r\n\r\n if (vm.item.State == 'Delivered' && !vm.item.Cash)\r\n {\r\n $interval(function(){\r\n console.log('autoclose timer')\r\n if (!vm.item || !vm.item.StateEnter) return;\r\n var enterState = vm.item.StateEnter;\r\n var curDate = new Date();\r\n var diff = (enterState.getTime() - curDate.getTime() + 30 * 3600000) / 3600000;\r\n if (diff <= 0) { $scope.autoPay = \"-\"; return; }\r\n $scope.autoPay = (\"00\" + Math.floor(diff)).slice(-2);\r\n diff = (diff - Math.floor(diff))*60;\r\n $scope.autoPay += \":\" + (\"00\" + Math.floor(diff)).slice(-2); \r\n diff = (diff - Math.floor(diff))*60; \r\n $scope.autoPay += \":\" + (\"00\" + Math.floor(diff)).slice(-2);\r\n }, 1000 );\r\n } \r\n }\r\n\r\n $scope.payment = function(){\r\n if (APP_SETTINGS.Profile.Balance >= vm.item.Price)\r\n $clientDialogs.paymentDialog(vm.item).then(function(order){\r\n vm.item.State = order.State;\r\n });\r\n else\r\n $clientDialogs.noMoneyDialog(vm.item);\r\n } \r\n\r\n $scope.makeOffer = function(){\r\n $doerDialogs.sendOfferDialog(vm.item, $scope.myoffer).then(function(offer){\r\n $scope.myoffer = offer;\r\n $scope.clientoffer = null; \r\n $state.go('.', $state.params, {reload: 'app.client.orders.item' }); \r\n $rootScope.showToast('Предложение успешно отправлено!');\r\n });\r\n }\r\n\r\n $scope.doerReject = function(){\r\n $doerDialogs.doerRejectDialog(vm.item).then(function(order){\r\n $scope.myoffer = null;\r\n $scope.clientoffer = null;\r\n $state.go('.', $state.params, {reload: 'app.client.orders.item' }); \r\n $rootScope.showToast('Вы отказались от этого заказа!');\r\n });\r\n }\r\n \r\n $scope.doerAccept = function(){\r\n $doerDialogs.doerAcceptDialog(vm.item).then( function() {\r\n $scope.myoffer = null;\r\n $scope.clientoffer = null;\r\n });\r\n } \r\n\r\n $scope.startOrder = function(){\r\n $doerDialogs.doerStartDialog(vm.item).then(function(order){\r\n vm.item.State = order.State;\r\n });\r\n } \r\n\r\n $scope.finishOrder = function(){\r\n $doerDialogs.doerFinishDialog(vm.item).then(function(order){\r\n vm.item.State = order.State;\r\n });\r\n } \r\n\r\n $scope.sendReview = function(){\r\n if (UTILS.isDoer())\r\n $doerDialogs.sendReviewDialog(vm.item);\r\n else\r\n $clientDialogs.sendReviewDialog(vm.item); \r\n } \r\n\r\n $scope.deliveryAck = function(){\r\n $clientDialogs.deliveryAckDialog(vm.item).then(function(order){\r\n vm.item.State = order.State;\r\n });\r\n } \r\n $scope.deliveryReject = function(){\r\n $clientDialogs.deliveryRejectDialog(vm.item).then(function(order){\r\n vm.item.State = order.State;\r\n });\r\n } \r\n\r\n $scope.cancelOrder = function(){\r\n $clientDialogs.cancelOrderDialog(vm.item).then(function(order){\r\n vm.item.State = order.State;\r\n })\r\n }\r\n}\n /** @ngInject */\r\nfunction OrderRouteController($scope,$resource,$timeout,$q,$api,$filter,UTILS) { \r\n\r\n\tvar vm = this;\r\n\tvar Order = null;\r\n //var hplatform = window.hplatform;\r\n\r\n\tvm.getResults = getResults;\r\n\tvm.getDetails = getDetails;\r\n\r\n \r\n\tconsole.log('create order controller');\r\n\r\n\tthis.$onInit = function(){\r\n\r\n\t\tOrder = vm.item;\r\n\t\t$scope.order = Order;\r\n if ($scope.order.StartPoint)\r\n $scope.fromAddressSearch = $scope.order.StartPoint.Address;\r\n else\r\n $scope.order.StartPoint = {};\r\n if ($scope.order.Delivery)\r\n $scope.toAddressSearch = $scope.order.Delivery.Address;\r\n else\r\n $scope.order.Delivery = {};\r\n $scope.today = new Date();\r\n $scope.tomorrow = $scope.today.getDate()+1;\r\n $scope.categories = UTILS.getCategories(100);\r\n $scope.models = UTILS.getCategories(200);\r\n var catId = $scope.order.ModelId || 201;\r\n var cat = UTILS.getCategory(catId);\r\n vm.modelIndex = $scope.models.indexOf(cat); \r\n\r\n\r\n init(); \r\n }\r\n\r\n vm.today = function () { return new Date(); }\r\n vm.tomorrow = function () { return new Date().getDate() + 1; }\r\n\r\n\r\n\tfunction init() {\r\n console.log('init map');\r\n ymaps.ready(function () {\r\n var myMap = new ymaps.Map('map', {\r\n center: [55.753994, 37.622093],\r\n zoom: 9,\r\n // Добавим панель маршрутизации.\r\n controls: ['routePanelControl']\r\n });\r\n \r\n var control = myMap.controls.get('routePanelControl');\r\n \r\n // Зададим состояние панели для построения машрутов.\r\n control.routePanel.state.set({\r\n // Тип маршрутизации.\r\n type: 'masstransit',\r\n // Выключим возможность задавать пункт отправления в поле ввода.\r\n fromEnabled: false,\r\n // Адрес или координаты пункта отправления.\r\n from: 'Москва, Льва Толстого 16',\r\n // Включим возможность задавать пункт назначения в поле ввода.\r\n toEnabled: true\r\n // Адрес или координаты пункта назначения.\r\n //to: 'Петербург'\r\n });\r\n \r\n // Зададим опции панели для построения машрутов.\r\n control.routePanel.options.set({\r\n // Запрещаем показ кнопки, позволяющей менять местами начальную и конечную точки маршрута.\r\n allowSwitch: false,\r\n // Включим определение адреса по координатам клика.\r\n // Адрес будет автоматически подставляться в поле ввода на панели, а также в подпись метки маршрута.\r\n reverseGeocoding: true,\r\n // Зададим виды маршрутизации, которые будут доступны пользователям для выбора.\r\n types: { masstransit: true, pedestrian: true, taxi: true }\r\n });\r\n \r\n // Создаем кнопку, с помощью которой пользователи смогут менять местами начальную и конечную точки маршрута.\r\n var switchPointsButton = new ymaps.control.Button({\r\n data: {content: \"Поменять местами\", title: \"Поменять точки местами\"},\r\n options: {selectOnClick: false, maxWidth: 160}\r\n });\r\n // Объявляем обработчик для кнопки.\r\n switchPointsButton.events.add('click', function () {\r\n // Меняет местами начальную и конечную точки маршрута.\r\n control.routePanel.switchPoints();\r\n });\r\n myMap.controls.add(switchPointsButton);\r\n });\r\n return;\r\n\r\n route();\r\n\r\n // Enable the event system on the map instance:\r\n var mapEvents = new H.mapevents.MapEvents(vm.myMap);\r\n\r\n // Add event listener:\r\n vm.myMap.addEventListener('tap', function(evt) {\r\n // Log 'tap' and 'mouse' events:\r\n var coord = vm.myMap.screenToGeo(evt.currentPointer.viewportX, evt.currentPointer.viewportY);\r\n console.log(coord);\r\n if ($scope.focus == 1){\r\n geocode(coord).then(function(addr){\r\n console.log(addr);\r\n $scope.order.StartPoint = addr;\r\n $scope.fromAddressSearch = $scope.order.StartPoint.Address;\r\n $scope.focus = 2;\r\n route();\r\n })\r\n }\r\n else if ($scope.focus==2){\r\n geocode(coord).then(function(addr){\r\n console.log(addr);\r\n $scope.order.Delivery = addr;\r\n $scope.toAddressSearch = $scope.order.Delivery.Address;\r\n route(); \r\n })\r\n }\r\n }); \r\n // Instantiate the default behavior, providing the mapEvents object: \r\n var behavior = new H.mapevents.Behavior(mapEvents); \r\n\t}\r\n\r\n $scope.startDateChange = function (){\r\n if ($scope.order.Finish || $scope.order.Start > $scope.order.Finish)\r\n $scope.order.Finish = $scope.order.Start;\r\n }\r\n\r\n $scope.placeSelectedFrom = function (place) { \r\n $scope.order.StartPoint = place; \r\n/* console.log(place);\r\n if (!place) return;\r\n var deferred = $q.defer(); \r\n\r\n return getDetails(place.locationId).then(function(details){\r\n console.log(details);\r\n if (!details.Lat || !details.Lng) { \r\n $scope.toPlace = null;\r\n $scope.toAddressSearch = null;\r\n return; \r\n }\r\n \r\n $scope.order.StartPoint = details; \r\n //$scope.fromAddressSearch = $scope.order.StartPoint.Address;\r\n route();\r\n\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise; */\r\n }\r\n\r\n $scope.placeSelectedTo = function (place) {\r\n $scope.order.Delivery = place; \r\n /*console.log(place); \r\n if (!place) return;\r\n var deferred = $q.defer(); \r\n return getDetails(place.locationId).then(function(details){\r\n console.log(details);\r\n if (!details.Lat || !details.Lng) { \r\n $scope.toPlace = null;\r\n $scope.toAddressSearch = null;\r\n return; \r\n }\r\n\r\n $scope.order.Delivery = details; \r\n //$scope.toAddressSearch = $scope.order.Delivery.Address;\r\n route(); \r\n\r\n deferred.resolve(); \r\n });\r\n return deferred.promise; */\r\n }\r\n\r\n $scope.presEnter = function(id){\r\n var autoChild = document.getElementById(id).firstElementChild;\r\n var el = angular.element(autoChild);\r\n el.scope().$mdAutocompleteCtrl.hidden = true;\r\n };\r\n\r\n function getResults(query) {\r\n var deferred = $q.defer();\r\n var orderStart = $scope.order.StartPoint;\r\n var lat = orderStart ? orderStart.Lat : null;\r\n var lng = orderStart ? orderStart.Lng : null;\r\n $api.addresses.predictions.query({q: query, lat: lat, lng: lng}, function (results){\r\n console.log(results);\r\n /*angular.forEach(results, function(x){\r\n x.showAddress = (x.address.city || '');\r\n if (x.showAddress && x.showAddress.length > 0 && x.address.street)\r\n x.showAddress += ', ';\r\n if (x.address.street)\r\n x.showAddress += (x.address.street || '') + ' ' + (x.address.houseNumber || '')\r\n })\r\n console.log(results); */\r\n deferred.resolve(results); \r\n }, function (error){\r\n deferred.reject(error);\r\n })\r\n return deferred.promise; \r\n };\r\n\r\n var getDetails = function(id) {\r\n var deferred = $q.defer();\r\n $api.addresses.location.get({hereid: id}, function (result){\r\n console.log(result);\r\n deferred.resolve(result); \r\n }, function (error){\r\n deferred.reject(error);\r\n })\r\n return deferred.promise; \r\n };\r\n\r\n\r\n function route(){\r\n if (!Order.StartPoint) return;\r\n if (!Order.StartPoint.Lat || !Order.StartPoint.Lng) return;\r\n\r\n if (vm.mapObjects) { angular.forEach( vm.mapObjects, function (o) { vm.myMap.removeObject(o) } ); vm.mapObjects = null; } \r\n\r\n vm.mapObjects = new H.map.Group()\r\n\r\n var iconStart = new H.map.Icon('assets/images/bizon/red-circle.png');\r\n var startPointMarker = new H.map.Marker({ lat: $scope.order.StartPoint.Lat, lng: $scope.order.StartPoint.Lng }, { icon: iconStart });\r\n\r\n if (!Order.Delivery || !Order.Delivery.Lat || !Order.Delivery.Lng) {\r\n //vm.myMap.setZoom(12);\r\n //vm.myMap.setCenter({ lat: Order.StartPoint.Lat, lng: Order.StartPoint.Lng }); \r\n return;\r\n }\r\n\r\n var iconEnd = new H.map.Icon('assets/images/bizon/green-circle.png');\r\n var endPointMarker = new H.map.Marker({ lat: $scope.order.Delivery.Lat, lng: $scope.order.Delivery.Lng }, { icon: iconEnd });\r\n\r\n // Create the parameters for the routing request:\r\n var routingParameters = {\r\n 'mode': 'balanced;truck',\r\n // The start point of the route:\r\n 'waypoint0': 'geo!'+$scope.order.StartPoint.Lat+','+$scope.order.StartPoint.Lng,\r\n // The end point of the route:\r\n 'waypoint1': 'geo!'+$scope.order.Delivery.Lat+','+$scope.order.Delivery.Lng,\r\n // To retrieve the shape of the route we choose the route\r\n // representation mode 'display'\r\n 'representation': 'display',\r\n 'routeAttributes': 'summary'\r\n };\r\n\r\n // Define a callback function to process the routing response:\r\n var onResult = function(result) {\r\n var route,\r\n routeShape,\r\n linestring;\r\n\r\n console.log(result);\r\n\r\n if (result.response.route) {\r\n\r\n // Pick the first route from the response:\r\n route = result.response.route[0];\r\n // Pick the route's shape:\r\n routeShape = route.shape;\r\n\r\n vm.item.Path = route.summary.distance/1000;\r\n\r\n /*// Create a linestring to use as a point source for the route line\r\n linestring = new H.geo.LineString();\r\n\r\n // Push all the points in the shape into the linestring:\r\n routeShape.forEach(function(point) {\r\n var parts = point.split(',');\r\n linestring.pushLatLngAlt(parts[0], parts[1]);\r\n });\r\n\r\n // Create a polyline to display the route:\r\n var routeLine = new H.map.Polyline(linestring, {\r\n style: { strokeColor: 'green', lineWidth: 3 }\r\n });\r\n\r\n\r\n // Add the route polyline and the two markers to the map:\r\n vm.myMap.addObjects([routeLine, startPointMarker,endPointMarker]);\r\n vm.mapObjects = [routeLine, startPointMarker,endPointMarker];\r\n\r\n // Set the map's viewport to make the whole route visible:\r\n vm.myMap.getViewModel().setLookAtData(\r\n {bounds: routeLine.getBoundingBox()}\r\n );*/\r\n }\r\n vm.item.error = null;\r\n \r\n $scope.$apply();\r\n };\r\n\r\n // Get an instance of the routing service:\r\n var router = hplatform.getRoutingService();\r\n\r\n // Call calculateRoute() with the routing parameters,\r\n // the callback and an error callback function (called if a\r\n // communication error occurs):\r\n router.calculateRoute(routingParameters, onResult,\r\n function(error) {\r\n vm.item.Path = null;\r\n vm.item.error = 'Не удалось построить маршрут!'; \r\n $scope.$apply();\r\n });\r\n }\r\n\r\n function geocode(ll){\r\n var deferred = $q.defer(); \r\n $api.addresses.generate.get({lat: ll.lat, lng: ll.lng}, function (result){\r\n deferred.resolve(result); \r\n })\r\n\r\n return deferred.promise; \r\n } \r\n\r\n\r\n $scope.findRecomendedModel = function (){\r\n console.log('findRecomendedModel')\r\n if (vm.manualSet) return;\r\n $api.categories.model.save(vm.item, function(cat){\r\n console.log(cat);\r\n $scope.order.ModelId = cat.CatId;\r\n vm.recmendedCat = UTILS.getCategory(cat.CatId); \r\n $scope.order.modelIndex = $scope.models.indexOf(vm.recmendedCat); \r\n });\r\n }\r\n\r\n}\r\n\r\n /** @ngInject */\r\nfunction TimeSelectorController($scope,$resource,$timeout,$q,$api,$filter) {\r\n var vm = this;\r\n vm.hour = 10;\r\n vm.setTime = function () {\r\n vm.ngModel.setHours(vm.hour);\r\n vm.ngModel.setMinutes(0);\r\n console.log(vm.ngModel);\r\n }\r\n\r\n}\r\n\n /** @ngInject */\r\nfunction OrderCreateController($scope,$resource,$timeout,$q,$api,$filter,$rootScope,UTILS, APP_SETTINGS,$accountDialogs,$mdDialog,$state) { \r\n\r\n\tvar vm = this;\r\n\tvar Order = {\r\n //CategoryId: 2,\r\n ModelId: 206,\r\n Start: null,// moment().add(1, 'days').toDate(), \r\n Finish: null,// moment().add(2,'days').toDate(), \r\n Cash: false, \r\n StartPoint:{Address:''}, \r\n Delivery:{Address: ''},\r\n Properties: { Stuff: \"0\" } \r\n };\r\n\r\n\tvm.getResults = getResults;\r\n\tvm.getDetails = getDetails;\r\n \r\n \r\n\tconsole.log('create order controller');\r\n\r\n\tthis.$onInit = function(){\r\n\r\n\t\t$scope.order = angular.copy(Order);\r\n $scope.user = APP_SETTINGS.Profile || {};\r\n }\r\n\r\n $scope.isAuthenticated = function(){ return UTILS.isAuthenticated(); }\r\n\r\n $scope.startDateChange = function (){\r\n if ($scope.order.Finish || $scope.order.Start > $scope.order.Finish)\r\n $scope.order.Finish = $scope.order.Start;\r\n }\r\n\r\n $scope.placeSelectedFrom = function (place) { \r\n console.log(place);\r\n if (!place) return;\r\n var deferred = $q.defer(); \r\n\r\n return getDetails(place.locationId).then(function(details){\r\n console.log(details);\r\n $scope.order.StartPoint = details; \r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise; \r\n }\r\n\r\n $scope.placeSelectedTo = function (place) {\r\n console.log(place); \r\n if (!place) return;\r\n var deferred = $q.defer(); \r\n return getDetails(place.locationId).then(function(details){\r\n console.log(details);\r\n $scope.order.Delivery = details; \r\n deferred.resolve(); \r\n });\r\n return deferred.promise; \r\n }\r\n\r\n $scope.presEnter = function(id){\r\n var autoChild = document.getElementById(id).firstElementChild;\r\n var el = angular.element(autoChild);\r\n el.scope().$mdAutocompleteCtrl.hidden = true;\r\n };\r\n\r\n function getResults(query) {\r\n var deferred = $q.defer();\r\n var orderStart = $scope.order.StartPoint;\r\n var lat = orderStart ? orderStart.Lat : null;\r\n var lng = orderStart ? orderStart.Lng : null;\r\n $api.addresses.predictions.query({q: query, lat: lat, lng: lng}, function (results){\r\n console.log(results);\r\n angular.forEach(results, function(x){\r\n x.showAddress = (x.address.city || '');\r\n if (x.showAddress && x.showAddress.length > 0 && x.address.street)\r\n x.showAddress += ', ';\r\n if (x.address.street)\r\n x.showAddress += (x.address.street || '') + ' ' + (x.address.houseNumber || '')\r\n })\r\n console.log(results); \r\n deferred.resolve(results); \r\n }, function (error){\r\n deferred.reject(error);\r\n })\r\n return deferred.promise; \r\n };\r\n\r\n var getDetails = function(id) {\r\n var deferred = $q.defer();\r\n $api.addresses.location.get({hereid: id}, function (result){\r\n console.log(result);\r\n deferred.resolve(result); \r\n }, function (error){\r\n deferred.reject(error);\r\n })\r\n return deferred.promise; \r\n };\r\n\r\n function fillAddress(target, addr){\r\n target.Region = null; target.City = ''; target.Street = null; target.Country = null; target.Address = ''; target.House = null;\r\n\r\n angular.forEach(addr.address_components, function(c){\r\n console.log(c);\r\n if ($filter('filter')( c.types, function(type){ return type == 'country'; }).length > 0) {\r\n target.Country = c.long_name;\r\n target.CountryCode = c.short_name;\r\n vm.cityAutocompleteOptions = { componentRestrictions: { country : c.short_name }};\r\n }\r\n if ($filter('filter')( c.types, function(type){ return type == 'administrative_area_level_1' || type == 'administrative_area_level_2'; }).length > 0) \r\n target.Region = c.long_name; \r\n if ($filter('filter')( c.types, function(type){ return type == 'locality'; }).length > 0) \r\n target.City = c.long_name;\r\n if ($filter('filter')( c.types, function(type){ return type == 'street' || type == 'route'; }).length > 0)\r\n target.Street = c.long_name; \r\n if ($filter('filter')( c.types, function(type){ return type == 'street_number'; }).length > 0)\r\n target.House = c.long_name; \r\n });\r\n\r\n target.Lat = addr.geometry.location.lat();\r\n target.Lng = addr.geometry.location.lng(); \r\n\r\n if (target.City && target.City.length > 0)\r\n \ttarget.Address = target.City;\r\n if (target.Street && target.Street.length > 0) {\r\n \ttarget.Address += target.Address ? ', ' : '';\r\n \ttarget.Address += target.Street; \r\n }\r\n if (target.House && target.House.length > 0) {\r\n \ttarget.Address += target.Address ? ', ' : '';\r\n \ttarget.Address += target.House; \r\n }\r\n\r\n console.log(target);\r\n }\r\n\r\n var createUser = function () {\r\n var deferred = $q.defer(); \r\n\r\n console.log($scope.user); \r\n $scope.error = null;\r\n\r\n $api.users.create.save({}, {Type: 'Client', Email: $scope.user.Email, Password: $scope.user.Password, Name: $scope.user.Name, Phone: $scope.user.Phone }, \r\n function(user){\r\n console.log(user);\r\n $scope.user.Id = user.Id;\r\n APP_SETTINGS.Profile = user;\r\n $rootScope.profile = user;\r\n deferred.resolve(user);\r\n },\r\n function(error){\r\n console.log(error);\r\n $scope.error = error.data.Message; \r\n $rootScope.showToast($scope.error); \r\n deferred.reject(error); \r\n });\r\n\r\n return deferred.promise;\r\n } \r\n\r\n $scope.createOrder = function(){\r\n if (!UTILS.isAuthenticated())\r\n createUser() // Создаем пользователя\r\n .then(function(user){\r\n console.log(user); \r\n $scope.codeSended = true; \r\n }, function (error){\r\n $scope.error = error.data.Message; \r\n }) \r\n else \r\n $scope.finishOrder();\r\n }\r\n\r\n $scope.sendCode = function(){\r\n $api.users.code.get({code: $scope.user.Code }, function(result){\r\n console.log(result);\r\n $rootScope.showToast('Новый код выслан на Ваш телефон');\r\n },function(error){\r\n $scope.error = error.data.Message;\r\n console.log(error.data.Message);\r\n });\r\n } \r\n\r\n $scope.cancelCode = function (){\r\n $scope.codeSended = false;\r\n }\r\n\r\n $scope.confirmPhone = function(){\r\n $api.users.confirm.get({userId: $scope.user.Id, code: $scope.user.Code }, function(token){\r\n console.log(token);\r\n\r\n $rootScope.showToast('Номер телефона успешно подтвержден!');\r\n\r\n UTILS.setSession(token);\r\n $api.setup();\r\n\r\n $api.updateProfile();\r\n\r\n $scope.finishOrder();\r\n },\r\n function(error){\r\n $scope.error = 'Ошибка при подтверждении номера телефона : ' + error.data.Message;\r\n })\r\n }\r\n\r\n\r\n $scope.finishOrder = function(){\r\n console.log($scope.order);\r\n\r\n $api.saveOrUpdate($api.orders, $scope.order).then(\r\n function (order){\r\n //$rootScope.showBizon();\r\n $accountDialogs.message(\r\n {\r\n dialogTitle: 'Заказ на перевозку', \r\n mainMessage: 'Регистрация заказа завершена', \r\n descMessage: order.CategoryRateId ? \r\n 'Для того чтобы запустить заказ в работу Вам необходимо выбрать способ оплаты на странице заказа.' : \r\n 'Перевозчики уже видят Ваш заказ и в ближайшее время смогут предложить Вам свои услуги.',\r\n buttonText: 'ОК', \r\n buttonAction: function(){ \r\n $mdDialog.hide(); \r\n $state.go( 'app.client.orders.item', { orderId: order.Id, backState: 'app.client.myorders.active'} );\r\n vm.deferred.resolve(order);\r\n }\r\n }); \r\n },\r\n function (error){\r\n $rootScope.showToast( 'Ошибка при сохранении заказа на сервере: ' + error.data.Message );\r\n });\r\n } \r\n\r\n}\r\n\r\n /** @ngInject */\r\nfunction TimeSelectorController($scope,$resource,$timeout,$q,$api,$filter) {\r\n var vm = this;\r\n vm.hour = null;\r\n vm.setTime = function () {\r\n vm.ngModel.setHours(vm.hour);\r\n vm.ngModel.setMinutes(0);\r\n console.log(vm.ngModel);\r\n }\r\n\r\n}\r\n\n/** @ngInject */\r\nfunction OrderController($scope, APP_SETTINGS, $stateParams, $api, UTILS) {\r\n $scope.UTILS = UTILS;\r\n\tvar vm = this;\r\n\r\n \tthis.$onInit = function(){\r\n \t\t$scope.order = vm.item; \t \r\n \t\t$scope.categories = UTILS.getCategories(100);\r\n $scope.models = UTILS.getCategories(200);\r\n var catId = $scope.order.ModelId || 201;\r\n var cat = UTILS.getCategory(catId);\r\n $scope.order.modelIndex = $scope.models.indexOf(cat); \r\n $scope.order.TagsHash = {};\r\n angular.forEach($scope.order.Tags, function (tag){\r\n $scope.order.TagsHash[tag] = true;\r\n })\r\n \t}\r\n $scope.selectPrev = function(){\r\n vm.manualSet = true;\r\n $scope.order.modelIndex=$scope.order.modelIndex-1;\r\n vm.item.ModelId=$scope.models[$scope.order.modelIndex].CatId;\r\n }\r\n $scope.selectNext = function(){\r\n vm.manualSet = true;\r\n $scope.order.modelIndex=$scope.order.modelIndex+1;\r\n vm.item.ModelId=$scope.models[$scope.order.modelIndex].CatId;\r\n }\r\n\r\n $scope.findRecomendedModel = function (){\r\n console.log('findRecomendedModel')\r\n if (vm.manualSet) return;\r\n $api.categories.model.save(vm.item, function(cat){\r\n console.log(cat);\r\n $scope.order.ModelId = cat.CatId;\r\n vm.recmendedCat = UTILS.getCategory(cat.CatId); \r\n $scope.order.modelIndex = $scope.models.indexOf(vm.recmendedCat); \r\n });\r\n }\r\n\r\n $scope.selectModel = function(catId){\r\n $scope.order.ModelId = catId;\r\n var cat = UTILS.getCategory(catId)\r\n $scope.order.modelIndex = $scope.models.indexOf(cat); \r\n vm.selectModel = false; \r\n }\r\n\r\n $scope.setTag = function(tag, value){\r\n var ix = $scope.order.Tags.indexOf(tag);\r\n if (ix >= 0)\r\n $scope.order.Tags.splice(ix, 1);\r\n if ($scope.order.TagsHash[tag])\r\n $scope.order.Tags.push(tag); \r\n }\r\n}\r\n\r\n/** @ngInject */\r\nfunction CategoryController($scope, APP_SETTINGS, $stateParams, UTILS) {\r\n\tvar vm = this;\r\n\r\n \tthis.$onInit = function(){\r\n \t\t$scope.categories = UTILS.getCategories(100);\r\n \t}\r\n\r\n \t$scope.select = function (cat){\r\n \t\t$scope.selectedItem = cat;\r\n \t\tvm.item = cat.CatId;\r\n \t\tif (vm.selected)\r\n \t\t\tvm.selected(id);\r\n \t}\r\n}\r\n\r\n\r\n/** @ngInject */\r\nfunction StdOffersController($scope, $api, APP_SETTINGS, $stateParams, UTILS) {\r\n var vm = this;\r\n\r\n this.$onInit = function(){\r\n\r\n }\r\n\r\n\r\n $scope.select = function (offer){\r\n if ($scope.selectedItem != offer){\r\n $scope.selectedItem = offer;\r\n vm.item.CategoryRateId = offer.Id;\r\n }\r\n else {\r\n $scope.selectedItem = null;\r\n vm.item.CategoryRateId = null; \r\n }\r\n\r\n if (vm.selected)\r\n vm.selected(id);\r\n }\r\n $scope.$watch('vm.item.CategoryId', function(){\r\n if (vm.item && vm.item.StartPoint && vm.item.StartPoint.Lat && vm.item.Delivery && vm.item.Delivery.Lat)\r\n vm.result = $api.orders.stdoffers.save(vm.item)\r\n }); \r\n\r\n $scope.$watch('vm.item.StartPoint', function(){\r\n if (vm.item && vm.item.StartPoint && vm.item.StartPoint.Lat && vm.item.Delivery && vm.item.Delivery.Lat)\r\n vm.result = $api.orders.stdoffers.save(vm.item)\r\n }); \r\n \r\n $scope.$watch('vm.item.Delivery', function(){\r\n if (vm.item && vm.item.StartPoint && vm.item.StartPoint.Lat && vm.item.Delivery && vm.item.Delivery.Lat)\r\n vm.result = $api.orders.stdoffers.save(vm.item)\r\n }); \r\n}\r\n\r\n/** @ngInject */\r\nfunction OrderProcessController($scope){\r\n var vm = this;\r\n\r\n this.$onInit = function(){\r\n $scope.state = getState();\r\n } \r\n\r\n function getState(){\r\n switch (vm.item.State)\r\n {\r\n case 'Undefined':\r\n case 'OrderCreated': \r\n return 0;\r\n case 'WaitForPayment':\r\n return 1;\r\n case 'Loading':\r\n return 2;\r\n case 'InProcess':\r\n return 3;\r\n case 'Delivered' : \r\n case 'Confirmed' : \r\n case 'ConflictResolved' :\r\n return 4; \r\n case 'Closed' :\r\n return 6;\r\n case 'Conflict' :\r\n return 5; \r\n }\r\n return 0;\r\n }\r\n\r\n $scope.$watch('vm.item.State', function(){\r\n $scope.state = getState(); \r\n });\r\n}\r\n\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls')\r\n .component('orderCreate', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/order.new.html',\r\n controller: OrderCreateController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('ordersFilter', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n filter: '=',\r\n change: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/orders.filter.html',\r\n controller: function($scope, UTILS){ \r\n var s = this;\r\n $scope.UTILS = UTILS;\r\n s.clearStart = function(){ s.filter.StartFrom = null; $scope.start = null; s.change(s.filter); }\r\n },\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderCategory', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n selected: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/body.category.html',\r\n controller: CategoryController,\r\n controllerAs: 'vm'\r\n })\r\n .component('stdOffers', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n selected: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/body.offers.html',\r\n controller: StdOffersController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderRouteBlock', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/order.route.block.html',\r\n controller: OrderController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderBody', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/body.info.html',\r\n controller: OrderController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('modelSelector', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/model.selector.html',\r\n controller: OrderController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderBodyAdv', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/body.adv.html',\r\n controller: OrderController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderRoute', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/order.route.html',\r\n controller: OrderRouteController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderRouteNomap', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/order.route.nomap.html',\r\n controller: OrderRouteController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('routePlan', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/route.block.html',\r\n controller: OrderRouteController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('timeSelector', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n ngModel: '=',\r\n form: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/time.selector.html',\r\n controller: TimeSelectorController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('routePlanEdit', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/route.plan.html',\r\n controller: RoutePlanController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderProcess', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/order.process.html',\r\n controller: OrderProcessController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderBlock', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/order.block.html',\r\n controller: OrderController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderPay', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/order.pay.html',\r\n controller: OrderController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderStatusClient', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/status.client.html',\r\n controller: OrderStatusController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('orderStatusCarrier', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/status.carrier.html',\r\n controller: OrderStatusController,\r\n controllerAs: 'vm'\r\n }) \r\n\r\n})();\r\n\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls')\r\n .component('loginRegister', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/login.register.html',\r\n controller: function ($scope,UTILS){\r\n\r\n \r\n },\r\n controllerAs: 'vm'\r\n })\r\n\r\n})();\r\n\n/** @ngInject */\r\nfunction DocsController($files,$scope,$rootScope,$filter,UTILS) {\r\n var vm = this;\r\n\r\n this.$onInit = function() { \r\n if (vm.collectionId)\r\n {\r\n console.log(vm.collectionId);\r\n vm.collection = $files.getFilesCollection(vm.collectionId);\r\n }\r\n else {\r\n if (!vm.collection) \r\n vm.collection = { Assets: [] };\r\n if (!vm.collection.Assets)\r\n vm.collection.Assets = [];\r\n }\r\n $scope.docTypes = UTILS.getCategories(vm.categoryId);\r\n }\r\n\r\n vm.showWidget = true;\r\n\r\n vm.get = function (catId){\r\n var assets = $filter('filter')( vm.collection.Assets, function (a) { return UTILS.hasTag( a.Tags, catId.toString() ); } );\r\n return assets.length > 0 ? assets[0] : null;\r\n }\r\n\r\n vm.upload = function (files, catId) {\r\n\r\n if (files && files.length) { \r\n angular.forEach(files, function(file) {\r\n console.log(file);\r\n if (file.size > 5000000 || (file.type != 'application/pdf' && file.type != 'application/msword' && file.type != 'application/docx' && file.type.indexOf('image') < 0))\r\n {\r\n alert('Размер файла должен быть до 5Мб, а формат файла jpg, tiff, png, pdf, doc или docx');\r\n return;\r\n }\r\n $files.uploadFile(file).then(function(asset){\r\n console.log(asset);\r\n asset.Tags = [ catId.toString() ];\r\n vm.collection.Assets.push( asset ); \r\n $files.updateFilesCollection(vm.collection); \r\n $rootScope.showToast('Документ успешно загружен!');\r\n }); \r\n })\r\n if (vm.onChanged) \r\n vm.onChanged();\r\n }\r\n }\r\n\r\n vm.removeAsset = function (asset) {\r\n console.log(asset);\r\n var index = vm.collection.Assets.indexOf(asset);\r\n vm.collection.Assets.splice(index,1);\r\n $files.updateFilesCollection(vm.collection); \r\n }\r\n\r\n}\r\n\r\n/** @ngInject */\r\nfunction DocsCollectionController($files,$scope,$rootScope,$filter,UTILS) {\r\n\r\n var vm = this;\r\n\r\n this.$onInit = function() { \r\n $scope.docTypes = UTILS.getCategories(vm.categoryId);\r\n }\r\n\r\n vm.showWidget = true;\r\n\r\n vm.get = function (catId){\r\n var assets = $filter('filter')( vm.collection.Assets, function (a) { return UTILS.hasTag( a.Tags, catId.toString() ); } );\r\n return assets.length > 0 ? assets[0] : null;\r\n }\r\n\r\n vm.upload = function (files, catId) {\r\n\r\n if (files && files.length) { \r\n angular.forEach(files, function(file) {\r\n console.log(file);\r\n if (file.size > 5000000 || (file.type != 'application/pdf' && file.type != 'application/msword' && file.type != 'application/docx' && file.type.indexOf('image') < 0))\r\n {\r\n alert('Размер файла должен быть до 5Мб, а формат файла jpg, tiff, png, pdf, doc или docx');\r\n return;\r\n }\r\n $files.uploadFile(file).then(function(asset){\r\n console.log(asset);\r\n asset.Tags = [ catId.toString() ];\r\n vm.collection.Assets.push( asset ); \r\n $rootScope.showToast('Документ успешно загружен!');\r\n }); \r\n })\r\n if (vm.onChanged) \r\n vm.onChanged();\r\n }\r\n }\r\n\r\n vm.removeAsset = function (asset) {\r\n console.log(asset);\r\n var index = vm.collection.Assets.indexOf(asset);\r\n vm.collection.Assets.splice(index,1);\r\n }\r\n\r\n}\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls')\r\n .component('docs', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n collectionId: '=',\r\n categoryId: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/docs.html',\r\n controller: DocsController,\r\n controllerAs: 'vm'\r\n })\r\n .component('docsCollection', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n categoryId: '=', \r\n collection: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/docs.html',\r\n controller: DocsCollectionController,\r\n controllerAs: 'vm'\r\n })\r\n\r\n})();\r\n\n/** @ngInject */\r\nfunction ContactController($scope, $state, $api, $q, $filter, $stateParams,$rootScope, UTILS, APP_SETTINGS, $kladr) {\r\n\r\n var vm = this;\r\n\r\n this.$onInit = function() { \r\n console.log(vm.item);\r\n\r\n vm.item = vm.item; \r\n $scope.trimTel = $rootScope.trimTel;\r\n vm.itemCopy = angular.copy(vm.item);\r\n console.log(vm.itemCopy);\r\n $scope.today = new Date();\r\n $scope.register = vm.register || true;\r\n if (vm.item){\r\n vm.item.FIO = $scope.getFIO();\r\n vm.item.PrevPhone = vm.item.Phone; \r\n } \r\n $scope.params = APP_SETTINGS.Profile ? { email: APP_SETTINGS.Profile.Email, phone: APP_SETTINGS.Profile.Phone, oldPhone: APP_SETTINGS.Profile.Phone } : {}; \r\n };\r\n\r\n $scope.UTILS = UTILS; \r\n $scope.$kladr = $kladr;\r\n\r\n $scope.cancelChanges = function(){\r\n console.log('cancel changes')\r\n angular.copy(vm.itemCopy, vm.item );\r\n vm.item.edit = false;\r\n } \r\n\r\n var afterSuccessFn = null;\r\n\r\n var success = function(contact) { \r\n $scope.showToast( 'Данные обновлены' ); \r\n angular.copy(contact,vm.item);\r\n if (afterSuccessFn)\r\n afterSuccessFn(contact);\r\n }\r\n\r\n var error = function(error) { \r\n $scope.showError(error); \r\n }\r\n\r\n $scope.getFIO = function(){\r\n var fio = '';\r\n if (vm.item.FirstName)\r\n fio += vm.item.FirstName;\r\n if (vm.item.LastName) {\r\n if (fio.length > 0) fio += ' '; \r\n fio += vm.item.LastName;\r\n }\r\n if (vm.item.MiddleName) {\r\n if (fio.length > 0) fio += ' '; \r\n fio += vm.item.MiddleName;\r\n }\r\n return fio;\r\n }\r\n\r\n $scope.save = function(fn) { \r\n afterSuccessFn = fn;\r\n return ($stateParams.contactId == 'new' ? \r\n $api.contacts.post.save({}, vm.item, success) : \r\n $api.contacts.put.update({Id: vm.item.Id}, vm.item, success, error))\r\n } \r\n\r\n $scope.selectAddress = function(event){\r\n $usersui.selectAddressGoogle(event,vm.item.Address).then( function(addr){\r\n console.log(addr);\r\n vm.item.Address = addr;\r\n vm.item.AddressId = addr.Id;\r\n });\r\n } \r\n\r\n $scope.FIOSelected = function(){\r\n console.log($scope.fio);\r\n if (!$scope.fio) return;\r\n\r\n vm.item.FirstName = $scope.fio.data.name;\r\n vm.item.LastName = $scope.fio.data.surname;\r\n vm.item.MiddleName = $scope.fio.data.patronymic;\r\n }\r\n\r\n $scope.FIOChanged = function(){\r\n if (!vm.item.FIO) return;\r\n vm.item.FIO = vm.item.FIO.substring(0,40);\r\n var parts = vm.item.FIO.split(' ');\r\n console.log(parts);\r\n if (parts.length > 0)\r\n vm.item.LastName = parts[0]; \r\n if (parts.length > 1)\r\n vm.item.FirstName = parts[1]; \r\n if (parts.length > 2)\r\n vm.item.MiddleName = parts[2]; \r\n }\r\n\r\n $scope.innChanged = function (){\r\n vm.item.INN = vm.item.INN.replace(/\\D/g,'').substring(0,10);\r\n }\r\n $scope.bicChanged = function (){ \r\n vm.item.BIK = vm.item.BIK.replace(/\\D/g,'').substring(0,9);\r\n }\r\n $scope.innSelected = function(org){\r\n if (!org) return;\r\n\r\n vm.item.KPP = org.data.kpp;\r\n vm.item.OGRN = org.data.ogrn; \r\n vm.item.FullName = org.data.name.full_with_opf; \r\n vm.item.ShortName = org.data.name.short_with_opf; \r\n vm.item.Director = org.data.management.name; \r\n vm.item.LegalAddress = org.data.address.value;\r\n }\r\n\r\n $scope.bicSelected = function(bank){\r\n console.log(bank);\r\n if (!bank) return; \r\n vm.item.BankName = bank.data.name.payment;\r\n vm.item.BankBill = bank.data.correspondent_account; \r\n }\r\n\r\n $scope.changePassword = function (){\r\n $api.users.password.get($scope.params,function(){\r\n $rootScope.showToast('Пароль успешно изменен!');\r\n },\r\n function (error){\r\n console.log(error);\r\n $rootScope.showToast('Ошибка при изменении пароля!');\r\n })\r\n }\r\n\r\n $scope.changeEmail = function (){\r\n $api.users.email.get( {email: $scope.params.email, password: $scope.params.password },function(){\r\n $rootScope.showToast('Email успешно изменен!');\r\n },\r\n function (error){\r\n console.log(error);\r\n if (error.data.Message == 'The specified new email already exists')\r\n $rootScope.showToast('Такой email уже зарегистрирован в системе!'); \r\n else\r\n $rootScope.showToast('Ошибка при изменении email!');\r\n })\r\n } \r\n\r\n $scope.changePhone = function (){\r\n console.log($scope.params);\r\n $api.users.changephone.get({ phone: $scope.params.phone },function(){\r\n $scope.codeSended = true;\r\n },\r\n function (error){\r\n console.log(error);\r\n $rootScope.showToast('Ошибка при изменении номера телефона!');\r\n })\r\n } \r\n\r\n $scope.sendCode = function(){\r\n $api.users.confirm.get({userId: APP_SETTINGS.Profile.Id, code: $scope.params.code }, function(){\r\n $rootScope.showToast('Номер телефона успешно подтвержден!');\r\n $scope.verifiedPhone = true; \r\n $scope.codeSended = false;\r\n $api.updateProfile();\r\n $scope.params.oldPhone = $scope.params.phone; \r\n },\r\n function(error){\r\n $scope.errorMessage = 'Ошибка при подтверждении номера телефона : ' + error.data.Message;\r\n })\r\n } \r\n }\r\n\r\n\r\n\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls')\r\n .component('contactCarrier', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n register: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/contact.carrier.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('contact', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n register: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/contact.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n })\r\n .component('bankdetails', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/bankdetails.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n })\r\n .component('countryRegion', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '=',\r\n selected: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/country.region.html',\r\n controller: AddressController,\r\n controllerAs: 'vm'\r\n })\r\n .component('city', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/city.html',\r\n controller: AddressController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('private', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/private.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('teamcheck', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/checkteam.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('profileMain', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n register: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/contact.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n })\r\n .component('profileNotifications', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n register: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/profile.notifications.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('changePassword', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n register: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/change.password.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('changeEmail', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n register: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/change.email.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n }) \r\n .component('changePhone', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n register: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/change.phone.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n })\r\n .component('changeContacts', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '=',\r\n register: '=',\r\n form: '=' \r\n },\r\n templateUrl: 'app/main/apps/controls/views/change.contacts.html',\r\n controller: ContactController,\r\n controllerAs: 'vm'\r\n }) \r\n})();\r\n\n/** @ngInject */\r\nfunction ChatController($scope, $api, $rootScope, $timeout, $anchorScroll,$files,UTILS) {\r\n var vm = this;\r\n\r\n this.$onInit = function(){\r\n $scope.UTILS = UTILS;\r\n vm.message = {Id: vm.item.OrderId, to: vm.item.TeamId };\r\n $scope.loadCnt = 0;\r\n }\r\n\r\n $scope.isImage = function (asset){\r\n return asset.mimetype.indexOf('image') >= 0;\r\n }\r\n\r\n $scope.send = function() {\r\n if (vm.messageFiles && vm.messageFiles.length > 0){\r\n console.log('post file collection')\r\n $files.createFilesCollection({ Assets: vm.messageFiles } ).then(function (fc){\r\n console.log(fc);\r\n vm.message.AssetsId = fc.Id;\r\n vm.message.Assets = fc;\r\n $scope.sendMessage(); \r\n }); \r\n }\r\n else\r\n $scope.sendMessage();\r\n }\r\n\r\n $scope.sendMessage = function() {\r\n $api.orders.message.save(vm.message, function (msg) {\r\n vm.message.text = null; \r\n vm.message.AssetsId = null; \r\n vm.message.Assets = null;\r\n vm.messageFiles = []; \r\n if (vm.messages)\r\n vm.messages.value.push(msg); \r\n vm.item.Room.Last = msg;\r\n $rootScope.showToast('Сообщение успешно отправлено!'); \r\n })\r\n }\r\n\r\n $scope.uploadFiles = function(files,e) {\r\n vm.messageFiles = vm.messageFiles || [];\r\n if (e) e.preventDefault();\r\n console.log('upload files');\r\n\r\n if (!files || files.length == 0) return;\r\n\r\n $scope.loadCnt = files.length;\r\n angular.forEach(files, function (file){\r\n $files.uploadFile(file).then( function(asset) {\r\n vm.messageFiles.push(asset);\r\n $scope.loadCnt = $scope.loadCnt - 1;\r\n }, function(error){ \r\n $scope.loadCnt = $scope.loadCnt - 1;\r\n console.log('upload error'); \r\n alert(error.data.Message);\r\n });\r\n });\r\n } \r\n\r\n\r\n $scope.loadMessages = function(){ \r\n vm.messages = $api.events.list.get({OrderId: vm.item.OrderId, TeamId: vm.item.TeamId, Classes: 'Chat', \r\n $orderby: 'DT',\r\n $expand: 'User($select=Name),Assets($expand=Assets)'}); \r\n vm.messages.$promise.then(function(){ \r\n $timeout(function(){ $anchorScroll('anchorChatBottom'); },500); \r\n });\r\n }\r\n\r\n $scope.expand = function() {\r\n vm.chat = !vm.chat;\r\n if (vm.chat)\r\n $scope.loadMessages();\r\n else {\r\n vm.messages = null;\r\n $anchorScroll('clientChatMessages'); \r\n }\r\n }\r\n\r\n $scope.$on('NewEvent', function(e, event){\r\n console.log(event);\r\n \r\n if (event.Class == 'Chat' && event.RoomId == vm.item.RoomId) {\r\n console.log('new chat event');\r\n if (vm.chat) {\r\n vm.messages.value.push(event);\r\n $anchorScroll('clientChatMessages'); \r\n }\r\n vm.item.Room.Last = event;\r\n $api.events.read.get({Id:event.Id});\r\n }\r\n }); \r\n}\r\n\r\n/** @ngInject */\r\nfunction ClientPrivateChatController($scope, $api,$files, $rootScope,$timeout, $anchorScroll, UTILS) {\r\n var vm = this;\r\n\r\n this.$onInit = function(){\r\n $scope.UTILS = UTILS;\r\n vm.message = {Id: vm.item.OrderId, RoomId: vm.item.RoomId, to: vm.item.TeamId };\r\n $scope.expand();\r\n }\r\n\r\n $scope.isImage = function (asset){\r\n return asset.mimetype.indexOf('image') >= 0;\r\n }\r\n\r\n $scope.send = function() {\r\n if (vm.messageFiles && vm.messageFiles.length > 0){\r\n console.log('post file collection')\r\n $files.createFilesCollection({ Assets: vm.messageFiles } ).then(function (fc){\r\n console.log(fc);\r\n vm.message.AssetsId = fc.Id;\r\n vm.message.Assets = fc;\r\n $scope.sendMessage(); \r\n }); \r\n }\r\n else\r\n $scope.sendMessage();\r\n }\r\n\r\n $scope.sendMessage = function() { \r\n $api.orders.message.save(vm.message, function (msg) {\r\n vm.message.text = null; \r\n vm.message.AssetsId = null; \r\n vm.message.Assets = null;\r\n vm.messageFiles = [];\r\n if (vm.messages) {\r\n vm.messages.value.push(msg); \r\n $timeout(function(){ $anchorScroll('anchorChatBottom'); },500); \r\n }\r\n vm.item.Last = msg;\r\n $rootScope.showToast('Сообщение успешно отправлено!'); \r\n }, function(error){\r\n $rootScope.showToast('Ошибка при отправке сообщения : ' + error.data.Message );\r\n })\r\n }\r\n\r\n $scope.loadMessages = function(){\r\n $api.events.list.get({ RoomId: vm.item.Id, $orderby: 'DT', $expand: 'User($select=Name),Assets($expand=Assets)' },\r\n //$expand: 'User($expand=Contact($select=FirstName,LastName);$select=Contact)'},\r\n function(messages){ \r\n vm.messages = messages;\r\n $timeout(function(){ $anchorScroll('anchorChatBottom'); },500); \r\n angular.forEach(messages, function (m){ if (m.NewMessage) $api.events.read.get({Id:event.Id}); } ); \r\n }); \r\n }\r\n\r\n $scope.expand = function() {\r\n vm.chat = !vm.chat;\r\n if (vm.chat)\r\n $scope.loadMessages();\r\n else {\r\n vm.messages = null;\r\n $timeout(function(){ $anchorScroll('anchorChatBottom'); },500); \r\n }\r\n }\r\n\r\n $scope.uploadFiles = function(files,e) {\r\n vm.messageFiles = vm.messageFiles || [];\r\n if (e) e.preventDefault();\r\n console.log('upload files');\r\n\r\n if (!files || files.length == 0) return;\r\n\r\n angular.forEach(files, function (file){\r\n $files.uploadFile(file).then( function(asset) {\r\n vm.messageFiles.push(asset);\r\n }, function(error){ \r\n console.log('upload error'); \r\n });\r\n });\r\n } \r\n\r\n $scope.$on('NewEvent', function(e, event){\r\n if (event.Class == 'Chat' && event.RoomId == vm.item.RoomId) {\r\n console.log('new chat event');\r\n $api.events.get.get({Id: event.Id}, function (event){\r\n vm.messages.value.push(event);\r\n $timeout(function(){ $anchorScroll('anchorChatBottom'); },500); \r\n vm.item.Last = event;\r\n $api.events.read.get({Id:event.Id}); \r\n }); \r\n }\r\n }); \r\n}\r\n\r\n/** @ngInject */\r\nfunction CarrierPrivateChatController($scope, $rootScope, $timeout, $api,$files, $anchorScroll,$location,UTILS) {\r\n var vm = this;\r\n\r\n this.$onInit = function(){\r\n $scope.UTILS = UTILS;\r\n vm.message = {Id: vm.item.OrderId, RoomId: vm.item.RoomId, to: vm.item.TeamId };\r\n $scope.expand();\r\n }\r\n\r\n $scope.isImage = function (asset){\r\n return asset.mimetype.indexOf('image') >= 0;\r\n }\r\n\r\n $scope.uploadFiles = function(files,e) {\r\n vm.messageFiles = vm.messageFiles || [];\r\n if (e) e.preventDefault();\r\n console.log('upload files');\r\n\r\n if (!files || files.length == 0) return;\r\n\r\n angular.forEach(files, function (file){\r\n $files.uploadFile(file).then( function(asset) {\r\n vm.messageFiles.push(asset);\r\n }, function(error){ \r\n console.log('upload error'); \r\n });\r\n });\r\n }\r\n\r\n $scope.send = function() {\r\n if (vm.messageFiles && vm.messageFiles.length > 0){\r\n console.log('post file collection')\r\n $files.createFilesCollection({ Assets: vm.messageFiles } ).then(function (fc){\r\n console.log(fc);\r\n vm.message.AssetsId = fc.Id;\r\n vm.message.Assets = fc;\r\n $scope.sendMessage(); \r\n }); \r\n }\r\n else\r\n $scope.sendMessage();\r\n }\r\n\r\n $scope.sendMessage = function() { \r\n $api.orders.message.save(vm.message, function (msg) {\r\n vm.message.text = null; \r\n if (vm.messages) {\r\n vm.messages.value.push(msg); \r\n $timeout(function(){ $anchorScroll('anchorChatBottom'); },500); \r\n }\r\n vm.messageFiles = []; \r\n vm.item.Last = msg;\r\n $rootScope.showToast('Сообщение успешно отправлено!'); \r\n }, function(error){\r\n $rootScope.showToast('Ошибка при отправке сообщения : ' + error.data.Message );\r\n })\r\n }\r\n\r\n $scope.loadMessages = function(){\r\n $api.events.list.get({ RoomId: vm.item.Id, $orderby: 'DT', $expand: 'User($select=Name),Assets($expand=Assets)' },\r\n //$expand: 'User($expand=Contact($select=FirstName,LastName);$select=Contact)'},\r\n function(messages){ \r\n vm.messages = messages;\r\n $timeout(function(){ $anchorScroll('anchorChatBottom'); },500); \r\n angular.forEach(messages, function (m){ if (m.NewMessage) $api.events.read.get({Id:event.Id}); } ); \r\n }); \r\n }\r\n\r\n $scope.expand = function() {\r\n vm.chat = !vm.chat;\r\n if (vm.chat)\r\n $scope.loadMessages();\r\n else {\r\n vm.messages = null;\r\n $anchorScroll('anchorChatBottom'); \r\n }\r\n }\r\n\r\n $scope.$on('NewEvent', function(e, event){\r\n if (event.Class == 'Chat' && event.RoomId == vm.item.RoomId) {\r\n console.log('new chat event');\r\n $api.events.get.get({Id: event.Id}, function (event){\r\n vm.messages.value.push(event);\r\n $timeout(function(){ $anchorScroll('anchorChatBottom'); },500); \r\n vm.item.Last = event;\r\n $api.events.read.get({Id:event.Id}); \r\n }); \r\n }\r\n });\r\n\r\n}\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls')\r\n .component('clientChat', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/chat.client.html',\r\n controller: ChatController,\r\n controllerAs: 'vm'\r\n })\r\n .component('carrierChat', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/chat.client.html',\r\n controller: ChatController,\r\n controllerAs: 'vm'\r\n })\r\n .component('clientPrivateChat', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/chat.private.client.html',\r\n controller: ClientPrivateChatController,\r\n controllerAs: 'vm'\r\n })\r\n .component('carrierPrivateChat', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n item: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/chat.private.carrier.html',\r\n controller: CarrierPrivateChatController,\r\n controllerAs: 'vm'\r\n }) \r\n\r\n})();\r\n\n/** @ngInject */\r\nfunction CarrierController($files,$scope) {\r\n\r\n var vm = this;\r\n\r\n this.$onInit = function() { \r\n }\r\n\r\n}\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.controls')\r\n .component('carriersFilter', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n filter: '=',\r\n change: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/carriers.filter.html',\r\n controller: function($scope, UTILS){$scope.UTILS = UTILS;},\r\n controllerAs: 'vm'\r\n }) \r\n})();\r\n\n/** @ngInject */\r\nfunction AvatarController($files, $scope) \r\n{\r\n console.log('avatar controller');\r\n \r\n var vm = this;\r\n this.$onInit = function() \r\n { \r\n console.log(vm.asset);\r\n\r\n if (vm.assetId && !vm.asset) {\r\n vm.getFile(vm.assetId);\r\n } \r\n }\r\n\r\n $scope.$watch('vm.assetId', function(assetId) {\r\n if(vm.assetId) {\r\n vm.getFile(vm.assetId);\r\n }\r\n });\r\n\r\n vm.uploadFile = function(e, file) {\r\n if (e) e.preventDefault();\r\n console.log('upload file');\r\n console.log(file);\r\n if (!file || file.length == 0) return;\r\n if (file[0].size > 2048000)\r\n {\r\n alert('Размер файла должен быть до 2Мб');\r\n return;\r\n } \r\n $files.uploadFile(file).then( function(assets) {\r\n var asset = assets;\r\n vm.asset = asset; \r\n vm.assetId = asset.Id; \r\n vm.file = asset;\r\n if (vm.changed)\r\n vm.changed(vm.asset);\r\n }, function(error){ \r\n console.log('upload error'); \r\n });\r\n }\r\n\r\n vm.getFile = function(assetId) {\r\n vm.asset = $files.getFile(assetId);\r\n }\r\n}\n(function ()\r\n{\r\n 'use strict';\r\n console.log('avatar component')\r\n angular\r\n .module('app.controls')\r\n .component('avatar', \r\n {\r\n restrict: 'E',\r\n bindings: {\r\n //asset: '=',\r\n assetId: '=',\r\n changed: '='\r\n },\r\n templateUrl: 'app/main/apps/controls/views/avatar.html',\r\n controller: AvatarController,\r\n controllerAs: 'vm'\r\n })\r\n\r\n})();\r\n\n(function ()\r\n{\r\n \r\n 'use strict';\r\n\r\n angular\r\n .module('app.common', [ 'ngFileUpload', 'mdLightbox', 'SignalR' ] )\r\n .config(config)\r\n .run(run)\r\n .filter('moment', function () {\r\n return function (input, momentFn /*, param1, param2, ...param n */) {\r\n var args = Array.prototype.slice.call(arguments, 2),\r\n momentObj = moment(input);\r\n return momentObj[momentFn].apply(momentObj, args);\r\n };\r\n })\r\n .filter('zpad', function() {\r\n return function(input, n) {\r\n if(input === undefined)\r\n input = \"\"\r\n if(input.length >= n)\r\n return input\r\n var zeros = \"0\".repeat(n);\r\n return (zeros + input).slice(-1 * n)\r\n };\r\n }); \r\n\r\n /** @ngInject */\r\n function config() {\r\n }\r\n\r\n /** @ngInject */\r\n function run($api,$rootScope, $kladr,UTILS,ProjectHub) {\r\n $rootScope.$kladr = $kladr;\r\n ProjectHub.initialize();\r\n }\r\n\r\n})();\r\n\r\n/** @ngInject */\r\nfunction removeSpaces (e) {\r\n e.preventDefault();\r\n var pastedText = '';\r\n if (window.clipboardData && window.clipboardData.getData) { // IE\r\n pastedText = window.clipboardData.getData('Text');\r\n } else if (e.clipboardData && e.clipboardData.getData) {\r\n pastedText = e.clipboardData.getData('text/plain');\r\n }\r\n this.value = pastedText.replace(/\\D/g, '');\r\n}\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.common')\r\n\t\t.service( 'UTILS', UTILS )\r\n\t\t.filter('tel', function () {\r\n\t\t return function (tel) {\r\n\t\t return formatTel(tel);\r\n\t\t };\r\n\t\t})\r\n\t\t.filter(\"groupBy\",[\"$parse\",\"$filter\",function($parse,$filter){\r\n\t\t return function(array,groupByField,reverse){\r\n\t\t var result\t= [];\r\n\t\t var prev_item = null;\r\n\t\t var groupKey = false;\r\n\t\t var reverse = true;\r\n\t\t var filteredData = $filter('orderBy')(array,groupByField, true);\r\n\t\t for(var i=0;i 0) {\r\n\t \t\t\tvar index = this.categories.indexOf(categoriesList[0]);\r\n\t \t\t\tthis.categories.splice(index, 1); \t \t\t\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.updateCategory = function(cat) { \r\n\t\t\tvar categoriesList = $filter('filter')(this.categories, function(s){ return s.Id == cat.CatId; });\r\n\t\t\tif (categoriesList.length > 0) {\r\n\t\t\t\tangular.copy( cat, categoriesList[0] );\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tthis.categories.push(cat);\t\t\r\n\t\t}\r\n\t\tthis.userTypeText = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.userTypes, function(s){ return s.id == id || s.name==id; })[0].text;\r\n\t\t}\r\n\t\tthis.eventTypeText = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.eventTypes, function(s){ return s.id == id || s.name == id; })[0].text;\r\n\t\t}\r\n\t\tthis.eventClassText = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.eventClasses, function(s){ return s.id == id || s.name == id; })[0].text;\r\n\t\t}\r\n\t\tthis.userTypeName = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.usersTypes, function(s){ return s.id == id || s.name == id; })[0].name; \t\t\t\t\r\n\t\t}\t\r\n\t\tthis.userStatusText = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.userStatuses, function(s){ return s.id == id || s.name == id; })[0].text; \t\t\t\t\r\n\t\t}\t\r\n\t\tthis.userStatusStyle = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.userStatusStyles, function(s){ return s.id == id || s.name == id; })[0].styleAdmin; \t\t\t\t\r\n\t\t}\t\t\t\r\n\t\tthis.orderTypeText = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.orderTypes, function(s){ return s.id == id || s.name == id; })[0].text; \t\t\t\t\r\n\t\t}\t\t\t\r\n\t\tthis.orderStatusColor = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.orderStates, function(s){ return s.id == id || s.name == id; })[0].styleAdmin; \t\t\t\t\r\n\t\t}\t\t\t\r\n\t\tthis.orderStatusText = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.orderStates, function(s){ return s.id == id || s.name == id; })[0].text; \t\t\t\t\r\n\t\t}\t\r\n\t\tthis.teamTypeText = function(id) {\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.enums.teamTypes, function(s){ return s.id == id || s.name == id; })[0].text; \t\t\t\t\r\n\t\t}\r\n\t\tthis.get2 = function(name, id){\r\n\t\t\tvar result = null;\r\n\t\t\tangular.forEach( this.dics[name], function(group){\r\n\t\t\t\tif (result) return;\r\n\t\t\t\tvar res = $filter('filter')(group.Items, function(s){ return s.Id == id; }); \t\t\t\t\t\t\r\n\t\t\t\tif (res.length > 0) {\r\n\t\t\t\t\tresult = res[0];\r\n\t\t\t\t} \r\n\t\t\t})\r\n\t\t\treturn result;\r\n\t\t}\t\r\n\t\tthis.get = function(name,id){\r\n\t\t\tif (id==null || id===undefined) return '-';\r\n\t\t\treturn $filter('filter')(this.dics[name], function(s){ \t\t\t\r\n\t\t\t\treturn s.Id == id; \r\n\t\t\t})[0]; \t\t\t\t\t\t\r\n\t\t}\r\n\t\tthis.all = function(name){\r\n\t\t\treturn this.dics[name]; \r\n\t\t}\t\r\n\t\tthis.objects = function(orgid){\r\n\t\t\tif (orgid==null || orgid===undefined) return [];\r\n\t\t\treturn $filter('filter')(this.objects, function(s){ return s.OrgId == orgid; });\r\n\t\t}\t\r\n\t\tthis.getUnits = function(objid){\r\n\t\t\tconsole.log('get units ' + objid);\r\n\t\t\tif (objid==null || objid===undefined) return [];\r\n\t\t\treturn $filter('filter')(this.units, function(s){ return s.ObjId == objid; });\t\t\r\n\t\t}\r\n\t\tthis.getUnit = function(id){\r\n\t\t\treturn $filter('filter')(this.units, function(s){ return s.Id == id; })[0];\t\t\r\n\t\t}\r\n\t\tthis.ready = function(){\r\n\t\t\treturn this.classes.length > 0 && this.marks.length > 0 && this.units.length > 0 && this.objects.length > 0;\r\n\t\t}\r\n\r\n\t this.isAuthenticated = function () {\r\n\t \tif (!this.hasSavedSession() || APP_SETTINGS.ContinueRegistration) return false;\r\n\r\n\t \tvar token = localStorageService.get('token');\r\n\t \tvar exp = localStorageService.get('token_expires_at');\r\n\t \tif (!token || !exp) return false;\r\n\r\n\t \t//console.log('check token')\r\n\t\t var expiresAt = JSON.parse(exp);\r\n\t\t return new Date().getTime() < expiresAt;\r\n\t }\t\r\n\t this.tokenExpired = function () {\r\n\t \tif (!this.hasSavedSession()) return false;\r\n\r\n\t \tvar token = localStorageService.get('token');\r\n\t \tvar exp = localStorageService.get('token_expires_at');\r\n\t \tif (!token || !exp) return true;\r\n\r\n\t\t var expiresAt = JSON.parse(exp);\r\n\t\t return new Date().getTime() + 600000 > expiresAt;\r\n\t }\t \r\n\t this.profile = function() {\r\n\t \treturn APP_SETTINGS.Profile;\r\n\t }\r\n\t this.userId = function () {\r\n\t \tvar profile = APP_SETTINGS.Profile;\r\n\t \tif (!profile || APP_SETTINGS.ContinueRegistration) return null;\t \t\r\n\t\t return profile.Id;\r\n\t }\t\t \r\n\t this.teamId = function () {\r\n\t \tvar profile = APP_SETTINGS.Profile;\r\n\t \tif (!profile || APP_SETTINGS.ContinueRegistration) return null;\t \t\r\n\t\t return profile.TeamId;\r\n\t }\t\t \r\n\t this.isAdmin = function () {\r\n\t \tvar profile = APP_SETTINGS.Profile;\r\n\t \tif (!profile || APP_SETTINGS.ContinueRegistration) return false;\t \t\r\n\t\t return profile.Type == \"SystemAdministrator\" || profile.Type == \"Administrator\";\r\n\t }\t\r\n\t this.isDoer = function () {\r\n\t \tvar profile = APP_SETTINGS.Profile;\r\n\t \tif (!profile || APP_SETTINGS.ContinueRegistration) return false;\t \t\r\n\t\t return profile.Type == \"Doer\";\r\n\t }\t \r\n\t this.isClient = function () {\r\n\t \tvar profile = APP_SETTINGS.Profile;\r\n\t \tif (!profile || APP_SETTINGS.ContinueRegistration) return false;\t \t\r\n\t\t return profile.Type == \"Client\";\r\n\t }\t \t \r\n\t this.isSuperAdmin = function () {\r\n\t \tvar profile = APP_SETTINGS.Profile;\r\n\t \tif (!profile) return false;\r\n\t\t return profile.Type == \"SystemAdministrator\";\r\n\t }\t\r\n\r\n\t this.hasSavedSession = function(){\r\n\t \tvar token = localStorageService.get('token');\r\n\t \tvar exp = localStorageService.get('token_expires_at');\r\n\r\n\t \tif (!token || !exp) return false;\r\n\r\n\t \treturn true;\t \t\r\n\t }\t\r\n\r\n\t this.logout = function () {\r\n\t // Remove tokens and expiry time from localStorage\r\n\t localStorageService.remove('profile');\t \r\n\t localStorageService.remove('token');\r\n\t localStorageService.remove('id_token');\r\n\t localStorageService.remove('refresh_token');\t \r\n\t localStorageService.remove('token_expires_at');\r\n\t APP_SETTINGS.Profile = null;\r\n\t $rootScope.profile = null;\r\n\t } \r\n\r\n\t this.setSession = function (authResult) {\r\n\t console.log('save session ' + authResult.expiresIn )\r\n\t console.log(authResult);\r\n\t // Set the time that the access token will expire at\r\n\t var expiresAt = JSON.stringify(((authResult.expiresIn || authResult.expires_in) * 1000) + new Date().getTime());\r\n\t console.log(expiresAt);\r\n\t localStorageService.set('token', authResult.accessToken || authResult.access_token );\r\n\t localStorageService.set('id_token', authResult.idToken);\r\n\t localStorageService.set('refresh_token', authResult.refresh_token);\t \r\n\t localStorageService.set('token_expires_at', expiresAt);\r\n\r\n\t console.log(localStorageService.get('token_expires_at'));\r\n\t } \r\n\r\n\t this.hasTag = function (tags, tag){\r\n\t \tif (!tags) return false;\r\n\t \treturn $filter('filter')(tags, function(t) { return t == tag || t == tag.toString(); }).length > 0;\r\n\t }\r\n\r\n\t this.ratingColor = function (v){\r\n\t \t if (v > 4 && v <=5) return '#86D94B';\r\n\t \t if (v > 3 && v <=4) return '#FFB753';\r\n\t \t return '#D94B4B';\t \t \r\n\t }\r\n\r\n\r\n\t $rootScope.trimTel = trimTel;\r\n\t $rootScope.numEnd = getNumEnding;\r\n\r\n\t}\r\n /** @ngInject */\r\n\tfunction trimTel(tel) {\r\n\t if (!tel) { return null; }\r\n\t var t = tel.toString().trim().replace(/\\D/g, '').replace(/^8/, '');\r\n\t if (t.length > 10)\r\n\t t = t.replace(/^7/, '');\r\n\t return t;\r\n\t}\r\n\t\r\n /** @ngInject */\r\n\tfunction formatTel(tel)\r\n\t{\r\n\t if (!tel) { return ''; }\r\n\r\n\t var value = trimTel(tel);\r\n\r\n\t /*if (value.match(/[^0-9]/)) {\r\n\t return tel;\r\n\t }*/\r\n\r\n\t var country, city, number;\r\n\r\n\t switch (value.length) {\r\n\t case 7: // +1PPP####### -> C (PPP) ###-####\r\n\t country = null;\r\n\t city = null;\r\n\t number = value;\r\n\t break;\r\n\r\n\t case 10: // +1PPP####### -> C (PPP) ###-####\r\n\t country = 7;\r\n\t city = value.slice(0, 3);\r\n\t number = value.slice(3);\r\n\t break;\r\n\r\n\t case 11: // +CPPP####### -> CCC (PP) ###-####\r\n\t country = value[0];\r\n\t city = value.slice(1, 4);\r\n\t number = value.slice(4);\r\n\t break;\r\n\r\n\t case 12: // +CCCPP####### -> CCC (PP) ###-####\r\n\t country = value.slice(0, 3);\r\n\t city = value.slice(3, 5);\r\n\t number = value.slice(5);\r\n\t break;\r\n\r\n\t default:\r\n\t return tel;\r\n\t }\r\n\r\n\t number = number.slice(0, 3) + '-' + number.slice(3, 5) + \"-\" + number.slice(5);\r\n\t if (country && city)\r\n\t return (\"+\" + country + \" (\" + city + \") \" + number).trim();\r\n\t else\r\n\t return number.trim();\r\n\t}\r\n\r\n /** @ngInject */\r\n\tfunction getNumEnding(iNumber, aEndings)\r\n\t{\r\n\t var sEnding, i;\r\n\t if (iNumber == 0) return oEndings[5] || '-';\r\n\t iNumber = iNumber % 100;\r\n\t if (iNumber>=11 && iNumber<=19) {\r\n\t sEnding=aEndings[2];\r\n\t }\r\n\t else {\r\n\t i = iNumber % 10;\r\n\t switch (i)\r\n\t {\r\n\t case (1): sEnding = aEndings[0]; break;\r\n\t case (2):\r\n\t case (3):\r\n\t case (4): sEnding = aEndings[1]; break;\r\n\t default: sEnding = aEndings[2];\r\n\t }\r\n\t }\r\n\t return sEnding;\r\n\t}\t\r\n\r\n})();\n(function() {\r\n\r\n 'use strict';\r\n console.log('run angular')\r\n var initInjector = angular.injector(['ng']);\r\n var $http = initInjector.get('$http');\r\n $http.get('/config.json').then(\r\n function (response) {\r\n\r\n angular\r\n .module('app.common')\r\n .constant('APP_SETTINGS', \r\n {\r\n Profile: null,\r\n project: response.data.project,\r\n auth: response.data.auth,\r\n baseUrl: response.data.baseUrl,\r\n apiVer : response.data.apiVer,\r\n dtOptions: {\r\n dom : 'rt<\"bottom\"<\"left\"<\"length\"l>><\"right\"<\"info\"i><\"pagination\"p>>>',\r\n pagingType: 'simple',\r\n pageLength: 20,\r\n lengthMenu : [10, 20, 30, 50, 100], \r\n paging: false,\r\n searching: false,\r\n autoWidth: true,\r\n responsive: true,\r\n scrollY: 'auto', \r\n language: {\r\n search: 'Поиск',\r\n paginate: {\r\n previous: '<',\r\n next: \">\"\r\n },\r\n emptyTable: \"Данные отсутствуют в таблице\",\r\n info: \"Загружено записей: _TOTAL_\",\r\n lengthMenu: 'Показывать ' + \r\n ' записей'\r\n }\r\n },\r\n taOptions: { \r\n toolbar: [\r\n ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre', 'quote'],\r\n ['bold', 'italics', 'underline', 'strikeThrough', 'ul', 'ol', 'redo', 'undo', 'clear'],\r\n ['justifyLeft', 'justifyCenter', 'justifyRight', 'indent', 'outdent'],\r\n ['html', 'insertImage','insertLink', 'insertVideo', 'wordcount', 'charcount']\r\n ]\r\n }\r\n }) \r\n angular.module('config', []).constant('CONFIG', response.data);\r\n\r\n angular.element(document).ready(function() {\r\n angular.bootstrap(document, ['fuse']);\r\n });\r\n }\r\n );\r\n\r\n})();\nfunction beep() {\r\n var snd = new Audio(\"data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=\"); \r\n snd.play();\r\n}\r\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.common')\r\n .service( 'ProjectHub', HubService );\r\n\r\n /** @ngInject */\r\n function HubService ($rootScope, APP_SETTINGS, Hub, $timeout, localStorageService, $mdToast, PannelData, UTILS, $api) {\r\n var s = this;\r\n var _hub = null;\r\n\r\n this.initialize = function () {\r\n console.log('ProjectHub initialize');\r\n $rootScope.connectionOk = false;\r\n\r\n s.createHub();\r\n s._connect();\r\n };\r\n\r\n this._connect = function(){\r\n\r\n s._hub.connection.start()\r\n .done(function () {\r\n console.log('connected!');\r\n if (UTILS.isAuthenticated())\r\n $api.updateProfile(); \r\n })\r\n .fail(function (reason) {\r\n $timeout(function () {\r\n s._hubDisconnected();\r\n }, 10000);\r\n\r\n });\r\n }\r\n\r\n this._hubDisconnected = function () {\r\n console.log('hubDisconnected');\r\n if (s._hub && s._hub.connection.lastError) \r\n s._connect();\r\n }\r\n\r\n this.createHub = function(){\r\n $.signalR.ajaxDefaults.headers = { Authorization: \"Bearer \" + localStorageService.get('token') };\r\n //$.connection.hub.qs = { Bearer: localStorageService.get('token') };\r\n\r\n s._hub = new Hub('projecthub', {\r\n //client side methods\r\n listeners: {\r\n 'NewEvent': function (_event) {\r\n console.log('NewEvent');\r\n beep(); \r\n $timeout( function (){ \r\n if (_event.Class == \"User\" && _event.Type == \"Updated\") \r\n $api.updateProfile();\r\n else {\r\n $api.events.get.get({Id: _event.Id}, function (e){\r\n PannelData.NewEvent(e);\r\n }) \r\n }\r\n\r\n $rootScope.$broadcast( 'NewEvent', _event ); \r\n },100)\r\n }\r\n },\r\n\r\n //server side methods\r\n methods: ['JoinUser', 'UnjoinUser'],\r\n\r\n //query params sent on initial connection\r\n queryParams: { Bearer: localStorageService.get('token') },\r\n\r\n tokenHeader: { Bearer: localStorageService.get('token') },\r\n\r\n //handle connection error\r\n errorHandler: function (error) {\r\n console.error(error);\r\n if (UTILS.isAuthenticated()) \r\n $timeout(function () {\r\n s._hubDisconnected();\r\n }, 10000); \r\n },\r\n stateChanged: function(state){\r\n console.log( 'hub state is ' + state.newState );\r\n switch (state.newState) {\r\n case $.signalR.connectionState.connecting:\r\n //your code here\r\n break;\r\n case $.signalR.connectionState.connected:\r\n if (s._hub && UTILS.isAuthenticated()) \r\n {\r\n $rootScope.connectionOk = true;\r\n $rootScope.showToast('Подключились к сервису')\r\n $timeout(s.joinUser, 100);\r\n }\r\n break;\r\n case $.signalR.connectionState.reconnecting:\r\n //your code here\r\n break;\r\n case $.signalR.connectionState.disconnected:\r\n //your code hered assd fasdf\r\n $rootScope.showToast('Подключючение к сервису потеряно!')\r\n $timeout(s._connect, 10000); \r\n break;\r\n }\r\n }, \r\n rootPath: APP_SETTINGS.baseUrl+'signalr',\r\n transport: ['webSockets', 'longPolling'],\r\n useSharedConnection: true,\r\n hubDisconnected: s._hubDisconnected\r\n });\r\n }\r\n\r\n this.joinUser = function(){\r\n console.log('Join User');\r\n s._hub.JoinUser(UTILS.userId()); \r\n $timeout(PannelData.Load, 1000);\r\n }\r\n\r\n this.unjoinUser = function(){\r\n console.log('Unjoin User');\r\n try {\r\n s._hub.UnjoinUser(UTILS.userId());\r\n }\r\n catch(e){ console.log(e);}\r\n }\r\n\r\n this.disconnect = function(){\r\n //declaring the hub connection\r\n try { if (_hub != null) \r\n _hub.connection.stop()\r\n //_hub.disconnect();\r\n } catch (e)\r\n { }\r\n }\r\n\r\n return s;\r\n }\r\n\r\n})();\r\n\n//! moment.js locale configuration\r\n//! locale : Russian [ru]\r\n//! author : Viktorminator : https://github.com/Viktorminator\r\n//! Author : Menelion Elensúle : https://github.com/Oire\r\n//! author : Коренберг Марк : https://github.com/socketpair\r\n\r\n;(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined'\r\n && typeof require === 'function' ? factory(require('../moment')) :\r\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\r\n factory(global.moment)\r\n}(this, (function (moment) { 'use strict';\r\n\r\n\r\nfunction plural(word, num) {\r\n var forms = word.split('_');\r\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\r\n}\r\nfunction relativeTimeWithPlural(number, withoutSuffix, key) {\r\n var format = {\r\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\r\n 'hh': 'час_часа_часов',\r\n 'dd': 'день_дня_дней',\r\n 'MM': 'месяц_месяца_месяцев',\r\n 'yy': 'год_года_лет'\r\n };\r\n if (key === 'm') {\r\n return withoutSuffix ? 'минута' : 'минуту';\r\n }\r\n else {\r\n return number + ' ' + plural(format[key], +number);\r\n }\r\n}\r\nvar monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\r\n\r\n// http://new.gramota.ru/spravka/rules/139-prop : § 103\r\n// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\r\n// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\r\nvar ru = moment.defineLocale('ru', {\r\n months : {\r\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\r\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\r\n },\r\n monthsShort : {\r\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\r\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\r\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\r\n },\r\n weekdays : {\r\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\r\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\r\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\r\n },\r\n weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\r\n weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\r\n monthsParse : monthsParse,\r\n longMonthsParse : monthsParse,\r\n shortMonthsParse : monthsParse,\r\n\r\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\r\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\r\n\r\n // копия предыдущего\r\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\r\n\r\n // полные названия с падежами\r\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\r\n\r\n // Выражение, которое соотвествует только сокращённым формам\r\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\r\n longDateFormat : {\r\n LT : 'HH:mm',\r\n LTS : 'HH:mm:ss',\r\n L : 'DD.MM.YYYY',\r\n LL : 'D MMMM YYYY г.',\r\n LLL : 'D MMMM YYYY г., HH:mm',\r\n LLLL : 'dddd, D MMMM YYYY г., HH:mm'\r\n },\r\n calendar : {\r\n sameDay: '[Сегодня в] LT',\r\n nextDay: '[Завтра в] LT',\r\n lastDay: '[Вчера в] LT',\r\n nextWeek: function (now) {\r\n if (now.week() !== this.week()) {\r\n switch (this.day()) {\r\n case 0:\r\n return '[В следующее] dddd [в] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n return '[В следующий] dddd [в] LT';\r\n case 3:\r\n case 5:\r\n case 6:\r\n return '[В следующую] dddd [в] LT';\r\n }\r\n } else {\r\n if (this.day() === 2) {\r\n return '[Во] dddd [в] LT';\r\n } else {\r\n return '[В] dddd [в] LT';\r\n }\r\n }\r\n },\r\n lastWeek: function (now) {\r\n if (now.week() !== this.week()) {\r\n switch (this.day()) {\r\n case 0:\r\n return '[В прошлое] dddd [в] LT';\r\n case 1:\r\n case 2:\r\n case 4:\r\n return '[В прошлый] dddd [в] LT';\r\n case 3:\r\n case 5:\r\n case 6:\r\n return '[В прошлую] dddd [в] LT';\r\n }\r\n } else {\r\n if (this.day() === 2) {\r\n return '[Во] dddd [в] LT';\r\n } else {\r\n return '[В] dddd [в] LT';\r\n }\r\n }\r\n },\r\n sameElse: 'L'\r\n },\r\n relativeTime : {\r\n future : 'через %s',\r\n past : '%s назад',\r\n s : 'несколько секунд',\r\n m : relativeTimeWithPlural,\r\n mm : relativeTimeWithPlural,\r\n h : 'час',\r\n hh : relativeTimeWithPlural,\r\n d : 'день',\r\n dd : relativeTimeWithPlural,\r\n M : 'месяц',\r\n MM : relativeTimeWithPlural,\r\n y : 'год',\r\n yy : relativeTimeWithPlural\r\n },\r\n meridiemParse: /ночи|утра|дня|вечера/i,\r\n isPM : function (input) {\r\n return /^(дня|вечера)$/.test(input);\r\n },\r\n meridiem : function (hour, minute, isLower) {\r\n if (hour < 4) {\r\n return 'ночи';\r\n } else if (hour < 12) {\r\n return 'утра';\r\n } else if (hour < 17) {\r\n return 'дня';\r\n } else {\r\n return 'вечера';\r\n }\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\r\n ordinal: function (number, period) {\r\n switch (period) {\r\n case 'M':\r\n case 'd':\r\n case 'DDD':\r\n return number + '-й';\r\n case 'D':\r\n return number + '-го';\r\n case 'w':\r\n case 'W':\r\n return number + '-я';\r\n default:\r\n return number;\r\n }\r\n },\r\n week : {\r\n dow : 1, // Monday is the first day of the week.\r\n doy : 4 // The week that contains Jan 4th is the first week of the year.\r\n }\r\n});\r\n\r\nreturn ru;\r\n\r\n})));\n(function ()\r\n{\r\n \r\n 'use strict';\r\n\r\n angular.module('mdLightbox', ['ngMaterial'])\r\n .directive('mdLightbox', ['$mdDialog', function($mdDialog){\r\n return {\r\n link: function($scope, elem, attrs){\r\n\r\n elem.addClass('image-click');\r\n\r\n elem.on('click',function(){ \r\n var image = attrs.src;\r\n var title = attrs.mdLightboxTitle;\r\n showLightboxModal(image, title);\r\n \r\n });\r\n\r\n //Lightbox Modal\r\n function showLightboxModal(image, title) {\r\n var confirm = $mdDialog.confirm({\r\n templateUrl: 'app/common/screenshot.html',\r\n clickOutsideToClose: true,\r\n controller: lightboxController\r\n });\r\n\r\n $mdDialog.show(confirm);\r\n\r\n function lightboxController($scope, $mdDialog) {\r\n $scope.image = image;\r\n $scope.title = title;\r\n\r\n $scope.cancel = function() {\r\n $mdDialog.cancel();\r\n };\r\n\r\n }\r\n\r\n } \r\n }\r\n }\r\n }]);\r\n\r\n\r\n})();\n \r\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.common')\r\n .factory('$kladr', KladrService )\r\n \r\n /** @ngInject */\r\n function KladrService ($q, $http, $filter) {\r\n var s = this;\r\n s.search = search;\r\n s.addressString = addressString;\r\n s.updateAddress = updateAddress;\r\n s.route = route;\r\n s.getPart = getPart;\r\n s.dadata = dadata;\r\n\r\n function search(parameters) {\r\n\r\n var deferred = $q.defer();\r\n\r\n var requestOptions = {\r\n 'method' : 'JSONP',\r\n 'url' : 'http://kladr-api.ru/api.php?callback=JSON_CALLBACK',\r\n 'params' : angular.extend( parameters, {limit : 25 } )\r\n };\r\n\r\n $http(requestOptions)\r\n .then(function(resp) {\r\n console.log(resp);\r\n if (resp.data.result)\r\n deferred.resolve(resp.data.result)\r\n else\r\n deferred.resolve([]);\r\n })\r\n .catch(function(error) {\r\n deferred.reject([])\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n function addressString(item){\r\n var addr = '';\r\n\r\n var parts = [ \r\n getPart('region', item ),\r\n getPart('city', item ) == getPart('region', item ) ? null : getPart('city', item ),\r\n getPart('street', item )\r\n ];\r\n\r\n addr = $filter('filter')( parts, function(p){ return p != null; }).join(', ');\r\n var b = getPart( 'building', item );\r\n if (b)\r\n addr += ' ' + b;\r\n\r\n return addr;\r\n }\r\n\r\n function getPart(type,item) {\r\n var addr = '';\r\n if (item.contentType == type)\r\n return type != 'building' ? item.typeShort + '. ' + item.name : item.name;\r\n var parents = item.parents; \r\n if (parents)\r\n for (var i = 0; i < parents.length; i++) {\r\n var p = parents[i];\r\n if (p.contentType == type){\r\n var part = type != 'building' ? p.typeShort + '. ' + p.name : p.name;\r\n return part;\r\n }\r\n }\r\n return null;\r\n } \r\n\r\n function updateAddress(addr,item){\r\n addr.House = getPart('building', item);\r\n addr.Street = getPart('street', item); \r\n addr.Region = getPart('region', item); \r\n addr.City = getPart('city', item);\r\n }\r\n\r\n function route (from, to){\r\n return ymaps.route([\r\n from,\r\n to\r\n ]).then(function (route) {\r\n console.log(route); \r\n return route;\r\n });\r\n }\r\n\r\n function dadata(type, query) {\r\n return $http({\r\n method: 'POST',\r\n url: 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/' + type,\r\n headers: {\r\n 'Content-Type': \"application/json\",\r\n 'Accept': \"application/json\",\r\n 'Authorization': \"Token da8189ecd2e43a2a316a651ac74dbda2d2e7d36f\"\r\n },\r\n data: {\r\n \"query\": query\r\n },\r\n timeout: 30000,\r\n cache: false\r\n })\r\n .then(\r\n function (data, status, headers, config) {\r\n console.log(data);\r\n return data;\r\n },\r\n function (data, status) {\r\n console.error(status, data);\r\n return { data: {suggestions:[]}};\r\n })\r\n .then(function (response) {\r\n return response.data.suggestions;\r\n });\r\n } \r\n\r\n return s;\r\n }\r\n\r\n})();\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.common')\r\n .service( '$files', FilesService );\r\n\r\n /** @ngInject */\r\n function FilesService($q, $http, $resource, Upload, APP_SETTINGS) {\r\n\r\n var _filesCollection = {};\r\n\r\n var GetFile = $resource(APP_SETTINGS['baseUrl'] + APP_SETTINGS.apiVer + 'files/get/:Id', {\r\n Id: '@Id'\r\n });\r\n var DeleteFile = $resource(APP_SETTINGS['baseUrl'] + APP_SETTINGS.apiVer + 'files/delete/:Id', {\r\n Id: '@Id'\r\n });\r\n\r\n var PostFCollection = $resource(APP_SETTINGS['baseUrl'] + APP_SETTINGS.apiVer + 'filescollection/post/:Id', {\r\n Id: '@Id'\r\n }, {\r\n 'update': {\r\n method: 'PUT'\r\n }\r\n });\r\n\r\n\r\n var PutFCollection = $resource(APP_SETTINGS['baseUrl'] + APP_SETTINGS.apiVer + 'filescollection/put/:Id', {\r\n Id: '@Id'\r\n }, {\r\n 'update': {\r\n method: 'PUT'\r\n }\r\n });\r\n\r\n var GetFCollection = $resource(APP_SETTINGS['baseUrl'] + APP_SETTINGS.apiVer + 'filescollection/get/:Id', {\r\n Id: '@Id'\r\n }, {\r\n 'update': {\r\n method: 'PUT'\r\n }\r\n });\r\n\r\n this.uploadFile = uploadFile;\r\n this.removeFile = removeFile;\r\n this.getFile = getFile;\r\n\r\n this.getFilesCollection = getFilesCollection;\r\n this.uploadFileInCollection = uploadFileInCollection;\r\n this.removeFileFromCollection = removeFileFromCollection;\r\n this.updateFilesCollection = updateCollection;\r\n this.createFilesCollection = createCollection; \r\n\r\n function getFile(fileId) {\r\n return GetFile.get({\r\n Id: fileId\r\n });\r\n }\r\n\r\n function uploadFile(file) {\r\n\r\n var deferred = $q.defer();\r\n console.log(file);\r\n Upload\r\n .upload({\r\n url: APP_SETTINGS['baseUrl'] + APP_SETTINGS.apiVer + 'files/upload',\r\n file: file\r\n }).then(\r\n function(result) {\r\n console.log(result);\r\n deferred.resolve(result.data[0]);\r\n },\r\n function(error) {\r\n deferred.reject(error);\r\n });\r\n\r\n return deferred.promise;\r\n }\r\n\r\n function updateCollection(collection, fn1, fn2){\r\n console.log(collection);\r\n PutFCollection.update({Id: collection.Id}, collection, fn1, fn2);\r\n }\r\n\r\n function createCollection(collection, fn1, fn2){\r\n console.log(collection);\r\n return PostFCollection.save({}, collection, fn1, fn2).$promise;\r\n } \r\n\r\n function removeFile(file, fn1, fn2) {\r\n\r\n var result = DeleteFile.remove({\r\n Id: file['Id']\r\n }, fn1, fn2 )\r\n\r\n result\r\n .then(function(result) {\r\n console.log(result);\r\n })\r\n .catch(function(err) {\r\n console.log(err);\r\n })\r\n\r\n return result;\r\n }\r\n\r\n function uploadFileInCollection(file, collectionId) {\r\n\r\n var result = Upload.upload({\r\n url: APP_SETTINGS['baseUrl'] + APP_SETTINGS.apiVer + '/files/upload',\r\n data: {\r\n file: file\r\n },\r\n params: {\r\n CollectionId: collectionId\r\n }\r\n })\r\n\r\n result\r\n .success(function(result) {\r\n if (_filesCollection[collectionId]) {\r\n _filesCollection[collectionId]['Assets'].push(result)\r\n }\r\n })\r\n .catch(function(err) {\r\n console.log(err)\r\n });\r\n\r\n return result;\r\n }\r\n\r\n function getFilesCollection(collectionId) {\r\n console.log('get collection ' + collectionId );\r\n return GetFCollection.get({\r\n Id: collectionId\r\n }); \r\n }\r\n\r\n function removeFileFromCollection(file, collectionId) {\r\n\r\n if (!_filesCollection[collectionId]) return;\r\n\r\n _.remove(_filesCollection[collectionId]['Assets'], function(asset) {\r\n return asset['Id'] == file['Id'];\r\n });\r\n\r\n _filesCollection[collectionId]\r\n .$update()\r\n .then(function(result) {\r\n console.log(result);\r\n })\r\n }\r\n }\r\n\r\n})();\n(function ()\r\n{\r\n 'use strict';\r\n\r\n angular\r\n .module('app.common') \r\n .factory('$api', apiService )\r\n .directive('submitLoader', submitLoader )\r\n .factory('httpResponseInterceptor', function($q, $rootScope, $location, localStorageService) {\r\n return {\r\n responseError: function(rejection) {\r\n if (rejection.status === 401) {\r\n console.log('reject request handler')\r\n localStorageService.remove('token');\r\n localStorageService.remove('profile');\r\n $location.path('/');\r\n }\r\n return $q.reject(rejection);\r\n }\r\n };\r\n }) \r\n .config(configProcess);\r\n\r\n register();\r\n\r\n /** @ngInject */\r\n function register() \r\n {\r\n angular\r\n .module('app.common')\r\n }\r\n \r\n /** @ngInject */\r\n function apiService($resource, APP_SETTINGS, $rootScope,$mdDialog, localStorageService, msNavigationService, $q,$http,$timeout)\r\n {\r\n console.log('api service')\r\n var api = {};\r\n\r\n api.setup = function(){\r\n console.log('initialize api'); \r\n\r\n var _token = localStorageService.get('token');\r\n if (_token != null){\r\n $http.defaults.headers.common.Authorization = \"Bearer \" + _token; \r\n }\r\n else {\r\n localStorageService.remove('token');\r\n localStorageService.remove('profile');\r\n return;\r\n }\r\n\r\n var _profile = localStorageService.get('profile'); \r\n\r\n APP_SETTINGS.Profile = _profile;\r\n if (_profile && _profile.TagsJson)\r\n {\r\n APP_SETTINGS.ContinueRegistration = _profile.TagsJson.indexOf(\"register\") != -1; \r\n }\r\n\r\n $rootScope.profile = _profile;\r\n\r\n\r\n /*var exp = localStorageService.get('token_expires_at');\r\n var expiresAt = JSON.parse(exp);\r\n if (!expiresAt) return;\r\n var timeToExpires = expiresAt - Date.now(); \r\n console.log(timeToExpires);\r\n if (timeToExpires > 0)\r\n api.refreshTask = $timeout(function(){ api.refreshToken(); }, timeToExpires );*/\r\n }\r\n\r\n api.saveOrUpdate = function(resource, object)\r\n {\r\n return object.Id ? resource.put.update(object).$promise : resource.post.save(object).$promise;\r\n }\r\n\r\n api.buildService = function(baseUrl){\r\n var service = {\r\n list: $resource(baseUrl + '/list'), \r\n get: $resource(baseUrl + '/get/:Id', {Id: '@Id'}), \r\n delete: $resource(baseUrl + '/delete/:Id', {Id: '@Id'}),\r\n put: $resource(baseUrl + '/put/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n }), \r\n post: $resource(baseUrl + '/post')\r\n };\r\n console.log(service);\r\n return service;\r\n }\r\n\r\n api.initialize = function(){\r\n console.log('initialize REST API');\r\n\r\n // Base Url\r\n api.baseUrl = APP_SETTINGS.baseUrl + APP_SETTINGS.apiVer;\r\n console.log(api.baseUrl);\r\n \r\n api.dic = $resource(api.baseUrl + 'dic');\r\n var baseUrl = api.baseUrl + 'users';\r\n api.$users = {\r\n list: $resource(APP_SETTINGS.baseUrl + 'odata/odtUsers'), \r\n get: $resource(baseUrl + '/get/:Id', {Id: '@Id'}), \r\n delete: $resource(baseUrl + '/delete/:Id', {Id: '@Id'}),\r\n verifyemail: $resource(baseUrl + '/emailverified/:Id', {Id: '@Id'}), \r\n put: $resource(baseUrl + '/put/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n }), \r\n patch: $resource(baseUrl + '/patch/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PATCH'\r\n }\r\n }), \r\n create: $resource(baseUrl + '/create'), \r\n codewait: $resource(baseUrl + '/codewait'), \r\n code: $resource(baseUrl + '/code'), \r\n confirm: $resource(baseUrl + '/confirm'), \r\n forgot: $resource(baseUrl + '/forgotpsw'), \r\n forgotcode: $resource(baseUrl + '/forgotcode'), \r\n changephone: $resource(baseUrl + '/changephone'), \r\n email: $resource(baseUrl + '/email'), \r\n profile : $resource(baseUrl + '/profile'),\r\n busy : $resource(baseUrl + '/busy'), \r\n ready : $resource(baseUrl + '/ready'), \r\n counters : $resource(baseUrl + '/counters'), \r\n cashpacket : $resource(baseUrl + '/cashpacket'), \r\n cashpacketcode : $resource(baseUrl + '/cashpacketcode'), \r\n finishreg : $resource(baseUrl + '/finishreg'), \r\n token : $resource(baseUrl + '/token'),\r\n refresh : $resource(baseUrl + '/refresh'), \r\n password : $resource(baseUrl + '/password'), \r\n message: $resource(baseUrl + '/message/:Id', {Id: '@Id'}),\r\n outtransactioncode : $resource(baseUrl + '/outtransactioncode'),\r\n outtransaction : $resource(baseUrl + '/outtransaction'), \r\n confirmemail : $resource(baseUrl + '/confirmemail') \r\n };\r\n api.users = api.$users;\r\n\r\n api.routes = {\r\n list: $resource(APP_SETTINGS.baseUrl + 'odata/odtRoutes'),\r\n post: $resource(api.baseUrl + 'routes/post/:Id', {Id: '@Id'}),\r\n addorder: $resource(api.baseUrl + 'routes/addorder/:Id', {Id: '@Id'}),\r\n put: $resource(api.baseUrl + 'routes/put/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n }),\r\n delete: $resource(api.baseUrl + 'routes/delete/:Id', {Id: '@Id'})\r\n }; \r\n\r\n api.teams = {\r\n list: $resource(APP_SETTINGS.baseUrl + 'odata/odtTeams'), \r\n get: $resource(api.baseUrl + 'teams/get/:Id', {Id: '@Id'}), \r\n put: $resource(api.baseUrl + 'teams/put/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n }),\r\n documents: $resource(api.baseUrl + 'teams/documents/:Id', {Id: '@Id'}, { update: { method: 'PUT' } }), \r\n message: $resource(api.baseUrl + 'teams/message/:Id', {Id: '@Id'}) \r\n }; \r\n\r\n\r\n api.feedbacks = {\r\n list: $resource(APP_SETTINGS.baseUrl + 'odata/odtFeedbacks'), \r\n get: $resource(api.baseUrl + 'feedbacks/get/:Id', {Id: '@Id'}), \r\n put: $resource(api.baseUrl + 'feedbacks/put/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n })\r\n }; \r\n\r\n api.rooms = {\r\n list: $resource(APP_SETTINGS.baseUrl + 'odata/odtRooms'),\r\n get: $resource(APP_SETTINGS.baseUrl + \"odata/odtRooms(':Id')\", {Id: '@Id'} ) \r\n }; \r\n\r\n api.events = {\r\n list: $resource(APP_SETTINGS.baseUrl + 'odata/odtEvents'), \r\n unread: $resource(api.baseUrl + 'events/unread'), \r\n get: $resource(api.baseUrl + 'events/get/:Id', {Id: '@Id'}), \r\n read: $resource(api.baseUrl + 'events/read/:Id', {Id: '@Id'}), \r\n readall: $resource(api.baseUrl + 'events/readall'),\r\n put: $resource(api.baseUrl + 'events/put/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n })\r\n }; \r\n\r\n api.orders = {\r\n list: $resource(APP_SETTINGS.baseUrl + 'odata/odtOrders'), \r\n get: $resource(api.baseUrl + 'orders/get/:Id', {Id: '@Id'}), \r\n put: $resource(api.baseUrl + 'orders/put/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n }),\r\n post: $resource(api.baseUrl + 'orders/post'),\r\n stdoffers: $resource(api.baseUrl + 'orders/stdoffers'),\r\n clientacceptstdoffer: $resource(api.baseUrl + 'orders/clientacceptstdoffer/:Id', {Id: '@Id'} ),\r\n offer: $resource(api.baseUrl + 'orders/offer/:Id', {Id: '@Id'}), \r\n clientoffer: $resource(api.baseUrl + 'orders/clientoffer/:Id', {Id: '@Id'}), \r\n clientcancel: $resource(api.baseUrl + 'orders/clientcancel/:Id', {Id: '@Id'}), \r\n deliveryreject: $resource(api.baseUrl + 'orders/deliveryreject/:Id', {Id: '@Id'}), \r\n doerreject: $resource(api.baseUrl + 'orders/doerreject/:Id', {Id: '@Id'}), \r\n deliveryack: $resource(api.baseUrl + 'orders/deliveryack/:Id', {Id: '@Id'}), \r\n finish: $resource(api.baseUrl + 'orders/finish/:Id', {Id: '@Id'}), \r\n payment: $resource(api.baseUrl + 'orders/payment/:Id', {Id: '@Id'}), \r\n paymentcode : $resource(api.baseUrl + '/orders/paymentcode'),\r\n start: $resource(api.baseUrl + 'orders/start/:Id', {Id: '@Id'}), \r\n doeraccept: $resource(api.baseUrl + 'orders/doeraccept/:Id', {Id: '@Id'}), \r\n clientaccept: $resource(api.baseUrl + 'orders/clientaccept/:Id', {Id: '@Id'}), \r\n message: $resource(api.baseUrl + 'orders/message/:Id', {Id: '@Id'}), \r\n clientfeedback: $resource(api.baseUrl + 'orders/clientfeedback/:Id', {Id: '@Id'}), \r\n doerfeedback: $resource(api.baseUrl + 'orders/doerfeedback/:Id', {Id: '@Id'}) \r\n }; \r\n\r\n api.units = {\r\n list: $resource(APP_SETTINGS.baseUrl + 'odata/odtUnits'), \r\n carsearch: $resource(api.baseUrl + 'carsearch/list'), \r\n details: $resource(api.baseUrl + 'carsearch/details'), \r\n params: $resource(api.baseUrl + 'carsearch/params'), \r\n get: $resource(api.baseUrl + 'units/get/:Id', {Id: '@Id'}), \r\n post: $resource(api.baseUrl + 'units/post/:Id', {Id: '@Id'}), \r\n put: $resource(api.baseUrl + 'units/put/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n })\r\n }; \r\n \r\n api.enums = { list: $resource(api.baseUrl + 'enum/list') }; \r\n\r\n api.contacts = api.buildService(api.baseUrl + 'contacts');\r\n api.contacts.moderate = $resource(api.baseUrl + 'contacts/moderate/:Id', {Id: '@Id'}, {\r\n update: {\r\n method: 'PUT'\r\n }\r\n });\r\n\r\n api.bankdetails = api.buildService(api.baseUrl + 'bankdetails'); \r\n\r\n api.addresses = api.buildService(api.baseUrl + 'addresses'); \r\n api.addresses.find = $resource(api.baseUrl + 'addresses/find');\r\n api.addresses.generate = $resource(api.baseUrl + 'addresses/generate'); \r\n api.addresses.location = $resource(api.baseUrl + 'addresses/location/:id', {id: '@id'}); \r\n api.addresses.predictions = $resource(api.baseUrl + 'addresses/predictions'); \r\n api.addresses.countries = $resource(api.baseUrl + 'addresses/countries');\r\n api.addresses.regions = $resource(api.baseUrl + 'addresses/regions'); \r\n api.addresses.cities = $resource(api.baseUrl + 'addresses/cities'); \r\n\r\n api.categories = api.buildService( api.baseUrl + 'categories' );\r\n api.categories.model = $resource(api.baseUrl + 'categories/model' );\r\n api.catitems = api.buildService( api.baseUrl + 'catitems' ); \r\n\r\n api.files = $resource(api.baseUrl + 'files/:Id', {Id: '@Id'}, {\r\n update: {\r\n url: api.baseUrl + 'files/put/:Id',\r\n method: 'PUT'\r\n }\r\n });\r\n\r\n api.filescollection = $resource(api.baseUrl + 'filescollection/:Id', {Id: '@Id'}, {\r\n update: {\r\n url: api.baseUrl + 'files/put/:Id',\r\n method: 'PUT'\r\n }\r\n });\r\n\r\n }\r\n\r\n api.getProfile = function (){\r\n var deferred = $q.defer(); \r\n\r\n api.users.profile.get({}, function(profile){\r\n console.log(profile);\r\n deferred.resolve(profile);\r\n },\r\n function(error){\r\n console.log(error);\r\n deferred.reject(error);\r\n });\r\n\r\n return deferred.promise; \r\n } \r\n\r\n api.getTeam = function (id){\r\n return api.teams.get.get({Id: id}); \r\n } \r\n\r\n api.updateProfile = function (){ \r\n var deferred = $q.defer(); \r\n api.getProfile()\r\n .then(function (profile){\r\n console.log('profile from server')\r\n console.log(profile);\r\n localStorageService.set('profile', profile );\r\n APP_SETTINGS.Profile = profile;\r\n APP_SETTINGS.ContinueRegistration = profile && profile.TagsJson && profile.TagsJson.indexOf(\"register\") != -1;\r\n $rootScope.profile = profile;\r\n if (profile.TeamId)\r\n $rootScope.team = api.getTeam(profile.TeamId);\r\n\r\n deferred.resolve(profile);\r\n }, \r\n function (error){ deferred.reject(error) })\r\n\r\n return deferred.promise; \r\n }\r\n\r\n api.setSession = function (authResult) {\r\n console.log('save session ' + authResult.expiresIn )\r\n console.log(authResult);\r\n // Set the time that the access token will expire at\r\n var expiresAt = JSON.stringify(((authResult.expiresIn || authResult.expires_in) * 1000) + new Date().getTime());\r\n console.log(expiresAt);\r\n localStorageService.set('token', authResult.accessToken || authResult.access_token );\r\n localStorageService.set('id_token', authResult.idToken);\r\n localStorageService.set('refresh_token', authResult.refresh_token); \r\n localStorageService.set('token_expires_at', expiresAt);\r\n\r\n\r\n console.log(localStorageService.get('token_expires_at'));\r\n } \r\n\r\n api.refreshToken = function(){\r\n console.log('refresh token');\r\n api.users.refresh.get({ token: localStorageService.get('refresh_token') }, function(authResult){\r\n console.log('renew token complete');\r\n console.log(authResult); \r\n authResult.refresh_token = localStorageService.get('refresh_token');\r\n api.setSession(authResult);\r\n api.setup();\r\n },\r\n function (error){\r\n console.log(error);\r\n UTILS.logout();\r\n });\r\n }\r\n\r\n api.initialize();\r\n api.setup();\r\n\r\n api.inProcess = false;\r\n\r\n console.log(api);\r\n\r\n return api;\r\n }\r\n\r\n /** @ngInject */\r\n function configProcess($httpProvider){\r\n\r\n $httpProvider.interceptors.push(function($q, $rootScope) {\r\n var numberOfHttpRequests = 0;\r\n return {\r\n request: function (config) {\r\n numberOfHttpRequests += 1;\r\n $rootScope.inProcess = true;\r\n return config;\r\n },\r\n requestError: function (error) {\r\n numberOfHttpRequests -= 1;\r\n $rootScope.inProcess = (numberOfHttpRequests !== 0);\r\n return $q.reject(error);\r\n },\r\n response: function (response) {\r\n numberOfHttpRequests -= 1;\r\n $rootScope.inProcess = (numberOfHttpRequests !== 0);\r\n return response;\r\n },\r\n responseError: function (error) {\r\n numberOfHttpRequests -= 1;\r\n $rootScope.inProcess = (numberOfHttpRequests !== 0);\r\n return $q.reject(error);\r\n }\r\n };\r\n });\r\n $httpProvider.interceptors.push('httpResponseInterceptor'); \r\n } \r\n \r\n /** @ngInject */\r\n function submitLoader($compile) {\r\n return { \r\n link: function(scope,element) { \r\n var loader = angular.element(''); \r\n element.append(loader); \r\n scope.$watch('$root.inProcess', function (val) {\r\n scope.inProcess = val;\r\n $compile(loader)(scope);\r\n if (val)\r\n element.attr('disabled', 'disabled'); \r\n else\r\n element.removeAttr('disabled'); \r\n });\r\n }\r\n }\r\n }\r\n\r\n})();\n'use strict';\r\nangular.module(\"ngLocale\", [], [\"$provide\", function($provide) {\r\nvar PLURAL_CATEGORY = {ZERO: \"zero\", ONE: \"one\", TWO: \"two\", FEW: \"few\", MANY: \"many\", OTHER: \"other\"};\r\nfunction getDecimals(n) {\r\n n = n + '';\r\n var i = n.indexOf('.');\r\n return (i == -1) ? 0 : n.length - i - 1;\r\n}\r\n\r\nfunction getVF(n, opt_precision) {\r\n var v = opt_precision;\r\n\r\n if (undefined === v) {\r\n v = Math.min(getDecimals(n), 3);\r\n }\r\n\r\n var base = Math.pow(10, v);\r\n var f = ((n * base) | 0) % base;\r\n return {v: v, f: f};\r\n}\r\n\r\n$provide.value(\"$locale\", {\r\n \"DATETIME_FORMATS\": {\r\n \"AMPMS\": [\r\n \"\\u0414\\u041f\",\r\n \"\\u041f\\u041f\"\r\n ],\r\n \"DAY\": [\r\n \"\\u0432\\u043e\\u0441\\u043a\\u0440\\u0435\\u0441\\u0435\\u043d\\u044c\\u0435\",\r\n \"\\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u044c\\u043d\\u0438\\u043a\",\r\n \"\\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a\",\r\n \"\\u0441\\u0440\\u0435\\u0434\\u0430\",\r\n \"\\u0447\\u0435\\u0442\\u0432\\u0435\\u0440\\u0433\",\r\n \"\\u043f\\u044f\\u0442\\u043d\\u0438\\u0446\\u0430\",\r\n \"\\u0441\\u0443\\u0431\\u0431\\u043e\\u0442\\u0430\"\r\n ],\r\n \"ERANAMES\": [\r\n \"\\u0434\\u043e \\u0420\\u043e\\u0436\\u0434\\u0435\\u0441\\u0442\\u0432\\u0430 \\u0425\\u0440\\u0438\\u0441\\u0442\\u043e\\u0432\\u0430\",\r\n \"\\u043e\\u0442 \\u0420\\u043e\\u0436\\u0434\\u0435\\u0441\\u0442\\u0432\\u0430 \\u0425\\u0440\\u0438\\u0441\\u0442\\u043e\\u0432\\u0430\"\r\n ],\r\n \"ERAS\": [\r\n \"\\u0434\\u043e \\u043d. \\u044d.\",\r\n \"\\u043d. \\u044d.\"\r\n ],\r\n \"FIRSTDAYOFWEEK\": 0,\r\n \"MONTH\": [\r\n \"\\u044f\\u043d\\u0432\\u0430\\u0440\\u044f\",\r\n \"\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b\\u044f\",\r\n \"\\u043c\\u0430\\u0440\\u0442\\u0430\",\r\n \"\\u0430\\u043f\\u0440\\u0435\\u043b\\u044f\",\r\n \"\\u043c\\u0430\\u044f\",\r\n \"\\u0438\\u044e\\u043d\\u044f\",\r\n \"\\u0438\\u044e\\u043b\\u044f\",\r\n \"\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442\\u0430\",\r\n \"\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044f\",\r\n \"\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044f\",\r\n \"\\u043d\\u043e\\u044f\\u0431\\u0440\\u044f\",\r\n \"\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\\u044f\"\r\n ],\r\n \"SHORTDAY\": [\r\n \"\\u0432\\u0441\",\r\n \"\\u043f\\u043d\",\r\n \"\\u0432\\u0442\",\r\n \"\\u0441\\u0440\",\r\n \"\\u0447\\u0442\",\r\n \"\\u043f\\u0442\",\r\n \"\\u0441\\u0431\"\r\n ],\r\n \"SHORTMONTH\": [\r\n \"\\u044f\\u043d\\u0432.\",\r\n \"\\u0444\\u0435\\u0432\\u0440.\",\r\n \"\\u043c\\u0430\\u0440.\",\r\n \"\\u0430\\u043f\\u0440.\",\r\n \"\\u043c\\u0430\\u044f\",\r\n \"\\u0438\\u044e\\u043d.\",\r\n \"\\u0438\\u044e\\u043b.\",\r\n \"\\u0430\\u0432\\u0433.\",\r\n \"\\u0441\\u0435\\u043d\\u0442.\",\r\n \"\\u043e\\u043a\\u0442.\",\r\n \"\\u043d\\u043e\\u044f\\u0431.\",\r\n \"\\u0434\\u0435\\u043a.\"\r\n ],\r\n \"STANDALONEMONTH\": [\r\n \"\\u044f\\u043d\\u0432\\u0430\\u0440\\u044c\",\r\n \"\\u0444\\u0435\\u0432\\u0440\\u0430\\u043b\\u044c\",\r\n \"\\u043c\\u0430\\u0440\\u0442\",\r\n \"\\u0430\\u043f\\u0440\\u0435\\u043b\\u044c\",\r\n \"\\u043c\\u0430\\u0439\",\r\n \"\\u0438\\u044e\\u043d\\u044c\",\r\n \"\\u0438\\u044e\\u043b\\u044c\",\r\n \"\\u0430\\u0432\\u0433\\u0443\\u0441\\u0442\",\r\n \"\\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044c\",\r\n \"\\u043e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044c\",\r\n \"\\u043d\\u043e\\u044f\\u0431\\u0440\\u044c\",\r\n \"\\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\\u044c\"\r\n ],\r\n \"WEEKENDRANGE\": [\r\n 5,\r\n 6\r\n ],\r\n \"fullDate\": \"EEEE, d MMMM y '\\u0433'.\",\r\n \"longDate\": \"d MMMM y '\\u0433'.\",\r\n \"medium\": \"d MMM y '\\u0433'. H:mm:ss\",\r\n \"mediumDate\": \"d MMM y '\\u0433'.\",\r\n \"mediumTime\": \"H:mm:ss\",\r\n \"short\": \"dd.MM.y H:mm\",\r\n \"shortDate\": \"dd.MM.y\",\r\n \"shortTime\": \"H:mm\"\r\n },\r\n \"NUMBER_FORMATS\": {\r\n \"CURRENCY_SYM\": \"\\u20bd\",\r\n \"DECIMAL_SEP\": \",\",\r\n \"GROUP_SEP\": \"\\u00a0\",\r\n \"PATTERNS\": [\r\n {\r\n \"gSize\": 3,\r\n \"lgSize\": 3,\r\n \"maxFrac\": 3,\r\n \"minFrac\": 0,\r\n \"minInt\": 1,\r\n \"negPre\": \"-\",\r\n \"negSuf\": \"\",\r\n \"posPre\": \"\",\r\n \"posSuf\": \"\"\r\n },\r\n {\r\n \"gSize\": 3,\r\n \"lgSize\": 3,\r\n \"maxFrac\": 2,\r\n \"minFrac\": 2,\r\n \"minInt\": 1,\r\n \"negPre\": \"-\",\r\n \"negSuf\": \"\\u00a0\\u00a4\",\r\n \"posPre\": \"\",\r\n \"posSuf\": \"\\u00a0\\u00a4\"\r\n }\r\n ]\r\n },\r\n \"id\": \"ru-ru\",\r\n \"localeID\": \"ru_RU\",\r\n \"pluralCat\": function(n, opt_precision) { var i = n | 0; var vf = getVF(n, opt_precision); if (vf.v == 0 && i % 10 == 1 && i % 100 != 11) { return PLURAL_CATEGORY.ONE; } if (vf.v == 0 && i % 10 >= 2 && i % 10 <= 4 && (i % 100 < 12 || i % 100 > 14)) { return PLURAL_CATEGORY.FEW; } if (vf.v == 0 && i % 10 == 0 || vf.v == 0 && i % 10 >= 5 && i % 10 <= 9 || vf.v == 0 && i % 100 >= 11 && i % 100 <= 14) { return PLURAL_CATEGORY.MANY; } return PLURAL_CATEGORY.OTHER;}\r\n});\r\n}]);\n/** @ngInject */\r\nfunction UnitsController($scope, APP_SETTINGS, $stateParams, $filter, Units, UnitsResource, UnitsResourceParams) {\r\n\r\n \tconsole.log('team unit controller')\r\n\r\n \t$scope.units = Units;\r\n \t$scope.enableShowMoreUnits = Units['@odata.count'] > Units.value.length; \t \t\r\n\r\n \t$scope.showMoreUnits = function(){\r\n\t UnitsResourceParams.$top = 5;\r\n\t UnitsResourceParams.$skip = $scope.units.value.length; \r\n\t UnitsResource.get(UnitsResourceParams, function(data){\r\n\t \t$scope.units.value = $scope.units.value.concat(data.value);\r\n\t \t\t$scope.enableShowMoreUnits = Units['@odata.count'] > Units.value.length; \t\r\n\t })\r\n \t} \r\n}\r\n\n/** @ngInject */\r\nfunction TeamsController($scope, APP_SETTINGS, $stateParams, UTILS, ODATA, Resource, ResourceParams) {\r\n console.log('teams controller')\r\n $scope.ODATA = ODATA;\r\n $scope.ResourceParams = ResourceParams;\r\n $scope.Resource = Resource;\r\n $scope.isModelTag = function (tag) { \r\n \tvar cat = UTILS.getCategory(tag); \r\n \tif (!cat) return false; \r\n \treturn cat.ParentId == 200; \r\n }\r\n}\r\n\n/** @ngInject */\r\nfunction TeamsFilterController($scope, $state, $stateParams,$api,UTILS) {\r\n console.log('teams filter controller');\r\n\r\nconsole.log(UTILS.countries);\r\n\r\n $scope.countries = UTILS.countries;\r\n\r\n $scope.category = $stateParams.category ? $stateParams.category*1 : null;\r\n \r\n $scope.getRegions = function(country){\r\n \t return $api.addresses.regions.query({country: country});\r\n }\r\n $scope.getCities = function(country, region){\r\n \t return $api.addresses.cities.query({country: country, region: region });\r\n }\r\n\r\n if ($stateParams.country)\r\n \t$scope.regions = $scope.getRegions($stateParams.country);\r\n if ($stateParams.region && $stateParams.country)\r\n \t$scope.cities = $scope.getCities($stateParams.country, $stateParams.region);\r\n}\r\n\n/** @ngInject */\r\nfunction TeamItemController($scope, APP_SETTINGS, $stateParams, $filter,Team, Units) {\r\n\r\n \tconsole.log('team item controller')\r\n\r\n \t$scope.team = Team;\r\n \t$scope.units = Units;\r\n\r\n \t$scope.hasDocument = function(id){\r\n \t\treturn $filter('filter')( Team.Assets.Assets, function(a){ return a.Tags.indexOf(id) >= 0 || a.Tags.indexOf(id.toString()) >= 0 ; }).length > 0; \r\n \t}\r\n\r\n \t$scope.checkedDocument = function (id){ \r\n \t \treturn Team.Tags && (Team.Tags.indexOf(id) >= 0 || Team.Tags.indexOf(id.toString()) >= 0);\r\n\t}\t\r\n}\r\n\n/** @ngInject */\r\nfunction configSettingsStates($stateProvider){\r\n $stateProvider\r\n .state('app.client.settings', {\r\n url : '/settings',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/settings.html',\r\n controller: SettingsController\r\n },\r\n 'header@app.client.settings': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/settings.header.html'\r\n } \r\n },\r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.settings.main', {\r\n url : '/main',\r\n views : {\r\n 'main@app.client.settings': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/settings.main.html'\r\n } \r\n },\r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.settings.contacts', {\r\n url : '/contacts',\r\n views : {\r\n 'main@app.client.settings': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/settings.contacts.html'\r\n } \r\n },\r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.settings.notifications', {\r\n url : '/notifications',\r\n views : {\r\n 'main@app.client.settings': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/settings.notifications.html'\r\n } \r\n },\r\n bodyClass: 'client'\r\n }) \t\r\n}\n/** @ngInject */\r\nfunction configOrdersStates($stateProvider){\r\n\t$stateProvider\r\n .state('app.client.orders', {\r\n url : '/orders?page&psize&formycars&fromcountry&fromregion&fromcity&tocountry&toregion&tocity&category&model&sort&sortOrder&start',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/orders.list.html',\r\n controller: 'OrdersController as vm', \r\n },\r\n 'navigation@app.client.orders': {\r\n templateUrl: 'app/main/apps/client/views/page.navigation.html',\r\n controller: 'PageNavigationController as vm'\r\n }, \r\n 'header@app.client.orders': {\r\n templateUrl: 'app/main/apps/client/views/orders/page.header.html'\r\n },\r\n 'right@app.client.orders': {\r\n templateUrl: 'app/main/apps/client/views/orders/orders.filter.html',\r\n controller: 'OrdersFilterController as vm'\r\n } \r\n },\r\n resolve: {\r\n Resource: function ($api){ return $api.orders.list; },\r\n ResourceParams: function($stateParams){\r\n var page = $stateParams.page || 1;\r\n var psize = $stateParams.psize || 10;\r\n var sort = 'Created desc'; \r\n if ($stateParams.sort) {\r\n sort = $stateParams.sort;\r\n sort += ($stateParams.sortOrder ? ' ' + $stateParams.sortOrder : '' );\r\n } \r\n return { $skip: (page-1) * psize, $top: psize, $orderby: sort, $count: true, \r\n ForMyCars: $stateParams.formycars,\r\n ModelId: $stateParams.model,\r\n CategoryId: $stateParams.category,\r\n States: 'OrderCreated',\r\n StartFrom: $stateParams.start ? moment($stateParams.start, 'DD.MM.YYYY').toISOString() : null, \r\n StartTo: $stateParams.start ? moment($stateParams.start, 'DD.MM.YYYY').add('days', 1).toISOString() : null,\r\n FromCountry: $stateParams.fromcountry, \r\n FromRegion: $stateParams.fromregion, \r\n FromCity: $stateParams.fromcity, \r\n ToCountry: $stateParams.tocountry, \r\n ToRegion: $stateParams.toregion, \r\n ToCity: $stateParams.tocity, \r\n $expand: 'StartPoint,Delivery'\r\n };\r\n }\r\n },\r\n bodyClass: 'client'\r\n })\r\n .state('app.client.orders.item', {\r\n url : '/:orderId?:backState',\r\n views : { \r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/orders.item.html',\r\n controller: 'OrderItemController as vm'\r\n },\r\n 'main@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/main.html'\r\n },\r\n 'chat@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/chat.html',\r\n controller: function ($scope,MyOffer){\r\n $scope.offer = MyOffer.value[0];\r\n }\r\n }, \r\n 'header@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/page.header.html'\r\n }, \r\n 'offers@app.client.orders.item': {\r\n template: '
',\r\n controller: function ($scope, Order, $api,$state, $clientDialogs, APP_SETTINGS){\r\n $scope.getTemplateUrl = function(){\r\n if (Order.CategoryRateId) \r\n return 'app/main/apps/client/views/order/stdoffer.html';\r\n else \r\n return 'app/main/apps/client/views/order/offers.html'; \r\n }\r\n\r\n $scope.clientAcceptStdOffer = function (cash){\r\n if (cash == true)\r\n $clientDialogs.clientAcceptStdOfferDialog(Order).then(function(order){\r\n $state.reload();\r\n });\r\n else {\r\n if (APP_SETTINGS.Profile.Balance >= Order.Price)\r\n $clientDialogs.paymentDialog(Order).then(function(order){\r\n $state.reload();\r\n });\r\n else\r\n $clientDialogs.noMoneyDialog(Order);\r\n }\r\n } \r\n }\r\n },\r\n 'offer@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/order.offers.item.html'\r\n },\r\n 'carrier@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/carrier.html'\r\n }, \r\n 'route@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/route.html',\r\n controller: routeController\r\n }, \r\n 'what@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/what.html'\r\n },\r\n 'user@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/user.html'\r\n },\r\n 'status@app.client.orders.item': {\r\n templateUrl: 'app/main/apps/client/views/order/status.html'\r\n }\r\n },\r\n resolve: {\r\n Order: function($api,$stateParams){\r\n return $api.orders.get.get({Id: $stateParams.orderId}).$promise;\r\n },\r\n Resource: function ($api){ return $api.events.list; },\r\n ResourceParams: function($stateParams){\r\n var page = $stateParams.page || 1;\r\n var psize = $stateParams.psize || 10;\r\n var sort = null; \r\n if ($stateParams.sort) {\r\n sort = $stateParams.sort;\r\n sort += ($stateParams.sortOrder ? ' ' + $stateParams.sortOrder : '' );\r\n } \r\n return { $count: true, OrderId: $stateParams.orderId, \r\n Classes: 'Offer', Types: 'Created',\r\n $expand: 'User,Room($expand=Last),Team($expand=Contact($expand=Address;$select=Address);$select=Contact,Logo,Name,Rating,Feedbacks)'\r\n };\r\n },\r\n Offers: function(Resource,ResourceParams,$stateParams) {\r\n return Resource.get(ResourceParams).$promise; \r\n },\r\n MyOffer: function(Resource,UTILS,$stateParams){\r\n return UTILS.isDoer() ? Resource.get({\r\n TeamId: UTILS.teamId(), OrderId: $stateParams.orderId, Classes: 'Offer', Types: 'Created',\r\n $expand: 'Room($expand=Last($expand=User($select=Name))),Team($expand=Contact($expand=Address($select=City,Country);$select=Address);$select=Contact,Logo,Name,Rating,Feedbacks)'\r\n }).$promise \r\n : null;\r\n },\r\n SelectedOffer: function(Resource,UTILS,Order){\r\n return Order.ClientId == UTILS.userId() ? \r\n Resource.get({\r\n TeamId: Order.TeamId, OrderId: Order.Id, Classes: 'Offer', Types: 'Created',\r\n $expand: 'Room($expand=Last($expand=User($select=Name))),Team($expand=Contact($expand=Address($select=City,Country);$select=Address);$select=Contact,Logo,Name,Rating,Feedbacks)'\r\n }).$promise \r\n : null;\r\n } \r\n },\r\n bodyClass: 'client'\r\n }) \r\n\r\n}\n/** @ngInject */\r\nfunction configMyOrdersStates($stateProvider){\r\n\t$stateProvider\r\n .state('app.client.myorders', {\r\n url : '/myorders',\r\n redirectTo: 'app.client.myorders.active',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/client.myorders.html',\r\n controller: function ($scope,$rootScope){\r\n console.log($rootScope.state)\r\n $scope.myordersState = $rootScope.state.current.name;\r\n }\r\n },\r\n 'mainheader@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.header.html'\r\n } \r\n }, \r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.myorders.offers', {\r\n url : '/offers',\r\n views : {\r\n 'header@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.offers.header.html'\r\n },\r\n 'main@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.offers.list.html',\r\n controller : function($scope,$rootScope, $doerDialogs, $state, UTILS, ODATAOffers) { \r\n $scope.UTILS = UTILS;\r\n $scope.ODATA = ODATAOffers; \r\n $scope.doerReject = function(order){\r\n $doerDialogs.doerRejectDialog(order).then(function(){\r\n $rootScope.showToast('Вы отказались от этого заказа!');\r\n $state.go('.', {}, {reload: true});\r\n });\r\n }\r\n $scope.sendOffer = function(order){\r\n $doerDialogs.sendOfferDialog(order).then(function(){\r\n $state.go('.', {}, {reload: true});\r\n });\r\n } \r\n $scope.sendMessage = function (order){\r\n $doerDialogs.sendMessageDialog(order);\r\n }\r\n } \r\n }, \r\n 'left@app.client.myorders.offers': {\r\n template: '' \r\n },\r\n 'right@app.client.myorders.offers': {\r\n //template: '' \r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.list.item.offer.html' \r\n }, \r\n },\r\n resolve: {\r\n ODATAOffers: function ($api,UTILS) { \r\n return $api.events.list.get({\r\n TeamId: (UTILS.isDoer() ? UTILS.teamId() : null), \r\n ClientId: (!UTILS.isDoer() ? UTILS.userId() : null), \r\n Classes: 'Offer,ClientOffer,SystemOffer', \r\n Types: 'Created,OfferPath,OfferPlace',\r\n $orderby: 'DT desc', \r\n $filter: \"Order/State eq Mobz.Market.Models.BMOrderState'OrderCreated'\",\r\n $expand: 'Order($expand=StartPoint,Delivery)'}).$promise;\r\n }\r\n }, \r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.myorders.active', {\r\n url : '/active',\r\n views : {\r\n 'header@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.active.header.html'\r\n },\r\n 'main@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.list.html',\r\n controller: function ($scope, ODATAActive,UTILS,$state){\r\n $scope.ODATA = ODATAActive;\r\n if (UTILS.isDoer())\r\n $state.go('^.offers');\r\n\r\n } \r\n },\r\n 'left@app.client.myorders.active': {\r\n template: '' \r\n },\r\n 'right@app.client.myorders.active': {\r\n //template: '' \r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.list.item.stat.html'\r\n },\r\n },\r\n resolve: {\r\n ODATAActive: function ($api,UTILS) { \r\n return $api.orders.list.get({\r\n TeamId: (UTILS.isDoer() ? UTILS.teamId() : null), \r\n ClientId: (!UTILS.isDoer() ? UTILS.userId() : null), \r\n States: 'OrderCreated,Hidden', \r\n $orderby: 'Created desc',\r\n $expand: 'StartPoint,Delivery'\r\n }).$promise;\r\n }, \r\n }, \r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.myorders.inprogress', {\r\n url : '/inprogress',\r\n views : {\r\n 'header@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.inprogress.header.html'\r\n },\r\n 'main@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.list.html',\r\n controller: function ($scope, ODATAInProgress){\r\n $scope.ODATA = ODATAInProgress;\r\n }\r\n },\r\n 'left@app.client.myorders.inprogress': {\r\n template: '' \r\n },\r\n 'right@app.client.myorders.inprogress': {\r\n template: ''\r\n } \r\n },\r\n resolve: {\r\n ODATAInProgress: function ($api,UTILS) { \r\n return $api.orders.list.get({\r\n TeamId: UTILS.isDoer() ? UTILS.teamId() : null, \r\n ClientId: !UTILS.isDoer() ? UTILS.userId() : null, \r\n $orderby: 'Updated desc', \r\n States: 'WaitForPayment,Loading,InProcess,Delivered,Conflict,ConflictResolved,Confirmed', \r\n $expand: 'StartPoint,Delivery'\r\n }).$promise;\r\n }\r\n }, \r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.myorders.archive', {\r\n url : '/archive',\r\n views : {\r\n 'header@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.archive.header.html'\r\n },\r\n 'main@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.list.html',\r\n controller: function ($scope, ODATAArchive){\r\n $scope.ODATA = ODATAArchive;\r\n } \r\n },\r\n 'left@app.client.myorders.archive': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.archive.item.html'\r\n },\r\n 'right@app.client.myorders.archive': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.archive.right.html'\r\n } \r\n }, \r\n resolve: {\r\n ODATAArchive: function ($api,UTILS) { \r\n return $api.orders.list.get({\r\n TeamId: UTILS.isDoer() ? UTILS.teamId() : null, ClientId: !UTILS.isDoer() ? UTILS.userId() : null, \r\n $orderby: 'Updated desc', \r\n States: 'Closed,OrderCanceled,OrderCanceledByClient,OrderCanceledByDoer', \r\n $expand: 'StartPoint,Delivery,Team'\r\n }).$promise;\r\n }\r\n }, \r\n bodyClass: 'client'\r\n }) \t\r\n .state('app.client.myorders.plan', {\r\n url : '/plan',\r\n views : {\r\n 'header@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.plan.header.html'\r\n },\r\n 'main@app.client.myorders': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.plan.list.html',\r\n controller: PlanController \r\n },\r\n 'left@app.client.myorders.plan': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.plan.item.html'\r\n },\r\n 'right@app.client.myorders.plan': {\r\n templateUrl: 'app/main/apps/client/views/myorders/myorders.plan.right.html'\r\n } \r\n }, \r\n bodyClass: 'client'\r\n }) \r\n\r\n}\n/** @ngInject */\r\nfunction configMainStates($stateProvider){\r\n // State\r\n $stateProvider\r\n .state('app.client', {\r\n abstract: true,\r\n url : '/client'\r\n })\r\n .state('app.client.main', {\r\n url : '/main?refId',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/main.html', \r\n controller: function ($scope,Settings){\r\n $scope.settings = Settings.get();\r\n }\r\n },\r\n 'carriers@app.client.main':{\r\n templateUrl: 'app/main/apps/client/views/main.carriers.html',\r\n controller: function ($scope, Carriers) { $scope.ODATA = Carriers; } \r\n },\r\n 'orders@app.client.main':{\r\n templateUrl: 'app/main/apps/client/views/main.orders.html',\r\n controller: function ($scope, Orders) { $scope.ODATA = Orders; } \r\n } \r\n },\r\n resolve:{\r\n Settings: function (UTILS,$stateParams){\r\n return {\r\n get: function (){\r\n var catId = parseInt($stateParams.refId || 1001);\r\n var cat = UTILS.getCategory(catId);\r\n console.log(cat); \r\n return {\r\n Title : cat.Properties.title,\r\n Subtitle : cat.Properties.subtitle,\r\n BackgroundUrl : cat.Logo.url\r\n }\r\n }\r\n }\r\n },\r\n Resource: function ($api){ return $api.orders.list; },\r\n ResourceParams: function($stateParams){\r\n var sort = 'Created desc'; \r\n return { $top: 3, $orderby: sort, $count: false, \r\n States: 'OrderCreated', \r\n ForMyCars: $stateParams.formycars == \"true\", \r\n StartFrom: $stateParams.start, \r\n StartTo: $stateParams.start ? moment($stateParams.start).add('days', 1) : null,\r\n FromCountry: $stateParams.fromcountry, FromRegion: $stateParams.fromregion, FromCity: $stateParams.fromcity, \r\n ToCountry: $stateParams.tocountry, ToRegion: $stateParams.toregion, ToCity: $stateParams.tocity, \r\n $expand: 'StartPoint,Delivery'\r\n };\r\n },\r\n Orders: function(Resource,ResourceParams) { \r\n console.log(ResourceParams);\r\n return Resource.get(ResourceParams).$promise; \r\n }, \r\n Carriers : function ($api) {return $api.teams.list.get({$top:6, $orderby: 'ComplexRate desc', \r\n $expand: 'Contact($expand=Address;$select=Address)'}).$promise; } \r\n },\r\n bodyClass: 'client'\r\n })\r\n .state('app.client.page-client', {\r\n url : '/page-client',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/main.1.1.1.html',\r\n controller: function ($scope,$clientDialogs){\r\n $scope.createOrder = function (cat){\r\n $clientDialogs.createOrderDialog({\r\n CategoryId: cat.CatId, \r\n Start: moment().add(1, 'days').toDate(), \r\n Finish: moment().add(2,'days').toDate(), \r\n Tags: []}); \r\n }\r\n }\r\n }\r\n }, \r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.page-carrier', {\r\n url : '/page-carrier',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/main.1.1.2.html'\r\n },\r\n 'orders@app.client.page-carrier':{\r\n templateUrl: 'app/main/apps/client/views/main.orders.html',\r\n controller: function ($scope, Orders) { $scope.ODATA = Orders; } \r\n } \r\n },\r\n resolve:{\r\n Resource: function ($api){ return $api.orders.list; },\r\n ResourceParams: function($stateParams){\r\n var sort = 'Created desc'; \r\n return { $top: 3, $orderby: sort, $count: false, \r\n States: 'OrderCreated',\r\n StartFrom: $stateParams.start, \r\n StartTo: $stateParams.start ? moment($stateParams.start).add('days', 1) : null,\r\n FromCountry: $stateParams.fromcountry, FromRegion: $stateParams.fromregion, FromCity: $stateParams.fromcity, \r\n ToCountry: $stateParams.tocountry, ToRegion: $stateParams.toregion, ToCity: $stateParams.tocity, \r\n $expand: 'StartPoint,Delivery'\r\n };\r\n },\r\n Orders: function(Resource,ResourceParams) { \r\n console.log(ResourceParams);\r\n return Resource.get(ResourceParams).$promise; \r\n } \r\n }, \r\n bodyClass: 'client'\r\n })\r\n .state('app.test', {\r\n url : '/test',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/test.html',\r\n controller: function ($scope, APP_SETTINGS){\r\n //$scope.contact= APP_SETTINGS.Profile.Contact;\r\n //$scope.user = APP_SETTINGS.Profile;\r\n //$scope.team = Team;\r\n $scope.order = { \r\n Id: \"3186150063\",\r\n //State: 'WaitForPayment',\r\n CategoryId: 6,\r\n ModelId: 207,\r\n State: 'OrderCreated', \r\n Price: 1000, \r\n AvgPrice : 1200,\r\n Cash: false, \r\n StartPoint:{Address:''}, \r\n Delivery:{Address: ''} \r\n };\r\n\r\n\r\n }/*,\r\n resolve: {\r\n Team: function ($api, $stateParams){ return $api.teams.get.get({Id: '36U2PIJG' })}\r\n }*/\r\n\r\n }\r\n },\r\n bodyClass: 'client'\r\n })\r\n .state('app.about', {\r\n url : '/about',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/about.html',\r\n }\r\n },\r\n bodyClass: 'client'\r\n })\r\n .state('app.verifiedemail', {\r\n url : '/verifiedemail?email&success',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/verified_email.html'\r\n }\r\n },\r\n bodyClass: 'client'\r\n }); \r\n}\n/** @ngInject */\r\nfunction configChatStates( $stateProvider){\r\n $stateProvider\r\n .state('app.client.messages', {\r\n url : '/messages',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/messages.html',\r\n controller: function ($scope,$state, Rooms){\r\n $scope.groups = {};\r\n $scope.rooms = Rooms.value;\r\n console.log(Rooms.value)\r\n angular.forEach (Rooms.value, function (room){\r\n if (!(room.OrderId in $scope.groups))\r\n $scope.groups[room.OrderId] = { Hide: false, Rooms: [], Order: room.Order, OrderId: room.OrderId };\r\n $scope.groups[room.OrderId].Rooms.push(room);\r\n console.log(room);\r\n })\r\n\r\n $scope.$on('NewEvent', function (d,e){\r\n if (e.Class == 'Chat' && !e.OrderId)\r\n angular.forEach($scope.groups[e.OrderId].Rooms, function (r){\r\n if (r.Id == e.RoomId) {\r\n r.Last = e;\r\n if ($state.params.roomId != e.RoomId)\r\n r.NewMessages = true;\r\n }\r\n });\r\n }); \r\n }\r\n },\r\n 'main@app.client.messages': {\r\n templateUrl: 'app/main/apps/client/views/messages/main.html'\r\n }, \r\n 'room@app.client.messages' : {\r\n templateUrl: 'app/main/apps/client/views/messages/messages.room.html'\r\n }\r\n },\r\n resolve: {\r\n Rooms: function ($api, UTILS){\r\n return $api.rooms.list.get({\r\n UserId: (UTILS.isDoer() ? null : UTILS.userId()), \r\n TeamId: (UTILS.isDoer() ? UTILS.teamId() : null), \r\n Private: false,\r\n $orderby: 'Updated desc',\r\n $expand: 'Order($select=Id,StartPoint,Delivery;$expand=StartPoint($select=City),Delivery($select=City)),' + \r\n 'Last($expand=Assets($expand=Assets)),' + \r\n 'Team($select=Name,Contact,Rating,Logo;$expand=Contact($expand=Address($select=Country,City))),' + \r\n 'User($select=Contact,ClientRating,Name;$expand=Contact($expand=Address($select=Country,City)))',\r\n }).$promise;\r\n }\r\n },\r\n bodyClass: 'client'\r\n })\r\n /*.state('app.client.messages.all', {\r\n url : '/all',\r\n views : {\r\n 'main@app.client.messages': {\r\n templateUrl: 'app/main/apps/client/views/messages/main.html'\r\n }\r\n },\r\n bodyClass: 'client'\r\n })*/\r\n .state('app.client.messages.team', {\r\n url : '/team/:roomId',\r\n views : {\r\n 'chat@app.client.messages': {\r\n template: '',\r\n controller: function($scope,$filter,$stateParams){\r\n $scope.room = $filter('filter')($scope.rooms, function(r){ return r.Id == $stateParams.roomId; })[0];\r\n $scope.room.NewMessages = false;\r\n } \r\n } \r\n },\r\n bodyClass: 'client'\r\n })\r\n .state('app.client.messages.user', {\r\n url : 'user/:roomId',\r\n views : {\r\n 'chat@app.client.messages': {\r\n template: '',\r\n controller: function($scope,$filter,$stateParams){\r\n $scope.room = $filter('filter')($scope.rooms, function(r){ return r.Id == $stateParams.roomId; })[0];\r\n $scope.room.NewMessages = false;\r\n }\r\n }\r\n },\r\n bodyClass: 'client'\r\n })\r\n\r\n}\n/** @ngInject */\r\nfunction configCarriersStates($stateProvider){\r\n $stateProvider \r\n .state('app.client.carriers', {\r\n url : '/carriers?page&psize®ion&city&country&model&online&sort&sortOrder',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/carriers.list.html',\r\n controller: 'TeamsController as vm'\r\n },\r\n 'header@app.client.carriers': {\r\n templateUrl: 'app/main/apps/client/views/carriers/page.header.html'\r\n },\r\n 'navigation@app.client.carriers': {\r\n templateUrl: 'app/main/apps/client/views/page.navigation.html',\r\n controller: 'PageNavigationController as vm'\r\n }, \r\n 'main@app.client.carriers': {\r\n templateUrl: 'app/main/apps/client/views/carriers/main.html'\r\n },\r\n 'right@app.client.carriers': {\r\n templateUrl: 'app/main/apps/client/views/carriers/right.html',\r\n controller: 'TeamsFilterController as vm' \r\n }\r\n\r\n },\r\n resolve: {\r\n Resource: function ($api){ return $api.teams.list; },\r\n ResourceParams: function($stateParams){\r\n var page = $stateParams.page || 1;\r\n var psize = $stateParams.psize || 10;\r\n var sort = null; \r\n if ($stateParams.sort) {\r\n sort = $stateParams.sort;\r\n sort += ($stateParams.sortOrder ? ' ' + $stateParams.sortOrder : '' );\r\n } \r\n else\r\n sort = \"Rating desc\"; \r\n return { $skip: (page-1) * psize, $top: psize, $orderby: sort, $count: true, \r\n Online: $stateParams.online, CategoryId: $stateParams.model, \r\n City: $stateParams.city, Region: $stateParams.region, Country: $stateParams.country, \r\n $expand: 'Contact($expand=Address($select=Country,City))'\r\n };\r\n },\r\n ODATA: function(Resource,ResourceParams) { \r\n return Resource.get(ResourceParams).$promise; \r\n }\r\n }, \r\n bodyClass: 'client'\r\n })\r\n .state('app.client.carriers.map', {\r\n url : '/map',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/map/orders.html',\r\n controller: function($mapDialogs){ $mapDialogs.showCarriers(); }\r\n }\r\n },\r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.carriers.item', {\r\n url : '/:teamId',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/carriers.item.html',\r\n controller: 'TeamItemController as vm'\r\n }, \r\n 'header@app.client.carriers.item': {\r\n templateUrl: 'app/main/apps/client/views/carrier/page.header.html'\r\n }, \r\n 'main@app.client.carriers.item': {\r\n templateUrl: 'app/main/apps/client/views/carrier/main.html'\r\n },\r\n 'cars@app.client.carriers.item': {\r\n templateUrl: 'app/main/apps/client/views/carrier/cars.html',\r\n controller: 'UnitsController as vm' \r\n },\r\n 'unit@app.client.carriers.item': {\r\n templateUrl: 'app/main/apps/client/views/carrier/car.html'\r\n }, \r\n 'docs@app.client.carriers.item': {\r\n templateUrl: 'app/main/apps/client/views/carrier/docs.html'\r\n },\r\n 'reviews@app.client.carriers.item': {\r\n templateUrl: 'app/main/apps/client/views/carrier/reviews.html',\r\n controller: 'FeedbacksController as vm' \r\n }, \r\n 'feedback@app.client.carriers.item': {\r\n templateUrl: 'app/main/apps/client/views/carrier/review.html'\r\n }, \r\n 'right@app.client.carriers.item': {\r\n templateUrl: 'app/main/apps/client/views/carrier/right.html'\r\n },\r\n },\r\n resolve:{\r\n Team: function($api,$stateParams){ return $api.teams.get.get({Id: $stateParams.teamId}).$promise; },\r\n UnitsResource: function ($api){ return $api.units.list; },\r\n UnitsResourceParams: function($stateParams){\r\n return { $count: true, $top:5, TeamId: $stateParams.teamId, $expand: 'Assets($expand=Assets)' };\r\n },\r\n Units: function(UnitsResource,UnitsResourceParams) { \r\n return UnitsResource.get(UnitsResourceParams).$promise; \r\n },\r\n FeedbacksResource: function ($api){ return $api.feedbacks.list; },\r\n FeedbacksResourceParams: function($stateParams){\r\n return { $count: true, TeamId: $stateParams.teamId, Type: 'ClientFeedback', $top: 2, $orderby: 'Created desc',\r\n $expand: 'FromUser($select=Name,Avatar)' };\r\n },\r\n Feedbacks: function(FeedbacksResource,FeedbacksResourceParams) { \r\n return FeedbacksResource.get(FeedbacksResourceParams).$promise; \r\n } \r\n },\r\n bodyClass: 'client'\r\n })\r\n}\n/** @ngInject */\r\nfunction configCabinetStates($stateProvider){\r\n\t\t$stateProvider\r\n\t .state('app.client.cabinet-client', {\r\n url : '/clientcab',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/client.cabinet.html',\r\n controller: 'ProfileController as vm',\r\n resolve: {\r\n Team: function (UTILS, $api){\r\n return UTILS.teamId() ? $api.teams.get.get({Id: UTILS.teamId()}).$promise : null;\r\n }\r\n } \r\n },\r\n 'header@app.client.cabinet-client': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.client.header.html'\r\n } \r\n },\r\n bodyClass: 'client'\r\n })\r\n .state('app.client.cabinet-client.profile', {\r\n url : '/profile',\r\n views : {\r\n 'main@app.client.cabinet-client': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.client.html'\r\n },\r\n 'contacts@app.client.cabinet-client.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.contacts.html'\r\n }, \r\n 'right@app.client.cabinet-client.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.client.right.html'\r\n },\r\n 'reviews@app.client.cabinet-client.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.reviews.html',\r\n controller: FeedbacksController,\r\n resolve: {\r\n FeedbacksResource: function ($api){ return $api.feedbacks.list; },\r\n FeedbacksResourceParams: function(UTILS){\r\n return { $count: true, ToUserId: UTILS.userId(), $top: 2, $orderby: 'Created desc', \r\n $expand: 'FromTeam($expand=Contact($expand=Address($select=City,Region,Country);$select=Address);$select=Name,Rating,Contact,Logo),FromUser($expand=Contact($select=FirstName,LastName);$select=Contact,Avatar)' };\r\n },\r\n Feedbacks: function(FeedbacksResource,FeedbacksResourceParams) { \r\n return FeedbacksResource.get(FeedbacksResourceParams).$promise; \r\n } \r\n }\r\n },\r\n 'feedback@app.client.cabinet-client.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/review.client.html',\r\n } \r\n }, \r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.cabinet-client.history', {\r\n url : '/history',\r\n views : {\r\n 'main@app.client.cabinet-client': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.history.html',\r\n controller: function ($scope, Transactions){\r\n $scope.transactions = Transactions.value;\r\n },\r\n resolve: {\r\n TransactionsResource: function ($api){ return $api.events.list; },\r\n TransactionsResourceParams: function(UTILS){\r\n return { $count: true, $orderby: 'DT desc', Classes: 'Transaction', UserId: UTILS.userId(), \r\n $expand: 'Order($expand=StartPoint,Delivery)' };\r\n },\r\n Transactions: function(TransactionsResource,TransactionsResourceParams) { \r\n return TransactionsResource.get(TransactionsResourceParams).$promise; \r\n } \r\n } \r\n } \r\n },\r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.cabinet-carrier', {\r\n url : '/carriercab',\r\n views : {\r\n 'content@app': {\r\n templateUrl: 'app/main/apps/client/views/carrier.cabinet.html' \r\n },\r\n 'header@app.client.cabinet-carrier': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.carrier.header.html'\r\n } \r\n }, \r\n bodyClass: 'client'\r\n })\r\n .state('app.client.cabinet-carrier.profile', {\r\n url : '/profile?reviewsFrom',\r\n views : { \r\n 'main@app.client.cabinet-carrier': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.carrier.html',\r\n controller: 'ProfileController as vm',\r\n resolve: {\r\n Team: function (UTILS, $api) {\r\n return UTILS.teamId() ? $api.teams.get.get({Id: UTILS.teamId()}).$promise : null;\r\n }\r\n } \r\n },\r\n 'contacts@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.contacts.html'\r\n }, \r\n 'cars@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/carrier/cars.html',\r\n controller: 'UnitsController as vm',\r\n resolve: {\r\n UnitsResource: function ($api){ return $api.units.list; },\r\n UnitsResourceParams: function(UTILS){\r\n return { $count: true, $top:5, $orderby: 'Created', TeamId: UTILS.teamId(), $expand: 'Assets($expand=Assets)' };\r\n },\r\n Units: function(UnitsResource,UnitsResourceParams) { \r\n return UnitsResource.get(UnitsResourceParams).$promise; \r\n } \r\n }, \r\n }, \r\n 'docs@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/carrier/docs.html',\r\n }, \r\n 'unit@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/carrier/car.html',\r\n }, \r\n 'right@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.carrier.right.html'\r\n },\r\n 'cash@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.carrier.cash.html'\r\n }, \r\n 'status@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.carrier.status.html',\r\n controller: function ($scope,$api,$rootScope,UTILS){\r\n $scope.busy = $scope.profile.Status == 'Busy'; \r\n $scope.setStatus = function() {\r\n console.log('change status to ' + $scope.busy );\r\n if ($scope.busy){\r\n $api.users.busy.get({}, function(){ $rootScope.showToast('Статус - НЕ НА ЛИНИИ'); $api.updateProfile(); });\r\n }\r\n else\r\n $api.users.ready.get({}, function(){ $rootScope.showToast('Статус - НА ЛИНИИ'); $api.updateProfile(); });\r\n }\r\n }\r\n }, \r\n 'reviews@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.reviews.html',\r\n controller: FeedbacksController,\r\n resolve: {\r\n FeedbacksResource: function ($api){ return $api.feedbacks.list; },\r\n FeedbacksResourceParams: function($stateParams,UTILS){\r\n return { $count: true, TeamId: UTILS.teamId(), $top: 5, $orderby: 'Created desc',\r\n Type: ($stateParams.reviewsFrom == 'true') ? 'DoerFeedback' : 'ClientFeedback',\r\n $expand: 'FromUser($select=Avatar,Name)' \r\n };\r\n },\r\n Feedbacks: function(FeedbacksResource,FeedbacksResourceParams) { \r\n return FeedbacksResource.get(FeedbacksResourceParams).$promise; \r\n } \r\n } \r\n },\r\n 'feedback@app.client.cabinet-carrier.profile': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/review.carrier.html',\r\n } \r\n },\r\n resolve: {\r\n Team: function (UTILS, $api) {\r\n return UTILS.teamId() ? $api.teams.get.get({Id: UTILS.teamId()}).$promise : null;\r\n }\r\n }, \r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.cabinet-carrier.history', {\r\n url : '/history',\r\n views : {\r\n 'main@app.client.cabinet-carrier': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.history.html',\r\n controller: function ($scope, Transactions){\r\n $scope.transactions = Transactions.value;\r\n },\r\n resolve: {\r\n TransactionsResource: function ($api){ return $api.events.list; },\r\n TransactionsResourceParams: function(UTILS){\r\n return { $count: true, $orderby: 'DT desc', Classes: 'Transaction', UserId: UTILS.userId(), \r\n $expand: 'Order($expand=StartPoint,Delivery)' };\r\n },\r\n Transactions: function(TransactionsResource,TransactionsResourceParams) { \r\n return TransactionsResource.get(TransactionsResourceParams).$promise; \r\n } \r\n } \r\n } \r\n },\r\n\r\n bodyClass: 'client'\r\n }) \r\n .state('app.client.cabinet-carrier.main', {\r\n url : '/main',\r\n views : {\r\n 'main@app.client.cabinet-carrier': {\r\n templateUrl: 'app/main/apps/client/views/cabinet/profile.main.html',\r\n controller: 'ProfileController as vm'\r\n } \r\n },\r\n bodyClass: 'client'\r\n }) \r\n}\n/** @ngInject */\r\nfunction SettingsController($scope, $mdDialog, $rootScope, UTILS, APP_SETTINGS, $api, $q, localStorageService){\r\n\tvar vm = this;\r\n\r\n $scope.profile = angular.copy($rootScope.profile);\r\n\r\n\t$scope.saveMain = function(){\r\n\t\t$scope.saveContacts($scope.profile.Contact).then($scope.saveAbout);\r\n\t}\r\n\r\n\t$scope.saveContacts = function(contact){\t\t\r\n \tvar deferred = $q.defer(); \r\n \t$api.contacts.put.update(contact, function(c){\r\n \t\tconsole.log(c);\r\n \t$scope.errorMessage = null;\r\n\t\t\tdeferred.resolve(contact);\r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка сохранения контактных данных!');\r\n \t\t$scope.errorMessage = error.data.Message;\r\n \t\tdeferred.reject(error);\r\n \t});\r\n \treturn deferred.promise;\r\n\t}\r\n\r\n\t$scope.saveAbout = function(){\r\n console.log('save about');\r\n $api.users.patch.update({Id: UTILS.userId(), Info: $scope.profile.Info, Tags: $scope.profile.Tags, Hide: $scope.profile.Hide }, \r\n \tfunction(){\r\n\t $mdDialog.hide();\r\n $api.updateProfile();\r\n\t $rootScope.showToast('Данные сохранены!'); \r\n \t});\r\n\t}\r\n\r\n\t$scope.saveTeam = function(){\r\n \tvar deferred = $q.defer(); \r\n \t$api.teams.put.update($scope.profile.Team, function(team){\r\n \t\tconsole.log(team);\r\n \t\t$scope.profile.Team = team;\r\n \t\tdeferred.resolve(team);\r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка сохранения данных!');\r\n \t\t$scope.errorMessage = error.data.Message;\r\n \t\tdeferred.reject(error);\r\n \t});\r\n \treturn deferred.promise;\r\n \t}\r\n\r\n\t$scope.saveNotifications = function(){\r\n $api.users.patch.update({Id: UTILS.userId(), \r\n \tStatusEmail: $scope.profile.StatusEmail, \r\n \tStatusSMS: $scope.profile.StatusSMS, \t\r\n \tChatEmail: $scope.profile.ChatEmail, \t \t\r\n \tChatSMS: $scope.profile.ChatSMS, \t \t \t\r\n \tOfferEmail: $scope.profile.OfferEmail, \t \t\r\n \tOfferSMS: $scope.profile.OfferSMS, \t \t \t\r\n \tBalanceEmail: $scope.profile.BalanceEmail, \t \t\r\n \tBalanceSMS: $scope.profile.BalanceSMS, \t \t \t\r\n }, \r\n \tfunction(){\r\n\t $rootScope.showToast('Настройки сохранены!'); \r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка при сохранении настроек!'); \t\r\n \t})\r\n\t}\r\n\r\n\t$scope.savePassword = function (){\r\n\r\n\t}\r\n\r\n\r\n}\n/** @ngInject */\r\nfunction routeController($scope,$timeout,$mdDialog,Order) { \r\n $scope.$mdDialog = $mdDialog;\r\n\r\n var vm = this;\r\n \r\n console.log('route controller');\r\n\r\n\r\n function init() {\r\n var defaultLayers = hplatform.createDefaultLayers({lg: 'ru'});\r\n\r\n // Instantiate (and display) a map object:\r\n vm.myMap = new H.Map(\r\n document.getElementById('routeMap'),\r\n defaultLayers.vector.normal.map,\r\n {\r\n zoom: 14,\r\n center: { lat: 55.745508, lng: 55.745508 }\r\n }); \r\n vm.myMap.getViewPort().padding={left:20, right: 20, top: 20, bottom: 20} \r\n\r\n var iconStart = new H.map.Icon('assets/images/bizon/red-circle.png');\r\n var startPointMarker = new H.map.Marker({ lat: $scope.order.StartPoint.Lat, lng: $scope.order.StartPoint.Lng }, { icon: iconStart });\r\n\r\n var iconEnd = new H.map.Icon('assets/images/bizon/green-circle.png');\r\n var endPointMarker = new H.map.Marker({ lat: $scope.order.Delivery.Lat, lng: $scope.order.Delivery.Lng }, { icon: iconEnd });\r\n\r\n vm.myMap.addObjects([startPointMarker,endPointMarker]);\r\n\r\n // Create the parameters for the routing request:\r\n var routingParameters = {\r\n // The routing mode:\r\n 'mode': 'fastest;car',\r\n // The start point of the route:\r\n 'waypoint0': 'geo!'+$scope.order.StartPoint.Lat+','+$scope.order.StartPoint.Lng,\r\n // The end point of the route:\r\n 'waypoint1': 'geo!'+$scope.order.Delivery.Lat+','+$scope.order.Delivery.Lng,\r\n // To retrieve the shape of the route we choose the route\r\n // representation mode 'display'\r\n 'representation': 'display'\r\n };\r\n\r\n // Define a callback function to process the routing response:\r\n var onResult = function(result) {\r\n var route,\r\n routeShape,\r\n linestring;\r\n\r\n console.log(result);\r\n\r\n if (!result.response.route) return;\r\n\r\n // Pick the first route from the response:\r\n route = result.response.route[0];\r\n // Pick the route's shape:\r\n routeShape = route.shape;\r\n\r\n // Create a linestring to use as a point source for the route line\r\n linestring = new H.geo.LineString();\r\n\r\n // Push all the points in the shape into the linestring:\r\n routeShape.forEach(function(point) {\r\n var parts = point.split(',');\r\n linestring.pushLatLngAlt(parts[0], parts[1]);\r\n });\r\n\r\n // Create a polyline to display the route:\r\n var routeLine = new H.map.Polyline(linestring, {\r\n style: { strokeColor: 'green', lineWidth: 3 }\r\n });\r\n\r\n\r\n // Add the route polyline and the two markers to the map:\r\n vm.myMap.addObjects([routeLine, startPointMarker,endPointMarker]);\r\n\r\n // Set the map's viewport to make the whole route visible:\r\n vm.myMap.getViewModel().setLookAtData(\r\n { bounds: routeLine.getBoundingBox() }\r\n );\r\n \r\n };\r\n\r\n // Get an instance of the routing service:\r\n var router = hplatform.getRoutingService();\r\n\r\n // Call calculateRoute() with the routing parameters,\r\n // the callback and an error callback function (called if a\r\n // communication error occurs):\r\n router.calculateRoute(routingParameters, onResult,\r\n function(error) {\r\n alert(error.message);\r\n });\r\n }\r\n\r\n\r\n //$timeout( init, 100 );\r\n\r\n ymaps.ready(initMap);\r\n\r\n function initMap() {\r\n var myMap = new ymaps.Map(\"routeMap\", {\r\n center: [57.131311, 34.576128],\r\n zoom: 5, controls: []\r\n }, {\r\n yandexMapDisablePoiInteractivity: true\r\n })\r\n myMap.behaviors.disable('scrollZoom');\r\n \r\n \r\n var multiRoute = new ymaps.multiRouter.MultiRoute({\r\n referencePoints: [\r\n [$scope.order.StartPoint.Lat,$scope.order.StartPoint.Lng],\r\n [$scope.order.Delivery.Lat,$scope.order.Delivery.Lng]\r\n ]\r\n }, {\r\n // Автоматически устанавливать границы карты так, чтобы маршрут был виден целиком.\r\n boundsAutoApply: true,\r\n zoomMargin: 30,\r\n wayPointStartIconLayout: \"default#image\",\r\n wayPointStartIconImageHref: \"/assets/images/bizon/red-circle.png\",\r\n wayPointStartIconImageSize: [30, 30],\r\n wayPointStartIconImageOffset: [-15, -15],\r\n wayPointFinishIconLayout: \"default#image\",\r\n wayPointFinishIconImageHref: \"/assets/images/bizon/green-circle.png\",\r\n wayPointFinishIconImageSize: [30, 30],\r\n wayPointFinishIconImageOffset: [-15, -15],\r\n routeActiveStrokeWidth: 6,\r\n routeActiveStrokeColor: \"#E63E92\",\r\n });\r\n\r\n myMap.geoObjects.add(multiRoute);\r\n\r\n }\r\n\r\n}\r\n\n/** @ngInject */\r\nfunction ProfileController($scope, $rootScope, APP_SETTINGS, $stateParams, $timeout, $filter, $q, UTILS, $api) {\r\n\r\n console.log('profile controller')\r\n\r\n $scope.team = angular.copy($scope.team);\r\n\r\n $scope.hasDocument = function(id){\r\n return $filter('filter')( $scope.team.Assets.Assets, function(a){ return a.Tags.indexOf(id) >= 0 || a.Tags.indexOf(id.toString()) >= 0 ; }).length > 0; \r\n }\r\n\r\n $scope.checkedDocument = function (id){ \r\n return $scope.team.Tags && ($scope.team.Tags.indexOf(id) >= 0 || $scope.team.Tags.indexOf(id.toString()) >= 0);\r\n } \r\n\r\n \t$scope.fullText = function (){ $scope.showFullText = !$scope.showFullText; }\t\r\n\r\n $scope.updateCurPlace = function(){\r\n console.log($scope.profile.CurPlace);\r\n $api.addresses.put.update($scope.profile.CurPlace, function (){\r\n $rootScope.showToast('Регион поиска заказов изменен!');\r\n },\r\n function(error){\r\n $rootScope.showToast('Ошибка при обновлении региона поиска заказов!');\r\n })\r\n }\r\n\r\n \t$scope.saveTeam = function (){\r\n console.log($scope.team);\r\n \t\t$scope.saveContacts($scope.team.Contact)\r\n \t\t.then(function(){ $scope.saveAddress($scope.team.Contact.Address); })\r\n \t\t.then($scope.saveTeamData)\r\n .then(function(){ $api.updateProfile(); });\r\n \t}\r\n\r\n \t$scope.saveTeamData = function(){\r\n \tvar deferred = $q.defer(); \t \t\r\n \t$api.teams.put.update($scope.team, function(team){\r\n \t\t$rootScope.showToast('Данные сохранены!'); \t\t\r\n \t\tdeferred.resolve(team);\r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка сохранения данных!');\r\n \t\t$scope.errorMessage = error.data.Message;\r\n \t\tdeferred.reject(error);\r\n \t});\r\n \treturn deferred.promise;\r\n \t}\r\n\r\n $scope.saveAddress = function (address){\r\n var deferred = $q.defer(); \r\n\r\n $api.addresses.put.update(address, function(address){\r\n \tconsole.log(address);\r\n \tdeferred.resolve(address);\r\n },\r\n function(error){\r\n console.log(error);\r\n $rootScope.showToast('Ошибка сохранения адреса!');\r\n $scope.errorMessage = error.data.Message;\r\n deferred.reject(error);\r\n }); \r\n \r\n return deferred.promise;\r\n }\r\n\r\n $scope.saveContacts = function (contact){\r\n \tvar deferred = $q.defer(); \r\n\r\n \t$api.contacts.put.update(contact, function(c){\r\n \t\tconsole.log(c);\r\n \t$scope.errorMessage = null;\r\n\t \t\tdeferred.resolve(contact);\r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка сохранения контактных данных!');\r\n \t\t$scope.errorMessage = error.data.Message;\r\n \t\tdeferred.reject(error);\r\n \t});\r\n\r\n \treturn deferred.promise; \t\r\n }\r\n\r\n\r\n\t$scope.saveNotifications = function(){\r\n console.log($scope.profile);\r\n\r\n $api.users.patch.update({Id: UTILS.userId(), \r\n \tStatusEmail: $scope.profile.StatusEmail, \r\n \tStatusSMS: $scope.profile.StatusSMS, \t\r\n \tChatEmail: $scope.profile.ChatEmail, \t \t\r\n \tChatSMS: $scope.profile.ChatSMS, \t \t \t\r\n \tOfferEmail: $scope.profile.OfferEmail, \t \t\r\n \tOfferSMS: $scope.profile.OfferSMS, \t \t \t\r\n \tBalanceEmail: $scope.profile.BalanceEmail, \t \t\r\n \tBalanceSMS: $scope.profile.BalanceSMS, \t \t \t\r\n }, \r\n function(){\r\n\t $rootScope.showToast('Настройки сохранены!'); \r\n \t},\r\n \tfunction(error){\r\n \t\tconsole.log(error);\r\n \t\t$rootScope.showToast('Ошибка при сохранении настроек!'); \t\r\n \t})\r\n\t} \r\n}\r\n\n/** @ngInject */\r\nfunction PlanController($scope, APP_SETTINGS, $stateParams, $state, $doerDialogs, $api, UTILS) {\r\n console.log('steps controller')\r\n\r\n $scope.reload = function (){\r\n $scope.ODATA = $api.routes.list.get({ userId: UTILS.userId(), $expand: 'StartPoint,Delivery,Order', $orderby: 'Created desc' });\r\n }\r\n\r\n $scope.addRoute = function () {\r\n \t$doerDialogs.createRouteDialog().then(function(){\r\n $scope.reload();\r\n \t});\r\n }\r\n $scope.editRoute = function (route) {\r\n \t$doerDialogs.createRouteDialog(route).then(function(){\r\n\t\t $state.reload();\r\n \t});\r\n }\r\n $scope.removeRoute = function (route) {\r\n \t$doerDialogs.deleteRouteDialog(route).then(function(){\r\n\t\t $state.reload();\r\n \t});\r\n }\r\n\r\n}\r\n\n/** @ngInject */\r\nfunction PageNavigationController($scope, $state, $stateParams) {\r\n\r\n console.log('PageNavigationController')\r\n\r\n var ODATA = $scope.$parent.ODATA;\r\n var Resource = $scope.$parent.Resource;\r\n var ResourceParams = $scope.$parent.ResourceParams; \r\n\r\n if (!ODATA) return;\r\n console.log(ODATA);\r\n\r\n $scope.page = $stateParams.page*1 || 1;\r\n $scope.psize = $stateParams.psize*1 || 10; \r\n $scope.total = ODATA['@odata.count'];\r\n $scope.totalPages = Math.ceil( ODATA['@odata.count'] / $scope.psize ); \r\n $scope.tripointPrev = Math.max( 1, $scope.page - 5 );\r\n $scope.tripointNext = Math.min( $scope.page + 5, $scope.totalPages ); \r\n $scope.prevPage = Math.max( 1, $scope.page - 1 );\r\n $scope.nextPage = Math.min( $scope.page + 1, $scope.totalPages ); \r\n $scope.minIndex = Math.max( 2, $scope.page > $scope.totalPages - 3 ? $scope.totalPages - 3 : $scope.page - 1 );\r\n $scope.maxIndex = Math.min( $scope.page < 4 ? 4 : $scope.page + 1, $scope.totalPages - 1 ); \r\n $scope.enableShowMore = $scope.total > (ResourceParams.$skip + ODATA.value.length);\r\n $scope.showMore = function(){\r\n console.log(ResourceParams);\r\n ResourceParams.$top = 10;\r\n ResourceParams.$skip += $scope.psize; \r\n Resource.get(ResourceParams, function(data){\r\n console.log(data);\r\n ODATA.value = ODATA.value.concat(data.value);\r\n })\r\n }\r\n\r\n $scope.pages = []; \r\n for (var i = $scope.minIndex; i <= $scope.maxIndex; i++)\r\n $scope.pages.push(i);\r\n console.log($scope.pages); \r\n\r\n}\r\n\n/** @ngInject */\r\nfunction OrdersController($scope, APP_SETTINGS, $stateParams, Resource, ResourceParams) {\r\n console.log('orders controller')\r\n var orders = Resource.get(ResourceParams);\r\n $scope.orders = orders;\r\n $scope.ODATA = orders;\r\n $scope.ResourceParams = ResourceParams;\r\n $scope.Resource = Resource;\r\n}\r\n\n/** @ngInject */\r\nfunction OrderItemController($scope,$rootScope,APP_SETTINGS, $state,\r\n $clientDialogs,$doerDialogs,Order,$api,\r\n Offers,Resource,ResourceParams,MyOffer,SelectedOffer,$timeout,UTILS) {\r\n console.log('order item controller');\r\n console.log(Order);\r\n $scope.order = Order; \r\n $scope.offer = SelectedOffer ? SelectedOffer.value[0] : null;\r\n $scope.UTILS = UTILS;\r\n console.log(MyOffer);\r\n $scope.myoffer = MyOffer ? MyOffer.value : null;\r\n $scope.offers = Offers ? Offers.value : null;\r\n\r\n $scope.editOrder = function(){\r\n \t$clientDialogs.createOrderDialog(Order).then(function(order){\r\n \t\t$state.go('.', $state.params, {reload: 'app.client.orders.item' });\r\n \t})\r\n }\r\n $scope.cancelOrder = function(){\r\n \t$clientDialogs.cancelOrderDialog(Order).then(function(order){\r\n \t\t$state.go('app.client.orders');\r\n \t})\r\n }\r\n $scope.clientAccept = function (offer){\r\n $clientDialogs.clientAcceptDialog($scope.order,offer).then(function(order){\r\n $state.go('.', $state.params, {reload: 'app.client.orders.item' });\r\n })\r\n }\r\n\r\n $scope.getStatusTemplate = function (){\r\n if (Order.State.indexOf('Canceled') >= 0) return null;\r\n if (UTILS.isDoer())\r\n return '';\r\n else if (Order.ClientId == UTILS.userId())\r\n return '';\r\n return null;\r\n }\r\n\r\n $scope.$on('NewEvent', function(e, event){\r\n console.log(event);\r\n if (event.OrderId == Order.Id && event.Class != 'Chat')\r\n {\r\n console.log('reload order');\r\n //$timeout( function(){ $state.reload(); }, 1000 ); \r\n //$timeout( function(){ $state.go('.', $state.params, {reload: 'app.client.orders.item' }); }, 1000 );\r\n $timeout(\r\n function (){\r\n $api.orders.get.get({Id: Order.Id }, function (result){ $scope.order = result; });\r\n Resource.get(ResourceParams, function (result){ $scope.offers = result.value; });\r\n }, \r\n 100);\r\n }\r\n });\r\n}\r\n\n/** @ngInject */\r\nfunction OrdersFilterController($scope, $state, $stateParams,$api, UTILS) {\r\n\r\n console.log($stateParams);\r\n\r\n $scope.start = $stateParams.start && $stateParams.start.length > 5 ? moment($stateParams.start,\"DD.MM.YYYY\").toDate() : null;\r\n $scope.formycars = $stateParams.formycars == \"true\";\r\n\r\n $scope.category = $stateParams.category ? $stateParams.category*1 : null;\r\n $scope.applyStart = function(){ \t\r\n \tconsole.log($scope.start);\r\n \tvar s = moment($scope.start.getTime()).format(\"DD.MM.YYYY\");\r\n \tif (!s || s.length < 5) return;\r\n \t$state.go('.', {start: s});\r\n }\r\n\r\n $scope.getRegions = function(country){\r\n \t return $api.addresses.regions.query({country: country});\r\n }\r\n $scope.getCities = function(country, region){\r\n \t return $api.addresses.cities.query({country: country, region: region });\r\n }\r\n\r\n $scope.countries = angular.copy(UTILS.countries);\r\n\r\n if ($stateParams.fromcountry)\r\n \t$scope.fromregions = $scope.getRegions($stateParams.fromcountry)\r\n if ($stateParams.fromregion && $stateParams.fromcountry)\r\n \t$scope.fromcities = $scope.getCities($stateParams.fromcountry, $stateParams.fromregion)\r\n\r\n if ($stateParams.tocountry)\r\n \t$scope.toregions = $scope.getRegions($stateParams.tocountry)\r\n if ($stateParams.toregion && $stateParams.tocountry)\r\n \t$scope.tocities = $scope.getCities($stateParams.tocountry, $stateParams.toregion) \r\n\r\n $scope.applyFormycars = function(v){\r\n $state.go('.', {formycars: v});\r\n }\r\n\r\n}\r\n\n!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module&&\"function\"==typeof require?b(require(\"../moment\")):\"function\"==typeof define&&define.amd?define([\"../moment\"],b):b(a.moment)}(this,function(a){\"use strict\";\r\n//! moment.js locale configuration\r\n//! locale : Belarusian [be]\r\n//! author : Dmitry Demidov : https://github.com/demidov91\r\n//! author: Praleska: http://praleska.pro/\r\n//! Author : Menelion Elensúle : https://github.com/Oire\r\nfunction b(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function c(a,c,d){var e={mm:c?\"хвіліна_хвіліны_хвілін\":\"хвіліну_хвіліны_хвілін\",hh:c?\"гадзіна_гадзіны_гадзін\":\"гадзіну_гадзіны_гадзін\",dd:\"дзень_дні_дзён\",MM:\"месяц_месяцы_месяцаў\",yy:\"год_гады_гадоў\"};return\"m\"===d?c?\"хвіліна\":\"хвіліну\":\"h\"===d?c?\"гадзіна\":\"гадзіну\":a+\" \"+b(e[d],+a)}\r\n//! moment.js locale configuration\r\n//! locale : Breton [br]\r\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\r\nfunction d(a,b,c){var d={mm:\"munutenn\",MM:\"miz\",dd:\"devezh\"};return a+\" \"+g(d[c],a)}function e(a){switch(f(a)){case 1:case 3:case 4:case 5:case 9:return a+\" bloaz\";default:return a+\" vloaz\"}}function f(a){return a>9?f(a%10):a}function g(a,b){return 2===b?h(a):a}function h(a){var b={m:\"v\",b:\"v\",d:\"z\"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)}\r\n//! moment.js locale configuration\r\n//! locale : Bosnian [bs]\r\n//! author : Nedim Cholich : https://github.com/frontyard\r\n//! based on (hr) translation by Bojan Marković\r\nfunction i(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}function j(a){return a>1&&a<5&&1!==~~(a/10)}function k(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"pár sekund\":\"pár sekundami\";case\"m\":return b?\"minuta\":d?\"minutu\":\"minutou\";case\"mm\":return b||d?e+(j(a)?\"minuty\":\"minut\"):e+\"minutami\";break;case\"h\":return b?\"hodina\":d?\"hodinu\":\"hodinou\";case\"hh\":return b||d?e+(j(a)?\"hodiny\":\"hodin\"):e+\"hodinami\";break;case\"d\":return b||d?\"den\":\"dnem\";case\"dd\":return b||d?e+(j(a)?\"dny\":\"dní\"):e+\"dny\";break;case\"M\":return b||d?\"měsíc\":\"měsícem\";case\"MM\":return b||d?e+(j(a)?\"měsíce\":\"měsíců\"):e+\"měsíci\";break;case\"y\":return b||d?\"rok\":\"rokem\";case\"yy\":return b||d?e+(j(a)?\"roky\":\"let\"):e+\"lety\"}}\r\n//! moment.js locale configuration\r\n//! locale : German (Austria) [de-at]\r\n//! author : lluchs : https://github.com/lluchs\r\n//! author: Menelion Elensúle: https://github.com/Oire\r\n//! author : Martin Groller : https://github.com/MadMG\r\n//! author : Mikolaj Dadela : https://github.com/mik01aj\r\nfunction l(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}\r\n//! moment.js locale configuration\r\n//! locale : German (Switzerland) [de-ch]\r\n//! author : sschueller : https://github.com/sschueller\r\nfunction m(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}\r\n//! moment.js locale configuration\r\n//! locale : German [de]\r\n//! author : lluchs : https://github.com/lluchs\r\n//! author: Menelion Elensúle: https://github.com/Oire\r\n//! author : Mikolaj Dadela : https://github.com/mik01aj\r\nfunction n(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}function o(a){return a instanceof Function||\"[object Function]\"===Object.prototype.toString.call(a)}\r\n//! moment.js locale configuration\r\n//! locale : Estonian [et]\r\n//! author : Henry Kehlmann : https://github.com/madhenry\r\n//! improvements : Illimar Tambek : https://github.com/ragulka\r\nfunction p(a,b,c,d){var e={s:[\"mõne sekundi\",\"mõni sekund\",\"paar sekundit\"],m:[\"ühe minuti\",\"üks minut\"],mm:[a+\" minuti\",a+\" minutit\"],h:[\"ühe tunni\",\"tund aega\",\"üks tund\"],hh:[a+\" tunni\",a+\" tundi\"],d:[\"ühe päeva\",\"üks päev\"],M:[\"kuu aja\",\"kuu aega\",\"üks kuu\"],MM:[a+\" kuu\",a+\" kuud\"],y:[\"ühe aasta\",\"aasta\",\"üks aasta\"],yy:[a+\" aasta\",a+\" aastat\"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function q(a,b,c,d){var e=\"\";switch(c){case\"s\":return d?\"muutaman sekunnin\":\"muutama sekunti\";case\"m\":return d?\"minuutin\":\"minuutti\";case\"mm\":e=d?\"minuutin\":\"minuuttia\";break;case\"h\":return d?\"tunnin\":\"tunti\";case\"hh\":e=d?\"tunnin\":\"tuntia\";break;case\"d\":return d?\"päivän\":\"päivä\";case\"dd\":e=d?\"päivän\":\"päivää\";break;case\"M\":return d?\"kuukauden\":\"kuukausi\";case\"MM\":e=d?\"kuukauden\":\"kuukautta\";break;case\"y\":return d?\"vuoden\":\"vuosi\";case\"yy\":e=d?\"vuoden\":\"vuotta\"}return e=r(a,d)+\" \"+e}function r(a,b){return a<10?b?Ea[a]:Da[a]:a}\r\n//! moment.js locale configuration\r\n//! locale : Konkani Latin script [gom-latn]\r\n//! author : The Discoverer : https://github.com/WikiDiscoverer\r\nfunction s(a,b,c,d){var e={s:[\"thodde secondanim\",\"thodde second\"],m:[\"eka mintan\",\"ek minute\"],mm:[a+\" mintanim\",a+\" mintam\"],h:[\"eka horan\",\"ek hor\"],hh:[a+\" horanim\",a+\" hor\"],d:[\"eka disan\",\"ek dis\"],dd:[a+\" disanim\",a+\" dis\"],M:[\"eka mhoinean\",\"ek mhoino\"],MM:[a+\" mhoineanim\",a+\" mhoine\"],y:[\"eka vorsan\",\"ek voros\"],yy:[a+\" vorsanim\",a+\" vorsam\"]};return b?e[c][0]:e[c][1]}\r\n//! moment.js locale configuration\r\n//! locale : Croatian [hr]\r\n//! author : Bojan Marković : https://github.com/bmarkovic\r\nfunction t(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}function u(a,b,c,d){var e=a;switch(c){case\"s\":return d||b?\"néhány másodperc\":\"néhány másodperce\";case\"m\":return\"egy\"+(d||b?\" perc\":\" perce\");case\"mm\":return e+(d||b?\" perc\":\" perce\");case\"h\":return\"egy\"+(d||b?\" óra\":\" órája\");case\"hh\":return e+(d||b?\" óra\":\" órája\");case\"d\":return\"egy\"+(d||b?\" nap\":\" napja\");case\"dd\":return e+(d||b?\" nap\":\" napja\");case\"M\":return\"egy\"+(d||b?\" hónap\":\" hónapja\");case\"MM\":return e+(d||b?\" hónap\":\" hónapja\");case\"y\":return\"egy\"+(d||b?\" év\":\" éve\");case\"yy\":return e+(d||b?\" év\":\" éve\")}return\"\"}function v(a){return(a?\"\":\"[múlt] \")+\"[\"+Oa[this.day()]+\"] LT[-kor]\"}\r\n//! moment.js locale configuration\r\n//! locale : Icelandic [is]\r\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\r\nfunction w(a){return a%100===11||a%10!==1}function x(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"nokkrar sekúndur\":\"nokkrum sekúndum\";case\"m\":return b?\"mínúta\":\"mínútu\";case\"mm\":return w(a)?e+(b||d?\"mínútur\":\"mínútum\"):b?e+\"mínúta\":e+\"mínútu\";case\"hh\":return w(a)?e+(b||d?\"klukkustundir\":\"klukkustundum\"):e+\"klukkustund\";case\"d\":return b?\"dagur\":d?\"dag\":\"degi\";case\"dd\":return w(a)?b?e+\"dagar\":e+(d?\"daga\":\"dögum\"):b?e+\"dagur\":e+(d?\"dag\":\"degi\");case\"M\":return b?\"mánuður\":d?\"mánuð\":\"mánuði\";case\"MM\":return w(a)?b?e+\"mánuðir\":e+(d?\"mánuði\":\"mánuðum\"):b?e+\"mánuður\":e+(d?\"mánuð\":\"mánuði\");case\"y\":return b||d?\"ár\":\"ári\";case\"yy\":return w(a)?e+(b||d?\"ár\":\"árum\"):e+(b||d?\"ár\":\"ári\")}}\r\n//! moment.js locale configuration\r\n//! locale : Luxembourgish [lb]\r\n//! author : mweimerskirch : https://github.com/mweimerskirch\r\n//! author : David Raison : https://github.com/kwisatz\r\nfunction y(a,b,c,d){var e={m:[\"eng Minutt\",\"enger Minutt\"],h:[\"eng Stonn\",\"enger Stonn\"],d:[\"een Dag\",\"engem Dag\"],M:[\"ee Mount\",\"engem Mount\"],y:[\"ee Joer\",\"engem Joer\"]};return b?e[c][0]:e[c][1]}function z(a){var b=a.substr(0,a.indexOf(\" \"));return B(b)?\"a \"+a:\"an \"+a}function A(a){var b=a.substr(0,a.indexOf(\" \"));return B(b)?\"viru \"+a:\"virun \"+a}function B(a){if(a=parseInt(a,10),isNaN(a))return!1;if(a<0)return!0;if(a<10)return 4<=a&&a<=7;if(a<100){var b=a%10,c=a/10;return B(0===b?c:b)}if(a<1e4){for(;a>=10;)a/=10;return B(a)}return a/=1e3,B(a)}function C(a,b,c,d){return b?\"kelios sekundės\":d?\"kelių sekundžių\":\"kelias sekundes\"}function D(a,b,c,d){return b?F(c)[0]:d?F(c)[1]:F(c)[2]}function E(a){return a%10===0||a>10&&a<20}function F(a){return Ta[a].split(\"_\")}function G(a,b,c,d){var e=a+\" \";return 1===a?e+D(a,b,c[0],d):b?e+(E(a)?F(c)[1]:F(c)[0]):d?e+F(c)[1]:e+(E(a)?F(c)[1]:F(c)[2])}function H(a,b,c){return c?b%10===1&&b%100!==11?a[2]:a[3]:b%10===1&&b%100!==11?a[0]:a[1]}function I(a,b,c){return a+\" \"+H(Ua[c],a,b)}function J(a,b,c){return H(Ua[c],a,b)}function K(a,b){return b?\"dažas sekundes\":\"dažām sekundēm\"}function L(a,b,c,d){var e=\"\";if(b)switch(c){case\"s\":e=\"काही सेकंद\";break;case\"m\":e=\"एक मिनिट\";break;case\"mm\":e=\"%d मिनिटे\";break;case\"h\":e=\"एक तास\";break;case\"hh\":e=\"%d तास\";break;case\"d\":e=\"एक दिवस\";break;case\"dd\":e=\"%d दिवस\";break;case\"M\":e=\"एक महिना\";break;case\"MM\":e=\"%d महिने\";break;case\"y\":e=\"एक वर्ष\";break;case\"yy\":e=\"%d वर्षे\"}else switch(c){case\"s\":e=\"काही सेकंदां\";break;case\"m\":e=\"एका मिनिटा\";break;case\"mm\":e=\"%d मिनिटां\";break;case\"h\":e=\"एका तासा\";break;case\"hh\":e=\"%d तासां\";break;case\"d\":e=\"एका दिवसा\";break;case\"dd\":e=\"%d दिवसां\";break;case\"M\":e=\"एका महिन्या\";break;case\"MM\":e=\"%d महिन्यां\";break;case\"y\":e=\"एका वर्षा\";break;case\"yy\":e=\"%d वर्षां\"}return e.replace(/%d/i,a)}function M(a){return a%10<5&&a%10>1&&~~(a/10)%10!==1}function N(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"minuta\":\"minutę\";case\"mm\":return d+(M(a)?\"minuty\":\"minut\");case\"h\":return b?\"godzina\":\"godzinę\";case\"hh\":return d+(M(a)?\"godziny\":\"godzin\");case\"MM\":return d+(M(a)?\"miesiące\":\"miesięcy\");case\"yy\":return d+(M(a)?\"lata\":\"lat\")}}\r\n//! moment.js locale configuration\r\n//! locale : Romanian [ro]\r\n//! author : Vlad Gurdiga : https://github.com/gurdiga\r\n//! author : Valentin Agachi : https://github.com/avaly\r\nfunction O(a,b,c){var d={mm:\"minute\",hh:\"ore\",dd:\"zile\",MM:\"luni\",yy:\"ani\"},e=\" \";return(a%100>=20||a>=100&&a%100===0)&&(e=\" de \"),a+e+d[c]}\r\n//! moment.js locale configuration\r\n//! locale : Russian [ru]\r\n//! author : Viktorminator : https://github.com/Viktorminator\r\n//! Author : Menelion Elensúle : https://github.com/Oire\r\n//! author : Коренберг Марк : https://github.com/socketpair\r\nfunction P(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function Q(a,b,c){var d={mm:b?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"};return\"m\"===c?b?\"минута\":\"минуту\":a+\" \"+P(d[c],+a)}function R(a){return a>1&&a<5}function S(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"pár sekúnd\":\"pár sekundami\";case\"m\":return b?\"minúta\":d?\"minútu\":\"minútou\";case\"mm\":return b||d?e+(R(a)?\"minúty\":\"minút\"):e+\"minútami\";break;case\"h\":return b?\"hodina\":d?\"hodinu\":\"hodinou\";case\"hh\":return b||d?e+(R(a)?\"hodiny\":\"hodín\"):e+\"hodinami\";break;case\"d\":return b||d?\"deň\":\"dňom\";case\"dd\":return b||d?e+(R(a)?\"dni\":\"dní\"):e+\"dňami\";break;case\"M\":return b||d?\"mesiac\":\"mesiacom\";case\"MM\":return b||d?e+(R(a)?\"mesiace\":\"mesiacov\"):e+\"mesiacmi\";break;case\"y\":return b||d?\"rok\":\"rokom\";case\"yy\":return b||d?e+(R(a)?\"roky\":\"rokov\"):e+\"rokmi\"}}\r\n//! moment.js locale configuration\r\n//! locale : Slovenian [sl]\r\n//! author : Robert Sedovšek : https://github.com/sedovsek\r\nfunction T(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"nekaj sekund\":\"nekaj sekundami\";case\"m\":return b?\"ena minuta\":\"eno minuto\";case\"mm\":return e+=1===a?b?\"minuta\":\"minuto\":2===a?b||d?\"minuti\":\"minutama\":a<5?b||d?\"minute\":\"minutami\":b||d?\"minut\":\"minutami\";case\"h\":return b?\"ena ura\":\"eno uro\";case\"hh\":return e+=1===a?b?\"ura\":\"uro\":2===a?b||d?\"uri\":\"urama\":a<5?b||d?\"ure\":\"urami\":b||d?\"ur\":\"urami\";case\"d\":return b||d?\"en dan\":\"enim dnem\";case\"dd\":return e+=1===a?b||d?\"dan\":\"dnem\":2===a?b||d?\"dni\":\"dnevoma\":b||d?\"dni\":\"dnevi\";case\"M\":return b||d?\"en mesec\":\"enim mesecem\";case\"MM\":return e+=1===a?b||d?\"mesec\":\"mesecem\":2===a?b||d?\"meseca\":\"mesecema\":a<5?b||d?\"mesece\":\"meseci\":b||d?\"mesecev\":\"meseci\";case\"y\":return b||d?\"eno leto\":\"enim letom\";case\"yy\":return e+=1===a?b||d?\"leto\":\"letom\":2===a?b||d?\"leti\":\"letoma\":a<5?b||d?\"leta\":\"leti\":b||d?\"let\":\"leti\"}}function U(a){var b=a;return b=a.indexOf(\"jaj\")!==-1?b.slice(0,-3)+\"leS\":a.indexOf(\"jar\")!==-1?b.slice(0,-3)+\"waQ\":a.indexOf(\"DIS\")!==-1?b.slice(0,-3)+\"nem\":b+\" pIq\"}function V(a){var b=a;return b=a.indexOf(\"jaj\")!==-1?b.slice(0,-3)+\"Hu’\":a.indexOf(\"jar\")!==-1?b.slice(0,-3)+\"wen\":a.indexOf(\"DIS\")!==-1?b.slice(0,-3)+\"ben\":b+\" ret\"}function W(a,b,c,d){var e=X(a);switch(c){case\"mm\":return e+\" tup\";case\"hh\":return e+\" rep\";case\"dd\":return e+\" jaj\";case\"MM\":return e+\" jar\";case\"yy\":return e+\" DIS\"}}function X(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e=\"\";return b>0&&(e+=vb[b]+\"vatlh\"),c>0&&(e+=(\"\"!==e?\" \":\"\")+vb[c]+\"maH\"),d>0&&(e+=(\"\"!==e?\" \":\"\")+vb[d]),\"\"===e?\"pagh\":e}function Y(a,b,c,d){var e={s:[\"viensas secunds\",\"'iensas secunds\"],m:[\"'n míut\",\"'iens míut\"],mm:[a+\" míuts\",\"\"+a+\" míuts\"],h:[\"'n þora\",\"'iensa þora\"],hh:[a+\" þoras\",\"\"+a+\" þoras\"],d:[\"'n ziua\",\"'iensa ziua\"],dd:[a+\" ziuas\",\"\"+a+\" ziuas\"],M:[\"'n mes\",\"'iens mes\"],MM:[a+\" mesen\",\"\"+a+\" mesen\"],y:[\"'n ar\",\"'iens ar\"],yy:[a+\" ars\",\"\"+a+\" ars\"]};return d?e[c][0]:b?e[c][0]:e[c][1]}\r\n//! moment.js locale configuration\r\n//! locale : Ukrainian [uk]\r\n//! author : zemlanin : https://github.com/zemlanin\r\n//! Author : Menelion Elensúle : https://github.com/Oire\r\nfunction Z(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function $(a,b,c){var d={mm:b?\"хвилина_хвилини_хвилин\":\"хвилину_хвилини_хвилин\",hh:b?\"година_години_годин\":\"годину_години_годин\",dd:\"день_дні_днів\",MM:\"місяць_місяці_місяців\",yy:\"рік_роки_років\"};return\"m\"===c?b?\"хвилина\":\"хвилину\":\"h\"===c?b?\"година\":\"годину\":a+\" \"+Z(d[c],+a)}function _(a,b){var c={nominative:\"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота\".split(\"_\"),accusative:\"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу\".split(\"_\"),genitive:\"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи\".split(\"_\")};if(!a)return c.nominative;var d=/(\\[[ВвУу]\\]) ?dddd/.test(b)?\"accusative\":/\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(b)?\"genitive\":\"nominative\";return c[d][a.day()]}function aa(a){return function(){return a+\"о\"+(11===this.hours()?\"б\":\"\")+\"] LT\"}}\r\n//! moment.js locale configuration\r\n//! locale : Afrikaans [af]\r\n//! author : Werner Mollentze : https://github.com/wernerm\r\na.defineLocale(\"af\",{months:\"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag\".split(\"_\"),weekdaysShort:\"Son_Maa_Din_Woe_Don_Vry_Sat\".split(\"_\"),weekdaysMin:\"So_Ma_Di_Wo_Do_Vr_Sa\".split(\"_\"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return a<12?c?\"vm\":\"VM\":c?\"nm\":\"NM\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Vandag om] LT\",nextDay:\"[Môre om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[Gister om] LT\",lastWeek:\"[Laas] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"oor %s\",past:\"%s gelede\",s:\"'n paar sekondes\",m:\"'n minuut\",mm:\"%d minute\",h:\"'n uur\",hh:\"%d ure\",d:\"'n dag\",dd:\"%d dae\",M:\"'n maand\",MM:\"%d maande\",y:\"'n jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Arabic (Algeria) [ar-dz]\r\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme\r\na.defineLocale(\"ar-dz\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"أح_إث_ثلا_أر_خم_جم_سب\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:0,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Arabic (Kuwait) [ar-kw]\r\n//! author : Nusret Parlak: https://github.com/nusretparlak\r\na.defineLocale(\"ar-kw\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:0,doy:12}});\r\n//! moment.js locale configuration\r\n//! locale : Arabic (Lybia) [ar-ly]\r\n//! author : Ali Hmer: https://github.com/kikoanis\r\nvar ba={1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",0:\"0\"},ca=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},da={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},ea=function(a){return function(b,c,d,e){var f=ca(b),g=da[a][ca(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},fa=[\"يناير\",\"فبراير\",\"مارس\",\"أبريل\",\"مايو\",\"يونيو\",\"يوليو\",\"أغسطس\",\"سبتمبر\",\"أكتوبر\",\"نوفمبر\",\"ديسمبر\"];a.defineLocale(\"ar-ly\",{months:fa,monthsShort:fa,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/‏M/‏YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return a<12?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:ea(\"s\"),m:ea(\"m\"),mm:ea(\"m\"),h:ea(\"h\"),hh:ea(\"h\"),d:ea(\"d\"),dd:ea(\"d\"),M:ea(\"M\"),MM:ea(\"M\"),y:ea(\"y\"),yy:ea(\"y\")},preparse:function(a){return a.replace(/\\u200f/g,\"\").replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return ba[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),\r\n//! moment.js locale configuration\r\n//! locale : Arabic (Morocco) [ar-ma]\r\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\r\n//! author : Abdel Said : https://github.com/abdelsaid\r\na.defineLocale(\"ar-ma\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:6,doy:12}});\r\n//! moment.js locale configuration\r\n//! locale : Arabic (Saudi Arabia) [ar-sa]\r\n//! author : Suhail Alkowaileet : https://github.com/xsoh\r\nvar ga={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},ha={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"};a.defineLocale(\"ar-sa\",{months:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return a<12?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return ha[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return ga[a]}).replace(/,/g,\"،\")},week:{dow:0,doy:6}}),\r\n//! moment.js locale configuration\r\n//! locale : Arabic (Tunisia) [ar-tn]\r\n//! author : Nader Toukabri : https://github.com/naderio\r\na.defineLocale(\"ar-tn\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Arabic [ar]\r\n//! author : Abdel Said: https://github.com/abdelsaid\r\n//! author : Ahmed Elkhatib\r\n//! author : forabi https://github.com/forabi\r\nvar ia={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},ja={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},ka=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},la={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},ma=function(a){return function(b,c,d,e){var f=ka(b),g=la[a][ka(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},na=[\"كانون الثاني يناير\",\"شباط فبراير\",\"آذار مارس\",\"نيسان أبريل\",\"أيار مايو\",\"حزيران يونيو\",\"تموز يوليو\",\"آب أغسطس\",\"أيلول سبتمبر\",\"تشرين الأول أكتوبر\",\"تشرين الثاني نوفمبر\",\"كانون الأول ديسمبر\"];a.defineLocale(\"ar\",{months:na,monthsShort:na,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/‏M/‏YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return a<12?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:ma(\"s\"),m:ma(\"m\"),mm:ma(\"m\"),h:ma(\"h\"),hh:ma(\"h\"),d:ma(\"d\"),dd:ma(\"d\"),M:ma(\"M\"),MM:ma(\"M\"),y:ma(\"y\"),yy:ma(\"y\")},preparse:function(a){return a.replace(/\\u200f/g,\"\").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return ja[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return ia[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}});\r\n//! moment.js locale configuration\r\n//! locale : Azerbaijani [az]\r\n//! author : topchiyev : https://github.com/topchiyev\r\nvar oa={1:\"-inci\",5:\"-inci\",8:\"-inci\",70:\"-inci\",80:\"-inci\",2:\"-nci\",7:\"-nci\",20:\"-nci\",50:\"-nci\",3:\"-üncü\",4:\"-üncü\",100:\"-üncü\",6:\"-ncı\",9:\"-uncu\",10:\"-uncu\",30:\"-uncu\",60:\"-ıncı\",90:\"-ıncı\"};a.defineLocale(\"az\",{months:\"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr\".split(\"_\"),monthsShort:\"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek\".split(\"_\"),weekdays:\"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə\".split(\"_\"),weekdaysShort:\"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən\".split(\"_\"),weekdaysMin:\"Bz_BE_ÇA_Çə_CA_Cü_Şə\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[sabah saat] LT\",nextWeek:\"[gələn həftə] dddd [saat] LT\",lastDay:\"[dünən] LT\",lastWeek:\"[keçən həftə] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s əvvəl\",s:\"birneçə saniyyə\",m:\"bir dəqiqə\",mm:\"%d dəqiqə\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir il\",yy:\"%d il\"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return a<4?\"gecə\":a<12?\"səhər\":a<17?\"gündüz\":\"axşam\"},dayOfMonthOrdinalParse:/\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+\"-ıncı\";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(oa[b]||oa[c]||oa[d])},week:{dow:1,doy:7}}),a.defineLocale(\"be\",{months:{format:\"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня\".split(\"_\"),standalone:\"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань\".split(\"_\")},monthsShort:\"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж\".split(\"_\"),weekdays:{format:\"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу\".split(\"_\"),standalone:\"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота\".split(\"_\"),isFormat:/\\[ ?[Вв] ?(?:мінулую|наступную)? ?\\] ?dddd/},weekdaysShort:\"нд_пн_ат_ср_чц_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_ат_ср_чц_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., HH:mm\",LLLL:\"dddd, D MMMM YYYY г., HH:mm\"},calendar:{sameDay:\"[Сёння ў] LT\",nextDay:\"[Заўтра ў] LT\",lastDay:\"[Учора ў] LT\",nextWeek:function(){return\"[У] dddd [ў] LT\"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return\"[У мінулую] dddd [ў] LT\";case 1:case 2:case 4:return\"[У мінулы] dddd [ў] LT\"}},sameElse:\"L\"},relativeTime:{future:\"праз %s\",past:\"%s таму\",s:\"некалькі секунд\",m:c,mm:c,h:c,hh:c,d:\"дзень\",dd:c,M:\"месяц\",MM:c,y:\"год\",yy:c},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return a<4?\"ночы\":a<12?\"раніцы\":a<17?\"дня\":\"вечара\"},dayOfMonthOrdinalParse:/\\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+\"-ы\":a+\"-і\";case\"D\":return a+\"-га\";default:return a}},week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Bulgarian [bg]\r\n//! author : Krasen Borisov : https://github.com/kraz\r\na.defineLocale(\"bg\",{months:\"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек\".split(\"_\"),weekdays:\"неделя_понеделник_вторник_сряда_четвъртък_петък_събота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сря_чет_пет_съб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[Днес в] LT\",nextDay:\"[Утре в] LT\",nextWeek:\"dddd [в] LT\",lastDay:\"[Вчера в] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[В изминалата] dddd [в] LT\";case 1:case 2:case 4:case 5:return\"[В изминалия] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"след %s\",past:\"преди %s\",s:\"няколко секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дни\",M:\"месец\",MM:\"%d месеца\",y:\"година\",yy:\"%d години\"},dayOfMonthOrdinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&c<20?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Bengali [bn]\r\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\r\nvar pa={1:\"১\",2:\"২\",3:\"৩\",4:\"৪\",5:\"৫\",6:\"৬\",7:\"৭\",8:\"৮\",9:\"৯\",0:\"০\"},qa={\"১\":\"1\",\"২\":\"2\",\"৩\":\"3\",\"৪\":\"4\",\"৫\":\"5\",\"৬\":\"6\",\"৭\":\"7\",\"৮\":\"8\",\"৯\":\"9\",\"০\":\"0\"};a.defineLocale(\"bn\",{months:\"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর\".split(\"_\"),monthsShort:\"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে\".split(\"_\"),weekdays:\"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার\".split(\"_\"),weekdaysShort:\"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি\".split(\"_\"),weekdaysMin:\"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি\".split(\"_\"),longDateFormat:{LT:\"A h:mm সময়\",LTS:\"A h:mm:ss সময়\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm সময়\",LLLL:\"dddd, D MMMM YYYY, A h:mm সময়\"},calendar:{sameDay:\"[আজ] LT\",nextDay:\"[আগামীকাল] LT\",nextWeek:\"dddd, LT\",lastDay:\"[গতকাল] LT\",lastWeek:\"[গত] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s পরে\",past:\"%s আগে\",s:\"কয়েক সেকেন্ড\",m:\"এক মিনিট\",mm:\"%d মিনিট\",h:\"এক ঘন্টা\",hh:\"%d ঘন্টা\",d:\"এক দিন\",dd:\"%d দিন\",M:\"এক মাস\",MM:\"%d মাস\",y:\"এক বছর\",yy:\"%d বছর\"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return qa[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return pa[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(a,b){return 12===a&&(a=0),\"রাত\"===b&&a>=4||\"দুপুর\"===b&&a<5||\"বিকাল\"===b?a+12:a},meridiem:function(a,b,c){return a<4?\"রাত\":a<10?\"সকাল\":a<17?\"দুপুর\":a<20?\"বিকাল\":\"রাত\"},week:{dow:0,doy:6}});\r\n//! moment.js locale configuration\r\n//! locale : Tibetan [bo]\r\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\r\nvar ra={1:\"༡\",2:\"༢\",3:\"༣\",4:\"༤\",5:\"༥\",6:\"༦\",7:\"༧\",8:\"༨\",9:\"༩\",0:\"༠\"},sa={\"༡\":\"1\",\"༢\":\"2\",\"༣\":\"3\",\"༤\":\"4\",\"༥\":\"5\",\"༦\":\"6\",\"༧\":\"7\",\"༨\":\"8\",\"༩\":\"9\",\"༠\":\"0\"};a.defineLocale(\"bo\",{months:\"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ\".split(\"_\"),monthsShort:\"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ\".split(\"_\"),weekdays:\"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་\".split(\"_\"),weekdaysShort:\"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་\".split(\"_\"),weekdaysMin:\"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[དི་རིང] LT\",nextDay:\"[སང་ཉིན] LT\",nextWeek:\"[བདུན་ཕྲག་རྗེས་མ], LT\",lastDay:\"[ཁ་སང] LT\",lastWeek:\"[བདུན་ཕྲག་མཐའ་མ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s ལ་\",past:\"%s སྔན་ལ\",s:\"ལམ་སང\",m:\"སྐར་མ་གཅིག\",mm:\"%d སྐར་མ\",h:\"ཆུ་ཚོད་གཅིག\",hh:\"%d ཆུ་ཚོད\",d:\"ཉིན་གཅིག\",dd:\"%d ཉིན་\",M:\"ཟླ་བ་གཅིག\",MM:\"%d ཟླ་བ\",y:\"ལོ་གཅིག\",yy:\"%d ལོ\"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return sa[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return ra[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"མཚན་མོ\"===b&&a>=4||\"ཉིན་གུང\"===b&&a<5||\"དགོང་དག\"===b?a+12:a},meridiem:function(a,b,c){return a<4?\"མཚན་མོ\":a<10?\"ཞོགས་ཀས\":a<17?\"ཉིན་གུང\":a<20?\"དགོང་དག\":\"མཚན་མོ\"},week:{dow:0,doy:6}}),a.defineLocale(\"br\",{months:\"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu\".split(\"_\"),monthsShort:\"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker\".split(\"_\"),weekdays:\"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn\".split(\"_\"),weekdaysShort:\"Sul_Lun_Meu_Mer_Yao_Gwe_Sad\".split(\"_\"),weekdaysMin:\"Su_Lu_Me_Mer_Ya_Gw_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h[e]mm A\",LTS:\"h[e]mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D [a viz] MMMM YYYY\",LLL:\"D [a viz] MMMM YYYY h[e]mm A\",LLLL:\"dddd, D [a viz] MMMM YYYY h[e]mm A\"},calendar:{sameDay:\"[Hiziv da] LT\",nextDay:\"[Warc'hoazh da] LT\",nextWeek:\"dddd [da] LT\",lastDay:\"[Dec'h da] LT\",lastWeek:\"dddd [paset da] LT\",sameElse:\"L\"},relativeTime:{future:\"a-benn %s\",past:\"%s 'zo\",s:\"un nebeud segondennoù\",m:\"ur vunutenn\",mm:d,h:\"un eur\",hh:\"%d eur\",d:\"un devezh\",dd:d,M:\"ur miz\",MM:d,y:\"ur bloaz\",yy:e},dayOfMonthOrdinalParse:/\\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?\"añ\":\"vet\";return a+b},week:{dow:1,doy:4}}),a.defineLocale(\"bs\",{months:\"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:i,mm:i,h:i,hh:i,d:\"dan\",dd:i,M:\"mjesec\",MM:i,y:\"godinu\",yy:i},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Catalan [ca]\r\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\r\na.defineLocale(\"ca\",{months:{standalone:\"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre\".split(\"_\"),format:\"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\"_\"),isFormat:/D[oD]?(\\s)+MMMM/},monthsShort:\"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.\".split(\"_\"),monthsParseExact:!0,weekdays:\"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte\".split(\"_\"),weekdaysShort:\"dg._dl._dt._dc._dj._dv._ds.\".split(\"_\"),weekdaysMin:\"Dg_Dl_Dt_Dc_Dj_Dv_Ds\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"[el] D MMMM [de] YYYY\",ll:\"D MMM YYYY\",LLL:\"[el] D MMMM [de] YYYY [a les] H:mm\",lll:\"D MMM YYYY, H:mm\",LLLL:\"[el] dddd D MMMM [de] YYYY [a les] H:mm\",llll:\"ddd D MMM YYYY, H:mm\"},calendar:{sameDay:function(){return\"[avui a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextDay:function(){return\"[demà a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextWeek:function(){return\"dddd [a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastDay:function(){return\"[ahir a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [passat a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"d'aquí %s\",past:\"fa %s\",s:\"uns segons\",m:\"un minut\",mm:\"%d minuts\",h:\"una hora\",hh:\"%d hores\",d:\"un dia\",dd:\"%d dies\",M:\"un mes\",MM:\"%d mesos\",y:\"un any\",yy:\"%d anys\"},dayOfMonthOrdinalParse:/\\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?\"r\":2===a?\"n\":3===a?\"r\":4===a?\"t\":\"è\";return\"w\"!==b&&\"W\"!==b||(c=\"a\"),a+c},week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Czech [cs]\r\n//! author : petrbela : https://github.com/petrbela\r\nvar ta=\"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec\".split(\"_\"),ua=\"led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro\".split(\"_\");a.defineLocale(\"cs\",{months:ta,monthsShort:ua,monthsParse:function(a,b){var c,d=[];for(c=0;c<12;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(ta,ua),shortMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp(\"^\"+a[b]+\"$\",\"i\");return c}(ua),longMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp(\"^\"+a[b]+\"$\",\"i\");return c}(ta),weekdays:\"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_út_st_čt_pá_so\".split(\"_\"),weekdaysMin:\"ne_po_út_st_čt_pá_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\",l:\"D. M. YYYY\"},calendar:{sameDay:\"[dnes v] LT\",nextDay:\"[zítra v] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v neděli v] LT\";case 1:case 2:return\"[v] dddd [v] LT\";case 3:return\"[ve středu v] LT\";case 4:return\"[ve čtvrtek v] LT\";case 5:return\"[v pátek v] LT\";case 6:return\"[v sobotu v] LT\"}},lastDay:\"[včera v] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulou neděli v] LT\";case 1:case 2:return\"[minulé] dddd [v] LT\";case 3:return\"[minulou středu v] LT\";case 4:case 5:return\"[minulý] dddd [v] LT\";case 6:return\"[minulou sobotu v] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"před %s\",s:k,m:k,mm:k,h:k,hh:k,d:k,dd:k,M:k,MM:k,y:k,yy:k},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Chuvash [cv]\r\n//! author : Anatoly Mironov : https://github.com/mirontoli\r\na.defineLocale(\"cv\",{months:\"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав\".split(\"_\"),monthsShort:\"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш\".split(\"_\"),weekdays:\"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун\".split(\"_\"),weekdaysShort:\"выр_тун_ытл_юн_кӗҫ_эрн_шӑм\".split(\"_\"),weekdaysMin:\"вр_тн_ыт_юн_кҫ_эр_шм\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]\",LLL:\"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm\",LLLL:\"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm\"},calendar:{sameDay:\"[Паян] LT [сехетре]\",nextDay:\"[Ыран] LT [сехетре]\",lastDay:\"[Ӗнер] LT [сехетре]\",nextWeek:\"[Ҫитес] dddd LT [сехетре]\",lastWeek:\"[Иртнӗ] dddd LT [сехетре]\",sameElse:\"L\"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?\"рен\":/ҫул$/i.exec(a)?\"тан\":\"ран\";return a+b},past:\"%s каялла\",s:\"пӗр-ик ҫеккунт\",m:\"пӗр минут\",mm:\"%d минут\",h:\"пӗр сехет\",hh:\"%d сехет\",d:\"пӗр кун\",dd:\"%d кун\",M:\"пӗр уйӑх\",MM:\"%d уйӑх\",y:\"пӗр ҫул\",yy:\"%d ҫул\"},dayOfMonthOrdinalParse:/\\d{1,2}-мӗш/,ordinal:\"%d-мӗш\",week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Welsh [cy]\r\n//! author : Robert Allen : https://github.com/robgallen\r\n//! author : https://github.com/ryangreaves\r\na.defineLocale(\"cy\",{months:\"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr\".split(\"_\"),monthsShort:\"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag\".split(\"_\"),weekdays:\"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn\".split(\"_\"),weekdaysShort:\"Sul_Llun_Maw_Mer_Iau_Gwe_Sad\".split(\"_\"),weekdaysMin:\"Su_Ll_Ma_Me_Ia_Gw_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Heddiw am] LT\",nextDay:\"[Yfory am] LT\",nextWeek:\"dddd [am] LT\",lastDay:\"[Ddoe am] LT\",lastWeek:\"dddd [diwethaf am] LT\",sameElse:\"L\"},relativeTime:{future:\"mewn %s\",past:\"%s yn ôl\",s:\"ychydig eiliadau\",m:\"munud\",mm:\"%d munud\",h:\"awr\",hh:\"%d awr\",d:\"diwrnod\",dd:\"%d diwrnod\",M:\"mis\",MM:\"%d mis\",y:\"blwyddyn\",yy:\"%d flynedd\"},dayOfMonthOrdinalParse:/\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(a){var b=a,c=\"\",d=[\"\",\"af\",\"il\",\"ydd\",\"ydd\",\"ed\",\"ed\",\"ed\",\"fed\",\"fed\",\"fed\",\"eg\",\"fed\",\"eg\",\"eg\",\"fed\",\"eg\",\"eg\",\"fed\",\"eg\",\"fed\"];return b>20?c=40===b||50===b||60===b||80===b||100===b?\"fed\":\"ain\":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Danish [da]\r\n//! author : Ulrik Nielsen : https://github.com/mrbase\r\na.defineLocale(\"da\",{months:\"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tir_ons_tor_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd [d.] D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"på dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[i] dddd[s kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"få sekunder\",m:\"et minut\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dage\",M:\"en måned\",MM:\"%d måneder\",y:\"et år\",yy:\"%d år\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.defineLocale(\"de-at\",{months:\"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:l,mm:\"%d Minuten\",h:l,hh:\"%d Stunden\",d:l,dd:l,M:l,MM:l,y:l,yy:l},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.defineLocale(\"de-ch\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH.mm\",LLLL:\"dddd, D. MMMM YYYY HH.mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:m,mm:\"%d Minuten\",h:m,hh:\"%d Stunden\",d:m,dd:m,M:m,MM:m,y:m,yy:m},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.defineLocale(\"de\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:n,mm:\"%d Minuten\",h:n,hh:\"%d Stunden\",d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Maldivian [dv]\r\n//! author : Jawish Hameed : https://github.com/jawish\r\nvar va=[\"ޖެނުއަރީ\",\"ފެބްރުއަރީ\",\"މާރިޗު\",\"އޭޕްރީލު\",\"މޭ\",\"ޖޫން\",\"ޖުލައި\",\"އޯގަސްޓު\",\"ސެޕްޓެމްބަރު\",\"އޮކްޓޯބަރު\",\"ނޮވެމްބަރު\",\"ޑިސެމްބަރު\"],wa=[\"އާދިއްތަ\",\"ހޯމަ\",\"އަންގާރަ\",\"ބުދަ\",\"ބުރާސްފަތި\",\"ހުކުރު\",\"ހޮނިހިރު\"];a.defineLocale(\"dv\",{months:va,monthsShort:va,weekdays:wa,weekdaysShort:wa,weekdaysMin:\"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/M/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/މކ|މފ/,isPM:function(a){return\"މފ\"===a},meridiem:function(a,b,c){return a<12?\"މކ\":\"މފ\"},calendar:{sameDay:\"[މިއަދު] LT\",nextDay:\"[މާދަމާ] LT\",nextWeek:\"dddd LT\",lastDay:\"[އިއްޔެ] LT\",lastWeek:\"[ފާއިތުވި] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"ތެރޭގައި %s\",past:\"ކުރިން %s\",s:\"ސިކުންތުކޮޅެއް\",m:\"މިނިޓެއް\",mm:\"މިނިޓު %d\",h:\"ގަޑިއިރެއް\",hh:\"ގަޑިއިރު %d\",d:\"ދުވަހެއް\",dd:\"ދުވަސް %d\",M:\"މަހެއް\",MM:\"މަސް %d\",y:\"އަހަރެއް\",yy:\"އަހަރު %d\"},preparse:function(a){return a.replace(/،/g,\",\")},postformat:function(a){return a.replace(/,/g,\"،\")},week:{dow:7,doy:12}}),\r\n//! moment.js locale configuration\r\n//! locale : Greek [el]\r\n//! author : Aggelos Karalias : https://github.com/mehiel\r\na.defineLocale(\"el\",{monthsNominativeEl:\"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος\".split(\"_\"),monthsGenitiveEl:\"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου\".split(\"_\"),months:function(a,b){return a?/D/.test(b.substring(0,b.indexOf(\"MMMM\")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]:this._monthsNominativeEl},monthsShort:\"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ\".split(\"_\"),weekdays:\"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο\".split(\"_\"),weekdaysShort:\"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ\".split(\"_\"),weekdaysMin:\"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα\".split(\"_\"),meridiem:function(a,b,c){return a>11?c?\"μμ\":\"ΜΜ\":c?\"πμ\":\"ΠΜ\"},isPM:function(a){return\"μ\"===(a+\"\").toLowerCase()[0]},meridiemParse:/[ΠΜ]\\.?Μ?\\.?/i,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendarEl:{sameDay:\"[Σήμερα {}] LT\",nextDay:\"[Αύριο {}] LT\",nextWeek:\"dddd [{}] LT\",lastDay:\"[Χθες {}] LT\",lastWeek:function(){switch(this.day()){case 6:return\"[το προηγούμενο] dddd [{}] LT\";default:return\"[την προηγούμενη] dddd [{}] LT\"}},sameElse:\"L\"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return o(c)&&(c=c.apply(b)),c.replace(\"{}\",d%12===1?\"στη\":\"στις\")},relativeTime:{future:\"σε %s\",past:\"%s πριν\",s:\"λίγα δευτερόλεπτα\",m:\"ένα λεπτό\",mm:\"%d λεπτά\",h:\"μία ώρα\",hh:\"%d ώρες\",d:\"μία μέρα\",dd:\"%d μέρες\",M:\"ένας μήνας\",MM:\"%d μήνες\",y:\"ένας χρόνος\",yy:\"%d χρόνια\"},dayOfMonthOrdinalParse:/\\d{1,2}η/,ordinal:\"%dη\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : English (Australia) [en-au]\r\n//! author : Jared Morse : https://github.com/jarcoal\r\na.defineLocale(\"en-au\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : English (Canada) [en-ca]\r\n//! author : Jonathan Abourbih : https://github.com/jonbca\r\na.defineLocale(\"en-ca\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"YYYY-MM-DD\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),\r\n//! moment.js locale configuration\r\n//! locale : English (United Kingdom) [en-gb]\r\n//! author : Chris Gedrim : https://github.com/chrisgedrim\r\na.defineLocale(\"en-gb\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : English (Ireland) [en-ie]\r\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\r\na.defineLocale(\"en-ie\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : English (New Zealand) [en-nz]\r\n//! author : Luke McGregor : https://github.com/lukemcgregor\r\na.defineLocale(\"en-nz\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Esperanto [eo]\r\n//! author : Colin Dean : https://github.com/colindean\r\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\r\n//! comment : miestasmia corrected the translation by colindean\r\na.defineLocale(\"eo\",{months:\"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec\".split(\"_\"),weekdays:\"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato\".split(\"_\"),weekdaysShort:\"dim_lun_mard_merk_ĵaŭ_ven_sab\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_ĵa_ve_sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D[-a de] MMMM, YYYY\",LLL:\"D[-a de] MMMM, YYYY HH:mm\",LLLL:\"dddd, [la] D[-a de] MMMM, YYYY HH:mm\"},meridiemParse:/[ap]\\.t\\.m/i,isPM:function(a){return\"p\"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?\"p.t.m.\":\"P.T.M.\":c?\"a.t.m.\":\"A.T.M.\"},calendar:{sameDay:\"[Hodiaŭ je] LT\",nextDay:\"[Morgaŭ je] LT\",nextWeek:\"dddd [je] LT\",lastDay:\"[Hieraŭ je] LT\",lastWeek:\"[pasinta] dddd [je] LT\",sameElse:\"L\"},relativeTime:{future:\"post %s\",past:\"antaŭ %s\",s:\"sekundoj\",m:\"minuto\",mm:\"%d minutoj\",h:\"horo\",hh:\"%d horoj\",d:\"tago\",dd:\"%d tagoj\",M:\"monato\",MM:\"%d monatoj\",y:\"jaro\",yy:\"%d jaroj\"},dayOfMonthOrdinalParse:/\\d{1,2}a/,ordinal:\"%da\",week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Spanish (Dominican Republic) [es-do]\r\nvar xa=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),ya=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\");a.defineLocale(\"es-do\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?ya[a.month()]:xa[a.month()]:xa},monthsParseExact:!0,weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY h:mm A\",LLLL:\"dddd, D [de] MMMM [de] YYYY h:mm A\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Spanish [es]\r\n//! author : Julio Napurí : https://github.com/julionc\r\nvar za=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),Aa=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\");a.defineLocale(\"es\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Aa[a.month()]:za[a.month()]:za},monthsParseExact:!0,weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY H:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY H:mm\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.defineLocale(\"et\",{months:\"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember\".split(\"_\"),monthsShort:\"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets\".split(\"_\"),weekdays:\"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev\".split(\"_\"),weekdaysShort:\"P_E_T_K_N_R_L\".split(\"_\"),weekdaysMin:\"P_E_T_K_N_R_L\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[Täna,] LT\",nextDay:\"[Homme,] LT\",nextWeek:\"[Järgmine] dddd LT\",lastDay:\"[Eile,] LT\",lastWeek:\"[Eelmine] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s pärast\",past:\"%s tagasi\",s:p,m:p,mm:p,h:p,hh:p,d:p,dd:\"%d päeva\",M:p,MM:p,y:p,yy:p},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Basque [eu]\r\n//! author : Eneko Illarramendi : https://github.com/eillarra\r\na.defineLocale(\"eu\",{months:\"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua\".split(\"_\"),monthsShort:\"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.\".split(\"_\"),monthsParseExact:!0,weekdays:\"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata\".split(\"_\"),weekdaysShort:\"ig._al._ar._az._og._ol._lr.\".split(\"_\"),weekdaysMin:\"ig_al_ar_az_og_ol_lr\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY[ko] MMMM[ren] D[a]\",LLL:\"YYYY[ko] MMMM[ren] D[a] HH:mm\",LLLL:\"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm\",l:\"YYYY-M-D\",ll:\"YYYY[ko] MMM D[a]\",lll:\"YYYY[ko] MMM D[a] HH:mm\",llll:\"ddd, YYYY[ko] MMM D[a] HH:mm\"},calendar:{sameDay:\"[gaur] LT[etan]\",nextDay:\"[bihar] LT[etan]\",nextWeek:\"dddd LT[etan]\",lastDay:\"[atzo] LT[etan]\",lastWeek:\"[aurreko] dddd LT[etan]\",sameElse:\"L\"},relativeTime:{future:\"%s barru\",past:\"duela %s\",s:\"segundo batzuk\",m:\"minutu bat\",mm:\"%d minutu\",h:\"ordu bat\",hh:\"%d ordu\",d:\"egun bat\",dd:\"%d egun\",M:\"hilabete bat\",MM:\"%d hilabete\",y:\"urte bat\",yy:\"%d urte\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Persian [fa]\r\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\r\nvar Ba={1:\"۱\",2:\"۲\",3:\"۳\",4:\"۴\",5:\"۵\",6:\"۶\",7:\"۷\",8:\"۸\",9:\"۹\",0:\"۰\"},Ca={\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"۰\":\"0\"};a.defineLocale(\"fa\",{months:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),monthsShort:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),weekdays:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysShort:\"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه\".split(\"_\"),weekdaysMin:\"ی_د_س_چ_پ_ج_ش\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return a<12?\"قبل از ظهر\":\"بعد از ظهر\"},calendar:{sameDay:\"[امروز ساعت] LT\",nextDay:\"[فردا ساعت] LT\",nextWeek:\"dddd [ساعت] LT\",lastDay:\"[دیروز ساعت] LT\",lastWeek:\"dddd [پیش] [ساعت] LT\",sameElse:\"L\"},relativeTime:{future:\"در %s\",past:\"%s پیش\",s:\"چند ثانیه\",m:\"یک دقیقه\",mm:\"%d دقیقه\",h:\"یک ساعت\",hh:\"%d ساعت\",d:\"یک روز\",dd:\"%d روز\",M:\"یک ماه\",MM:\"%d ماه\",y:\"یک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return Ca[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return Ba[a]}).replace(/,/g,\"،\")},dayOfMonthOrdinalParse:/\\d{1,2}م/,ordinal:\"%dم\",week:{dow:6,doy:12}});\r\n//! moment.js locale configuration\r\n//! locale : Finnish [fi]\r\n//! author : Tarmo Aidantausta : https://github.com/bleadof\r\nvar Da=\"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän\".split(\" \"),Ea=[\"nolla\",\"yhden\",\"kahden\",\"kolmen\",\"neljän\",\"viiden\",\"kuuden\",Da[7],Da[8],Da[9]];a.defineLocale(\"fi\",{months:\"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu\".split(\"_\"),monthsShort:\"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu\".split(\"_\"),weekdays:\"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai\".split(\"_\"),weekdaysShort:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),weekdaysMin:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"Do MMMM[ta] YYYY\",LLL:\"Do MMMM[ta] YYYY, [klo] HH.mm\",LLLL:\"dddd, Do MMMM[ta] YYYY, [klo] HH.mm\",l:\"D.M.YYYY\",ll:\"Do MMM YYYY\",lll:\"Do MMM YYYY, [klo] HH.mm\",llll:\"ddd, Do MMM YYYY, [klo] HH.mm\"},calendar:{sameDay:\"[tänään] [klo] LT\",nextDay:\"[huomenna] [klo] LT\",nextWeek:\"dddd [klo] LT\",lastDay:\"[eilen] [klo] LT\",lastWeek:\"[viime] dddd[na] [klo] LT\",sameElse:\"L\"},relativeTime:{future:\"%s päästä\",past:\"%s sitten\",s:q,m:q,mm:q,h:q,hh:q,d:q,dd:q,M:q,MM:q,y:q,yy:q},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Faroese [fo]\r\n//! author : Ragnar Johannesen : https://github.com/ragnar123\r\na.defineLocale(\"fo\",{months:\"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur\".split(\"_\"),weekdaysShort:\"sun_mán_týs_mik_hós_frí_ley\".split(\"_\"),weekdaysMin:\"su_má_tý_mi_hó_fr_le\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D. MMMM, YYYY HH:mm\"},calendar:{sameDay:\"[Í dag kl.] LT\",nextDay:\"[Í morgin kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[Í gjár kl.] LT\",lastWeek:\"[síðstu] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"um %s\",past:\"%s síðani\",s:\"fá sekund\",m:\"ein minutt\",mm:\"%d minuttir\",h:\"ein tími\",hh:\"%d tímar\",d:\"ein dagur\",dd:\"%d dagar\",M:\"ein mánaði\",MM:\"%d mánaðir\",y:\"eitt ár\",yy:\"%d ár\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : French (Canada) [fr-ca]\r\n//! author : Jonathan Abourbih : https://github.com/jonbca\r\na.defineLocale(\"fr-ca\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd’hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case\"M\":case\"Q\":case\"D\":case\"DDD\":case\"d\":return a+(1===a?\"er\":\"e\");case\"w\":case\"W\":return a+(1===a?\"re\":\"e\")}}}),\r\n//! moment.js locale configuration\r\n//! locale : French (Switzerland) [fr-ch]\r\n//! author : Gaspard Bucher : https://github.com/gaspard\r\na.defineLocale(\"fr-ch\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd’hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case\"M\":case\"Q\":case\"D\":case\"DDD\":case\"d\":return a+(1===a?\"er\":\"e\");case\"w\":case\"W\":return a+(1===a?\"re\":\"e\")}},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : French [fr]\r\n//! author : John Fischer : https://github.com/jfroffice\r\na.defineLocale(\"fr\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd’hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|)/,ordinal:function(a,b){switch(b){case\"D\":return a+(1===a?\"er\":\"\");default:case\"M\":case\"Q\":case\"DDD\":case\"d\":return a+(1===a?\"er\":\"e\");case\"w\":case\"W\":return a+(1===a?\"re\":\"e\")}},week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Frisian [fy]\r\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\r\nvar Fa=\"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.\".split(\"_\"),Ga=\"jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\");a.defineLocale(\"fy\",{months:\"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Ga[a.month()]:Fa[a.month()]:Fa},monthsParseExact:!0,weekdays:\"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon\".split(\"_\"),weekdaysShort:\"si._mo._ti._wo._to._fr._so.\".split(\"_\"),weekdaysMin:\"Si_Mo_Ti_Wo_To_Fr_So\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[hjoed om] LT\",nextDay:\"[moarn om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[juster om] LT\",lastWeek:\"[ôfrûne] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"oer %s\",past:\"%s lyn\",s:\"in pear sekonden\",m:\"ien minút\",mm:\"%d minuten\",h:\"ien oere\",hh:\"%d oeren\",d:\"ien dei\",dd:\"%d dagen\",M:\"ien moanne\",MM:\"%d moannen\",y:\"ien jier\",yy:\"%d jierren\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Scottish Gaelic [gd]\r\n//! author : Jon Ashdown : https://github.com/jonashdown\r\nvar Ha=[\"Am Faoilleach\",\"An Gearran\",\"Am Màrt\",\"An Giblean\",\"An Cèitean\",\"An t-Ògmhios\",\"An t-Iuchar\",\"An Lùnastal\",\"An t-Sultain\",\"An Dàmhair\",\"An t-Samhain\",\"An Dùbhlachd\"],Ia=[\"Faoi\",\"Gear\",\"Màrt\",\"Gibl\",\"Cèit\",\"Ògmh\",\"Iuch\",\"Lùn\",\"Sult\",\"Dàmh\",\"Samh\",\"Dùbh\"],Ja=[\"Didòmhnaich\",\"Diluain\",\"Dimàirt\",\"Diciadain\",\"Diardaoin\",\"Dihaoine\",\"Disathairne\"],Ka=[\"Did\",\"Dil\",\"Dim\",\"Dic\",\"Dia\",\"Dih\",\"Dis\"],La=[\"Dò\",\"Lu\",\"Mà\",\"Ci\",\"Ar\",\"Ha\",\"Sa\"];a.defineLocale(\"gd\",{months:Ha,monthsShort:Ia,monthsParseExact:!0,weekdays:Ja,weekdaysShort:Ka,weekdaysMin:La,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[An-diugh aig] LT\",nextDay:\"[A-màireach aig] LT\",nextWeek:\"dddd [aig] LT\",lastDay:\"[An-dè aig] LT\",lastWeek:\"dddd [seo chaidh] [aig] LT\",sameElse:\"L\"},relativeTime:{future:\"ann an %s\",past:\"bho chionn %s\",s:\"beagan diogan\",m:\"mionaid\",mm:\"%d mionaidean\",h:\"uair\",hh:\"%d uairean\",d:\"latha\",dd:\"%d latha\",M:\"mìos\",MM:\"%d mìosan\",y:\"bliadhna\",yy:\"%d bliadhna\"},dayOfMonthOrdinalParse:/\\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?\"d\":a%10===2?\"na\":\"mh\";return a+b},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Galician [gl]\r\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\r\na.defineLocale(\"gl\",{months:\"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro\".split(\"_\"),monthsShort:\"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"domingo_luns_martes_mércores_xoves_venres_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mér._xov._ven._sáb.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mé_xo_ve_sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY H:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY H:mm\"},calendar:{sameDay:function(){return\"[hoxe \"+(1!==this.hours()?\"ás\":\"á\")+\"] LT\"},nextDay:function(){return\"[mañá \"+(1!==this.hours()?\"ás\":\"á\")+\"] LT\"},nextWeek:function(){return\"dddd [\"+(1!==this.hours()?\"ás\":\"a\")+\"] LT\"},lastDay:function(){return\"[onte \"+(1!==this.hours()?\"á\":\"a\")+\"] LT\"},lastWeek:function(){return\"[o] dddd [pasado \"+(1!==this.hours()?\"ás\":\"a\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:function(a){return 0===a.indexOf(\"un\")?\"n\"+a:\"en \"+a},past:\"hai %s\",s:\"uns segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"unha hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.defineLocale(\"gom-latn\",{months:\"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr\".split(\"_\"),monthsShort:\"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var\".split(\"_\"),weekdaysShort:\"Ait._Som._Mon._Bud._Bre._Suk._Son.\".split(\"_\"),weekdaysMin:\"Ai_Sm_Mo_Bu_Br_Su_Sn\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"A h:mm [vazta]\",LTS:\"A h:mm:ss [vazta]\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY A h:mm [vazta]\",LLLL:\"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]\",llll:\"ddd, D MMM YYYY, A h:mm [vazta]\"},calendar:{sameDay:\"[Aiz] LT\",nextDay:\"[Faleam] LT\",nextWeek:\"[Ieta to] dddd[,] LT\",lastDay:\"[Kal] LT\",lastWeek:\"[Fatlo] dddd[,] LT\",sameElse:\"L\"},relativeTime:{future:\"%s\",past:\"%s adim\",s:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\\d{1,2}(er)/,ordinal:function(a,b){switch(b){case\"D\":return a+\"er\";default:case\"M\":case\"Q\":case\"DDD\":case\"d\":case\"w\":case\"W\":return a}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(a,b){return 12===a&&(a=0),\"rati\"===b?a<4?a:a+12:\"sokalli\"===b?a:\"donparam\"===b?a>12?a:a+12:\"sanje\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"rati\":a<12?\"sokalli\":a<16?\"donparam\":a<20?\"sanje\":\"rati\"}}),\r\n//! moment.js locale configuration\r\n//! locale : Hebrew [he]\r\n//! author : Tomer Cohen : https://github.com/tomer\r\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\r\n//! author : Tal Ater : https://github.com/TalAter\r\na.defineLocale(\"he\",{months:\"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר\".split(\"_\"),monthsShort:\"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳\".split(\"_\"),weekdays:\"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת\".split(\"_\"),weekdaysShort:\"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳\".split(\"_\"),weekdaysMin:\"א_ב_ג_ד_ה_ו_ש\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [ב]MMMM YYYY\",LLL:\"D [ב]MMMM YYYY HH:mm\",LLLL:\"dddd, D [ב]MMMM YYYY HH:mm\",l:\"D/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd, D MMM YYYY HH:mm\"},calendar:{sameDay:\"[היום ב־]LT\",nextDay:\"[מחר ב־]LT\",nextWeek:\"dddd [בשעה] LT\",lastDay:\"[אתמול ב־]LT\",lastWeek:\"[ביום] dddd [האחרון בשעה] LT\",sameElse:\"L\"},relativeTime:{future:\"בעוד %s\",past:\"לפני %s\",s:\"מספר שניות\",m:\"דקה\",mm:\"%d דקות\",h:\"שעה\",hh:function(a){return 2===a?\"שעתיים\":a+\" שעות\"},d:\"יום\",dd:function(a){return 2===a?\"יומיים\":a+\" ימים\"},M:\"חודש\",MM:function(a){return 2===a?\"חודשיים\":a+\" חודשים\"},y:\"שנה\",yy:function(a){return 2===a?\"שנתיים\":a%10===0&&10!==a?a+\" שנה\":a+\" שנים\"}},meridiemParse:/אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(a){return/^(אחה\"צ|אחרי הצהריים|בערב)$/.test(a)},meridiem:function(a,b,c){return a<5?\"לפנות בוקר\":a<10?\"בבוקר\":a<12?c?'לפנה\"צ':\"לפני הצהריים\":a<18?c?'אחה\"צ':\"אחרי הצהריים\":\"בערב\"}});\r\n//! moment.js locale configuration\r\n//! locale : Hindi [hi]\r\n//! author : Mayank Singhal : https://github.com/mayanksinghal\r\nvar Ma={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},Na={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};a.defineLocale(\"hi\",{months:\"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर\".split(\"_\"),monthsShort:\"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.\".split(\"_\"),monthsParseExact:!0,weekdays:\"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm बजे\",LTS:\"A h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm बजे\",LLLL:\"dddd, D MMMM YYYY, A h:mm बजे\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[कल] LT\",nextWeek:\"dddd, LT\",lastDay:\"[कल] LT\",lastWeek:\"[पिछले] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s में\",past:\"%s पहले\",s:\"कुछ ही क्षण\",m:\"एक मिनट\",mm:\"%d मिनट\",h:\"एक घंटा\",hh:\"%d घंटे\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महीने\",MM:\"%d महीने\",y:\"एक वर्ष\",yy:\"%d वर्ष\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Na[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Ma[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात\"===b?a<4?a:a+12:\"सुबह\"===b?a:\"दोपहर\"===b?a>=10?a:a+12:\"शाम\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"रात\":a<10?\"सुबह\":a<17?\"दोपहर\":a<20?\"शाम\":\"रात\"},week:{dow:0,doy:6}}),a.defineLocale(\"hr\",{months:{format:\"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca\".split(\"_\"),standalone:\"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac\".split(\"_\")},monthsShort:\"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:t,mm:t,h:t,hh:t,d:\"dan\",dd:t,M:\"mjesec\",MM:t,y:\"godinu\",yy:t},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Hungarian [hu]\r\n//! author : Adam Brunner : https://github.com/adambrunner\r\nvar Oa=\"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton\".split(\" \");a.defineLocale(\"hu\",{months:\"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december\".split(\"_\"),monthsShort:\"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec\".split(\"_\"),weekdays:\"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat\".split(\"_\"),weekdaysShort:\"vas_hét_kedd_sze_csüt_pén_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D. H:mm\",LLLL:\"YYYY. MMMM D., dddd H:mm\"},meridiemParse:/de|du/i,isPM:function(a){return\"u\"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return a<12?c===!0?\"de\":\"DE\":c===!0?\"du\":\"DU\"},calendar:{sameDay:\"[ma] LT[-kor]\",nextDay:\"[holnap] LT[-kor]\",nextWeek:function(){return v.call(this,!0)},lastDay:\"[tegnap] LT[-kor]\",lastWeek:function(){return v.call(this,!1)},sameElse:\"L\"},relativeTime:{future:\"%s múlva\",past:\"%s\",s:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Armenian [hy-am]\r\n//! author : Armendarabyan : https://github.com/armendarabyan\r\na.defineLocale(\"hy-am\",{months:{format:\"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի\".split(\"_\"),standalone:\"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր\".split(\"_\")},monthsShort:\"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ\".split(\"_\"),weekdays:\"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ\".split(\"_\"),weekdaysShort:\"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ\".split(\"_\"),weekdaysMin:\"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY թ.\",LLL:\"D MMMM YYYY թ., HH:mm\",LLLL:\"dddd, D MMMM YYYY թ., HH:mm\"},calendar:{sameDay:\"[այսօր] LT\",nextDay:\"[վաղը] LT\",lastDay:\"[երեկ] LT\",nextWeek:function(){return\"dddd [օրը ժամը] LT\"},lastWeek:function(){return\"[անցած] dddd [օրը ժամը] LT\"},sameElse:\"L\"},relativeTime:{future:\"%s հետո\",past:\"%s առաջ\",s:\"մի քանի վայրկյան\",m:\"րոպե\",mm:\"%d րոպե\",h:\"ժամ\",hh:\"%d ժամ\",d:\"օր\",dd:\"%d օր\",M:\"ամիս\",MM:\"%d ամիս\",y:\"տարի\",yy:\"%d տարի\"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return a<4?\"գիշերվա\":a<12?\"առավոտվա\":a<17?\"ցերեկվա\":\"երեկոյան\"},dayOfMonthOrdinalParse:/\\d{1,2}|\\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case\"DDD\":case\"w\":case\"W\":case\"DDDo\":return 1===a?a+\"-ին\":a+\"-րդ\";default:return a}},week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Indonesian [id]\r\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\r\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\r\na.defineLocale(\"id\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Rab_Kam_Jum_Sab\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"siang\"===b?a>=11?a:a+12:\"sore\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?\"pagi\":a<15?\"siang\":a<19?\"sore\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Besok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kemarin pukul] LT\",lastWeek:\"dddd [lalu pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lalu\",s:\"beberapa detik\",m:\"semenit\",mm:\"%d menit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),a.defineLocale(\"is\",{months:\"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des\".split(\"_\"),weekdays:\"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur\".split(\"_\"),weekdaysShort:\"sun_mán_þri_mið_fim_fös_lau\".split(\"_\"),weekdaysMin:\"Su_Má_Þr_Mi_Fi_Fö_La\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] H:mm\",LLLL:\"dddd, D. MMMM YYYY [kl.] H:mm\"},calendar:{sameDay:\"[í dag kl.] LT\",nextDay:\"[á morgun kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[í gær kl.] LT\",lastWeek:\"[síðasta] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"eftir %s\",past:\"fyrir %s síðan\",s:x,m:x,mm:x,h:\"klukkustund\",hh:x,d:x,dd:x,M:x,MM:x,y:x,yy:x},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Italian [it]\r\n//! author : Lorenzo : https://github.com/aliem\r\n//! author: Mattia Larentis: https://github.com/nostalgiaz\r\na.defineLocale(\"it\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato\".split(\"_\"),weekdaysShort:\"dom_lun_mar_mer_gio_ven_sab\".split(\"_\"),weekdaysMin:\"do_lu_ma_me_gi_ve_sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?\"tra\":\"in\")+\" \"+a},past:\"%s fa\",s:\"alcuni secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Japanese [ja]\r\n//! author : LI Long : https://github.com/baryon\r\na.defineLocale(\"ja\",{months:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日\".split(\"_\"),weekdaysShort:\"日_月_火_水_木_金_土\".split(\"_\"),weekdaysMin:\"日_月_火_水_木_金_土\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日 HH:mm\",LLLL:\"YYYY年M月D日 HH:mm dddd\",l:\"YYYY/MM/DD\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日 HH:mm dddd\"},meridiemParse:/午前|午後/i,isPM:function(a){return\"午後\"===a},meridiem:function(a,b,c){return a<12?\"午前\":\"午後\"},calendar:{sameDay:\"[今日] LT\",nextDay:\"[明日] LT\",nextWeek:\"[来週]dddd LT\",lastDay:\"[昨日] LT\",lastWeek:\"[前週]dddd LT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}日/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";default:return a}},relativeTime:{future:\"%s後\",past:\"%s前\",s:\"数秒\",m:\"1分\",mm:\"%d分\",h:\"1時間\",hh:\"%d時間\",d:\"1日\",dd:\"%d日\",M:\"1ヶ月\",MM:\"%dヶ月\",y:\"1年\",yy:\"%d年\"}}),\r\n//! moment.js locale configuration\r\n//! locale : Javanese [jv]\r\n//! author : Rony Lantip : https://github.com/lantip\r\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\r\na.defineLocale(\"jv\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des\".split(\"_\"),weekdays:\"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Reb_Kem_Jem_Sep\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sp\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),\"enjing\"===b?a:\"siyang\"===b?a>=11?a:a+12:\"sonten\"===b||\"ndalu\"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?\"enjing\":a<15?\"siyang\":a<19?\"sonten\":\"ndalu\"},calendar:{sameDay:\"[Dinten puniko pukul] LT\",nextDay:\"[Mbenjang pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kala wingi pukul] LT\",lastWeek:\"dddd [kepengker pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"wonten ing %s\",past:\"%s ingkang kepengker\",s:\"sawetawis detik\",m:\"setunggal menit\",mm:\"%d menit\",h:\"setunggal jam\",hh:\"%d jam\",d:\"sedinten\",dd:\"%d dinten\",M:\"sewulan\",MM:\"%d wulan\",y:\"setaun\",yy:\"%d taun\"},week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Georgian [ka]\r\n//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili\r\na.defineLocale(\"ka\",{months:{standalone:\"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი\".split(\"_\"),format:\"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს\".split(\"_\")},monthsShort:\"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ\".split(\"_\"),weekdays:{standalone:\"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი\".split(\"_\"),format:\"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს\".split(\"_\"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:\"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ\".split(\"_\"),weekdaysMin:\"კვ_ორ_სა_ოთ_ხუ_პა_შა\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[დღეს] LT[-ზე]\",nextDay:\"[ხვალ] LT[-ზე]\",lastDay:\"[გუშინ] LT[-ზე]\",nextWeek:\"[შემდეგ] dddd LT[-ზე]\",lastWeek:\"[წინა] dddd LT-ზე\",sameElse:\"L\"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,\"ში\"):a+\"ში\"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,\"ის უკან\"):/წელი/.test(a)?a.replace(/წელი$/,\"წლის უკან\"):void 0},s:\"რამდენიმე წამი\",m:\"წუთი\",mm:\"%d წუთი\",h:\"საათი\",hh:\"%d საათი\",d:\"დღე\",dd:\"%d დღე\",M:\"თვე\",MM:\"%d თვე\",y:\"წელი\",yy:\"%d წელი\"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+\"-ლი\":a<20||a<=100&&a%20===0||a%100===0?\"მე-\"+a:a+\"-ე\"},week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Kazakh [kk]\r\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\r\nvar Pa={0:\"-ші\",1:\"-ші\",2:\"-ші\",3:\"-ші\",4:\"-ші\",5:\"-ші\",6:\"-шы\",7:\"-ші\",8:\"-ші\",9:\"-шы\",10:\"-шы\",20:\"-шы\",30:\"-шы\",40:\"-шы\",50:\"-ші\",60:\"-шы\",70:\"-ші\",80:\"-ші\",90:\"-шы\",100:\"-ші\"};a.defineLocale(\"kk\",{months:\"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан\".split(\"_\"),monthsShort:\"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел\".split(\"_\"),weekdays:\"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі\".split(\"_\"),weekdaysShort:\"жек_дүй_сей_сәр_бей_жұм_сен\".split(\"_\"),weekdaysMin:\"жк_дй_сй_ср_бй_жм_сн\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Бүгін сағат] LT\",nextDay:\"[Ертең сағат] LT\",nextWeek:\"dddd [сағат] LT\",lastDay:\"[Кеше сағат] LT\",lastWeek:\"[Өткен аптаның] dddd [сағат] LT\",sameElse:\"L\"},relativeTime:{future:\"%s ішінде\",past:\"%s бұрын\",s:\"бірнеше секунд\",m:\"бір минут\",mm:\"%d минут\",h:\"бір сағат\",hh:\"%d сағат\",d:\"бір күн\",dd:\"%d күн\",M:\"бір ай\",MM:\"%d ай\",y:\"бір жыл\",yy:\"%d жыл\"},dayOfMonthOrdinalParse:/\\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Pa[a]||Pa[b]||Pa[c])},week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Cambodian [km]\r\n//! author : Kruy Vanna : https://github.com/kruyvanna\r\na.defineLocale(\"km\",{months:\"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ\".split(\"_\"),monthsShort:\"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ\".split(\"_\"),weekdays:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),weekdaysShort:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),weekdaysMin:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ថ្ងៃនេះ ម៉ោង] LT\",nextDay:\"[ស្អែក ម៉ោង] LT\",nextWeek:\"dddd [ម៉ោង] LT\",lastDay:\"[ម្សិលមិញ ម៉ោង] LT\",lastWeek:\"dddd [សប្តាហ៍មុន] [ម៉ោង] LT\",sameElse:\"L\"},relativeTime:{future:\"%sទៀត\",past:\"%sមុន\",s:\"ប៉ុន្មានវិនាទី\",m:\"មួយនាទី\",mm:\"%d នាទី\",h:\"មួយម៉ោង\",hh:\"%d ម៉ោង\",d:\"មួយថ្ងៃ\",dd:\"%d ថ្ងៃ\",M:\"មួយខែ\",MM:\"%d ខែ\",y:\"មួយឆ្នាំ\",yy:\"%d ឆ្នាំ\"},week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Kannada [kn]\r\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\r\nvar Qa={1:\"೧\",2:\"೨\",3:\"೩\",4:\"೪\",5:\"೫\",6:\"೬\",7:\"೭\",8:\"೮\",9:\"೯\",0:\"೦\"},Ra={\"೧\":\"1\",\"೨\":\"2\",\"೩\":\"3\",\"೪\":\"4\",\"೫\":\"5\",\"೬\":\"6\",\"೭\":\"7\",\"೮\":\"8\",\"೯\":\"9\",\"೦\":\"0\"};a.defineLocale(\"kn\",{months:\"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್\".split(\"_\"),monthsShort:\"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ\".split(\"_\"),monthsParseExact:!0,weekdays:\"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ\".split(\"_\"),weekdaysShort:\"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ\".split(\"_\"),weekdaysMin:\"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[ಇಂದು] LT\",nextDay:\"[ನಾಳೆ] LT\",nextWeek:\"dddd, LT\",lastDay:\"[ನಿನ್ನೆ] LT\",lastWeek:\"[ಕೊನೆಯ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s ನಂತರ\",past:\"%s ಹಿಂದೆ\",s:\"ಕೆಲವು ಕ್ಷಣಗಳು\",m:\"ಒಂದು ನಿಮಿಷ\",mm:\"%d ನಿಮಿಷ\",h:\"ಒಂದು ಗಂಟೆ\",hh:\"%d ಗಂಟೆ\",d:\"ಒಂದು ದಿನ\",dd:\"%d ದಿನ\",M:\"ಒಂದು ತಿಂಗಳು\",MM:\"%d ತಿಂಗಳು\",y:\"ಒಂದು ವರ್ಷ\",yy:\"%d ವರ್ಷ\"},preparse:function(a){return a.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,function(a){return Ra[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Qa[a]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"ರಾತ್ರಿ\"===b?a<4?a:a+12:\"ಬೆಳಿಗ್ಗೆ\"===b?a:\"ಮಧ್ಯಾಹ್ನ\"===b?a>=10?a:a+12:\"ಸಂಜೆ\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"ರಾತ್ರಿ\":a<10?\"ಬೆಳಿಗ್ಗೆ\":a<17?\"ಮಧ್ಯಾಹ್ನ\":a<20?\"ಸಂಜೆ\":\"ರಾತ್ರಿ\"},dayOfMonthOrdinalParse:/\\d{1,2}(ನೇ)/,ordinal:function(a){return a+\"ನೇ\"},week:{dow:0,doy:6}}),\r\n//! moment.js locale configuration\r\n//! locale : Korean [ko]\r\n//! author : Kyungwook, Park : https://github.com/kyungw00k\r\n//! author : Jeeeyul Lee \r\na.defineLocale(\"ko\",{months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"YYYY.MM.DD\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 A h:mm\",LLLL:\"YYYY년 MMMM D일 dddd A h:mm\",l:\"YYYY.MM.DD\",ll:\"YYYY년 MMMM D일\",lll:\"YYYY년 MMMM D일 A h:mm\",llll:\"YYYY년 MMMM D일 dddd A h:mm\"},calendar:{sameDay:\"오늘 LT\",nextDay:\"내일 LT\",nextWeek:\"dddd LT\",lastDay:\"어제 LT\",lastWeek:\"지난주 dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇 초\",ss:\"%d초\",m:\"1분\",mm:\"%d분\",h:\"한 시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한 달\",MM:\"%d달\",y:\"일 년\",yy:\"%d년\"},dayOfMonthOrdinalParse:/\\d{1,2}일/,ordinal:\"%d일\",meridiemParse:/오전|오후/,isPM:function(a){return\"오후\"===a},meridiem:function(a,b,c){return a<12?\"오전\":\"오후\"}});\r\n//! moment.js locale configuration\r\n//! locale : Kyrgyz [ky]\r\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\r\nvar Sa={0:\"-чү\",1:\"-чи\",2:\"-чи\",3:\"-чү\",4:\"-чү\",5:\"-чи\",6:\"-чы\",7:\"-чи\",8:\"-чи\",9:\"-чу\",10:\"-чу\",20:\"-чы\",30:\"-чу\",40:\"-чы\",50:\"-чү\",60:\"-чы\",70:\"-чи\",80:\"-чи\",90:\"-чу\",100:\"-чү\"};a.defineLocale(\"ky\",{months:\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),monthsShort:\"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек\".split(\"_\"),weekdays:\"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби\".split(\"_\"),weekdaysShort:\"Жек_Дүй_Шей_Шар_Бей_Жум_Ише\".split(\"_\"),weekdaysMin:\"Жк_Дй_Шй_Шр_Бй_Жм_Иш\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Бүгүн саат] LT\",nextDay:\"[Эртең саат] LT\",nextWeek:\"dddd [саат] LT\",lastDay:\"[Кече саат] LT\",lastWeek:\"[Өткен аптанын] dddd [күнү] [саат] LT\",sameElse:\"L\"},relativeTime:{future:\"%s ичинде\",past:\"%s мурун\",s:\"бирнече секунд\",m:\"бир мүнөт\",mm:\"%d мүнөт\",h:\"бир саат\",hh:\"%d саат\",d:\"бир күн\",dd:\"%d күн\",M:\"бир ай\",MM:\"%d ай\",y:\"бир жыл\",yy:\"%d жыл\"},dayOfMonthOrdinalParse:/\\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Sa[a]||Sa[b]||Sa[c])},week:{dow:1,doy:7}}),a.defineLocale(\"lb\",{months:\"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg\".split(\"_\"),weekdaysShort:\"So._Mé._Dë._Më._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mé_Dë_Më_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm [Auer]\",LTS:\"H:mm:ss [Auer]\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm [Auer]\",LLLL:\"dddd, D. MMMM YYYY H:mm [Auer]\"},calendar:{sameDay:\"[Haut um] LT\",sameElse:\"L\",nextDay:\"[Muer um] LT\",nextWeek:\"dddd [um] LT\",lastDay:\"[Gëschter um] LT\",lastWeek:function(){switch(this.day()){case 2:case 4:return\"[Leschten] dddd [um] LT\";default:return\"[Leschte] dddd [um] LT\"}}},relativeTime:{future:z,past:A,s:\"e puer Sekonnen\",m:y,mm:\"%d Minutten\",h:y,hh:\"%d Stonnen\",d:y,dd:\"%d Deeg\",M:y,MM:\"%d Méint\",y:y,yy:\"%d Joer\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Lao [lo]\r\n//! author : Ryan Hart : https://github.com/ryanhart2\r\na.defineLocale(\"lo\",{months:\"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ\".split(\"_\"),monthsShort:\"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ\".split(\"_\"),weekdays:\"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ\".split(\"_\"),weekdaysShort:\"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ\".split(\"_\"),weekdaysMin:\"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"ວັນdddd D MMMM YYYY HH:mm\"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return\"ຕອນແລງ\"===a},meridiem:function(a,b,c){return a<12?\"ຕອນເຊົ້າ\":\"ຕອນແລງ\"},calendar:{sameDay:\"[ມື້ນີ້ເວລາ] LT\",nextDay:\"[ມື້ອື່ນເວລາ] LT\",nextWeek:\"[ວັນ]dddd[ໜ້າເວລາ] LT\",lastDay:\"[ມື້ວານນີ້ເວລາ] LT\",lastWeek:\"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT\",sameElse:\"L\"},relativeTime:{future:\"ອີກ %s\",past:\"%sຜ່ານມາ\",s:\"ບໍ່ເທົ່າໃດວິນາທີ\",m:\"1 ນາທີ\",mm:\"%d ນາທີ\",h:\"1 ຊົ່ວໂມງ\",hh:\"%d ຊົ່ວໂມງ\",d:\"1 ມື້\",dd:\"%d ມື້\",M:\"1 ເດືອນ\",MM:\"%d ເດືອນ\",y:\"1 ປີ\",yy:\"%d ປີ\"},dayOfMonthOrdinalParse:/(ທີ່)\\d{1,2}/,ordinal:function(a){return\"ທີ່\"+a}});\r\n//! moment.js locale configuration\r\n//! locale : Lithuanian [lt]\r\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\r\nvar Ta={m:\"minutė_minutės_minutę\",mm:\"minutės_minučių_minutes\",h:\"valanda_valandos_valandą\",hh:\"valandos_valandų_valandas\",d:\"diena_dienos_dieną\",dd:\"dienos_dienų_dienas\",M:\"mėnuo_mėnesio_mėnesį\",MM:\"mėnesiai_mėnesių_mėnesius\",y:\"metai_metų_metus\",yy:\"metai_metų_metus\"};a.defineLocale(\"lt\",{months:{format:\"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio\".split(\"_\"),standalone:\"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis\".split(\"_\"),isFormat:/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/},monthsShort:\"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd\".split(\"_\"),weekdays:{format:\"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį\".split(\"_\"),standalone:\"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis\".split(\"_\"),isFormat:/dddd HH:mm/},weekdaysShort:\"Sek_Pir_Ant_Tre_Ket_Pen_Šeš\".split(\"_\"),weekdaysMin:\"S_P_A_T_K_Pn_Š\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY [m.] MMMM D [d.]\",LLL:\"YYYY [m.] MMMM D [d.], HH:mm [val.]\",LLLL:\"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]\",l:\"YYYY-MM-DD\",ll:\"YYYY [m.] MMMM D [d.]\",lll:\"YYYY [m.] MMMM D [d.], HH:mm [val.]\",llll:\"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]\"},calendar:{sameDay:\"[Šiandien] LT\",nextDay:\"[Rytoj] LT\",nextWeek:\"dddd LT\",lastDay:\"[Vakar] LT\",lastWeek:\"[Praėjusį] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"po %s\",past:\"prieš %s\",s:C,m:D,mm:G,h:D,hh:G,d:D,dd:G,M:D,MM:G,y:D,yy:G},dayOfMonthOrdinalParse:/\\d{1,2}-oji/,ordinal:function(a){return a+\"-oji\"},week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Latvian [lv]\r\n//! author : Kristaps Karlsons : https://github.com/skakri\r\n//! author : Jānis Elmeris : https://github.com/JanisE\r\nvar Ua={m:\"minūtes_minūtēm_minūte_minūtes\".split(\"_\"),mm:\"minūtes_minūtēm_minūte_minūtes\".split(\"_\"),h:\"stundas_stundām_stunda_stundas\".split(\"_\"),hh:\"stundas_stundām_stunda_stundas\".split(\"_\"),d:\"dienas_dienām_diena_dienas\".split(\"_\"),dd:\"dienas_dienām_diena_dienas\".split(\"_\"),M:\"mēneša_mēnešiem_mēnesis_mēneši\".split(\"_\"),MM:\"mēneša_mēnešiem_mēnesis_mēneši\".split(\"_\"),y:\"gada_gadiem_gads_gadi\".split(\"_\"),yy:\"gada_gadiem_gads_gadi\".split(\"_\")};a.defineLocale(\"lv\",{months:\"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena\".split(\"_\"),weekdaysShort:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysMin:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY.\",LL:\"YYYY. [gada] D. MMMM\",LLL:\"YYYY. [gada] D. MMMM, HH:mm\",LLLL:\"YYYY. [gada] D. MMMM, dddd, HH:mm\"},calendar:{sameDay:\"[Šodien pulksten] LT\",nextDay:\"[Rīt pulksten] LT\",nextWeek:\"dddd [pulksten] LT\",lastDay:\"[Vakar pulksten] LT\",lastWeek:\"[Pagājušā] dddd [pulksten] LT\",sameElse:\"L\"},relativeTime:{future:\"pēc %s\",past:\"pirms %s\",s:K,m:J,mm:I,h:J,hh:I,d:J,dd:I,M:J,MM:I,y:J,yy:I},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Montenegrin [me]\r\n//! author : Miodrag Nikač : https://github.com/miodragnikac\r\nvar Va={words:{m:[\"jedan minut\",\"jednog minuta\"],mm:[\"minut\",\"minuta\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mjesec\",\"mjeseca\",\"mjeseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=Va.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+Va.correctGrammaticalCase(a,d)}};a.defineLocale(\"me\",{months:\"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sjutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedjelje] [u] LT\",\"[prošlog] [ponedjeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srijede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"nekoliko sekundi\",m:Va.translate,mm:Va.translate,h:Va.translate,hh:Va.translate,d:\"dan\",dd:Va.translate,M:\"mjesec\",MM:Va.translate,y:\"godinu\",yy:Va.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Maori [mi]\r\n//! author : John Corrigan : https://github.com/johnideal\r\na.defineLocale(\"mi\",{months:\"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea\".split(\"_\"),monthsShort:\"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki\".split(\"_\"),monthsRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsShortRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,weekdays:\"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei\".split(\"_\"),weekdaysShort:\"Ta_Ma_Tū_We_Tāi_Pa_Hā\".split(\"_\"),weekdaysMin:\"Ta_Ma_Tū_We_Tāi_Pa_Hā\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [i] HH:mm\",LLLL:\"dddd, D MMMM YYYY [i] HH:mm\"},calendar:{sameDay:\"[i teie mahana, i] LT\",nextDay:\"[apopo i] LT\",nextWeek:\"dddd [i] LT\",lastDay:\"[inanahi i] LT\",lastWeek:\"dddd [whakamutunga i] LT\",sameElse:\"L\"},relativeTime:{future:\"i roto i %s\",past:\"%s i mua\",s:\"te hēkona ruarua\",m:\"he meneti\",mm:\"%d meneti\",h:\"te haora\",hh:\"%d haora\",d:\"he ra\",dd:\"%d ra\",M:\"he marama\",MM:\"%d marama\",y:\"he tau\",yy:\"%d tau\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Macedonian [mk]\r\n//! author : Borislav Mickov : https://github.com/B0k0\r\na.defineLocale(\"mk\",{months:\"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек\".split(\"_\"),weekdays:\"недела_понеделник_вторник_среда_четврток_петок_сабота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сре_чет_пет_саб\".split(\"_\"),weekdaysMin:\"нe_пo_вт_ср_че_пе_сa\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[Денес во] LT\",nextDay:\"[Утре во] LT\",nextWeek:\"[Во] dddd [во] LT\",lastDay:\"[Вчера во] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[Изминатата] dddd [во] LT\";case 1:case 2:case 4:case 5:return\"[Изминатиот] dddd [во] LT\"}},sameElse:\"L\"},relativeTime:{future:\"после %s\",past:\"пред %s\",s:\"неколку секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дена\",M:\"месец\",MM:\"%d месеци\",y:\"година\",yy:\"%d години\"},dayOfMonthOrdinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&c<20?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Malayalam [ml]\r\n//! author : Floyd Pink : https://github.com/floydpink\r\na.defineLocale(\"ml\",{months:\"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ\".split(\"_\"),monthsShort:\"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.\".split(\"_\"),monthsParseExact:!0,weekdays:\"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച\".split(\"_\"),weekdaysShort:\"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി\".split(\"_\"),weekdaysMin:\"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ\".split(\"_\"),longDateFormat:{LT:\"A h:mm -നു\",LTS:\"A h:mm:ss -നു\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm -നു\",LLLL:\"dddd, D MMMM YYYY, A h:mm -നു\"},calendar:{sameDay:\"[ഇന്ന്] LT\",nextDay:\"[നാളെ] LT\",nextWeek:\"dddd, LT\",lastDay:\"[ഇന്നലെ] LT\",lastWeek:\"[കഴിഞ്ഞ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s കഴിഞ്ഞ്\",past:\"%s മുൻപ്\",s:\"അൽപ നിമിഷങ്ങൾ\",m:\"ഒരു മിനിറ്റ്\",mm:\"%d മിനിറ്റ്\",h:\"ഒരു മണിക്കൂർ\",hh:\"%d മണിക്കൂർ\",d:\"ഒരു ദിവസം\",dd:\"%d ദിവസം\",M:\"ഒരു മാസം\",MM:\"%d മാസം\",y:\"ഒരു വർഷം\",yy:\"%d വർഷം\"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(a,b){return 12===a&&(a=0),\"രാത്രി\"===b&&a>=4||\"ഉച്ച കഴിഞ്ഞ്\"===b||\"വൈകുന്നേരം\"===b?a+12:a},meridiem:function(a,b,c){return a<4?\"രാത്രി\":a<12?\"രാവിലെ\":a<17?\"ഉച്ച കഴിഞ്ഞ്\":a<20?\"വൈകുന്നേരം\":\"രാത്രി\"}});\r\n//! moment.js locale configuration\r\n//! locale : Marathi [mr]\r\n//! author : Harshad Kale : https://github.com/kalehv\r\n//! author : Vivek Athalye : https://github.com/vnathalye\r\nvar Wa={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},Xa={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};a.defineLocale(\"mr\",{months:\"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर\".split(\"_\"),monthsShort:\"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.\".split(\"_\"),monthsParseExact:!0,weekdays:\"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm वाजता\",LTS:\"A h:mm:ss वाजता\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm वाजता\",LLLL:\"dddd, D MMMM YYYY, A h:mm वाजता\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[उद्या] LT\",nextWeek:\"dddd, LT\",lastDay:\"[काल] LT\",lastWeek:\"[मागील] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%sमध्ये\",past:\"%sपूर्वी\",s:L,m:L,mm:L,h:L,hh:L,d:L,dd:L,M:L,MM:L,y:L,yy:L},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Xa[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Wa[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात्री\"===b?a<4?a:a+12:\"सकाळी\"===b?a:\"दुपारी\"===b?a>=10?a:a+12:\"सायंकाळी\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"रात्री\":a<10?\"सकाळी\":a<17?\"दुपारी\":a<20?\"सायंकाळी\":\"रात्री\"},week:{dow:0,doy:6}}),\r\n//! moment.js locale configuration\r\n//! locale : Malay [ms-my]\r\n//! note : DEPRECATED, the correct one is [ms]\r\n//! author : Weldan Jamili : https://github.com/weldan\r\na.defineLocale(\"ms-my\",{months:\"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis\".split(\"_\"),weekdays:\"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu\".split(\"_\"),weekdaysShort:\"Ahd_Isn_Sel_Rab_Kha_Jum_Sab\".split(\"_\"),weekdaysMin:\"Ah_Is_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"tengahari\"===b?a>=11?a:a+12:\"petang\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?\"pagi\":a<15?\"tengahari\":a<19?\"petang\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Esok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kelmarin pukul] LT\",lastWeek:\"dddd [lepas pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lepas\",s:\"beberapa saat\",m:\"seminit\",mm:\"%d minit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Malay [ms]\r\n//! author : Weldan Jamili : https://github.com/weldan\r\na.defineLocale(\"ms\",{months:\"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis\".split(\"_\"),weekdays:\"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu\".split(\"_\"),weekdaysShort:\"Ahd_Isn_Sel_Rab_Kha_Jum_Sab\".split(\"_\"),weekdaysMin:\"Ah_Is_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"tengahari\"===b?a>=11?a:a+12:\"petang\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?\"pagi\":a<15?\"tengahari\":a<19?\"petang\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Esok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kelmarin pukul] LT\",lastWeek:\"dddd [lepas pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lepas\",s:\"beberapa saat\",m:\"seminit\",mm:\"%d minit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Burmese [my]\r\n//! author : Squar team, mysquar.com\r\n//! author : David Rossellat : https://github.com/gholadr\r\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\r\nvar Ya={1:\"၁\",2:\"၂\",3:\"၃\",4:\"၄\",5:\"၅\",6:\"၆\",7:\"၇\",8:\"၈\",9:\"၉\",0:\"၀\"},Za={\"၁\":\"1\",\"၂\":\"2\",\"၃\":\"3\",\"၄\":\"4\",\"၅\":\"5\",\"၆\":\"6\",\"၇\":\"7\",\"၈\":\"8\",\"၉\":\"9\",\"၀\":\"0\"};a.defineLocale(\"my\",{months:\"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ\".split(\"_\"),monthsShort:\"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ\".split(\"_\"),weekdays:\"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ\".split(\"_\"),weekdaysShort:\"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ\".split(\"_\"),weekdaysMin:\"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ယနေ.] LT [မှာ]\",nextDay:\"[မနက်ဖြန်] LT [မှာ]\",nextWeek:\"dddd LT [မှာ]\",lastDay:\"[မနေ.က] LT [မှာ]\",lastWeek:\"[ပြီးခဲ့သော] dddd LT [မှာ]\",sameElse:\"L\"},relativeTime:{future:\"လာမည့် %s မှာ\",past:\"လွန်ခဲ့သော %s က\",s:\"စက္ကန်.အနည်းငယ်\",m:\"တစ်မိနစ်\",mm:\"%d မိနစ်\",h:\"တစ်နာရီ\",hh:\"%d နာရီ\",d:\"တစ်ရက်\",dd:\"%d ရက်\",M:\"တစ်လ\",MM:\"%d လ\",y:\"တစ်နှစ်\",yy:\"%d နှစ်\"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return Za[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Ya[a]})},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Norwegian Bokmål [nb]\r\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\r\n//! Sigurd Gartmann : https://github.com/sigurdga\r\na.defineLocale(\"nb\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.\".split(\"_\"),monthsParseExact:!0,weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"sø._ma._ti._on._to._fr._lø.\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] HH:mm\",LLLL:\"dddd D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[forrige] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"noen sekunder\",m:\"ett minutt\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dager\",M:\"en måned\",MM:\"%d måneder\",y:\"ett år\",yy:\"%d år\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Nepalese [ne]\r\n//! author : suvash : https://github.com/suvash\r\nvar $a={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},_a={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};a.defineLocale(\"ne\",{months:\"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर\".split(\"_\"),monthsShort:\"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.\".split(\"_\"),monthsParseExact:!0,weekdays:\"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार\".split(\"_\"),weekdaysShort:\"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.\".split(\"_\"),weekdaysMin:\"आ._सो._मं._बु._बि._शु._श.\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"Aको h:mm बजे\",LTS:\"Aको h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, Aको h:mm बजे\",LLLL:\"dddd, D MMMM YYYY, Aको h:mm बजे\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return _a[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return $a[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"राति\"===b?a<4?a:a+12:\"बिहान\"===b?a:\"दिउँसो\"===b?a>=10?a:a+12:\"साँझ\"===b?a+12:void 0},meridiem:function(a,b,c){return a<3?\"राति\":a<12?\"बिहान\":a<16?\"दिउँसो\":a<20?\"साँझ\":\"राति\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[भोलि] LT\",nextWeek:\"[आउँदो] dddd[,] LT\",lastDay:\"[हिजो] LT\",lastWeek:\"[गएको] dddd[,] LT\",sameElse:\"L\"},relativeTime:{future:\"%sमा\",past:\"%s अगाडि\",s:\"केही क्षण\",m:\"एक मिनेट\",mm:\"%d मिनेट\",h:\"एक घण्टा\",hh:\"%d घण्टा\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महिना\",MM:\"%d महिना\",y:\"एक बर्ष\",yy:\"%d बर्ष\"},week:{dow:0,doy:6}});\r\n//! moment.js locale configuration\r\n//! locale : Dutch (Belgium) [nl-be]\r\n//! author : Joris Röling : https://github.com/jorisroling\r\n//! author : Jacob Middag : https://github.com/middagj\r\nvar ab=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),bb=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),cb=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],db=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;a.defineLocale(\"nl-be\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?bb[a.month()]:ab[a.month()]:ab},monthsRegex:db,monthsShortRegex:db,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,monthsParse:cb,longMonthsParse:cb,shortMonthsParse:cb,weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Dutch [nl]\r\n//! author : Joris Röling : https://github.com/jorisroling\r\n//! author : Jacob Middag : https://github.com/middagj\r\nvar eb=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),fb=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),gb=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],hb=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;a.defineLocale(\"nl\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?fb[a.month()]:eb[a.month()]:eb},monthsRegex:hb,monthsShortRegex:hb,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,monthsParse:gb,longMonthsParse:gb,shortMonthsParse:gb,weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Nynorsk [nn]\r\n//! author : https://github.com/mechuwind\r\na.defineLocale(\"nn\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag\".split(\"_\"),weekdaysShort:\"sun_mån_tys_ons_tor_fre_lau\".split(\"_\"),weekdaysMin:\"su_må_ty_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] H:mm\",LLLL:\"dddd D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[I dag klokka] LT\",nextDay:\"[I morgon klokka] LT\",nextWeek:\"dddd [klokka] LT\",lastDay:\"[I går klokka] LT\",lastWeek:\"[Føregåande] dddd [klokka] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s sidan\",s:\"nokre sekund\",m:\"eit minutt\",mm:\"%d minutt\",h:\"ein time\",hh:\"%d timar\",d:\"ein dag\",dd:\"%d dagar\",M:\"ein månad\",MM:\"%d månader\",y:\"eit år\",yy:\"%d år\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Punjabi (India) [pa-in]\r\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\r\nvar ib={1:\"੧\",2:\"੨\",3:\"੩\",4:\"੪\",5:\"੫\",6:\"੬\",7:\"੭\",8:\"੮\",9:\"੯\",0:\"੦\"},jb={\"੧\":\"1\",\"੨\":\"2\",\"੩\":\"3\",\"੪\":\"4\",\"੫\":\"5\",\"੬\":\"6\",\"੭\":\"7\",\"੮\":\"8\",\"੯\":\"9\",\"੦\":\"0\"};a.defineLocale(\"pa-in\",{months:\"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ\".split(\"_\"),monthsShort:\"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ\".split(\"_\"),weekdays:\"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ\".split(\"_\"),weekdaysShort:\"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ\".split(\"_\"),weekdaysMin:\"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ\".split(\"_\"),longDateFormat:{LT:\"A h:mm ਵਜੇ\",LTS:\"A h:mm:ss ਵਜੇ\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm ਵਜੇ\",LLLL:\"dddd, D MMMM YYYY, A h:mm ਵਜੇ\"},calendar:{sameDay:\"[ਅਜ] LT\",nextDay:\"[ਕਲ] LT\",nextWeek:\"dddd, LT\",lastDay:\"[ਕਲ] LT\",lastWeek:\"[ਪਿਛਲੇ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s ਵਿੱਚ\",past:\"%s ਪਿਛਲੇ\",s:\"ਕੁਝ ਸਕਿੰਟ\",m:\"ਇਕ ਮਿੰਟ\",mm:\"%d ਮਿੰਟ\",h:\"ਇੱਕ ਘੰਟਾ\",hh:\"%d ਘੰਟੇ\",d:\"ਇੱਕ ਦਿਨ\",dd:\"%d ਦਿਨ\",M:\"ਇੱਕ ਮਹੀਨਾ\",MM:\"%d ਮਹੀਨੇ\",y:\"ਇੱਕ ਸਾਲ\",yy:\"%d ਸਾਲ\"},preparse:function(a){return a.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(a){return jb[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return ib[a]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"ਰਾਤ\"===b?a<4?a:a+12:\"ਸਵੇਰ\"===b?a:\"ਦੁਪਹਿਰ\"===b?a>=10?a:a+12:\"ਸ਼ਾਮ\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"ਰਾਤ\":a<10?\"ਸਵੇਰ\":a<17?\"ਦੁਪਹਿਰ\":a<20?\"ਸ਼ਾਮ\":\"ਰਾਤ\"},week:{dow:0,doy:6}});\r\n//! moment.js locale configuration\r\n//! locale : Polish [pl]\r\n//! author : Rafal Hirsz : https://github.com/evoL\r\nvar kb=\"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień\".split(\"_\"),lb=\"stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia\".split(\"_\");a.defineLocale(\"pl\",{months:function(a,b){return a?\"\"===b?\"(\"+lb[a.month()]+\"|\"+kb[a.month()]+\")\":/D MMMM/.test(b)?lb[a.month()]:kb[a.month()]:kb},monthsShort:\"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru\".split(\"_\"),weekdays:\"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota\".split(\"_\"),weekdaysShort:\"ndz_pon_wt_śr_czw_pt_sob\".split(\"_\"),weekdaysMin:\"Nd_Pn_Wt_Śr_Cz_Pt_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Dziś o] LT\",nextDay:\"[Jutro o] LT\",nextWeek:\"[W] dddd [o] LT\",lastDay:\"[Wczoraj o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[W zeszłą niedzielę o] LT\";case 3:return\"[W zeszłą środę o] LT\";case 6:return\"[W zeszłą sobotę o] LT\";default:return\"[W zeszły] dddd [o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"%s temu\",s:\"kilka sekund\",m:N,mm:N,h:N,hh:N,d:\"1 dzień\",dd:\"%d dni\",M:\"miesiąc\",MM:N,y:\"rok\",yy:N},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Portuguese (Brazil) [pt-br]\r\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\r\na.defineLocale(\"pt-br\",{months:\"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ter_Qua_Qui_Sex_Sáb\".split(\"_\"),weekdaysMin:\"Do_2ª_3ª_4ª_5ª_6ª_Sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [às] HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY [às] HH:mm\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"%s atrás\",s:\"poucos segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\"}),\r\n//! moment.js locale configuration\r\n//! locale : Portuguese [pt]\r\n//! author : Jefferson : https://github.com/jalex79\r\na.defineLocale(\"pt\",{months:\"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ter_Qua_Qui_Sex_Sáb\".split(\"_\"),weekdaysMin:\"Do_2ª_3ª_4ª_5ª_6ª_Sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY HH:mm\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"há %s\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.defineLocale(\"ro\",{months:\"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie\".split(\"_\"),monthsShort:\"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"duminică_luni_marți_miercuri_joi_vineri_sâmbătă\".split(\"_\"),weekdaysShort:\"Dum_Lun_Mar_Mie_Joi_Vin_Sâm\".split(\"_\"),weekdaysMin:\"Du_Lu_Ma_Mi_Jo_Vi_Sâ\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[azi la] LT\",nextDay:\"[mâine la] LT\",nextWeek:\"dddd [la] LT\",lastDay:\"[ieri la] LT\",lastWeek:\"[fosta] dddd [la] LT\",sameElse:\"L\"},relativeTime:{future:\"peste %s\",past:\"%s în urmă\",s:\"câteva secunde\",m:\"un minut\",mm:O,h:\"o oră\",hh:O,d:\"o zi\",dd:O,M:\"o lună\",MM:O,y:\"un an\",yy:O},week:{dow:1,doy:7}});var mb=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];a.defineLocale(\"ru\",{months:{format:\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\"),standalone:\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\")},monthsShort:{format:\"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.\".split(\"_\"),standalone:\"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.\".split(\"_\")},weekdays:{standalone:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),format:\"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу\".split(\"_\"),isFormat:/\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/},weekdaysShort:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),monthsParse:mb,longMonthsParse:mb,shortMonthsParse:mb,monthsRegex:/^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,monthsShortRegex:/^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., HH:mm\",LLLL:\"dddd, D MMMM YYYY г., HH:mm\"},calendar:{sameDay:\"[Сегодня в] LT\",nextDay:\"[Завтра в] LT\",lastDay:\"[Вчера в] LT\",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В следующее] dddd [в] LT\";case 1:case 2:case 4:return\"[В следующий] dddd [в] LT\";case 3:case 5:case 6:return\"[В следующую] dddd [в] LT\"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В прошлое] dddd [в] LT\";case 1:case 2:case 4:return\"[В прошлый] dddd [в] LT\";case 3:case 5:case 6:return\"[В прошлую] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:Q,mm:Q,h:\"час\",hh:Q,d:\"день\",dd:Q,M:\"месяц\",MM:Q,y:\"год\",yy:Q},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return a<4?\"ночи\":a<12?\"утра\":a<17?\"дня\":\"вечера\"},dayOfMonthOrdinalParse:/\\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":return a+\"-й\";case\"D\":return a+\"-го\";case\"w\":case\"W\":return a+\"-я\";default:return a}},week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Sindhi [sd]\r\n//! author : Narain Sagar : https://github.com/narainsagar\r\nvar nb=[\"جنوري\",\"فيبروري\",\"مارچ\",\"اپريل\",\"مئي\",\"جون\",\"جولاءِ\",\"آگسٽ\",\"سيپٽمبر\",\"آڪٽوبر\",\"نومبر\",\"ڊسمبر\"],ob=[\"آچر\",\"سومر\",\"اڱارو\",\"اربع\",\"خميس\",\"جمع\",\"ڇنڇر\"];a.defineLocale(\"sd\",{months:nb,monthsShort:nb,weekdays:ob,weekdaysShort:ob,weekdaysMin:ob,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd، D MMMM YYYY HH:mm\"},meridiemParse:/صبح|شام/,isPM:function(a){return\"شام\"===a},meridiem:function(a,b,c){return a<12?\"صبح\":\"شام\"},calendar:{sameDay:\"[اڄ] LT\",nextDay:\"[سڀاڻي] LT\",nextWeek:\"dddd [اڳين هفتي تي] LT\",lastDay:\"[ڪالهه] LT\",lastWeek:\"[گزريل هفتي] dddd [تي] LT\",sameElse:\"L\"},relativeTime:{future:\"%s پوء\",past:\"%s اڳ\",s:\"چند سيڪنڊ\",m:\"هڪ منٽ\",mm:\"%d منٽ\",h:\"هڪ ڪلاڪ\",hh:\"%d ڪلاڪ\",d:\"هڪ ڏينهن\",dd:\"%d ڏينهن\",M:\"هڪ مهينو\",MM:\"%d مهينا\",y:\"هڪ سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/،/g,\",\")},postformat:function(a){return a.replace(/,/g,\"،\")},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Northern Sami [se]\r\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\r\na.defineLocale(\"se\",{months:\"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu\".split(\"_\"),monthsShort:\"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov\".split(\"_\"),weekdays:\"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat\".split(\"_\"),weekdaysShort:\"sotn_vuos_maŋ_gask_duor_bear_láv\".split(\"_\"),weekdaysMin:\"s_v_m_g_d_b_L\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"MMMM D. [b.] YYYY\",LLL:\"MMMM D. [b.] YYYY [ti.] HH:mm\",LLLL:\"dddd, MMMM D. [b.] YYYY [ti.] HH:mm\"},calendar:{sameDay:\"[otne ti] LT\",nextDay:\"[ihttin ti] LT\",nextWeek:\"dddd [ti] LT\",lastDay:\"[ikte ti] LT\",lastWeek:\"[ovddit] dddd [ti] LT\",sameElse:\"L\"},relativeTime:{future:\"%s geažes\",past:\"maŋit %s\",s:\"moadde sekunddat\",m:\"okta minuhta\",mm:\"%d minuhtat\",h:\"okta diimmu\",hh:\"%d diimmut\",d:\"okta beaivi\",dd:\"%d beaivvit\",M:\"okta mánnu\",MM:\"%d mánut\",y:\"okta jahki\",yy:\"%d jagit\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Sinhalese [si]\r\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\r\na.defineLocale(\"si\",{months:\"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්\".split(\"_\"),monthsShort:\"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ\".split(\"_\"),weekdays:\"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා\".split(\"_\"),weekdaysShort:\"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන\".split(\"_\"),weekdaysMin:\"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"a h:mm\",LTS:\"a h:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY MMMM D\",LLL:\"YYYY MMMM D, a h:mm\",LLLL:\"YYYY MMMM D [වැනි] dddd, a h:mm:ss\"},calendar:{sameDay:\"[අද] LT[ට]\",nextDay:\"[හෙට] LT[ට]\",nextWeek:\"dddd LT[ට]\",lastDay:\"[ඊයේ] LT[ට]\",lastWeek:\"[පසුගිය] dddd LT[ට]\",sameElse:\"L\"},relativeTime:{future:\"%sකින්\",past:\"%sකට පෙර\",s:\"තත්පර කිහිපය\",m:\"මිනිත්තුව\",mm:\"මිනිත්තු %d\",h:\"පැය\",hh:\"පැය %d\",d:\"දිනය\",dd:\"දින %d\",M:\"මාසය\",MM:\"මාස %d\",y:\"වසර\",yy:\"වසර %d\"},dayOfMonthOrdinalParse:/\\d{1,2} වැනි/,ordinal:function(a){return a+\" වැනි\"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(a){return\"ප.ව.\"===a||\"පස් වරු\"===a},meridiem:function(a,b,c){return a>11?c?\"ප.ව.\":\"පස් වරු\":c?\"පෙ.ව.\":\"පෙර වරු\"}});\r\n//! moment.js locale configuration\r\n//! locale : Slovak [sk]\r\n//! author : Martin Minka : https://github.com/k2s\r\n//! based on work of petrbela : https://github.com/petrbela\r\nvar pb=\"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december\".split(\"_\"),qb=\"jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec\".split(\"_\");a.defineLocale(\"sk\",{months:pb,monthsShort:qb,weekdays:\"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota\".split(\"_\"),weekdaysShort:\"ne_po_ut_st_št_pi_so\".split(\"_\"),weekdaysMin:\"ne_po_ut_st_št_pi_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[dnes o] LT\",nextDay:\"[zajtra o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v nedeľu o] LT\";case 1:case 2:return\"[v] dddd [o] LT\";case 3:return\"[v stredu o] LT\";case 4:return\"[vo štvrtok o] LT\";case 5:return\"[v piatok o] LT\";case 6:return\"[v sobotu o] LT\"}},lastDay:\"[včera o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulú nedeľu o] LT\";case 1:case 2:return\"[minulý] dddd [o] LT\";case 3:return\"[minulú stredu o] LT\";case 4:case 5:return\"[minulý] dddd [o] LT\";case 6:return\"[minulú sobotu o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pred %s\",s:S,m:S,mm:S,h:S,hh:S,d:S,dd:S,M:S,MM:S,y:S,yy:S},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.defineLocale(\"sl\",{months:\"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota\".split(\"_\"),weekdaysShort:\"ned._pon._tor._sre._čet._pet._sob.\".split(\"_\"),weekdaysMin:\"ne_po_to_sr_če_pe_so\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danes ob] LT\",nextDay:\"[jutri ob] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v] [nedeljo] [ob] LT\";case 3:return\"[v] [sredo] [ob] LT\";case 6:return\"[v] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[v] dddd [ob] LT\"}},lastDay:\"[včeraj ob] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[prejšnjo] [nedeljo] [ob] LT\";case 3:return\"[prejšnjo] [sredo] [ob] LT\";case 6:return\"[prejšnjo] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[prejšnji] dddd [ob] LT\"}},sameElse:\"L\"},relativeTime:{future:\"čez %s\",past:\"pred %s\",s:T,m:T,mm:T,h:T,hh:T,d:T,dd:T,M:T,MM:T,y:T,yy:T},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Albanian [sq]\r\n//! author : Flakërim Ismani : https://github.com/flakerimi\r\n//! author : Menelion Elensúle : https://github.com/Oire\r\n//! author : Oerd Cukalla : https://github.com/oerd\r\na.defineLocale(\"sq\",{months:\"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor\".split(\"_\"),monthsShort:\"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj\".split(\"_\"),weekdays:\"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë\".split(\"_\"),weekdaysShort:\"Die_Hën_Mar_Mër_Enj_Pre_Sht\".split(\"_\"),weekdaysMin:\"D_H_Ma_Më_E_P_Sh\".split(\"_\"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(a){return\"M\"===a.charAt(0)},meridiem:function(a,b,c){return a<12?\"PD\":\"MD\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Sot në] LT\",nextDay:\"[Nesër në] LT\",nextWeek:\"dddd [në] LT\",lastDay:\"[Dje në] LT\",lastWeek:\"dddd [e kaluar në] LT\",sameElse:\"L\"},relativeTime:{future:\"në %s\",past:\"%s më parë\",s:\"disa sekonda\",m:\"një minutë\",mm:\"%d minuta\",h:\"një orë\",hh:\"%d orë\",d:\"një ditë\",dd:\"%d ditë\",M:\"një muaj\",MM:\"%d muaj\",y:\"një vit\",yy:\"%d vite\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Serbian Cyrillic [sr-cyrl]\r\n//! author : Milan Janačković : https://github.com/milan-j\r\nvar rb={words:{m:[\"један минут\",\"једне минуте\"],mm:[\"минут\",\"минуте\",\"минута\"],h:[\"један сат\",\"једног сата\"],hh:[\"сат\",\"сата\",\"сати\"],dd:[\"дан\",\"дана\",\"дана\"],MM:[\"месец\",\"месеца\",\"месеци\"],yy:[\"година\",\"године\",\"година\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=rb.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+rb.correctGrammaticalCase(a,d)}};a.defineLocale(\"sr-cyrl\",{months:\"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар\".split(\"_\"),monthsShort:\"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.\".split(\"_\"),monthsParseExact:!0,weekdays:\"недеља_понедељак_уторак_среда_четвртак_петак_субота\".split(\"_\"),weekdaysShort:\"нед._пон._уто._сре._чет._пет._суб.\".split(\"_\"),weekdaysMin:\"не_по_ут_ср_че_пе_су\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[данас у] LT\",nextDay:\"[сутра у] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[у] [недељу] [у] LT\";case 3:return\"[у] [среду] [у] LT\";case 6:return\"[у] [суботу] [у] LT\";case 1:case 2:case 4:case 5:return\"[у] dddd [у] LT\"}},lastDay:\"[јуче у] LT\",lastWeek:function(){var a=[\"[прошле] [недеље] [у] LT\",\"[прошлог] [понедељка] [у] LT\",\"[прошлог] [уторка] [у] LT\",\"[прошле] [среде] [у] LT\",\"[прошлог] [четвртка] [у] LT\",\"[прошлог] [петка] [у] LT\",\"[прошле] [суботе] [у] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"пре %s\",s:\"неколико секунди\",m:rb.translate,mm:rb.translate,h:rb.translate,hh:rb.translate,d:\"дан\",dd:rb.translate,M:\"месец\",MM:rb.translate,y:\"годину\",yy:rb.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Serbian [sr]\r\n//! author : Milan Janačković : https://github.com/milan-j\r\nvar sb={words:{m:[\"jedan minut\",\"jedne minute\"],mm:[\"minut\",\"minute\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mesec\",\"meseca\",\"meseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=sb.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+sb.correctGrammaticalCase(a,d)}};a.defineLocale(\"sr\",{months:\"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sre._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedelju] [u] LT\";case 3:return\"[u] [sredu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedelje] [u] LT\",\"[prošlog] [ponedeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pre %s\",s:\"nekoliko sekundi\",m:sb.translate,mm:sb.translate,h:sb.translate,hh:sb.translate,d:\"dan\",dd:sb.translate,M:\"mesec\",MM:sb.translate,y:\"godinu\",yy:sb.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : siSwati [ss]\r\n//! author : Nicolai Davies : https://github.com/nicolaidavies\r\na.defineLocale(\"ss\",{months:\"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\"_\"),monthsShort:\"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo\".split(\"_\"),weekdays:\"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo\".split(\"_\"),weekdaysShort:\"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg\".split(\"_\"),weekdaysMin:\"Li_Us_Lb_Lt_Ls_Lh_Ug\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Namuhla nga] LT\",nextDay:\"[Kusasa nga] LT\",nextWeek:\"dddd [nga] LT\",lastDay:\"[Itolo nga] LT\",lastWeek:\"dddd [leliphelile] [nga] LT\",sameElse:\"L\"},relativeTime:{future:\"nga %s\",past:\"wenteka nga %s\",s:\"emizuzwana lomcane\",m:\"umzuzu\",mm:\"%d emizuzu\",h:\"lihora\",hh:\"%d emahora\",d:\"lilanga\",dd:\"%d emalanga\",M:\"inyanga\",MM:\"%d tinyanga\",y:\"umnyaka\",yy:\"%d iminyaka\"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(a,b,c){return a<11?\"ekuseni\":a<15?\"emini\":a<19?\"entsambama\":\"ebusuku\"},meridiemHour:function(a,b){return 12===a&&(a=0),\"ekuseni\"===b?a:\"emini\"===b?a>=11?a:a+12:\"entsambama\"===b||\"ebusuku\"===b?0===a?0:a+12:void 0},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:\"%d\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Swedish [sv]\r\n//! author : Jens Alm : https://github.com/ulmus\r\na.defineLocale(\"sv\",{months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag\".split(\"_\"),weekdaysShort:\"sön_mån_tis_ons_tor_fre_lör\".split(\"_\"),weekdaysMin:\"sö_må_ti_on_to_fr_lö\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [kl.] HH:mm\",LLLL:\"dddd D MMMM YYYY [kl.] HH:mm\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd D MMM YYYY HH:mm\"},calendar:{sameDay:\"[Idag] LT\",nextDay:\"[Imorgon] LT\",lastDay:\"[Igår] LT\",nextWeek:\"[På] dddd LT\",lastWeek:\"[I] dddd[s] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"för %s sedan\",s:\"några sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en månad\",MM:\"%d månader\",y:\"ett år\",yy:\"%d år\"},dayOfMonthOrdinalParse:/\\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"e\":1===b?\"a\":2===b?\"a\":\"e\";return a+c},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Swahili [sw]\r\n//! author : Fahad Kassim : https://github.com/fadsel\r\na.defineLocale(\"sw\",{months:\"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi\".split(\"_\"),weekdaysShort:\"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos\".split(\"_\"),weekdaysMin:\"J2_J3_J4_J5_Al_Ij_J1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[leo saa] LT\",nextDay:\"[kesho saa] LT\",nextWeek:\"[wiki ijayo] dddd [saat] LT\",lastDay:\"[jana] LT\",lastWeek:\"[wiki iliyopita] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s baadaye\",past:\"tokea %s\",s:\"hivi punde\",m:\"dakika moja\",mm:\"dakika %d\",h:\"saa limoja\",hh:\"masaa %d\",d:\"siku moja\",dd:\"masiku %d\",M:\"mwezi mmoja\",MM:\"miezi %d\",y:\"mwaka mmoja\",yy:\"miaka %d\"},week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Tamil [ta]\r\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\r\nvar tb={1:\"௧\",2:\"௨\",3:\"௩\",4:\"௪\",5:\"௫\",6:\"௬\",7:\"௭\",8:\"௮\",9:\"௯\",0:\"௦\"},ub={\"௧\":\"1\",\"௨\":\"2\",\"௩\":\"3\",\"௪\":\"4\",\"௫\":\"5\",\"௬\":\"6\",\"௭\":\"7\",\"௮\":\"8\",\"௯\":\"9\",\"௦\":\"0\"};a.defineLocale(\"ta\",{months:\"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்\".split(\"_\"),monthsShort:\"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்\".split(\"_\"),weekdays:\"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை\".split(\"_\"),weekdaysShort:\"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி\".split(\"_\"),weekdaysMin:\"ஞா_தி_செ_பு_வி_வெ_ச\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, HH:mm\",LLLL:\"dddd, D MMMM YYYY, HH:mm\"},calendar:{sameDay:\"[இன்று] LT\",nextDay:\"[நாளை] LT\",nextWeek:\"dddd, LT\",lastDay:\"[நேற்று] LT\",lastWeek:\"[கடந்த வாரம்] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s இல்\",past:\"%s முன்\",s:\"ஒரு சில விநாடிகள்\",m:\"ஒரு நிமிடம்\",mm:\"%d நிமிடங்கள்\",h:\"ஒரு மணி நேரம்\",hh:\"%d மணி நேரம்\",d:\"ஒரு நாள்\",dd:\"%d நாட்கள்\",M:\"ஒரு மாதம்\",MM:\"%d மாதங்கள்\",y:\"ஒரு வருடம்\",yy:\"%d ஆண்டுகள்\"},dayOfMonthOrdinalParse:/\\d{1,2}வது/,ordinal:function(a){return a+\"வது\"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return ub[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return tb[a]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return a<2?\" யாமம்\":a<6?\" வைகறை\":a<10?\" காலை\":a<14?\" நண்பகல்\":a<18?\" எற்பாடு\":a<22?\" மாலை\":\" யாமம்\"},meridiemHour:function(a,b){return 12===a&&(a=0),\"யாமம்\"===b?a<2?a:a+12:\"வைகறை\"===b||\"காலை\"===b?a:\"நண்பகல்\"===b&&a>=10?a:a+12},week:{dow:0,doy:6}}),\r\n//! moment.js locale configuration\r\n//! locale : Telugu [te]\r\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\r\na.defineLocale(\"te\",{months:\"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్\".split(\"_\"),monthsShort:\"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.\".split(\"_\"),monthsParseExact:!0,weekdays:\"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం\".split(\"_\"),weekdaysShort:\"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని\".split(\"_\"),weekdaysMin:\"ఆ_సో_మం_బు_గు_శు_శ\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[నేడు] LT\",nextDay:\"[రేపు] LT\",nextWeek:\"dddd, LT\",lastDay:\"[నిన్న] LT\",lastWeek:\"[గత] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s లో\",past:\"%s క్రితం\",s:\"కొన్ని క్షణాలు\",m:\"ఒక నిమిషం\",mm:\"%d నిమిషాలు\",h:\"ఒక గంట\",hh:\"%d గంటలు\",d:\"ఒక రోజు\",dd:\"%d రోజులు\",M:\"ఒక నెల\",MM:\"%d నెలలు\",y:\"ఒక సంవత్సరం\",yy:\"%d సంవత్సరాలు\"},dayOfMonthOrdinalParse:/\\d{1,2}వ/,ordinal:\"%dవ\",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),\"రాత్రి\"===b?a<4?a:a+12:\"ఉదయం\"===b?a:\"మధ్యాహ్నం\"===b?a>=10?a:a+12:\"సాయంత్రం\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"రాత్రి\":a<10?\"ఉదయం\":a<17?\"మధ్యాహ్నం\":a<20?\"సాయంత్రం\":\"రాత్రి\"},week:{dow:0,doy:6}}),\r\n//! moment.js locale configuration\r\n//! locale : Tetun Dili (East Timor) [tet]\r\n//! author : Joshua Brooks : https://github.com/joshbrooks\r\n//! author : Onorio De J. Afonso : https://github.com/marobo\r\na.defineLocale(\"tet\",{months:\"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ters_Kua_Kint_Sext_Sab\".split(\"_\"),weekdaysMin:\"Do_Seg_Te_Ku_Ki_Sex_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Ohin iha] LT\",nextDay:\"[Aban iha] LT\",nextWeek:\"dddd [iha] LT\",lastDay:\"[Horiseik iha] LT\",lastWeek:\"dddd [semana kotuk] [iha] LT\",sameElse:\"L\"},relativeTime:{future:\"iha %s\",past:\"%s liuba\",s:\"minutu balun\",m:\"minutu ida\",mm:\"minutus %d\",h:\"horas ida\",hh:\"horas %d\",d:\"loron ida\",dd:\"loron %d\",M:\"fulan ida\",MM:\"fulan %d\",y:\"tinan ida\",yy:\"tinan %d\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Thai [th]\r\n//! author : Kridsada Thanabulpong : https://github.com/sirn\r\na.defineLocale(\"th\",{months:\"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม\".split(\"_\"),monthsShort:\"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.\".split(\"_\"),monthsParseExact:!0,weekdays:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์\".split(\"_\"),weekdaysShort:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์\".split(\"_\"),weekdaysMin:\"อา._จ._อ._พ._พฤ._ศ._ส.\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY เวลา H:mm\",LLLL:\"วันddddที่ D MMMM YYYY เวลา H:mm\"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return\"หลังเที่ยง\"===a},meridiem:function(a,b,c){return a<12?\"ก่อนเที่ยง\":\"หลังเที่ยง\"},calendar:{sameDay:\"[วันนี้ เวลา] LT\",nextDay:\"[พรุ่งนี้ เวลา] LT\",nextWeek:\"dddd[หน้า เวลา] LT\",lastDay:\"[เมื่อวานนี้ เวลา] LT\",lastWeek:\"[วัน]dddd[ที่แล้ว เวลา] LT\",sameElse:\"L\"},relativeTime:{future:\"อีก %s\",past:\"%sที่แล้ว\",s:\"ไม่กี่วินาที\",m:\"1 นาที\",mm:\"%d นาที\",h:\"1 ชั่วโมง\",hh:\"%d ชั่วโมง\",d:\"1 วัน\",dd:\"%d วัน\",M:\"1 เดือน\",MM:\"%d เดือน\",y:\"1 ปี\",yy:\"%d ปี\"}}),\r\n//! moment.js locale configuration\r\n//! locale : Tagalog (Philippines) [tl-ph]\r\n//! author : Dan Hagman : https://github.com/hagmandan\r\na.defineLocale(\"tl-ph\",{months:\"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre\".split(\"_\"),monthsShort:\"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis\".split(\"_\"),weekdays:\"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado\".split(\"_\"),weekdaysShort:\"Lin_Lun_Mar_Miy_Huw_Biy_Sab\".split(\"_\"),weekdaysMin:\"Li_Lu_Ma_Mi_Hu_Bi_Sab\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"MM/D/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY HH:mm\",LLLL:\"dddd, MMMM DD, YYYY HH:mm\"},calendar:{sameDay:\"LT [ngayong araw]\",nextDay:\"[Bukas ng] LT\",nextWeek:\"LT [sa susunod na] dddd\",lastDay:\"LT [kahapon]\",lastWeek:\"LT [noong nakaraang] dddd\",sameElse:\"L\"},relativeTime:{future:\"sa loob ng %s\",past:\"%s ang nakalipas\",s:\"ilang segundo\",m:\"isang minuto\",mm:\"%d minuto\",h:\"isang oras\",hh:\"%d oras\",d:\"isang araw\",dd:\"%d araw\",M:\"isang buwan\",MM:\"%d buwan\",y:\"isang taon\",yy:\"%d taon\"},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Klingon [tlh]\r\n//! author : Dominika Kruk : https://github.com/amaranthrose\r\nvar vb=\"pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut\".split(\"_\");a.defineLocale(\"tlh\",{months:\"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’\".split(\"_\"),monthsShort:\"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’\".split(\"_\"),monthsParseExact:!0,weekdays:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),weekdaysShort:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),weekdaysMin:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[DaHjaj] LT\",nextDay:\"[wa’leS] LT\",nextWeek:\"LLL\",lastDay:\"[wa’Hu’] LT\",lastWeek:\"LLL\",sameElse:\"L\"},relativeTime:{future:U,past:V,s:\"puS lup\",m:\"wa’ tup\",mm:W,h:\"wa’ rep\",hh:W,d:\"wa’ jaj\",dd:W,M:\"wa’ jar\",MM:W,y:\"wa’ DIS\",yy:W},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\r\n//! moment.js locale configuration\r\n//! locale : Turkish [tr]\r\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\r\n//! Burak Yiğit Kaya: https://github.com/BYK\r\nvar wb={1:\"'inci\",5:\"'inci\",8:\"'inci\",70:\"'inci\",80:\"'inci\",2:\"'nci\",7:\"'nci\",20:\"'nci\",50:\"'nci\",3:\"'üncü\",4:\"'üncü\",100:\"'üncü\",6:\"'ncı\",9:\"'uncu\",10:\"'uncu\",30:\"'uncu\",60:\"'ıncı\",90:\"'ıncı\"};a.defineLocale(\"tr\",{months:\"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık\".split(\"_\"),monthsShort:\"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara\".split(\"_\"),weekdays:\"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi\".split(\"_\"),weekdaysShort:\"Paz_Pts_Sal_Çar_Per_Cum_Cts\".split(\"_\"),weekdaysMin:\"Pz_Pt_Sa_Ça_Pe_Cu_Ct\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[yarın saat] LT\",nextWeek:\"[haftaya] dddd [saat] LT\",lastDay:\"[dün] LT\",lastWeek:\"[geçen hafta] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s önce\",s:\"birkaç saniye\",m:\"bir dakika\",mm:\"%d dakika\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir yıl\",yy:\"%d yıl\"},dayOfMonthOrdinalParse:/\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+\"'ıncı\";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(wb[b]||wb[c]||wb[d])},week:{dow:1,doy:7}}),\r\n//! moment.js locale configuration\r\n//! locale : Talossan [tzl]\r\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\r\n//! author : Iustì Canun\r\na.defineLocale(\"tzl\",{months:\"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec\".split(\"_\"),weekdays:\"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi\".split(\"_\"),weekdaysShort:\"Súl_Lún_Mai_Már_Xhú_Vié_Sát\".split(\"_\"),weekdaysMin:\"Sú_Lú_Ma_Má_Xh_Vi_Sá\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM [dallas] YYYY\",LLL:\"D. MMMM [dallas] YYYY HH.mm\",LLLL:\"dddd, [li] D. MMMM [dallas] YYYY HH.mm\"},meridiemParse:/d\\'o|d\\'a/i,isPM:function(a){return\"d'o\"===a.toLowerCase()},meridiem:function(a,b,c){return a>11?c?\"d'o\":\"D'O\":c?\"d'a\":\"D'A\"},calendar:{sameDay:\"[oxhi à] LT\",nextDay:\"[demà à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[ieiri à] LT\",lastWeek:\"[sür el] dddd [lasteu à] LT\",sameElse:\"L\"},relativeTime:{future:\"osprei %s\",past:\"ja%s\",s:Y,m:Y,mm:Y,h:Y,hh:Y,d:Y,dd:Y,M:Y,MM:Y,y:Y,yy:Y},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\r\n//! moment.js locale configuration\r\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\r\n//! author : Abdel Said : https://github.com/abdelsaid\r\na.defineLocale(\"tzm-latn\",{months:\"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir\".split(\"_\"),monthsShort:\"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir\".split(\"_\"),weekdays:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),weekdaysShort:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),weekdaysMin:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[asdkh g] LT\",nextDay:\"[aska g] LT\",nextWeek:\"dddd [g] LT\",lastDay:\"[assant g] LT\",lastWeek:\"dddd [g] LT\",sameElse:\"L\"},relativeTime:{future:\"dadkh s yan %s\",past:\"yan %s\",s:\"imik\",m:\"minuḍ\",mm:\"%d minuḍ\",h:\"saɛa\",hh:\"%d tassaɛin\",d:\"ass\",dd:\"%d ossan\",M:\"ayowr\",MM:\"%d iyyirn\",y:\"asgas\",yy:\"%d isgasn\"},week:{dow:6,doy:12}}),\r\n//! moment.js locale configuration\r\n//! locale : Central Atlas Tamazight [tzm]\r\n//! author : Abdel Said : https://github.com/abdelsaid\r\na.defineLocale(\"tzm\",{months:\"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ\".split(\"_\"),monthsShort:\"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ\".split(\"_\"),weekdays:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ\".split(\"_\"),weekdaysShort:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ\".split(\"_\"),weekdaysMin:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ⴰⵙⴷⵅ ⴴ] LT\",nextDay:\"[ⴰⵙⴽⴰ ⴴ] LT\",nextWeek:\"dddd [ⴴ] LT\",lastDay:\"[ⴰⵚⴰⵏⵜ ⴴ] LT\",lastWeek:\"dddd [ⴴ] LT\",sameElse:\"L\"},relativeTime:{future:\"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s\",past:\"ⵢⴰⵏ %s\",s:\"ⵉⵎⵉⴽ\",m:\"ⵎⵉⵏⵓⴺ\",mm:\"%d ⵎⵉⵏⵓⴺ\",h:\"ⵙⴰⵄⴰ\",hh:\"%d ⵜⴰⵙⵙⴰⵄⵉⵏ\",d:\"ⴰⵙⵙ\",dd:\"%d oⵙⵙⴰⵏ\",M:\"ⴰⵢoⵓⵔ\",MM:\"%d ⵉⵢⵢⵉⵔⵏ\",y:\"ⴰⵙⴳⴰⵙ\",yy:\"%d ⵉⵙⴳⴰⵙⵏ\"},week:{dow:6,doy:12}}),a.defineLocale(\"uk\",{months:{format:\"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня\".split(\"_\"),standalone:\"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень\".split(\"_\")},monthsShort:\"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд\".split(\"_\"),weekdays:_,weekdaysShort:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY р.\",LLL:\"D MMMM YYYY р., HH:mm\",LLLL:\"dddd, D MMMM YYYY р., HH:mm\"},calendar:{sameDay:aa(\"[Сьогодні \"),nextDay:aa(\"[Завтра \"),lastDay:aa(\"[Вчора \"),nextWeek:aa(\"[У] dddd [\"),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return aa(\"[Минулої] dddd [\").call(this);case 1:case 2:case 4:return aa(\"[Минулого] dddd [\").call(this)}},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"%s тому\",s:\"декілька секунд\",m:$,mm:$,h:\"годину\",hh:$,d:\"день\",dd:$,M:\"місяць\",MM:$,y:\"рік\",yy:$},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return a<4?\"ночі\":a<12?\"ранку\":a<17?\"дня\":\"вечора\"},dayOfMonthOrdinalParse:/\\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a+\"-й\";case\"D\":return a+\"-го\";default:return a}},week:{dow:1,doy:7}});\r\n//! moment.js locale configuration\r\n//! locale : Urdu [ur]\r\n//! author : Sawood Alam : https://github.com/ibnesayeed\r\n//! author : Zack : https://github.com/ZackVision\r\nvar xb=[\"جنوری\",\"فروری\",\"مارچ\",\"اپریل\",\"مئی\",\"جون\",\"جولائی\",\"اگست\",\"ستمبر\",\"اکتوبر\",\"نومبر\",\"دسمبر\"],yb=[\"اتوار\",\"پیر\",\"منگل\",\"بدھ\",\"جمعرات\",\"جمعہ\",\"ہفتہ\"];\r\n//! moment.js locale configuration\r\n//! locale : Uzbek Latin [uz-latn]\r\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\r\n//! moment.js locale configuration\r\n//! locale : Uzbek [uz]\r\n//! author : Sardor Muminov : https://github.com/muminoff\r\n//! moment.js locale configuration\r\n//! locale : Vietnamese [vi]\r\n//! author : Bang Nguyen : https://github.com/bangnk\r\n//! moment.js locale configuration\r\n//! locale : Pseudo [x-pseudo]\r\n//! author : Andrew Hood : https://github.com/andrewhood125\r\n//! moment.js locale configuration\r\n//! locale : Yoruba Nigeria [yo]\r\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\r\n//! moment.js locale configuration\r\n//! locale : Chinese (China) [zh-cn]\r\n//! author : suupic : https://github.com/suupic\r\n//! author : Zeno Zeng : https://github.com/zenozeng\r\n//! moment.js locale configuration\r\n//! locale : Chinese (Hong Kong) [zh-hk]\r\n//! author : Ben : https://github.com/ben-lin\r\n//! author : Chris Lam : https://github.com/hehachris\r\n//! author : Konstantin : https://github.com/skfd\r\n//! moment.js locale configuration\r\n//! locale : Chinese (Taiwan) [zh-tw]\r\n//! author : Ben : https://github.com/ben-lin\r\n//! author : Chris Lam : https://github.com/hehachris\r\nreturn a.defineLocale(\"ur\",{months:xb,monthsShort:xb,weekdays:yb,weekdaysShort:yb,weekdaysMin:yb,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd، D MMMM YYYY HH:mm\"},meridiemParse:/صبح|شام/,isPM:function(a){return\"شام\"===a},meridiem:function(a,b,c){return a<12?\"صبح\":\"شام\"},calendar:{sameDay:\"[آج بوقت] LT\",nextDay:\"[کل بوقت] LT\",nextWeek:\"dddd [بوقت] LT\",lastDay:\"[گذشتہ روز بوقت] LT\",lastWeek:\"[گذشتہ] dddd [بوقت] LT\",sameElse:\"L\"},relativeTime:{future:\"%s بعد\",past:\"%s قبل\",s:\"چند سیکنڈ\",m:\"ایک منٹ\",mm:\"%d منٹ\",h:\"ایک گھنٹہ\",hh:\"%d گھنٹے\",d:\"ایک دن\",dd:\"%d دن\",M:\"ایک ماہ\",MM:\"%d ماہ\",y:\"ایک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/،/g,\",\")},postformat:function(a){return a.replace(/,/g,\"،\")},week:{dow:1,doy:4}}),a.defineLocale(\"uz-latn\",{months:\"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr\".split(\"_\"),monthsShort:\"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek\".split(\"_\"),weekdays:\"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba\".split(\"_\"),weekdaysShort:\"Yak_Dush_Sesh_Chor_Pay_Jum_Shan\".split(\"_\"),weekdaysMin:\"Ya_Du_Se_Cho_Pa_Ju_Sha\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"D MMMM YYYY, dddd HH:mm\"},calendar:{sameDay:\"[Bugun soat] LT [da]\",nextDay:\"[Ertaga] LT [da]\",nextWeek:\"dddd [kuni soat] LT [da]\",lastDay:\"[Kecha soat] LT [da]\",lastWeek:\"[O'tgan] dddd [kuni soat] LT [da]\",sameElse:\"L\"},relativeTime:{future:\"Yaqin %s ichida\",past:\"Bir necha %s oldin\",s:\"soniya\",m:\"bir daqiqa\",mm:\"%d daqiqa\",h:\"bir soat\",hh:\"%d soat\",d:\"bir kun\",dd:\"%d kun\",M:\"bir oy\",MM:\"%d oy\",y:\"bir yil\",yy:\"%d yil\"},week:{dow:1,doy:7}}),a.defineLocale(\"uz\",{months:\"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр\".split(\"_\"),monthsShort:\"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек\".split(\"_\"),weekdays:\"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба\".split(\"_\"),weekdaysShort:\"Якш_Душ_Сеш_Чор_Пай_Жум_Шан\".split(\"_\"),weekdaysMin:\"Як_Ду_Се_Чо_Па_Жу_Ша\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"D MMMM YYYY, dddd HH:mm\"},calendar:{sameDay:\"[Бугун соат] LT [да]\",nextDay:\"[Эртага] LT [да]\",nextWeek:\"dddd [куни соат] LT [да]\",lastDay:\"[Кеча соат] LT [да]\",lastWeek:\"[Утган] dddd [куни соат] LT [да]\",sameElse:\"L\"},relativeTime:{future:\"Якин %s ичида\",past:\"Бир неча %s олдин\",s:\"фурсат\",m:\"бир дакика\",mm:\"%d дакика\",h:\"бир соат\",hh:\"%d соат\",d:\"бир кун\",dd:\"%d кун\",M:\"бир ой\",MM:\"%d ой\",y:\"бир йил\",yy:\"%d йил\"},week:{dow:1,doy:7}}),a.defineLocale(\"vi\",{months:\"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12\".split(\"_\"),monthsShort:\"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12\".split(\"_\"),monthsParseExact:!0,weekdays:\"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy\".split(\"_\"),weekdaysShort:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysMin:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(a){return/^ch$/i.test(a)},meridiem:function(a,b,c){return a<12?c?\"sa\":\"SA\":c?\"ch\":\"CH\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [năm] YYYY\",LLL:\"D MMMM [năm] YYYY HH:mm\",LLLL:\"dddd, D MMMM [năm] YYYY HH:mm\",l:\"DD/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd, D MMM YYYY HH:mm\"},calendar:{sameDay:\"[Hôm nay lúc] LT\",nextDay:\"[Ngày mai lúc] LT\",nextWeek:\"dddd [tuần tới lúc] LT\",lastDay:\"[Hôm qua lúc] LT\",lastWeek:\"dddd [tuần rồi lúc] LT\",sameElse:\"L\"},relativeTime:{future:\"%s tới\",past:\"%s trước\",s:\"vài giây\",m:\"một phút\",mm:\"%d phút\",h:\"một giờ\",hh:\"%d giờ\",d:\"một ngày\",dd:\"%d ngày\",M:\"một tháng\",MM:\"%d tháng\",y:\"một năm\",yy:\"%d năm\"},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),a.defineLocale(\"x-pseudo\",{months:\"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér\".split(\"_\"),monthsShort:\"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc\".split(\"_\"),monthsParseExact:!0,weekdays:\"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý\".split(\"_\"),weekdaysShort:\"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát\".split(\"_\"),weekdaysMin:\"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[T~ódá~ý át] LT\",nextDay:\"[T~ómó~rró~w át] LT\",nextWeek:\"dddd [át] LT\",lastDay:\"[Ý~ést~érdá~ý át] LT\",lastWeek:\"[L~ást] dddd [át] LT\",sameElse:\"L\"},relativeTime:{future:\"í~ñ %s\",past:\"%s á~gó\",s:\"á ~féw ~sécó~ñds\",m:\"á ~míñ~úté\",mm:\"%d m~íñú~tés\",h:\"á~ñ hó~úr\",hh:\"%d h~óúrs\",d:\"á ~dáý\",dd:\"%d d~áýs\",M:\"á ~móñ~th\",MM:\"%d m~óñt~hs\",y:\"á ~ýéár\",yy:\"%d ý~éárs\"},dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.defineLocale(\"yo\",{months:\"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀\".split(\"_\"),monthsShort:\"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀\".split(\"_\"),weekdays:\"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta\".split(\"_\"),weekdaysShort:\"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá\".split(\"_\"),weekdaysMin:\"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Ònì ni] LT\",nextDay:\"[Ọ̀la ni] LT\",nextWeek:\"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",lastDay:\"[Àna ni] LT\",lastWeek:\"dddd [Ọsẹ̀ tólọ́] [ni] LT\",sameElse:\"L\"},relativeTime:{future:\"ní %s\",past:\"%s kọjá\",s:\"ìsẹjú aayá die\",m:\"ìsẹjú kan\",mm:\"ìsẹjú %d\",h:\"wákati kan\",hh:\"wákati %d\",d:\"ọjọ́ kan\",dd:\"ọjọ́ %d\",M:\"osù kan\",MM:\"osù %d\",y:\"ọdún kan\",yy:\"ọdún %d\"},dayOfMonthOrdinalParse:/ọjọ́\\s\\d{1,2}/,ordinal:\"ọjọ́ %d\",week:{dow:1,doy:4}}),a.defineLocale(\"zh-cn\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日Ah点mm分\",LLLL:\"YYYY年MMMD日ddddAh点mm分\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日 HH:mm\",llll:\"YYYY年MMMD日dddd HH:mm\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"下午\"===b||\"晚上\"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return d<600?\"凌晨\":d<900?\"早上\":d<1130?\"上午\":d<1230?\"中午\":d<1800?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"周\";default:return a}},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},week:{dow:1,doy:4}}),a.defineLocale(\"zh-hk\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日 HH:mm\",LLLL:\"YYYY年MMMD日dddd HH:mm\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日 HH:mm\",llll:\"YYYY年MMMD日dddd HH:mm\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?\"凌晨\":d<900?\"早上\":d<1130?\"上午\":d<1230?\"中午\":d<1800?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"1 分鐘\",mm:\"%d 分鐘\",h:\"1 小時\",hh:\"%d 小時\",d:\"1 天\",dd:\"%d 天\",M:\"1 個月\",MM:\"%d 個月\",y:\"1 年\",yy:\"%d 年\"}}),a.defineLocale(\"zh-tw\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日 HH:mm\",LLLL:\"YYYY年MMMD日dddd HH:mm\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日 HH:mm\",llll:\"YYYY年MMMD日dddd HH:mm\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?\"凌晨\":d<900?\"早上\":d<1130?\"上午\":d<1230?\"中午\":d<1800?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"1 分鐘\",mm:\"%d 分鐘\",h:\"1 小時\",hh:\"%d 小時\",d:\"1 天\",dd:\"%d 天\",M:\"1 個月\",MM:\"%d 個月\",y:\"1 年\",yy:\"%d 年\"}}),a.locale(\"en\"),a});\n/** @ngInject */\r\nfunction mapController($scope,$timeout,$mdDialog) { \r\n $scope.$mdDialog = $mdDialog;\r\n \r\n console.log('map controller');\r\n $timeout(function(){\r\n ymaps.ready(init);\r\n }, 100);\r\n\r\n function init() {\r\n var myMap = new ymaps.Map(\"map\", {\r\n center: [56.315695,44.017063],\r\n zoom: 8,\r\n controls: []\r\n });\r\n var coord = [56.315695,44.017063]; var min = -0.5, max = 0.5;\r\n // Создание метки \r\n for (var i = 0; i < 50; i++)\r\n {\r\n var randomNumberX = min - 0.5 + Math.random() * (max - min + 1);\r\n var randomNumberY = min - 0.5 + Math.random() * (max - min + 1); \r\n\r\n var myPlacemark = new ymaps.Placemark([coord[0] + randomNumberX, coord[1] + randomNumberY] , {}, {}); \r\n myPlacemark.options.set(\"iconImageHref\", '../assets/images/bizon/placemark.png'); \r\n myPlacemark.options.set('iconLayout', 'default#image' ); \r\n myPlacemark.options.set('iconImageSize', [30,43] ); \r\n myPlacemark.options.set('iconImageOffset', [-15,-43] ); \r\n\r\n // Добавление метки на карту\r\n myMap.geoObjects.add(myPlacemark);\r\n }\r\n }\r\n }\r\n\n/** @ngInject */\r\nfunction FeedbacksController($scope, APP_SETTINGS, $stateParams, $filter,$timeout, $anchorScroll,$location, Feedbacks, FeedbacksResource, FeedbacksResourceParams) {\r\n \t$scope.feedbacks = Feedbacks;\r\n \t$scope.enableShowMoreFeedbacks = Feedbacks['@odata.count'] > Feedbacks.value.length; \t\r\n\r\n\t$scope.showMoreFeedbacks = function(){\r\n\t FeedbacksResourceParams.$top = 5;\r\n\t FeedbacksResourceParams.$skip = $scope.feedbacks.value.length; \r\n\t FeedbacksResource.get(FeedbacksResourceParams, function(data){\r\n\t \t$scope.feedbacks.value = $scope.feedbacks.value.concat(data.value);\r\n\t \t\t$scope.enableShowMoreFeedbacks = Feedbacks['@odata.count'] > Feedbacks.value.length; \t\r\n\t })\r\n\t}\r\n\r\n\t$scope.closeFeedbacks = function(){\r\n\t\tconsole.log('close feedbacks')\r\n\t\tvar fb = []\r\n\t\tfor (var i=0; i < 2; i++)\r\n\t\t{\r\n\t\t\tfb.push( $scope.feedbacks.value[ i ] );\r\n\t\t}\r\n\t\t$scope.feedbacks.value = fb;\r\n\t\t$anchorScroll('pageTop')\r\n\t}\r\n}\r\n\n /** @ngInject */\r\n function clientNavigation(msNavigationService, UTILS, APP_SETTINGS) \r\n {\r\n console.log('clientNavigation');\r\n\r\n if (!UTILS.isAuthenticated() || !UTILS.isDoer())\r\n msNavigationService.saveItem('catalogdriver', {\r\n title: 'Каталог перевозчиков',\r\n state: 'app.client.carriers'\r\n }); \r\n else\r\n msNavigationService.deleteItem('catalogdriver');\r\n\r\n if (!UTILS.isAuthenticated() || UTILS.isDoer()) \r\n msNavigationService.saveItem('catalogorders', {\r\n title: 'Каталог заказов',\r\n state: 'app.client.orders'\r\n }); \r\n else\r\n msNavigationService.deleteItem('catalogorders');\r\n\r\n\r\n if (UTILS.isAuthenticated())\r\n msNavigationService.saveItem('myorders', {\r\n title: 'Мои заказы',\r\n state: 'app.client.myorders',\r\n weight: 1\r\n }); \r\n else\r\n msNavigationService.deleteItem('myorders');\r\n\r\n\r\n /*if (UTILS.isAuthenticated())\r\n msNavigationService.saveItem('messages', {\r\n title: 'Мои сообщения',\r\n state: 'app.client.messages', \r\n weight: 1\r\n }); \r\n if (UTILS.isAuthenticated())\r\n msNavigationService.saveItem('cabinet', {\r\n title: 'Мой кабинет',\r\n state: UTILS.isDoer() ? \r\n 'app.client.cabinet-carrier.profile' : \r\n 'app.client.cabinet-client.profile',\r\n weight: 1\r\n }); */ \r\n }\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.authzero', [\n /*'auth0.auth0',\n /*'auth0.lock',\n 'auth0.lockPasswordless',*/\n 'app.common',\n 'angular-jwt'\n ])\n .config(route)\n .config(authzero)\n .directive(\"compareTo\", compareTo) \n .component('login', \n {\n restrict: 'E',\n bindings: {\n profile: '='\n },\n templateUrl: 'app/main/apps/auth0/login.component.html',\n controller: 'AuthZeroLoginController as vm',\n controllerAs: 'vm' \n }) \n .run(run); \n\n\n /** @ngInject */\n function run($rootScope,$location,$state,PannelData,ProjectHub,localStorageService,Idle,$clientDialogs,$mdDialog,$accountDialogs,msNavigationService,$api,UTILS,APP_SETTINGS) {\n\n var path = $location.path();\n if (path == '/callback') return;\n\n console.log('authzero - check registration: ' + ( UTILS.isAuthenticated() ? 'logged in' : 'not logged in') );\n\n Idle.watch();\n $rootScope.$on('Keepalive', function() { \n $rootScope.checkSession();\n });\n\n $rootScope.checkSession = function () {\n if (!UTILS.hasSavedSession()) return;\n\n console.log('check session token');\n if (!UTILS.tokenExpired()) return;\n\n $mdDialog.hide(); \n\n $accountDialogs.question(\n {\n dialogTitle: 'Время Вашей сессии истекло', \n mainMessage: 'Желаете продолжить работу?', \n descMessage: '', \n okButtonText: 'Продолжить', \n cancelButtonText: 'Выйти', \n cancelAction: function(){ \n $mdDialog.hide(); \n ProjectHub.unjoinUser();\n UTILS.logout(); \n PannelData.Clear();\n\n clientNavigation(msNavigationService, UTILS, APP_SETTINGS );\n\n $rootScope.showToast('Выполнен выход из системы БИЗОН' );\n\n $state.go('app.client.main');\n },\n buttonAction: function (){\n $api.refreshToken();\n $mdDialog.hide(); \n }\n }); \n } \n\n if (!UTILS.hasSavedSession())\n {\n /*console.log('go to login page');\n $timeout(function() {\n UTILS.logout();\n $state.go('app.auth');\n });*/\n UTILS.logout(); \n return; \n } \n else if (UTILS.tokenExpired())\n {\n console.log('renew token');\n $api.refreshToken();\n return;\n }\n else {\n $api.updateProfile();\n\n // Here: token is good\n console.log('token is good');\n $api.setup();\n } \n }\n\n /** @ngInject */\n function route($stateProvider) {\n }\n\n\n /** @ngInject */\n function authzero($httpProvider, $translatePartialLoaderProvider, APP_SETTINGS) { \n // Translation\n $translatePartialLoaderProvider.addPart('app/main/apps/auth0'); \n }\n\n function compareTo() {\n return {\n require: \"ngModel\",\n scope: {\n otherModelValue: \"=compareTo\"\n },\n link: function(scope, element, attributes, ngModel) {\n \n ngModel.$validators.compareTo = function(modelValue) {\n return modelValue == scope.otherModelValue;\n };\n \n scope.$watch(\"otherModelValue\", function() {\n ngModel.$validate();\n });\n }\n };\n };\n \n})();\n\n// import Auth0LockPasswordless from 'auth0-lock-passwordless'\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.authzero')\n .controller('AuthZeroLoginController', AuthZeroLoginController);\n\n /** @ngInject */\n function AuthZeroLoginController($scope, $state, $mdDialog, $rootScope, ProjectHub,\n localStorageService, $location, $timeout, $api, $q, UTILS,APP_SETTINGS,msNavigationService, $accountDialogs) {\n\n var vm = this;\n\n console.log('AuthZeroLoginController controller')\n\n $scope.$mdDialog = $mdDialog;\n $scope.UTILS = UTILS;\n $scope.$accountDialogs = $accountDialogs;\n\n vm.form = {};\n\n vm.enterCode = false; \n vm.sent = false; \n\n\n vm.newCode = function(){\n vm.enterCode = false;\n } \n\n vm.hasCode = function(){\n vm.enterCode = true;\n } \n\n vm.resetPasswordCode = function(){\n var deferred = $q.defer(); \n $api.users.forgotcode.get({phone: vm.form.phone}, {},\n function(result){\n console.log(result);\n vm.code = true;\n deferred.resolve(result);\n },\n function(error){\n console.log(error);\n vm.error = error.data.Message; \n deferred.reject(error); \n }); \n return deferred.promise;\n }\n vm.resetPassword = function(){\n return vm.sendReset(vm.form.phone,vm.form.code).then(\n function(link){\n console.log('password sent');\n vm.sent = true;\n vm.code = false; \n window.open(url,'_blank'); \n },\n function(err){\n\n }\n );\n }\n\n vm.sendReset = function(email) {\n var deferred = $q.defer(); \n $api.users.forgot.get({phone: vm.form.phone, code: vm.form.code}, {},\n function(result){\n console.log(result);\n deferred.resolve(result);\n },\n function(error){\n console.log(error);\n vm.error = error.data.Message; \n deferred.reject(error); \n }); \n return deferred.promise;\n }\n\n vm.loginPhone = function(noclose){\n $api.users.token.get( {username: vm.form.phone, password: vm.form.password }, \n function(authResult) {\n console.log(authResult);\n if (!authResult) return; \n \n UTILS.setSession(authResult);\n\n $api.setup();\n\n console.log('refresh profile from server');\n\n $api.updateProfile().then(\n function(profile){\n clientNavigation(msNavigationService,UTILS); \n if (noclose != true) \n $rootScope.$mdDialog.hide();\n $rootScope.showToast('Выполнен вход в систему БИЗОН под учетной записью ' + profile.Email );\n ProjectHub.joinUser();\n });\n },\n function(error){\n console.log(error);\n var message = error.data.ExceptionMessage || error.data.Message\n if (error.data.ExceptionMessage == \"Wrong email or password.\")\n vm.error = \"Неверный телефон или пароль.\";\n else if (error.status == 404)\n vm.error = \"Пользователь с таким телефоном и паролем не найден\";\n else\n vm.error = message;\n $rootScope.showToast(vm.error); \n }); \n }\n\n vm.register = function (){\n console.log(vm.form);\n $api.users.create.save({}, {Type: vm.type, Email: vm.form.email, Password: vm.form.password }, \n function(user){\n console.log(user);\n localStorageService.set('registerUser', user);\n vm.deferred.resolve(user);\n },\n function(error){\n console.log(error);\n vm.error = error.data.Message; \n });\n }\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core',\n [\n 'ngAnimate',\n 'ngAria',\n 'ngCookies',\n 'ngMessages',\n 'ngResource',\n 'ngSanitize',\n 'ngMaterial',\n 'pascalprecht.translate',\n 'ui.router'\n ]);\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('MsWidgetController', MsWidgetController)\n .directive('msWidget', msWidgetDirective)\n .directive('msWidgetFront', msWidgetFrontDirective)\n .directive('msWidgetBack', msWidgetBackDirective);\n\n /** @ngInject */\n function MsWidgetController($scope, $element)\n {\n var vm = this;\n\n // Data\n vm.flipped = false;\n\n // Methods\n vm.flip = flip;\n\n //////////\n\n /**\n * Flip the widget\n */\n function flip()\n {\n if ( !isFlippable() )\n {\n return;\n }\n\n // Toggle flipped status\n vm.flipped = !vm.flipped;\n\n // Toggle the 'flipped' class\n $element.toggleClass('flipped', vm.flipped);\n }\n\n /**\n * Check if widget is flippable\n *\n * @returns {boolean}\n */\n function isFlippable()\n {\n return (angular.isDefined($scope.flippable) && $scope.flippable === true);\n }\n }\n\n /** @ngInject */\n function msWidgetDirective()\n {\n return {\n restrict : 'E',\n scope : {\n flippable: '=?'\n },\n controller: 'MsWidgetController',\n transclude: true,\n compile : function (tElement)\n {\n tElement.addClass('ms-widget');\n\n return function postLink(scope, iElement, iAttrs, MsWidgetCtrl, transcludeFn)\n {\n // Custom transclusion\n transcludeFn(function (clone)\n {\n iElement.empty();\n iElement.append(clone);\n });\n\n //////////\n };\n }\n };\n }\n\n /** @ngInject */\n function msWidgetFrontDirective()\n {\n return {\n restrict : 'E',\n require : '^msWidget',\n transclude: true,\n compile : function (tElement)\n {\n tElement.addClass('ms-widget-front');\n\n return function postLink(scope, iElement, iAttrs, MsWidgetCtrl, transcludeFn)\n {\n // Custom transclusion\n transcludeFn(function (clone)\n {\n iElement.empty();\n iElement.append(clone);\n });\n\n // Methods\n scope.flipWidget = MsWidgetCtrl.flip;\n };\n }\n };\n }\n\n /** @ngInject */\n function msWidgetBackDirective()\n {\n return {\n restrict : 'E',\n require : '^msWidget',\n transclude: true,\n compile : function (tElement)\n {\n tElement.addClass('ms-widget-back');\n\n return function postLink(scope, iElement, iAttrs, MsWidgetCtrl, transcludeFn)\n {\n // Custom transclusion\n transcludeFn(function (clone)\n {\n iElement.empty();\n iElement.append(clone);\n });\n\n // Methods\n scope.flipWidget = MsWidgetCtrl.flip;\n };\n }\n };\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('MsTimelineController', MsTimelineController)\n .directive('msTimeline', msTimelineDirective)\n .directive('msTimelineItem', msTimelineItemDirective);\n\n /** @ngInject */\n function MsTimelineController()\n {\n var vm = this;\n\n // Data\n vm.scrollEl = undefined;\n\n // Methods\n vm.setScrollEl = setScrollEl;\n vm.getScrollEl = getScrollEl;\n\n //////////\n\n /**\n * Set scroll element\n *\n * @param scrollEl\n */\n function setScrollEl(scrollEl)\n {\n vm.scrollEl = scrollEl;\n }\n\n /**\n * Get scroll element\n *\n * @returns {undefined|*}\n */\n function getScrollEl()\n {\n return vm.scrollEl;\n }\n }\n\n /** @ngInject */\n function msTimelineDirective()\n {\n return {\n scope : {\n msTimeline: '=?',\n loadMore : '&?msTimelineLoadMore'\n },\n controller: 'MsTimelineController',\n compile : function (tElement)\n {\n tElement.addClass('ms-timeline');\n\n return function postLink(scope, iElement, iAttrs, MsTimelineCtrl)\n {\n // Create an element for triggering the load more action and append it\n var loadMoreEl = angular.element('
');\n iElement.append(loadMoreEl);\n\n // Default config\n var config = {\n scrollEl: '#content'\n };\n\n // Extend the configuration\n config = angular.extend(config, scope.msTimeline, {});\n \n // Grab the scrollable element and store it in the controller for general use\n var scrollEl = angular.element(config.scrollEl);\n MsTimelineCtrl.setScrollEl(scrollEl);\n\n // Threshold\n var threshold = 144;\n\n // Register onScroll event for the first time\n registerOnScroll();\n\n /**\n * onScroll Event\n */\n function onScroll()\n {\n if ( scrollEl.scrollTop() + scrollEl.height() + threshold > loadMoreEl.position().top )\n {\n // Show the loader\n loadMoreEl.addClass('show');\n\n // Unregister scroll event to prevent triggering the function over and over again\n unregisterOnScroll();\n\n // Trigger load more event\n scope.loadMore().then(\n // Success\n function ()\n {\n // Hide the loader\n loadMoreEl.removeClass('show');\n\n // Register the onScroll event again\n registerOnScroll();\n },\n\n // Error\n function ()\n {\n // Remove the loader completely\n loadMoreEl.remove();\n }\n );\n }\n }\n\n /**\n * onScroll event registerer\n */\n function registerOnScroll()\n {\n scrollEl.on('scroll', onScroll);\n }\n\n /**\n * onScroll event unregisterer\n */\n function unregisterOnScroll()\n {\n scrollEl.off('scroll', onScroll);\n }\n\n // Cleanup\n scope.$on('$destroy', function ()\n {\n unregisterOnScroll();\n });\n };\n }\n };\n }\n\n /** @ngInject */\n function msTimelineItemDirective($timeout, $q)\n {\n return {\n scope : true,\n require: '^msTimeline',\n compile: function (tElement)\n {\n tElement.addClass('ms-timeline-item').addClass('hidden');\n\n return function postLink(scope, iElement, iAttrs, MsTimelineCtrl)\n {\n var threshold = 72,\n itemLoaded = false,\n itemInViewport = false,\n scrollEl = MsTimelineCtrl.getScrollEl();\n\n //////////\n\n init();\n\n /**\n * Initialize\n */\n function init()\n {\n // Check if the timeline item has ms-card\n if ( iElement.find('ms-card') )\n {\n // If the ms-card template loaded...\n scope.$on('msCard::cardTemplateLoaded', function (event, args)\n {\n var cardEl = angular.element(args[0]);\n\n // Test the card to see if there is any image on it\n testForImage(cardEl).then(function ()\n {\n $timeout(function ()\n {\n itemLoaded = true;\n });\n });\n });\n }\n else\n {\n // Test the element to see if there is any image on it\n testForImage(iElement).then(function ()\n {\n $timeout(function ()\n {\n itemLoaded = true;\n });\n });\n }\n\n // Check if the loaded element also in the viewport\n scrollEl.on('scroll', testForVisibility);\n\n // Test for visibility for the first time without waiting for the scroll event\n testForVisibility();\n }\n\n // Item ready watcher\n var itemReadyWatcher = scope.$watch(\n function ()\n {\n return itemLoaded && itemInViewport;\n },\n function (current, old)\n {\n if ( angular.equals(current, old) )\n {\n return;\n }\n\n if ( current )\n {\n iElement.removeClass('hidden').addClass('animate');\n\n // Unbind itemReadyWatcher\n itemReadyWatcher();\n }\n }, true);\n\n /**\n * Test the given element for image\n *\n * @param element\n * @returns promise\n */\n function testForImage(element)\n {\n var deferred = $q.defer(),\n imgEl = element.find('img');\n\n if ( imgEl.length > 0 )\n {\n imgEl.on('load', function ()\n {\n deferred.resolve('Image is loaded');\n });\n }\n else\n {\n deferred.resolve('No images');\n }\n\n return deferred.promise;\n }\n\n /**\n * Test the element for visibility\n */\n function testForVisibility()\n {\n if ( scrollEl.scrollTop() + scrollEl.height() > iElement.position().top + threshold )\n {\n $timeout(function ()\n {\n itemInViewport = true;\n });\n\n // Unbind the scroll event\n scrollEl.off('scroll', testForVisibility);\n }\n }\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('MsStepperController', MsStepperController)\n .directive('msHorizontalStepper', msHorizontalStepperDirective)\n .directive('msHorizontalStepperStep', msHorizontalStepperStepDirective)\n .directive('msVerticalStepper', msVerticalStepperDirective)\n .directive('msVerticalStepperStep', msVerticalStepperStepDirective);\n\n /** @ngInject */\n function MsStepperController($timeout)\n {\n var vm = this;\n\n // Data\n vm.mainForm = undefined;\n\n vm.orientation = 'horizontal';\n vm.steps = [];\n vm.currentStep = undefined;\n vm.currentStepNumber = 1;\n\n // Methods\n vm.setOrientation = setOrientation;\n vm.registerMainForm = registerMainForm;\n vm.registerStep = registerStep;\n vm.setupSteps = setupSteps;\n vm.resetForm = resetForm;\n\n vm.setCurrentStep = setCurrentStep;\n\n vm.gotoStep = gotoStep;\n vm.gotoPreviousStep = gotoPreviousStep;\n vm.gotoNextStep = gotoNextStep;\n vm.gotoFirstStep = gotoFirstStep;\n vm.gotoLastStep = gotoLastStep;\n\n vm.isFirstStep = isFirstStep;\n vm.isLastStep = isLastStep;\n\n vm.isStepCurrent = isStepCurrent;\n vm.isStepDisabled = isStepDisabled;\n vm.isStepOptional = isStepOptional;\n vm.isStepHidden = isStepHidden;\n vm.filterHiddenStep = filterHiddenStep;\n vm.isStepValid = isStepValid;\n vm.isStepNumberValid = isStepNumberValid;\n\n vm.isFormValid = isFormValid;\n\n //////////\n\n /**\n * Set the orientation of the stepper\n *\n * @param orientation\n */\n function setOrientation(orientation)\n {\n vm.orientation = orientation || 'horizontal';\n }\n\n /**\n * Register the main form\n *\n * @param form\n */\n function registerMainForm(form)\n {\n vm.mainForm = form;\n }\n\n /**\n * Register a step\n *\n * @param element\n * @param scope\n * @param form\n */\n function registerStep(element, scope, form)\n {\n var step = {\n element : element,\n scope : scope,\n form : form,\n stepNumber : scope.step || (vm.steps.length + 1),\n stepTitle : scope.stepTitle,\n stepTitleTranslate: scope.stepTitleTranslate\n };\n\n // Push the step into steps array\n vm.steps.push(step);\n\n // Sort steps by stepNumber\n vm.steps.sort(function (a, b)\n {\n return a.stepNumber - b.stepNumber;\n });\n\n return step;\n }\n\n /**\n * Setup steps for the first time\n */\n function setupSteps()\n {\n vm.setCurrentStep(vm.currentStepNumber);\n }\n\n /**\n * Reset steps and the main form\n */\n function resetForm()\n {\n // Timeout is required here because we need to\n // let form model to reset before setting the\n // statuses\n $timeout(function ()\n {\n // Reset all the steps\n for ( var x = 0; x < vm.steps.length; x++ )\n {\n vm.steps[x].form.$setPristine();\n vm.steps[x].form.$setUntouched();\n }\n\n // Reset the main form\n vm.mainForm.$setPristine();\n vm.mainForm.$setUntouched();\n\n // Go to first step\n gotoFirstStep();\n });\n }\n\n /**\n * Set current step\n *\n * @param stepNumber\n */\n function setCurrentStep(stepNumber)\n {\n // If the stepNumber is not a valid step number, bail...\n if ( !isStepNumberValid(stepNumber) )\n {\n return;\n }\n\n // Update the current step number\n vm.currentStepNumber = stepNumber;\n\n if ( vm.orientation === 'horizontal' )\n {\n // Hide all steps\n for ( var i = 0; i < vm.steps.length; i++ )\n {\n vm.steps[i].element.hide();\n }\n\n // Show the current step\n vm.steps[vm.currentStepNumber - 1].element.show();\n }\n else if ( vm.orientation === 'vertical' )\n {\n // Hide all step content\n for ( var j = 0; j < vm.steps.length; j++ )\n {\n vm.steps[j].element.find('.ms-stepper-step-content').hide();\n }\n\n // Show the current step content\n vm.steps[vm.currentStepNumber - 1].element.find('.ms-stepper-step-content').show();\n }\n }\n\n /**\n * Go to a step\n *\n * @param stepNumber\n */\n function gotoStep(stepNumber)\n {\n // If the step we are about to go\n // is hidden, bail...\n if ( isStepHidden(stepNumber) )\n {\n return;\n }\n\n vm.setCurrentStep(stepNumber);\n }\n\n /**\n * Go to the previous step\n */\n function gotoPreviousStep()\n {\n var stepNumber = vm.currentStepNumber - 1;\n\n // Test the previous steps and make sure we\n // will land to the one that is not hidden\n for ( var s = stepNumber; s >= 1; s-- )\n {\n if ( !isStepHidden(s) )\n {\n stepNumber = s;\n break;\n }\n }\n\n vm.setCurrentStep(stepNumber);\n }\n\n /**\n * Go to the next step\n */\n function gotoNextStep()\n {\n var stepNumber = vm.currentStepNumber + 1;\n\n // Test the following steps and make sure we\n // will land to the one that is not hidden\n for ( var s = stepNumber; s <= vm.steps.length; s++ )\n {\n if ( !isStepHidden(s) )\n {\n stepNumber = s;\n break;\n }\n }\n\n vm.setCurrentStep(stepNumber);\n }\n\n /**\n * Go to the first step\n */\n function gotoFirstStep()\n {\n vm.setCurrentStep(1);\n }\n\n /**\n * Go to the last step\n */\n function gotoLastStep()\n {\n vm.setCurrentStep(vm.steps.length);\n }\n\n /**\n * Check if the current step is the first step\n *\n * @returns {boolean}\n */\n function isFirstStep()\n {\n return vm.currentStepNumber === 1;\n }\n\n /**\n * Check if the current step is the last step\n *\n * @returns {boolean}\n */\n function isLastStep()\n {\n return vm.currentStepNumber === vm.steps.length;\n }\n\n /**\n * Check if the given step is the current one\n *\n * @param stepNumber\n * @returns {null|boolean}\n */\n function isStepCurrent(stepNumber)\n {\n // If the stepNumber is not a valid step number, bail...\n if ( !isStepNumberValid(stepNumber) )\n {\n return null;\n }\n\n return vm.currentStepNumber === stepNumber;\n }\n\n /**\n * Check if the given step should be disabled\n *\n * @param stepNumber\n * @returns {null|boolean}\n */\n function isStepDisabled(stepNumber)\n {\n // If the stepNumber is not a valid step number, bail...\n if ( !isStepNumberValid(stepNumber) )\n {\n return null;\n }\n\n var disabled = false;\n\n for ( var i = 1; i < stepNumber; i++ )\n {\n if ( !isStepValid(i) )\n {\n disabled = true;\n break;\n }\n }\n\n return disabled;\n }\n\n /**\n * Check if the given step is optional\n *\n * @param stepNumber\n * @returns {null|boolean}\n */\n function isStepOptional(stepNumber)\n {\n // If the stepNumber is not a valid step number, bail...\n if ( !isStepNumberValid(stepNumber) )\n {\n return null;\n }\n\n return vm.steps[stepNumber - 1].scope.optionalStep;\n }\n\n /**\n * Check if the given step is hidden\n *\n * @param stepNumber\n * @returns {null|boolean}\n */\n function isStepHidden(stepNumber)\n {\n // If the stepNumber is not a valid step number, bail...\n if ( !isStepNumberValid(stepNumber) )\n {\n return null;\n }\n\n return !!vm.steps[stepNumber - 1].scope.hideStep;\n }\n\n /**\n * Check if the given step is hidden as a filter\n *\n * @param step\n * @returns {boolean}\n */\n function filterHiddenStep(step)\n {\n return !isStepHidden(step.stepNumber);\n }\n\n /**\n * Check if the given step is valid\n *\n * @param stepNumber\n * @returns {null|boolean}\n */\n function isStepValid(stepNumber)\n {\n // If the stepNumber is not a valid step number, bail...\n if ( !isStepNumberValid(stepNumber) )\n {\n return null;\n }\n\n // If the step is optional, always return true\n if ( isStepOptional(stepNumber) )\n {\n return true;\n }\n\n return vm.steps[stepNumber - 1].form.$valid;\n }\n\n /**\n * Check if the given step number is a valid step number\n *\n * @param stepNumber\n * @returns {boolean}\n */\n function isStepNumberValid(stepNumber)\n {\n return !(angular.isUndefined(stepNumber) || stepNumber < 1 || stepNumber > vm.steps.length);\n }\n\n /**\n * Check if the entire form is valid\n *\n * @returns {boolean}\n */\n function isFormValid()\n {\n return vm.mainForm.$valid;\n }\n }\n\n /** @ngInject */\n function msHorizontalStepperDirective()\n {\n return {\n restrict : 'A',\n scope : {},\n require : ['form', 'msHorizontalStepper'],\n priority : 1001,\n controller : 'MsStepperController as MsStepper',\n bindToController: {\n model: '=ngModel'\n },\n transclude : true,\n templateUrl : 'app/core/directives/ms-stepper/templates/horizontal/horizontal.html',\n compile : function (tElement)\n {\n tElement.addClass('ms-stepper');\n\n return function postLink(scope, iElement, iAttrs, ctrls)\n {\n var FormCtrl = ctrls[0],\n MsStepperCtrl = ctrls[1];\n\n // Register the main form and setup\n // the steps for the first time\n MsStepperCtrl.setOrientation('horizontal');\n MsStepperCtrl.registerMainForm(FormCtrl);\n MsStepperCtrl.setupSteps();\n };\n }\n };\n }\n\n /** @ngInject */\n function msHorizontalStepperStepDirective()\n {\n return {\n restrict: 'E',\n require : ['form', '^msHorizontalStepper'],\n priority: 1000,\n scope : {\n step : '=?',\n stepTitle : '=?',\n stepTitleTranslate: '=?',\n optionalStep : '=?',\n hideStep : '=?'\n },\n compile : function (tElement)\n {\n tElement.addClass('ms-stepper-step');\n\n return function postLink(scope, iElement, iAttrs, ctrls)\n {\n var FormCtrl = ctrls[0],\n MsStepperCtrl = ctrls[1];\n\n // Is it an optional step?\n scope.optionalStep = angular.isDefined(iAttrs.optionalStep);\n\n // Register the step\n MsStepperCtrl.registerStep(iElement, scope, FormCtrl);\n\n // Hide the step by default\n iElement.hide();\n };\n }\n };\n }\n\n /** @ngInject */\n function msVerticalStepperDirective($timeout)\n {\n return {\n restrict : 'A',\n scope : {},\n require : ['form', 'msVerticalStepper'],\n priority : 1001,\n controller : 'MsStepperController as MsStepper',\n bindToController: {\n model: '=ngModel'\n },\n transclude : true,\n templateUrl : 'app/core/directives/ms-stepper/templates/vertical/vertical.html',\n compile : function (tElement)\n {\n tElement.addClass('ms-stepper');\n\n return function postLink(scope, iElement, iAttrs, ctrls)\n {\n var FormCtrl = ctrls[0],\n MsStepperCtrl = ctrls[1];\n\n // Register the main form and setup\n // the steps for the first time\n\n // Timeout is required in vertical stepper\n // as we are using transclusion in steps.\n // We have to wait for them to be transcluded\n // and registered to the controller\n $timeout(function ()\n {\n MsStepperCtrl.setOrientation('vertical');\n MsStepperCtrl.registerMainForm(FormCtrl);\n MsStepperCtrl.setupSteps();\n });\n };\n }\n };\n }\n\n /** @ngInject */\n function msVerticalStepperStepDirective()\n {\n return {\n restrict : 'E',\n require : ['form', '^msVerticalStepper'],\n priority : 1000,\n scope : {\n step : '=?',\n stepTitle : '=?',\n stepTitleTranslate: '=?',\n optionalStep : '=?',\n hideStep : '=?'\n },\n transclude : true,\n templateUrl: 'app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html',\n compile : function (tElement)\n {\n tElement.addClass('ms-stepper-step');\n\n return function postLink(scope, iElement, iAttrs, ctrls)\n {\n var FormCtrl = ctrls[0],\n MsStepperCtrl = ctrls[1];\n\n // Is it an optional step?\n scope.optionalStep = angular.isDefined(iAttrs.optionalStep);\n\n // Register the step\n scope.stepInfo = MsStepperCtrl.registerStep(iElement, scope, FormCtrl);\n\n // Expose the controller to the scope\n scope.MsStepper = MsStepperCtrl;\n\n // Hide the step content by default\n iElement.find('.ms-stepper-step-content').hide();\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .directive('msSplashScreen', msSplashScreenDirective);\n\n /** @ngInject */\n function msSplashScreenDirective($animate)\n {\n return {\n restrict: 'E',\n link : function (scope, iElement)\n {\n var splashScreenRemoveEvent = scope.$on('msSplashScreen::remove', function ()\n {\n $animate.leave(iElement).then(function ()\n {\n // De-register scope event\n splashScreenRemoveEvent();\n\n // Null-ify everything else\n scope = iElement = null;\n });\n });\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .directive('msRandomClass', msRandomClassDirective);\n\n /** @ngInject */\n function msRandomClassDirective()\n {\n return {\n restrict: 'A',\n scope : {\n msRandomClass: '='\n },\n link : function (scope, iElement)\n {\n var randomClass = scope.msRandomClass[Math.floor(Math.random() * (scope.msRandomClass.length))];\n iElement.addClass(randomClass);\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .directive('msSidenavHelper', msSidenavHelperDirective);\n\n /** @ngInject */\n function msSidenavHelperDirective()\n {\n return {\n restrict: 'A',\n require : '^mdSidenav',\n link : function (scope, iElement, iAttrs, MdSidenavCtrl)\n {\n // Watch md-sidenav open & locked open statuses\n // and add class to the \".page-layout\" if only\n // the sidenav open and NOT locked open\n scope.$watch(function ()\n {\n return MdSidenavCtrl.isOpen() && !MdSidenavCtrl.isLockedOpen();\n }, function (current)\n {\n if ( angular.isUndefined(current) )\n {\n return;\n }\n\n iElement.parent().toggleClass('full-height', current);\n angular.element('html').toggleClass('sidenav-open', current);\n });\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('MsShortcutsController', MsShortcutsController)\n .directive('msShortcuts', msShortcutsDirective);\n\n /** @ngInject */\n function MsShortcutsController($scope, $cookies, $document, $timeout, $q, msNavigationService)\n {\n var vm = this;\n\n // Data\n vm.query = '';\n vm.queryOptions = {\n debounce: 300\n };\n vm.resultsLoading = false;\n vm.selectedResultIndex = 0;\n vm.ignoreMouseEvents = false;\n vm.mobileBarActive = false;\n\n vm.results = null;\n vm.shortcuts = [];\n\n vm.sortableOptions = {\n ghostClass : 'ghost',\n forceFallback: true,\n fallbackClass: 'dragging',\n onSort : function ()\n {\n vm.saveShortcuts();\n }\n };\n\n // Methods\n vm.populateResults = populateResults;\n vm.loadShortcuts = loadShortcuts;\n vm.saveShortcuts = saveShortcuts;\n vm.addShortcut = addShortcut;\n vm.removeShortcut = removeShortcut;\n vm.handleResultClick = handleResultClick;\n\n vm.absorbEvent = absorbEvent;\n vm.handleKeydown = handleKeydown;\n vm.handleMouseenter = handleMouseenter;\n vm.temporarilyIgnoreMouseEvents = temporarilyIgnoreMouseEvents;\n vm.ensureSelectedResultIsVisible = ensureSelectedResultIsVisible;\n vm.toggleMobileBar = toggleMobileBar;\n\n //////////\n\n init();\n\n function init()\n {\n // Load the shortcuts\n vm.loadShortcuts().then(\n // Success\n function (response)\n {\n vm.shortcuts = response;\n\n // Add shortcuts as results by default\n if ( vm.shortcuts.length > 0 )\n {\n vm.results = response;\n }\n }\n );\n\n // Watch the model changes to trigger the search\n $scope.$watch('MsShortcuts.query', function (current, old)\n {\n if ( angular.isUndefined(current) )\n {\n return;\n }\n\n if ( angular.equals(current, old) )\n {\n return;\n }\n\n // Show the loader\n vm.resultsLoading = true;\n\n // Populate the results\n vm.populateResults().then(\n // Success\n function (response)\n {\n vm.results = response;\n },\n // Error\n function ()\n {\n vm.results = [];\n }\n ).finally(\n function ()\n {\n // Hide the loader\n vm.resultsLoading = false;\n }\n );\n });\n }\n\n /**\n * Populate the results\n */\n function populateResults()\n {\n var results = [],\n flatNavigation = msNavigationService.getFlatNavigation(),\n deferred = $q.defer();\n\n // Iterate through the navigation array and\n // make sure it doesn't have any groups or\n // none ui-sref items\n for ( var x = 0; x < flatNavigation.length; x++ )\n {\n if ( flatNavigation[x].uisref )\n {\n results.push(flatNavigation[x]);\n }\n }\n\n // If there is a query, filter the results\n if ( vm.query )\n {\n results = results.filter(function (item)\n {\n if ( angular.lowercase(item.title).search(angular.lowercase(vm.query)) > -1 )\n {\n return true;\n }\n });\n\n // Iterate through one last time and\n // add required properties to items\n for ( var i = 0; i < results.length; i++ )\n {\n // Add false to hasShortcut by default\n results[i].hasShortcut = false;\n\n // Test if the item is in the shortcuts list\n for ( var y = 0; y < vm.shortcuts.length; y++ )\n {\n if ( vm.shortcuts[y]._id === results[i]._id )\n {\n results[i].hasShortcut = true;\n break;\n }\n }\n }\n }\n else\n {\n // If the query is empty, that means\n // there is nothing to search for so\n // we will populate the results with\n // current shortcuts if there is any\n if ( vm.shortcuts.length > 0 )\n {\n results = vm.shortcuts;\n }\n }\n\n // Reset the selected result\n vm.selectedResultIndex = 0;\n\n // Fake the service delay\n $timeout(function ()\n {\n // Resolve the promise\n deferred.resolve(results);\n }, 250);\n\n // Return a promise\n return deferred.promise;\n }\n\n /**\n * Load shortcuts\n */\n function loadShortcuts()\n {\n var deferred = $q.defer();\n\n // For the demo purposes, we will\n // load the shortcuts from the cookies.\n // But here you can make an API call\n // to load them from the DB.\n var shortcuts = angular.fromJson($cookies.get('FUSE.shortcuts'));\n\n // No cookie available. Generate one\n // for the demo purposes...\n if ( angular.isUndefined(shortcuts) )\n {\n shortcuts = [\n {\n 'title' : 'Sample',\n 'icon' : 'icon-tile-four',\n 'state' : 'app.sample',\n 'weight' : 1,\n 'children' : [],\n '_id' : 'sample',\n '_path' : 'apps.sample',\n 'uisref' : 'app.sample',\n 'hasShortcut': true\n }\n ];\n\n $cookies.put('FUSE.shortcuts', angular.toJson(shortcuts));\n }\n\n // Resolve the promise\n deferred.resolve(shortcuts);\n\n return deferred.promise;\n }\n\n /**\n * Save the shortcuts\n */\n function saveShortcuts()\n {\n var deferred = $q.defer();\n\n // For the demo purposes, we will\n // keep the shortcuts in the cookies.\n // But here you can make an API call\n // to save them to the DB.\n $cookies.put('FUSE.shortcuts', angular.toJson(vm.shortcuts));\n\n // Fake the service delay\n $timeout(function ()\n {\n deferred.resolve({'success': true});\n }, 250);\n\n return deferred.promise;\n }\n\n /**\n * Add item as shortcut\n *\n * @param item\n */\n function addShortcut(item)\n {\n // Update the hasShortcut status\n item.hasShortcut = true;\n\n // Add as a shortcut\n vm.shortcuts.push(item);\n\n // Save the shortcuts\n vm.saveShortcuts();\n }\n\n /**\n * Remove item from shortcuts\n *\n * @param item\n */\n function removeShortcut(item)\n {\n // Update the hasShortcut status\n item.hasShortcut = false;\n\n // Remove the shortcut\n for ( var x = 0; x < vm.shortcuts.length; x++ )\n {\n if ( vm.shortcuts[x]._id === item._id )\n {\n // Remove the x-th item from the array\n vm.shortcuts.splice(x, 1);\n\n // If we aren't searching for anything...\n if ( !vm.query )\n {\n // If all the shortcuts have been removed,\n // null-ify the results\n if ( vm.shortcuts.length === 0 )\n {\n vm.results = null;\n }\n // Otherwise update the selected index\n else\n {\n if ( x >= vm.shortcuts.length )\n {\n vm.selectedResultIndex = vm.shortcuts.length - 1;\n }\n }\n }\n }\n }\n\n // Save the shortcuts\n vm.saveShortcuts();\n }\n\n /**\n * Handle the result click\n *\n * @param item\n */\n function handleResultClick(item)\n {\n // Add or remove the shortcut\n if ( item.hasShortcut )\n {\n vm.removeShortcut(item);\n }\n else\n {\n vm.addShortcut(item);\n }\n }\n\n /**\n * Absorb the given event\n *\n * @param event\n */\n function absorbEvent(event)\n {\n event.preventDefault();\n }\n\n /**\n * Handle keydown\n *\n * @param event\n */\n function handleKeydown(event)\n {\n var keyCode = event.keyCode,\n keys = [38, 40];\n\n // Prevent the default action if\n // one of the keys are pressed that\n // we are listening\n if ( keys.indexOf(keyCode) > -1 )\n {\n event.preventDefault();\n }\n\n switch ( keyCode )\n {\n // Enter\n case 13:\n\n // Trigger result click\n vm.handleResultClick(vm.results[vm.selectedResultIndex]);\n\n break;\n\n // Up Arrow\n case 38:\n\n // Decrease the selected result index\n if ( vm.selectedResultIndex - 1 >= 0 )\n {\n // Decrease the selected index\n vm.selectedResultIndex--;\n\n // Make sure the selected result is in the view\n vm.ensureSelectedResultIsVisible();\n }\n\n break;\n\n // Down Arrow\n case 40:\n\n // Increase the selected result index\n if ( vm.selectedResultIndex + 1 < vm.results.length )\n {\n // Increase the selected index\n vm.selectedResultIndex++;\n\n // Make sure the selected result is in the view\n vm.ensureSelectedResultIsVisible();\n }\n\n break;\n\n default:\n break;\n }\n }\n\n /**\n * Handle mouseenter\n *\n * @param index\n */\n function handleMouseenter(index)\n {\n if ( vm.ignoreMouseEvents )\n {\n return;\n }\n\n // Update the selected result index\n // with the given index\n vm.selectedResultIndex = index;\n }\n\n /**\n * Set a variable for a limited time\n * to make other functions to ignore\n * the mouse events\n */\n function temporarilyIgnoreMouseEvents()\n {\n // Set the variable\n vm.ignoreMouseEvents = true;\n\n // Cancel the previous timeout\n $timeout.cancel(vm.mouseEventIgnoreTimeout);\n\n // Set the timeout\n vm.mouseEventIgnoreTimeout = $timeout(function ()\n {\n vm.ignoreMouseEvents = false;\n }, 250);\n }\n\n /**\n * Ensure the selected result will\n * always be visible on the results\n * area\n */\n function ensureSelectedResultIsVisible()\n {\n var resultsEl = $document.find('#ms-shortcut-add-menu').find('.results'),\n selectedItemEl = angular.element(resultsEl.find('.result')[vm.selectedResultIndex]);\n\n if ( resultsEl && selectedItemEl )\n {\n var top = selectedItemEl.position().top - 8,\n bottom = selectedItemEl.position().top + selectedItemEl.outerHeight() + 8;\n\n // Start ignoring mouse events\n vm.temporarilyIgnoreMouseEvents();\n\n if ( resultsEl.scrollTop() > top )\n {\n resultsEl.scrollTop(top);\n }\n\n if ( bottom > (resultsEl.height() + resultsEl.scrollTop()) )\n {\n resultsEl.scrollTop(bottom - resultsEl.height());\n }\n }\n }\n\n /**\n * Toggle mobile bar\n */\n function toggleMobileBar()\n {\n vm.mobileBarActive = !vm.mobileBarActive;\n }\n }\n\n /** @ngInject */\n function msShortcutsDirective()\n {\n return {\n restrict : 'E',\n scope : {},\n require : 'msShortcuts',\n controller : 'MsShortcutsController as MsShortcuts',\n bindToController: {},\n templateUrl : 'app/core/directives/ms-shortcuts/ms-shortcuts.html',\n compile : function (tElement)\n {\n // Add class\n tElement.addClass('ms-shortcuts');\n\n return function postLink(scope, iElement)\n {\n // Data\n\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('MsSearchBarController', MsSearchBarController)\n .directive('msSearchBar', msSearchBarDirective);\n\n /** @ngInject */\n function MsSearchBarController($scope, $element, $timeout)\n {\n var vm = this;\n\n // Data\n vm.collapsed = true;\n vm.query = '';\n vm.queryOptions = {\n debounce: vm.debounce || 0\n };\n vm.resultsLoading = false;\n vm.results = null;\n vm.selectedResultIndex = 0;\n vm.ignoreMouseEvents = false;\n\n // Methods\n vm.populateResults = populateResults;\n\n vm.expand = expand;\n vm.collapse = collapse;\n\n vm.absorbEvent = absorbEvent;\n vm.handleKeydown = handleKeydown;\n vm.handleMouseenter = handleMouseenter;\n vm.temporarilyIgnoreMouseEvents = temporarilyIgnoreMouseEvents;\n vm.handleResultClick = handleResultClick;\n vm.ensureSelectedResultIsVisible = ensureSelectedResultIsVisible;\n\n //////////\n\n init();\n\n function init()\n {\n // Watch the model changes to trigger the search\n $scope.$watch('MsSearchBar.query', function (current, old)\n {\n if ( angular.isUndefined(current) )\n {\n return;\n }\n\n if ( angular.equals(current, old) )\n {\n return;\n }\n\n if ( vm.collapsed )\n {\n return;\n }\n\n // Evaluate the onSearch function to access the\n // function itself\n var onSearchEvaluated = $scope.$parent.$eval(vm.onSearch, {query: current}),\n isArray = angular.isArray(onSearchEvaluated),\n isPromise = (onSearchEvaluated && !!onSearchEvaluated.then);\n\n if ( isArray )\n {\n // Populate the results\n vm.populateResults(onSearchEvaluated);\n }\n\n if ( isPromise )\n {\n // Show the loader\n vm.resultsLoading = true;\n\n onSearchEvaluated.then(\n // Success\n function (response)\n {\n // Populate the results\n vm.populateResults(response);\n },\n // Error\n function ()\n {\n // Assign an empty array to show\n // the no-results screen\n vm.populateResults([]);\n }\n ).finally(function ()\n {\n // Hide the loader\n vm.resultsLoading = false;\n }\n );\n }\n });\n }\n\n /**\n * Populate the results\n *\n * @param results\n */\n function populateResults(results)\n {\n // Before doing anything,\n // make sure the search bar is expanded\n if ( vm.collapsed )\n {\n return;\n }\n\n var isArray = angular.isArray(results),\n isNull = results === null;\n\n // Only accept arrays and null values\n if ( !isArray && !isNull )\n {\n return;\n }\n\n // Reset the selected result\n vm.selectedResultIndex = 0;\n\n // Populate the results\n vm.results = results;\n }\n\n /**\n * Expand\n */\n function expand()\n {\n // Set collapsed status\n vm.collapsed = false;\n\n // Call expand on scope\n $scope.expand();\n\n // Callback\n if ( vm.onExpand && angular.isFunction(vm.onExpand) )\n {\n vm.onExpand();\n }\n }\n\n /**\n * Collapse\n */\n function collapse()\n {\n // Empty the query\n vm.query = '';\n\n // Empty results to hide the results view\n vm.populateResults(null);\n\n // Set collapsed status\n vm.collapsed = true;\n\n // Call collapse on scope\n $scope.collapse();\n\n // Callback\n if ( vm.onCollapse && angular.isFunction(vm.onCollapse) )\n {\n vm.onCollapse();\n }\n }\n\n /**\n * Absorb the given event\n *\n * @param event\n */\n function absorbEvent(event)\n {\n event.preventDefault();\n }\n\n /**\n * Handle keydown\n *\n * @param event\n */\n function handleKeydown(event)\n {\n var keyCode = event.keyCode,\n keys = [27, 38, 40];\n\n // Prevent the default action if\n // one of the keys are pressed that\n // we are listening\n if ( keys.indexOf(keyCode) > -1 )\n {\n event.preventDefault();\n }\n\n switch ( keyCode )\n {\n // Enter\n case 13:\n\n // Trigger result click\n vm.handleResultClick(vm.results[vm.selectedResultIndex]);\n\n break;\n\n // Escape\n case 27:\n\n // Collapse the search bar\n vm.collapse();\n\n break;\n\n // Up Arrow\n case 38:\n\n // Decrease the selected result index\n if ( vm.selectedResultIndex - 1 >= 0 )\n {\n // Decrease the selected index\n vm.selectedResultIndex--;\n\n // Make sure the selected result is in the view\n vm.ensureSelectedResultIsVisible();\n }\n\n break;\n\n // Down Arrow\n case 40:\n\n if ( !vm.results )\n {\n return;\n }\n\n // Increase the selected result index\n if ( vm.selectedResultIndex + 1 < vm.results.length )\n {\n // Increase the selected index\n vm.selectedResultIndex++;\n\n // Make sure the selected result is in the view\n vm.ensureSelectedResultIsVisible();\n }\n\n break;\n\n default:\n break;\n }\n }\n\n /**\n * Handle mouseenter\n *\n * @param index\n */\n function handleMouseenter(index)\n {\n if ( vm.ignoreMouseEvents )\n {\n return;\n }\n\n // Update the selected result index\n // with the given index\n vm.selectedResultIndex = index;\n }\n\n /**\n * Set a variable for a limited time\n * to make other functions to ignore\n * the mouse events\n */\n function temporarilyIgnoreMouseEvents()\n {\n // Set the variable\n vm.ignoreMouseEvents = true;\n\n // Cancel the previous timeout\n $timeout.cancel(vm.mouseEventIgnoreTimeout);\n\n // Set the timeout\n vm.mouseEventIgnoreTimeout = $timeout(function ()\n {\n vm.ignoreMouseEvents = false;\n }, 250);\n }\n\n /**\n * Handle the result click\n *\n * @param item\n */\n function handleResultClick(item)\n {\n if ( vm.onResultClick )\n {\n vm.onResultClick({item: item});\n }\n\n // Collapse the search bar\n vm.collapse();\n }\n\n /**\n * Ensure the selected result will\n * always be visible on the results\n * area\n */\n function ensureSelectedResultIsVisible()\n {\n var resultsEl = $element.find('.ms-search-bar-results'),\n selectedItemEl = angular.element(resultsEl.find('.result')[vm.selectedResultIndex]);\n\n if ( resultsEl && selectedItemEl )\n {\n var top = selectedItemEl.position().top - 8,\n bottom = selectedItemEl.position().top + selectedItemEl.outerHeight() + 8;\n\n // Start ignoring mouse events\n vm.temporarilyIgnoreMouseEvents();\n\n if ( resultsEl.scrollTop() > top )\n {\n resultsEl.scrollTop(top);\n }\n\n if ( bottom > (resultsEl.height() + resultsEl.scrollTop()) )\n {\n resultsEl.scrollTop(bottom - resultsEl.height());\n }\n }\n }\n }\n\n /** @ngInject */\n function msSearchBarDirective($document)\n {\n return {\n restrict : 'E',\n scope : {},\n require : 'msSearchBar',\n controller : 'MsSearchBarController as MsSearchBar',\n bindToController: {\n debounce : '=?',\n onSearch : '@',\n onResultClick: '&?',\n onExpand : '&?',\n onCollapse : '&?'\n },\n templateUrl : 'app/core/directives/ms-search-bar/ms-search-bar.html',\n compile : function (tElement)\n {\n // Add class\n tElement.addClass('ms-search-bar');\n\n return function postLink(scope, iElement)\n {\n // Data\n var inputEl,\n bodyEl = $document.find('body');\n\n // Methods\n scope.collapse = collapse;\n scope.expand = expand;\n\n //////////\n\n // Initialize\n init();\n\n /**\n * Initialize\n */\n function init()\n {\n // Grab the input element\n inputEl = iElement.find('#ms-search-bar-input');\n }\n\n /**\n * Expand action\n */\n function expand()\n {\n // Add expanded class\n iElement.addClass('expanded');\n\n // Add helper class to the body\n bodyEl.addClass('ms-search-bar-expanded');\n\n // Focus on the input\n inputEl.focus();\n }\n\n /**\n * Collapse action\n */\n function collapse()\n {\n // Remove expanded class\n iElement.removeClass('expanded');\n\n // Remove helper class from the body\n bodyEl.removeClass('ms-search-bar-expanded');\n }\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .provider('msScrollConfig', msScrollConfigProvider)\n .directive('msScroll', msScrollDirective);\n\n /** @ngInject */\n function msScrollConfigProvider()\n {\n // Default configuration\n var defaultConfiguration = {\n wheelSpeed : 1,\n wheelPropagation : false,\n swipePropagation : true,\n minScrollbarLength : null,\n maxScrollbarLength : null,\n useBothWheelAxes : false,\n useKeyboard : true,\n suppressScrollX : false,\n suppressScrollY : false,\n scrollXMarginOffset : 0,\n scrollYMarginOffset : 0,\n stopPropagationOnClick: true\n };\n\n // Methods\n this.config = config;\n\n //////////\n\n /**\n * Extend default configuration with the given one\n *\n * @param configuration\n */\n function config(configuration)\n {\n defaultConfiguration = angular.extend({}, defaultConfiguration, configuration);\n }\n\n /**\n * Service\n */\n this.$get = function ()\n {\n var service = {\n getConfig: getConfig\n };\n\n return service;\n\n //////////\n\n /**\n * Return the config\n */\n function getConfig()\n {\n return defaultConfiguration;\n }\n };\n }\n\n /** @ngInject */\n function msScrollDirective($timeout, msScrollConfig, msUtils, fuseConfig)\n {\n return {\n restrict: 'AE',\n compile : function (tElement)\n {\n // Do not replace scrollbars if\n // 'disableCustomScrollbars' config enabled\n if ( fuseConfig.getConfig('disableCustomScrollbars') )\n {\n return;\n }\n\n // Do not replace scrollbars on mobile devices\n // if 'disableCustomScrollbarsOnMobile' config enabled\n if ( fuseConfig.getConfig('disableCustomScrollbarsOnMobile') && msUtils.isMobile() )\n {\n return;\n }\n\n // Add class\n tElement.addClass('ms-scroll');\n\n return function postLink(scope, iElement, iAttrs)\n {\n var options = {};\n\n // If options supplied, evaluate the given\n // value. This is because we don't want to\n // have an isolated scope but still be able\n // to use scope variables.\n // We don't want an isolated scope because\n // we should be able to use this everywhere\n // especially with other directives\n if ( iAttrs.msScroll )\n {\n options = scope.$eval(iAttrs.msScroll);\n }\n\n // Extend the given config with the ones from provider\n options = angular.extend({}, msScrollConfig.getConfig(), options);\n\n // Initialize the scrollbar\n $timeout(function ()\n {\n PerfectScrollbar.initialize(iElement[0], options);\n }, 0);\n\n // Update the scrollbar on element mouseenter\n iElement.on('mouseenter', updateScrollbar);\n\n // Watch scrollHeight and update\n // the scrollbar if it changes\n scope.$watch(function ()\n {\n return iElement.prop('scrollHeight');\n }, function (current, old)\n {\n if ( angular.isUndefined(current) || angular.equals(current, old) )\n {\n return;\n }\n\n updateScrollbar();\n });\n\n // Watch scrollWidth and update\n // the scrollbar if it changes\n scope.$watch(function ()\n {\n return iElement.prop('scrollWidth');\n }, function (current, old)\n {\n if ( angular.isUndefined(current) || angular.equals(current, old) )\n {\n return;\n }\n\n updateScrollbar();\n });\n\n /**\n * Update the scrollbar\n */\n function updateScrollbar()\n {\n PerfectScrollbar.update(iElement[0]);\n }\n\n // Cleanup on destroy\n scope.$on('$destroy', function ()\n {\n iElement.off('mouseenter');\n PerfectScrollbar.destroy(iElement[0]);\n });\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .directive('msResponsiveTable', msResponsiveTableDirective);\n\n /** @ngInject */\n function msResponsiveTableDirective()\n {\n return {\n restrict: 'A',\n link : function (scope, iElement)\n {\n // Wrap the table\n var wrapper = angular.element('
');\n iElement.after(wrapper);\n wrapper.append(iElement);\n\n //////////\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .provider('msNavigationService', msNavigationServiceProvider)\n .controller('MsNavigationController', MsNavigationController)\n // Vertical\n .directive('msNavigation', msNavigationDirective)\n .controller('MsNavigationNodeController', MsNavigationNodeController)\n .directive('msNavigationNode', msNavigationNodeDirective)\n .directive('msNavigationItem', msNavigationItemDirective)\n //Horizontal\n .directive('msNavigationHorizontal', msNavigationHorizontalDirective)\n .controller('MsNavigationHorizontalNodeController', MsNavigationHorizontalNodeController)\n .directive('msNavigationHorizontalNode', msNavigationHorizontalNodeDirective)\n .directive('msNavigationHorizontalItem', msNavigationHorizontalItemDirective);\n\n /** @ngInject */\n function msNavigationServiceProvider()\n {\n // Inject $log service\n var $log = angular.injector(['ng']).get('$log');\n\n // Navigation array\n var navigation = [];\n\n var service = this;\n\n // Methods\n service.saveItem = saveItem;\n service.deleteItem = deleteItem;\n service.sortByWeight = sortByWeight;\n\n //////////\n\n /**\n * Create or update the navigation item\n *\n * @param path\n * @param item\n */\n function saveItem(path, item)\n {\n if ( !angular.isString(path) )\n {\n $log.error('path must be a string (eg. `dashboard.project`)');\n return;\n }\n\n var parts = path.split('.');\n\n // Generate the object id from the parts\n var id = parts[parts.length - 1];\n\n // Get the parent item from the parts\n var parent = _findOrCreateParent(parts);\n\n // Decide if we are going to update or create\n var updateItem = false;\n\n for ( var i = 0; i < parent.length; i++ )\n {\n if ( parent[i]._id === id )\n {\n updateItem = parent[i];\n\n break;\n }\n }\n\n // Update\n if ( updateItem )\n {\n angular.extend(updateItem, item);\n\n // Add proper ui-sref\n updateItem.uisref = _getUiSref(updateItem);\n }\n // Create\n else\n {\n // Create an empty children array in the item\n item.children = [];\n\n // Add the default weight if not provided or if it's not a number\n if ( angular.isUndefined(item.weight) || !angular.isNumber(item.weight) )\n {\n item.weight = 1;\n }\n\n // Add the item id\n item._id = id;\n\n // Add the item path\n item._path = path;\n\n // Add proper ui-sref\n item.uisref = _getUiSref(item);\n\n // Push the item into the array\n parent.push(item);\n }\n }\n\n /**\n * Delete navigation item\n *\n * @param path\n */\n function deleteItem(path)\n {\n if ( !angular.isString(path) )\n {\n $log.error('path must be a string (eg. `dashboard.project`)');\n return;\n }\n\n // Locate the item by using given path\n var item = navigation,\n parts = path.split('.');\n\n for ( var p = 0; p < parts.length; p++ )\n {\n var id = parts[p];\n\n for ( var i = 0; i < item.length; i++ )\n {\n if ( item[i]._id === id )\n {\n // If we have a matching path,\n // we have found our object:\n // remove it.\n if ( item[i]._path === path )\n {\n item.splice(i, 1);\n return true;\n }\n\n // Otherwise grab the children of\n // the current item and continue\n item = item[i].children;\n break;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Sort the navigation items by their weights\n *\n * @param parent\n */\n function sortByWeight(parent)\n {\n // If parent not provided, sort the root items\n if ( !parent )\n {\n parent = navigation;\n parent.sort(_byWeight);\n }\n\n // Sort the children\n for ( var i = 0; i < parent.length; i++ )\n {\n var children = parent[i].children;\n\n if ( children.length > 1 )\n {\n children.sort(_byWeight);\n }\n\n if ( children.length > 0 )\n {\n sortByWeight(children);\n }\n }\n }\n\n /* ----------------- */\n /* Private Functions */\n /* ----------------- */\n\n /**\n * Find or create parent\n *\n * @param parts\n * @returns {Array|Boolean}\n * @private\n */\n function _findOrCreateParent(parts)\n {\n // Store the main navigation\n var parent = navigation;\n\n // If it's going to be a root item\n // return the navigation itself\n if ( parts.length === 1 )\n {\n return parent;\n }\n\n // Remove the last element from the parts as\n // we don't need that to figure out the parent\n parts.pop();\n\n // Find and return the parent\n for ( var i = 0; i < parts.length; i++ )\n {\n var _id = parts[i],\n createParent = true;\n\n for ( var p = 0; p < parent.length; p++ )\n {\n if ( parent[p]._id === _id )\n {\n parent = parent[p].children;\n createParent = false;\n\n break;\n }\n }\n\n // If there is no parent found, create one, push\n // it into the current parent and assign it as a\n // new parent\n if ( createParent )\n {\n var item = {\n _id : _id,\n _path : parts.join('.'),\n title : _id,\n weight : 1,\n children: []\n };\n\n parent.push(item);\n parent = item.children;\n }\n }\n\n return parent;\n }\n\n /**\n * Sort by weight\n *\n * @param x\n * @param y\n * @returns {number}\n * @private\n */\n function _byWeight(x, y)\n {\n return parseInt(x.weight) - parseInt(y.weight);\n }\n\n /**\n * Setup the ui-sref using state & state parameters\n *\n * @param item\n * @returns {string}\n * @private\n */\n function _getUiSref(item)\n {\n var uisref = '';\n\n if ( angular.isDefined(item.state) )\n {\n uisref = item.state;\n\n if ( angular.isDefined(item.stateParams) && angular.isObject(item.stateParams) )\n {\n uisref = uisref + '(' + angular.toJson(item.stateParams) + ')';\n }\n }\n\n return uisref;\n }\n\n /* ----------------- */\n /* Service */\n /* ----------------- */\n\n this.$get = function ()\n {\n var activeItem = null,\n navigationScope = null,\n folded = null,\n foldedOpen = null;\n\n var service = {\n saveItem : saveItem,\n deleteItem : deleteItem,\n sort : sortByWeight,\n clearNavigation : clearNavigation,\n setActiveItem : setActiveItem,\n getActiveItem : getActiveItem,\n getNavigation : getNavigation,\n getFlatNavigation : getFlatNavigation,\n setNavigationScope: setNavigationScope,\n setFolded : setFolded,\n getFolded : getFolded,\n setFoldedOpen : setFoldedOpen,\n getFoldedOpen : getFoldedOpen,\n toggleFolded : toggleFolded\n };\n\n return service;\n\n //////////\n\n /**\n * Clear the entire navigation\n */\n function clearNavigation()\n {\n // Clear the navigation array\n navigation = [];\n\n // Clear the vm.navigation from main controller\n if ( navigationScope )\n {\n navigationScope.vm.navigation = navigation;\n }\n }\n\n /**\n * Set active item\n *\n * @param node\n * @param scope\n */\n function setActiveItem(node, scope)\n {\n activeItem = {\n node : node,\n scope: scope\n };\n }\n\n /**\n * Return active item\n */\n function getActiveItem()\n {\n return activeItem;\n }\n\n /**\n * Return navigation array\n *\n * @param root\n * @returns Array\n */\n function getNavigation(root)\n {\n if ( root )\n {\n for ( var i = 0; i < navigation.length; i++ )\n {\n if ( navigation[i]._id === root )\n {\n return [navigation[i]];\n }\n }\n\n return null;\n }\n\n return navigation;\n }\n\n /**\n * Return flat navigation array\n *\n * @param root\n * @returns Array\n */\n function getFlatNavigation(root)\n {\n // Get the correct navigation array\n var navigation = getNavigation(root);\n\n // Flatten the navigation object\n return _flattenNavigation(navigation);\n }\n\n /**\n * Store navigation's scope for later use\n *\n * @param scope\n */\n function setNavigationScope(scope)\n {\n navigationScope = scope;\n }\n\n /**\n * Set folded status\n *\n * @param status\n */\n function setFolded(status)\n {\n folded = status;\n }\n\n /**\n * Return folded status\n *\n * @returns {*}\n */\n function getFolded()\n {\n return folded;\n }\n\n /**\n * Set folded open status\n *\n * @param status\n */\n function setFoldedOpen(status)\n {\n foldedOpen = status;\n }\n\n /**\n * Return folded open status\n *\n * @returns {*}\n */\n function getFoldedOpen()\n {\n return foldedOpen;\n }\n\n\n /**\n * Toggle fold on stored navigation's scope\n */\n function toggleFolded()\n {\n navigationScope.toggleFolded();\n }\n\n /**\n * Flatten the given navigation\n *\n * @param navigation\n * @private\n */\n function _flattenNavigation(navigation)\n {\n var flatNav = [];\n\n for ( var x = 0; x < navigation.length; x++ )\n {\n // Copy and clear the children of the\n // navigation that we want to push\n var navToPush = angular.copy(navigation[x]);\n navToPush.children = [];\n\n // Push the item\n flatNav.push(navToPush);\n\n // If there are child items in this navigation,\n // do some nested function magic\n if ( navigation[x].children.length > 0 )\n {\n flatNav = flatNav.concat(_flattenNavigation(navigation[x].children));\n }\n }\n\n return flatNav;\n }\n };\n }\n\n /** @ngInject */\n function MsNavigationController($scope, msNavigationService)\n {\n var vm = this;\n\n // Data\n if ( $scope.root )\n {\n vm.navigation = msNavigationService.getNavigation($scope.root);\n }\n else\n {\n vm.navigation = msNavigationService.getNavigation();\n }\n\n // Methods\n vm.toggleHorizontalMobileMenu = toggleHorizontalMobileMenu;\n\n //////////\n\n init();\n\n /**\n * Initialize\n */\n function init()\n {\n // Sort the navigation before doing anything else\n msNavigationService.sort();\n }\n\n /**\n * Toggle horizontal mobile menu\n */\n function toggleHorizontalMobileMenu()\n {\n angular.element('body').toggleClass('ms-navigation-horizontal-mobile-menu-active');\n }\n }\n\n /** @ngInject */\n function msNavigationDirective($rootScope, $timeout, $mdSidenav, msNavigationService)\n {\n return {\n restrict : 'E',\n scope : {\n folded: '=',\n root : '@'\n },\n controller : 'MsNavigationController as vm',\n templateUrl: 'app/core/directives/ms-navigation/templates/vertical.html',\n transclude : true,\n compile : function (tElement)\n {\n tElement.addClass('ms-navigation');\n\n return function postLink(scope, iElement)\n {\n var bodyEl = angular.element('body'),\n foldExpanderEl = angular.element('
'),\n foldCollapserEl = angular.element('
'),\n sidenav = $mdSidenav('navigation');\n\n // Store the navigation in the service for public access\n msNavigationService.setNavigationScope(scope);\n\n // Initialize\n init();\n\n /**\n * Initialize\n */\n function init()\n {\n // Set the folded status for the first time.\n // First, we have to check if we have a folded\n // status available in the service already. This\n // will prevent navigation to act weird if we already\n // set the fold status, remove the navigation and\n // then re-initialize it, which happens if we\n // change to a view without a navigation and then\n // come back with history.back() function.\n\n // If the service didn't initialize before, set\n // the folded status from scope, otherwise we\n // won't touch anything because the folded status\n // already set in the service...\n if ( msNavigationService.getFolded() === null )\n {\n msNavigationService.setFolded(scope.folded);\n }\n\n if ( msNavigationService.getFolded() )\n {\n // Collapse everything.\n // This must be inside a $timeout because by the\n // time we call this, the 'msNavigation::collapse'\n // event listener is not registered yet. $timeout\n // will ensure that it will be called after it is\n // registered.\n $timeout(function ()\n {\n $rootScope.$broadcast('msNavigation::collapse');\n });\n\n // Add class to the body\n bodyEl.addClass('ms-navigation-folded');\n\n // Set fold expander\n setFoldExpander();\n }\n }\n\n // Sidenav locked open status watcher\n scope.$watch(function ()\n {\n return sidenav.isLockedOpen();\n }, function (current, old)\n {\n if ( angular.isUndefined(current) || angular.equals(current, old) )\n {\n return;\n }\n\n var folded = msNavigationService.getFolded();\n\n if ( folded )\n {\n if ( current )\n {\n // Collapse everything\n $rootScope.$broadcast('msNavigation::collapse');\n }\n else\n {\n // Expand the active one and its parents\n var activeItem = msNavigationService.getActiveItem();\n if ( activeItem )\n {\n activeItem.scope.$emit('msNavigation::stateMatched');\n }\n }\n }\n });\n\n // Folded status watcher\n scope.$watch('folded', function (current, old)\n {\n if ( angular.isUndefined(current) || angular.equals(current, old) )\n {\n return;\n }\n\n setFolded(current);\n });\n\n /**\n * Set folded status\n *\n * @param folded\n */\n function setFolded(folded)\n {\n // Store folded status on the service for global access\n msNavigationService.setFolded(folded);\n\n if ( folded )\n {\n // Collapse everything\n $rootScope.$broadcast('msNavigation::collapse');\n\n // Add class to the body\n bodyEl.addClass('ms-navigation-folded');\n\n // Set fold expander\n setFoldExpander();\n }\n else\n {\n // Expand the active one and its parents\n var activeItem = msNavigationService.getActiveItem();\n if ( activeItem )\n {\n activeItem.scope.$emit('msNavigation::stateMatched');\n }\n\n // Remove body class\n bodyEl.removeClass('ms-navigation-folded ms-navigation-folded-open');\n\n // Remove fold collapser\n removeFoldCollapser();\n }\n }\n\n /**\n * Set fold expander\n */\n function setFoldExpander()\n {\n iElement.parent().append(foldExpanderEl);\n\n // Let everything settle for a moment\n // before registering the event listener\n $timeout(function ()\n {\n foldExpanderEl.on('mouseenter touchstart', onFoldExpanderHover);\n });\n }\n\n /**\n * Set fold collapser\n */\n function setFoldCollapser()\n {\n bodyEl.find('#main').append(foldCollapserEl);\n foldCollapserEl.on('mouseenter touchstart', onFoldCollapserHover);\n }\n\n /**\n * Remove fold collapser\n */\n function removeFoldCollapser()\n {\n foldCollapserEl.remove();\n }\n\n /**\n * onHover event of foldExpander\n */\n function onFoldExpanderHover(event)\n {\n if ( event )\n {\n event.preventDefault();\n }\n\n // Set folded open status\n msNavigationService.setFoldedOpen(true);\n\n // Expand the active one and its parents\n var activeItem = msNavigationService.getActiveItem();\n if ( activeItem )\n {\n activeItem.scope.$emit('msNavigation::stateMatched');\n }\n\n // Add class to the body\n bodyEl.addClass('ms-navigation-folded-open');\n\n // Remove the fold opener\n foldExpanderEl.remove();\n\n // Set fold collapser\n setFoldCollapser();\n }\n\n /**\n * onHover event of foldCollapser\n */\n function onFoldCollapserHover(event)\n {\n if ( event )\n {\n event.preventDefault();\n }\n\n // Set folded open status\n msNavigationService.setFoldedOpen(false);\n\n // Collapse everything\n $rootScope.$broadcast('msNavigation::collapse');\n\n // Remove body class\n bodyEl.removeClass('ms-navigation-folded-open');\n\n // Remove the fold collapser\n foldCollapserEl.remove();\n\n // Set fold expander\n setFoldExpander();\n }\n\n /**\n * Public access for toggling folded status externally\n */\n scope.toggleFolded = function ()\n {\n var folded = msNavigationService.getFolded();\n\n setFolded(!folded);\n };\n\n /**\n * On $stateChangeStart\n */\n scope.$on('$stateChangeStart', function ()\n {\n // Close the sidenav\n sidenav.close();\n });\n\n // Cleanup\n scope.$on('$destroy', function ()\n {\n foldCollapserEl.off('mouseenter touchstart');\n foldExpanderEl.off('mouseenter touchstart');\n });\n };\n }\n };\n }\n\n /** @ngInject */\n function MsNavigationNodeController($scope, $element, $rootScope, $animate, $state, msNavigationService)\n {\n var vm = this;\n\n // Data\n vm.element = $element;\n vm.node = $scope.node;\n vm.hasChildren = undefined;\n vm.collapsed = undefined;\n vm.collapsable = undefined;\n vm.group = undefined;\n vm.animateHeightClass = 'animate-height';\n\n // Methods\n vm.toggleCollapsed = toggleCollapsed;\n vm.collapse = collapse;\n vm.expand = expand;\n vm.getClass = getClass;\n vm.isHidden = isHidden;\n\n //////////\n\n init();\n\n /**\n * Initialize\n */\n function init()\n {\n // Setup the initial values\n\n // Has children?\n vm.hasChildren = vm.node.children.length > 0;\n\n // Is group?\n vm.group = !!(angular.isDefined(vm.node.group) && vm.node.group === true);\n\n // Is collapsable?\n if ( !vm.hasChildren || vm.group )\n {\n vm.collapsable = false;\n }\n else\n {\n vm.collapsable = !!(angular.isUndefined(vm.node.collapsable) || typeof vm.node.collapsable !== 'boolean' || vm.node.collapsable === true);\n }\n\n // Is collapsed?\n if ( !vm.collapsable )\n {\n vm.collapsed = false;\n }\n else\n {\n vm.collapsed = !!(angular.isUndefined(vm.node.collapsed) || typeof vm.node.collapsed !== 'boolean' || vm.node.collapsed === true);\n }\n\n // Expand all parents if we have a matching state or\n // the current state is a child of the node's state\n if ( vm.node.state === $state.current.name || $state.includes(vm.node.state) )\n {\n // If state params are defined, make sure they are\n // equal, otherwise do not set the active item\n if ( angular.isDefined(vm.node.stateParams) && angular.isDefined($state.params) && !angular.equals(vm.node.stateParams, $state.params) )\n {\n return;\n }\n\n $scope.$emit('msNavigation::stateMatched');\n\n // Also store the current active menu item\n msNavigationService.setActiveItem(vm.node, $scope);\n }\n\n $scope.$on('msNavigation::stateMatched', function ()\n {\n // Expand if the current scope is collapsable and is collapsed\n if ( vm.collapsable && vm.collapsed )\n {\n $scope.$evalAsync(function ()\n {\n vm.collapsed = false;\n });\n }\n });\n\n // Listen for collapse event\n $scope.$on('msNavigation::collapse', function (event, path)\n {\n if ( vm.collapsed || !vm.collapsable )\n {\n return;\n }\n\n // If there is no path defined, collapse\n if ( angular.isUndefined(path) )\n {\n vm.collapse();\n }\n // If there is a path defined, do not collapse\n // the items that are inside that path. This will\n // prevent parent items from collapsing\n else\n {\n var givenPathParts = path.split('.'),\n activePathParts = [];\n\n var activeItem = msNavigationService.getActiveItem();\n if ( activeItem )\n {\n activePathParts = activeItem.node._path.split('.');\n }\n\n // Test for given path\n if ( givenPathParts.indexOf(vm.node._id) > -1 )\n {\n return;\n }\n\n // Test for active path\n if ( activePathParts.indexOf(vm.node._id) > -1 )\n {\n return;\n }\n\n vm.collapse();\n }\n });\n\n // Listen for $stateChangeSuccess event\n $scope.$on('$stateChangeSuccess', function ()\n {\n if ( vm.node.state === $state.current.name )\n {\n // If state params are defined, make sure they are\n // equal, otherwise do not set the active item\n if ( angular.isDefined(vm.node.stateParams) && angular.isDefined($state.params) && !angular.equals(vm.node.stateParams, $state.params) )\n {\n return;\n }\n\n // Update active item on state change\n msNavigationService.setActiveItem(vm.node, $scope);\n\n // Collapse everything except the one we're using\n $rootScope.$broadcast('msNavigation::collapse', vm.node._path);\n }\n\n // Expand the parents if we the current\n // state is a child of the node's state\n if ( $state.includes(vm.node.state) )\n {\n // If state params are defined, make sure they are\n // equal, otherwise do not set the active item\n if ( angular.isDefined(vm.node.stateParams) && angular.isDefined($state.params) && !angular.equals(vm.node.stateParams, $state.params) )\n {\n return;\n }\n\n // Emit the stateMatched\n $scope.$emit('msNavigation::stateMatched');\n }\n });\n }\n\n /**\n * Toggle collapsed\n */\n function toggleCollapsed()\n {\n if ( vm.collapsed )\n {\n vm.expand();\n }\n else\n {\n vm.collapse();\n }\n }\n\n /**\n * Collapse\n */\n function collapse()\n {\n // Grab the element that we are going to collapse\n var collapseEl = vm.element.children('ul');\n\n // Grab the height\n var height = collapseEl[0].offsetHeight;\n\n $scope.$evalAsync(function ()\n {\n // Set collapsed status\n vm.collapsed = true;\n\n // Add collapsing class to the node\n vm.element.addClass('collapsing');\n\n // Animate the height\n $animate.animate(collapseEl,\n {\n 'display': 'block',\n 'height' : height + 'px'\n },\n {\n 'height': '0px'\n },\n vm.animateHeightClass\n ).then(\n function ()\n {\n // Clear the inline styles after animation done\n collapseEl.css({\n 'display': '',\n 'height' : ''\n });\n\n // Clear collapsing class from the node\n vm.element.removeClass('collapsing');\n }\n );\n\n // Broadcast the collapse event so child items can also be collapsed\n $scope.$broadcast('msNavigation::collapse');\n });\n }\n\n /**\n * Expand\n */\n function expand()\n {\n // Grab the element that we are going to expand\n var expandEl = vm.element.children('ul');\n\n // Move the element out of the dom flow and\n // make it block so we can get its height\n expandEl.css({\n 'position' : 'absolute',\n 'visibility': 'hidden',\n 'display' : 'block',\n 'height' : 'auto'\n });\n\n // Grab the height\n var height = expandEl[0].offsetHeight;\n\n // Reset the style modifications\n expandEl.css({\n 'position' : '',\n 'visibility': '',\n 'display' : '',\n 'height' : ''\n });\n\n $scope.$evalAsync(function ()\n {\n // Set collapsed status\n vm.collapsed = false;\n\n // Add expanding class to the node\n vm.element.addClass('expanding');\n\n // Animate the height\n $animate.animate(expandEl,\n {\n 'display': 'block',\n 'height' : '0px'\n },\n {\n 'height': height + 'px'\n },\n vm.animateHeightClass\n ).then(\n function ()\n {\n // Clear the inline styles after animation done\n expandEl.css({\n 'height': ''\n });\n\n // Clear expanding class from the node\n vm.element.removeClass('expanding');\n }\n );\n\n // If item expanded, broadcast the collapse event from rootScope so that the other expanded items\n // can be collapsed. This is necessary for keeping only one parent expanded at any time\n $rootScope.$broadcast('msNavigation::collapse', vm.node._path);\n });\n }\n\n /**\n * Return the class\n *\n * @returns {*}\n */\n function getClass()\n {\n return vm.node.class;\n }\n\n /**\n * Check if node should be hidden\n *\n * @returns {boolean}\n */\n function isHidden()\n {\n if ( angular.isDefined(vm.node.hidden) && angular.isFunction(vm.node.hidden) )\n {\n return vm.node.hidden();\n }\n\n return false;\n }\n }\n\n /** @ngInject */\n function msNavigationNodeDirective()\n {\n return {\n restrict : 'A',\n bindToController: {\n node: '=msNavigationNode'\n },\n controller : 'MsNavigationNodeController as vm',\n compile : function (tElement)\n {\n tElement.addClass('ms-navigation-node');\n\n return function postLink(scope, iElement, iAttrs, MsNavigationNodeCtrl)\n {\n // Add custom classes\n iElement.addClass(MsNavigationNodeCtrl.getClass());\n\n // Add group class if it's a group\n if ( MsNavigationNodeCtrl.group )\n {\n iElement.addClass('group');\n }\n };\n }\n };\n }\n\n /** @ngInject */\n function msNavigationItemDirective()\n {\n return {\n restrict: 'A',\n require : '^msNavigationNode',\n compile : function (tElement)\n {\n tElement.addClass('ms-navigation-item');\n\n return function postLink(scope, iElement, iAttrs, MsNavigationNodeCtrl)\n {\n // If the item is collapsable...\n if ( MsNavigationNodeCtrl.collapsable )\n {\n iElement.on('click', MsNavigationNodeCtrl.toggleCollapsed);\n }\n\n // Cleanup\n scope.$on('$destroy', function ()\n {\n iElement.off('click');\n });\n };\n }\n };\n }\n\n /** @ngInject */\n function msNavigationHorizontalDirective(msNavigationService)\n {\n return {\n restrict : 'E',\n scope : {\n root: '@'\n },\n controller : 'MsNavigationController as vm',\n templateUrl: 'app/core/directives/ms-navigation/templates/horizontal.html',\n transclude : true,\n compile : function (tElement)\n {\n tElement.addClass('ms-navigation-horizontal');\n\n return function postLink(scope)\n {\n // Store the navigation in the service for public access\n msNavigationService.setNavigationScope(scope);\n };\n }\n };\n }\n\n /** @ngInject */\n function MsNavigationHorizontalNodeController($scope, $element, $rootScope, $state, msNavigationService)\n {\n var vm = this;\n\n // Data\n vm.element = $element;\n vm.node = $scope.node;\n vm.hasChildren = undefined;\n vm.group = undefined;\n\n // Methods\n vm.getClass = getClass;\n\n //////////\n\n init();\n\n /**\n * Initialize\n */\n function init()\n {\n // Setup the initial values\n\n // Is active\n vm.isActive = false;\n\n // Has children?\n vm.hasChildren = vm.node.children.length > 0;\n\n // Is group?\n vm.group = !!(angular.isDefined(vm.node.group) && vm.node.group === true);\n\n // Mark all parents as active if we have a matching state\n // or the current state is a child of the node's state\n if ( vm.node.state === $state.current.name || $state.includes(vm.node.state) )\n {\n // If state params are defined, make sure they are\n // equal, otherwise do not set the active item\n if ( angular.isDefined(vm.node.stateParams) && angular.isDefined($state.params) && !angular.equals(vm.node.stateParams, $state.params) )\n {\n return;\n }\n\n $scope.$emit('msNavigation::stateMatched');\n\n // Also store the current active menu item\n msNavigationService.setActiveItem(vm.node, $scope);\n }\n\n $scope.$on('msNavigation::stateMatched', function ()\n {\n // Mark as active if has children\n if ( vm.hasChildren )\n {\n $scope.$evalAsync(function ()\n {\n vm.isActive = true;\n });\n }\n });\n\n // Listen for clearActive event\n $scope.$on('msNavigation::clearActive', function ()\n {\n if ( !vm.hasChildren )\n {\n return;\n }\n\n var activePathParts = [];\n\n var activeItem = msNavigationService.getActiveItem();\n if ( activeItem )\n {\n activePathParts = activeItem.node._path.split('.');\n }\n\n // Test for active path\n if ( activePathParts.indexOf(vm.node._id) > -1 )\n {\n $scope.$evalAsync(function ()\n {\n vm.isActive = true;\n });\n }\n else\n {\n $scope.$evalAsync(function ()\n {\n vm.isActive = false;\n });\n }\n\n });\n\n // Listen for $stateChangeSuccess event\n $scope.$on('$stateChangeSuccess', function ()\n {\n if ( vm.node.state === $state.current.name || $state.includes(vm.node.state) )\n {\n // If state params are defined, make sure they are\n // equal, otherwise do not set the active item\n if ( angular.isDefined(vm.node.stateParams) && angular.isDefined($state.params) && !angular.equals(vm.node.stateParams, $state.params) )\n {\n return;\n }\n\n // Update active item on state change\n msNavigationService.setActiveItem(vm.node, $scope);\n\n // Clear all active states except the one we're using\n $rootScope.$broadcast('msNavigation::clearActive');\n }\n });\n }\n\n /**\n * Return the class\n *\n * @returns {*}\n */\n function getClass()\n {\n return vm.node.class;\n }\n }\n\n /** @ngInject */\n function msNavigationHorizontalNodeDirective()\n {\n return {\n restrict : 'A',\n bindToController: {\n node: '=msNavigationHorizontalNode'\n },\n controller : 'MsNavigationHorizontalNodeController as vm',\n compile : function (tElement)\n {\n tElement.addClass('ms-navigation-horizontal-node');\n\n return function postLink(scope, iElement, iAttrs, MsNavigationHorizontalNodeCtrl)\n {\n // Add custom classes\n iElement.addClass(MsNavigationHorizontalNodeCtrl.getClass());\n\n // Add group class if it's a group\n if ( MsNavigationHorizontalNodeCtrl.group )\n {\n iElement.addClass('group');\n }\n };\n }\n };\n }\n\n /** @ngInject */\n function msNavigationHorizontalItemDirective($mdMedia)\n {\n return {\n restrict: 'A',\n require : '^msNavigationHorizontalNode',\n compile : function (tElement)\n {\n tElement.addClass('ms-navigation-horizontal-item');\n\n return function postLink(scope, iElement, iAttrs, MsNavigationHorizontalNodeCtrl)\n {\n iElement.on('click', onClick);\n\n function onClick()\n {\n if ( !MsNavigationHorizontalNodeCtrl.hasChildren || $mdMedia('gt-md') )\n {\n return;\n }\n\n iElement.toggleClass('expanded');\n }\n\n // Cleanup\n scope.$on('$destroy', function ()\n {\n iElement.off('click');\n });\n };\n }\n };\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('msMaterialColorPickerController', msMaterialColorPickerController)\n .directive('msMaterialColorPicker', msMaterialColorPicker);\n\n /** @ngInject */\n function msMaterialColorPickerController($scope, $mdColorPalette, $mdMenu, fuseGenerator)\n {\n var vm = this;\n vm.palettes = $mdColorPalette; // Material Color Palette\n vm.selectedPalette = false;\n vm.selectedHues = false;\n $scope.$selectedColor = {};\n\n // Methods\n vm.activateHueSelection = activateHueSelection;\n vm.selectColor = selectColor;\n vm.removeColor = removeColor;\n\n /**\n * Initialize / Watch model changes\n */\n $scope.$watch('ngModel', setSelectedColor);\n\n /**\n * Activate Hue Selection\n * @param palette\n * @param hues\n */\n function activateHueSelection(palette, hues)\n {\n vm.selectedPalette = palette;\n vm.selectedHues = hues;\n }\n\n /**\n * Select Color\n * @type {selectColor}\n */\n function selectColor(palette, hue)\n {\n // Update Selected Color\n updateSelectedColor(palette, hue);\n\n // Update Model Value\n updateModel();\n\n // Hide The picker\n $mdMenu.hide();\n }\n\n function removeColor()\n {\n vm.selectedColor = {\n palette: '',\n hue : '',\n class : ''\n };\n\n activateHueSelection(false, false);\n\n updateModel();\n }\n\n /**\n * Set SelectedColor by model type\n */\n function setSelectedColor()\n {\n if ( !vm.modelCtrl.$viewValue || vm.modelCtrl.$viewValue === '' )\n {\n removeColor();\n return;\n }\n\n var palette, hue;\n\n // If ModelType Class\n if ( vm.msModelType === 'class' )\n {\n var color = vm.modelCtrl.$viewValue.split('-');\n if ( color.length >= 5 )\n {\n palette = color[1] + '-' + color[2];\n hue = color[3];\n }\n else\n {\n palette = color[1];\n hue = color[2];\n }\n }\n\n // If ModelType Object\n else if ( vm.msModelType === 'obj' )\n {\n palette = vm.modelCtrl.$viewValue.palette;\n hue = vm.modelCtrl.$viewValue.hue || 500;\n }\n\n // Update Selected Color\n updateSelectedColor(palette, hue);\n }\n\n /**\n * Update Selected Color\n * @param palette\n * @param hue\n */\n function updateSelectedColor(palette, hue)\n {\n vm.selectedColor = {\n palette : palette,\n hue : hue,\n class : 'md-' + palette + '-' + hue + '-bg',\n bgColorValue: fuseGenerator.rgba(vm.palettes[palette][hue].value),\n fgColorValue: fuseGenerator.rgba(vm.palettes[palette][hue].contrast)\n };\n\n // If Model object not Equals the selectedColor update it\n // it can be happen when the model only have pallete and hue values\n if ( vm.msModelType === 'obj' && !angular.equals(vm.selectedColor, vm.modelCtrl.$viewValue) )\n {\n // Update Model Value\n updateModel();\n }\n\n activateHueSelection(palette, vm.palettes[palette]);\n\n $scope.$selectedColor = vm.selectedColor;\n }\n\n /**\n * Update Model Value by model type\n */\n function updateModel()\n {\n if ( vm.msModelType === 'class' )\n {\n vm.modelCtrl.$setViewValue(vm.selectedColor.class);\n }\n else if ( vm.msModelType === 'obj' )\n {\n vm.modelCtrl.$setViewValue(vm.selectedColor);\n }\n }\n }\n\n /** @ngInject */\n function msMaterialColorPicker()\n {\n return {\n require : ['msMaterialColorPicker', 'ngModel'],\n restrict : 'E',\n scope : {\n ngModel : '=',\n msModelType: '@?'\n },\n controller : 'msMaterialColorPickerController as vm',\n transclude : true,\n templateUrl: 'app/core/directives/ms-material-color-picker/ms-material-color-picker.html',\n link : function (scope, element, attrs, controllers, transclude)\n {\n var ctrl = controllers[0];\n\n /**\n * Pass model controller to directive controller\n */\n ctrl.modelCtrl = controllers[1];\n\n /**\n * ModelType: 'obj', 'class'(default)\n * @type {string|string}\n */\n ctrl.msModelType = scope.msModelType || 'class';\n\n transclude(scope, function (clone)\n {\n clone = clone.filter(function (i, el)\n {\n return ( el.nodeType === 1 ) ? true : false;\n });\n\n if ( clone.length )\n {\n element.find('ms-color-picker-button').replaceWith(clone);\n }\n });\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .factory('msNavFoldService', msNavFoldService)\n .directive('msNavIsFolded', msNavIsFoldedDirective)\n .controller('MsNavController', MsNavController)\n .directive('msNav', msNavDirective)\n .directive('msNavTitle', msNavTitleDirective)\n .directive('msNavButton', msNavButtonDirective)\n .directive('msNavToggle', msNavToggleDirective);\n\n /** @ngInject */\n function msNavFoldService()\n {\n var foldable = {};\n\n var service = {\n setFoldable : setFoldable,\n isNavFoldedOpen: isNavFoldedOpen,\n toggleFold : toggleFold,\n openFolded : openFolded,\n closeFolded : closeFolded\n };\n\n return service;\n\n //////////\n\n /**\n * Set the foldable\n *\n * @param scope\n * @param element\n */\n function setFoldable(scope, element)\n {\n foldable = {\n 'scope' : scope,\n 'element': element\n };\n }\n\n /**\n * Is folded open\n */\n function isNavFoldedOpen()\n {\n return foldable.scope.isNavFoldedOpen();\n }\n\n /**\n * Toggle fold\n */\n function toggleFold()\n {\n foldable.scope.toggleFold();\n }\n\n /**\n * Open folded navigation\n */\n function openFolded()\n {\n foldable.scope.openFolded();\n }\n\n /**\n * Close folded navigation\n */\n function closeFolded()\n {\n foldable.scope.closeFolded();\n }\n }\n\n /** @ngInject */\n function msNavIsFoldedDirective($document, $rootScope, msNavFoldService)\n {\n return {\n restrict: 'A',\n link : function (scope, iElement, iAttrs)\n {\n var isFolded = (iAttrs.msNavIsFolded === 'true'),\n isFoldedOpen = false,\n body = angular.element($document[0].body),\n openOverlay = angular.element('
'),\n closeOverlay = angular.element('
'),\n sidenavEl = iElement.parent();\n\n // Initialize the service\n msNavFoldService.setFoldable(scope, iElement, isFolded);\n\n // Set the fold status for the first time\n if ( isFolded )\n {\n fold();\n }\n else\n {\n unfold();\n }\n\n /**\n * Is nav folded open\n */\n function isNavFoldedOpen()\n {\n return isFoldedOpen;\n }\n\n /**\n * Toggle fold\n */\n function toggleFold()\n {\n isFolded = !isFolded;\n\n if ( isFolded )\n {\n fold();\n }\n else\n {\n unfold();\n }\n }\n\n /**\n * Fold the navigation\n */\n function fold()\n {\n // Add classes\n body.addClass('ms-nav-folded');\n\n // Collapse everything and scroll to the top\n $rootScope.$broadcast('msNav::forceCollapse');\n iElement.scrollTop(0);\n\n // Append the openOverlay to the element\n sidenavEl.append(openOverlay);\n\n // Event listeners\n openOverlay.on('mouseenter touchstart', function (event)\n {\n openFolded(event);\n isFoldedOpen = true;\n });\n }\n\n /**\n * Open folded navigation\n */\n function openFolded(event)\n {\n if ( angular.isDefined(event) )\n {\n event.preventDefault();\n }\n\n body.addClass('ms-nav-folded-open');\n\n // Update the location\n $rootScope.$broadcast('msNav::expandMatchingToggles');\n\n // Remove open overlay\n sidenavEl.find(openOverlay).remove();\n\n // Append close overlay and bind its events\n sidenavEl.parent().append(closeOverlay);\n closeOverlay.on('mouseenter touchstart', function (event)\n {\n closeFolded(event);\n isFoldedOpen = false;\n });\n }\n\n /**\n * Close folded navigation\n */\n function closeFolded(event)\n {\n if ( angular.isDefined(event) )\n {\n event.preventDefault();\n }\n\n // Collapse everything and scroll to the top\n $rootScope.$broadcast('msNav::forceCollapse');\n iElement.scrollTop(0);\n\n body.removeClass('ms-nav-folded-open');\n\n // Remove close overlay\n sidenavEl.parent().find(closeOverlay).remove();\n\n // Append open overlay and bind its events\n sidenavEl.append(openOverlay);\n openOverlay.on('mouseenter touchstart', function (event)\n {\n openFolded(event);\n isFoldedOpen = true;\n });\n }\n\n /**\n * Unfold the navigation\n */\n function unfold()\n {\n body.removeClass('ms-nav-folded ms-nav-folded-open');\n\n // Update the location\n $rootScope.$broadcast('msNav::expandMatchingToggles');\n\n iElement.off('mouseenter mouseleave');\n }\n\n // Expose functions to the scope\n scope.toggleFold = toggleFold;\n scope.openFolded = openFolded;\n scope.closeFolded = closeFolded;\n scope.isNavFoldedOpen = isNavFoldedOpen;\n\n // Cleanup\n scope.$on('$destroy', function ()\n {\n openOverlay.off('mouseenter touchstart');\n closeOverlay.off('mouseenter touchstart');\n iElement.off('mouseenter mouseleave');\n });\n }\n };\n }\n\n\n /** @ngInject */\n function MsNavController()\n {\n var vm = this,\n disabled = false,\n toggleItems = [],\n lockedItems = [];\n\n // Data\n\n // Methods\n vm.isDisabled = isDisabled;\n vm.enable = enable;\n vm.disable = disable;\n vm.setToggleItem = setToggleItem;\n vm.getLockedItems = getLockedItems;\n vm.setLockedItem = setLockedItem;\n vm.clearLockedItems = clearLockedItems;\n\n //////////\n\n /**\n * Is navigation disabled\n *\n * @returns {boolean}\n */\n function isDisabled()\n {\n return disabled;\n }\n\n /**\n * Disable the navigation\n */\n function disable()\n {\n disabled = true;\n }\n\n /**\n * Enable the navigation\n */\n function enable()\n {\n disabled = false;\n }\n\n /**\n * Set toggle item\n *\n * @param element\n * @param scope\n */\n function setToggleItem(element, scope)\n {\n toggleItems.push({\n 'element': element,\n 'scope' : scope\n });\n }\n\n /**\n * Get locked items\n *\n * @returns {Array}\n */\n function getLockedItems()\n {\n return lockedItems;\n }\n\n /**\n * Set locked item\n *\n * @param element\n * @param scope\n */\n function setLockedItem(element, scope)\n {\n lockedItems.push({\n 'element': element,\n 'scope' : scope\n });\n }\n\n /**\n * Clear locked items list\n */\n function clearLockedItems()\n {\n lockedItems = [];\n }\n }\n\n /** @ngInject */\n function msNavDirective($rootScope, $mdComponentRegistry, msNavFoldService)\n {\n return {\n restrict : 'E',\n scope : {},\n controller: 'MsNavController',\n compile : function (tElement)\n {\n tElement.addClass('ms-nav');\n\n return function postLink(scope)\n {\n // Update toggle status according to the ui-router current state\n $rootScope.$broadcast('msNav::expandMatchingToggles');\n\n // Update toggles on state changes\n var stateChangeSuccessEvent = $rootScope.$on('$stateChangeSuccess', function ()\n {\n $rootScope.$broadcast('msNav::expandMatchingToggles');\n\n // Close navigation sidenav on stateChangeSuccess\n $mdComponentRegistry.when('navigation').then(function (navigation)\n {\n navigation.close();\n\n if ( msNavFoldService.isNavFoldedOpen() )\n {\n msNavFoldService.closeFolded();\n }\n });\n });\n\n // Cleanup\n scope.$on('$destroy', function ()\n {\n stateChangeSuccessEvent();\n });\n };\n }\n };\n }\n\n /** @ngInject */\n function msNavTitleDirective()\n {\n return {\n restrict: 'A',\n compile : function (tElement)\n {\n tElement.addClass('ms-nav-title');\n\n return function postLink()\n {\n\n };\n }\n };\n }\n\n /** @ngInject */\n function msNavButtonDirective()\n {\n return {\n restrict: 'AE',\n compile : function (tElement)\n {\n tElement.addClass('ms-nav-button');\n\n return function postLink()\n {\n\n };\n }\n };\n }\n\n /** @ngInject */\n function msNavToggleDirective($rootScope, $q, $animate, $state)\n {\n return {\n restrict: 'A',\n require : '^msNav',\n scope : true,\n compile : function (tElement, tAttrs)\n {\n tElement.addClass('ms-nav-toggle');\n\n // Add collapsed attr\n if ( angular.isUndefined(tAttrs.collapsed) )\n {\n tAttrs.collapsed = true;\n }\n\n tElement.attr('collapsed', tAttrs.collapsed);\n\n return function postLink(scope, iElement, iAttrs, MsNavCtrl)\n {\n var classes = {\n expanded : 'expanded',\n expandAnimation : 'expand-animation',\n collapseAnimation: 'collapse-animation'\n };\n\n // Store all related states\n var links = iElement.find('a');\n var states = [];\n var regExp = /\\(.*\\)/g;\n\n angular.forEach(links, function (link)\n {\n var state = angular.element(link).attr('ui-sref');\n\n if ( angular.isUndefined(state) )\n {\n return;\n }\n\n // Remove any parameter definition from the state name before storing it\n state = state.replace(regExp, '');\n\n states.push(state);\n });\n\n // Store toggle-able element and its scope in the main nav controller\n MsNavCtrl.setToggleItem(iElement, scope);\n\n // Click handler\n iElement.children('.ms-nav-button').on('click', toggle);\n\n // Toggle function\n function toggle()\n {\n // If navigation is disabled, do nothing...\n if ( MsNavCtrl.isDisabled() )\n {\n return;\n }\n\n // Disable the entire navigation to prevent spamming\n MsNavCtrl.disable();\n\n if ( isCollapsed() )\n {\n // Clear the locked items list\n MsNavCtrl.clearLockedItems();\n\n // Emit pushToLockedList event\n scope.$emit('msNav::pushToLockedList');\n\n // Collapse everything but locked items\n $rootScope.$broadcast('msNav::collapse');\n\n // Expand and then...\n expand().then(function ()\n {\n // Enable the entire navigation after animations completed\n MsNavCtrl.enable();\n });\n }\n else\n {\n // Collapse with all children\n scope.$broadcast('msNav::forceCollapse');\n }\n }\n\n // Cleanup\n scope.$on('$destroy', function ()\n {\n iElement.children('.ms-nav-button').off('click');\n });\n\n /*---------------------*/\n /* Scope Events */\n /*---------------------*/\n\n /**\n * Collapse everything but locked items\n */\n scope.$on('msNav::collapse', function ()\n {\n // Only collapse toggles that are not locked\n var lockedItems = MsNavCtrl.getLockedItems();\n var locked = false;\n\n angular.forEach(lockedItems, function (lockedItem)\n {\n if ( angular.equals(lockedItem.scope, scope) )\n {\n locked = true;\n }\n });\n\n if ( locked )\n {\n return;\n }\n\n // Collapse and then...\n collapse().then(function ()\n {\n // Enable the entire navigation after animations completed\n MsNavCtrl.enable();\n });\n });\n\n /**\n * Collapse everything\n */\n scope.$on('msNav::forceCollapse', function ()\n {\n // Collapse and then...\n collapse().then(function ()\n {\n // Enable the entire navigation after animations completed\n MsNavCtrl.enable();\n });\n });\n\n /**\n * Expand toggles that match with the current states\n */\n scope.$on('msNav::expandMatchingToggles', function ()\n {\n var currentState = $state.current.name;\n var shouldExpand = false;\n\n angular.forEach(states, function (state)\n {\n if ( currentState === state )\n {\n shouldExpand = true;\n }\n });\n\n if ( shouldExpand )\n {\n expand();\n }\n else\n {\n collapse();\n }\n });\n\n /**\n * Add toggle to the locked list\n */\n scope.$on('msNav::pushToLockedList', function ()\n {\n // Set expanded item on main nav controller\n MsNavCtrl.setLockedItem(iElement, scope);\n });\n\n /*---------------------*/\n /* Internal functions */\n /*---------------------*/\n\n /**\n * Is element collapsed\n *\n * @returns {bool}\n */\n function isCollapsed()\n {\n return iElement.attr('collapsed') === 'true';\n }\n\n /**\n * Is element expanded\n *\n * @returns {bool}\n */\n function isExpanded()\n {\n return !isCollapsed();\n }\n\n /**\n * Expand the toggle\n *\n * @returns $promise\n */\n function expand()\n {\n // Create a new deferred object\n var deferred = $q.defer();\n\n // If the menu item is already expanded, do nothing..\n if ( isExpanded() )\n {\n // Reject the deferred object\n deferred.reject({'error': true});\n\n // Return the promise\n return deferred.promise;\n }\n\n // Set element attr\n iElement.attr('collapsed', false);\n\n // Grab the element to expand\n var elementToExpand = angular.element(iElement.find('ms-nav-toggle-items')[0]);\n\n // Move the element out of the dom flow and\n // make it block so we can get its height\n elementToExpand.css({\n 'position' : 'absolute',\n 'visibility': 'hidden',\n 'display' : 'block',\n 'height' : 'auto'\n });\n\n // Grab the height\n var height = elementToExpand[0].offsetHeight;\n\n // Reset the style modifications\n elementToExpand.css({\n 'position' : '',\n 'visibility': '',\n 'display' : '',\n 'height' : ''\n });\n\n // Animate the height\n scope.$evalAsync(function ()\n {\n $animate.animate(elementToExpand,\n {\n 'display': 'block',\n 'height' : '0px'\n },\n {\n 'height': height + 'px'\n },\n classes.expandAnimation\n ).then(\n function ()\n {\n // Add expanded class\n elementToExpand.addClass(classes.expanded);\n\n // Clear the inline styles after animation done\n elementToExpand.css({'height': ''});\n\n // Resolve the deferred object\n deferred.resolve({'success': true});\n }\n );\n });\n\n // Return the promise\n return deferred.promise;\n }\n\n /**\n * Collapse the toggle\n *\n * @returns $promise\n */\n function collapse()\n {\n // Create a new deferred object\n var deferred = $q.defer();\n\n // If the menu item is already collapsed, do nothing..\n if ( isCollapsed() )\n {\n // Reject the deferred object\n deferred.reject({'error': true});\n\n // Return the promise\n return deferred.promise;\n }\n\n // Set element attr\n iElement.attr('collapsed', true);\n\n // Grab the element to collapse\n var elementToCollapse = angular.element(iElement.find('ms-nav-toggle-items')[0]);\n\n // Grab the height\n var height = elementToCollapse[0].offsetHeight;\n\n // Animate the height\n scope.$evalAsync(function ()\n {\n $animate.animate(elementToCollapse,\n {\n 'height': height + 'px'\n },\n {\n 'height': '0px'\n },\n classes.collapseAnimation\n ).then(\n function ()\n {\n // Remove expanded class\n elementToCollapse.removeClass(classes.expanded);\n\n // Clear the inline styles after animation done\n elementToCollapse.css({\n 'display': '',\n 'height' : ''\n });\n\n // Resolve the deferred object\n deferred.resolve({'success': true});\n }\n );\n });\n\n // Return the promise\n return deferred.promise;\n }\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('msMasonryController', msMasonryController)\n .directive('msMasonry', msMasonry)\n .directive('msMasonryItem', msMasonryItem);\n\n /** @ngInject */\n function msMasonryController($scope, $window, $mdMedia, $timeout)\n {\n var vm = this,\n defaultOpts = {\n columnCount : 5,\n respectItemOrder: false,\n reLayoutDebounce: 400,\n responsive : {\n md: 3,\n sm: 2,\n xs: 1\n }\n },\n reLayoutTimeout = true;\n\n vm.options = null;\n vm.container = [];\n vm.containerPos = '';\n vm.columnWidth = '';\n vm.items = [];\n\n // Methods\n vm.reLayout = reLayout;\n vm.initialize = initialize;\n vm.waitImagesLoaded = waitImagesLoaded;\n\n function initialize()\n {\n vm.options = !vm.options ? defaultOpts : angular.extend(defaultOpts, vm.options);\n\n\n watchContainerResize();\n }\n\n $scope.$on('msMasonry:relayout', function ()\n {\n reLayout();\n });\n\n function waitImagesLoaded(element, callback)\n {\n if ( typeof imagesLoaded !== 'undefined' )\n {\n var imgLoad = $window.imagesLoaded(element);\n\n imgLoad.on('done', function ()\n {\n callback();\n });\n }\n else\n {\n callback();\n }\n }\n\n function watchContainerResize()\n {\n $scope.$watch(\n function ()\n {\n return vm.container.width();\n },\n function (newValue, oldValue)\n {\n if ( newValue !== oldValue )\n {\n reLayout();\n }\n }\n );\n }\n\n function reLayout()\n {\n // Debounce for relayout\n if ( reLayoutTimeout )\n {\n $timeout.cancel(reLayoutTimeout);\n }\n\n reLayoutTimeout = $timeout(function ()\n {\n start();\n\n $scope.$broadcast('msMasonry:relayoutFinished');\n\n }, vm.options.reLayoutDebounce);\n\n // Start relayout\n function start()\n {\n vm.containerPos = vm.container[0].getBoundingClientRect();\n\n updateColumnOptions();\n\n $scope.$broadcast('msMasonry:relayoutStarted');\n\n vm.items = vm.container.find('ms-masonry-item');\n\n //initialize lastRowBottomArr\n var referenceArr = Array.apply(null, new Array(vm.columnCount)).map(function ()\n {\n return 0;\n });\n\n // set item positions\n for ( var i = 0; i < vm.items.length; i++ )\n {\n var item = vm.items[i],\n xPos, yPos, column, refTop;\n\n item = angular.element(item);\n\n if ( item.scope() )\n {\n item.scope().$broadcast('msMasonryItem:startReLayout');\n }\n\n item.css({'width': vm.columnWidth});\n\n if ( vm.options.respectItemOrder )\n {\n column = i % vm.columnCount;\n refTop = referenceArr[column];\n }\n else\n {\n refTop = Math.min.apply(Math, referenceArr);\n column = referenceArr.indexOf(refTop);\n }\n\n referenceArr[column] = refTop + item[0].getBoundingClientRect().height;\n\n xPos = Math.round(column * vm.columnWidth);\n yPos = refTop;\n\n item.css({'transform': 'translate3d(' + xPos + 'px,' + yPos + 'px,0px)'});\n item.addClass('placed');\n\n if ( item.scope() )\n {\n item.scope().$broadcast('msMasonryItem:finishReLayout');\n }\n }\n }\n }\n\n function updateColumnOptions()\n {\n vm.columnCount = vm.options.columnCount;\n\n if ( $mdMedia('gt-md') )\n {\n vm.columnCount = vm.options.columnCount;\n }\n else if ( $mdMedia('md') )\n {\n vm.columnCount = (vm.columnCount > vm.options.responsive.md ? vm.options.responsive.md : vm.columnCount);\n }\n else if ( $mdMedia('sm') )\n {\n vm.columnCount = (vm.columnCount > vm.options.responsive.sm ? vm.options.responsive.sm : vm.columnCount);\n }\n else\n {\n vm.columnCount = vm.options.responsive.xs;\n }\n\n vm.columnWidth = vm.containerPos.width / vm.columnCount;\n\n }\n }\n\n /** @ngInject */\n function msMasonry($timeout)\n {\n return {\n restrict : 'AEC',\n controller: 'msMasonryController',\n compile : compile\n };\n function compile(element, attributes)\n {\n return {\n pre : function preLink(scope, iElement, iAttrs, controller)\n {\n controller.options = angular.fromJson(attributes.options || '{}');\n controller.container = element;\n },\n post: function postLink(scope, iElement, iAttrs, controller)\n {\n $timeout(function ()\n {\n controller.initialize();\n });\n }\n };\n }\n }\n\n /** @ngInject */\n function msMasonryItem()\n {\n return {\n restrict: 'AEC',\n require : '^msMasonry',\n priority: 1,\n link : link\n };\n\n function link(scope, element, attributes, controller)\n {\n controller.waitImagesLoaded(element, function ()\n {\n controller.reLayout();\n\n });\n\n scope.$on('msMasonryItem:finishReLayout', function ()\n {\n scope.$watch(function ()\n {\n return element.height();\n }, function (newVal, oldVal)\n {\n if ( newVal !== oldVal )\n {\n controller.reLayout();\n }\n });\n });\n\n element.on('$destroy', function ()\n {\n controller.reLayout();\n });\n }\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .directive('msInfoBar', msInfoBarDirective);\n\n /** @ngInject */\n function msInfoBarDirective($document)\n {\n return {\n restrict : 'E',\n scope : {},\n transclude : true,\n templateUrl: 'app/core/directives/ms-info-bar/ms-info-bar.html',\n link : function (scope, iElement)\n {\n var body = $document.find('body'),\n bodyClass = 'ms-info-bar-active';\n\n // Add body class\n body.addClass(bodyClass);\n\n /**\n * Remove the info bar\n */\n function removeInfoBar()\n {\n body.removeClass(bodyClass);\n iElement.remove();\n scope.$destroy();\n }\n\n // Expose functions\n scope.removeInfoBar = removeInfoBar;\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('MsFormWizardController', MsFormWizardController)\n .directive('msFormWizard', msFormWizardDirective)\n .directive('msFormWizardForm', msFormWizardFormDirective);\n\n /** @ngInject */\n function MsFormWizardController()\n {\n var vm = this;\n\n // Data\n vm.forms = [];\n vm.selectedIndex = 0;\n\n // Methods\n vm.registerForm = registerForm;\n\n vm.previousStep = previousStep;\n vm.nextStep = nextStep;\n vm.firstStep = firstStep;\n vm.lastStep = lastStep;\n\n vm.totalSteps = totalSteps;\n vm.isFirstStep = isFirstStep;\n vm.isLastStep = isLastStep;\n\n vm.currentStepInvalid = currentStepInvalid;\n vm.previousStepInvalid = previousStepInvalid;\n vm.formsIncomplete = formsIncomplete;\n vm.resetForm = resetForm;\n\n //////////\n\n /**\n * Register form\n *\n * @param form\n */\n function registerForm(form)\n {\n vm.forms.push(form);\n }\n\n /**\n * Go to previous step\n */\n function previousStep()\n {\n if ( isFirstStep() )\n {\n return;\n }\n\n vm.selectedIndex--;\n }\n\n /**\n * Go to next step\n */\n function nextStep()\n {\n if ( isLastStep() )\n {\n return;\n }\n\n vm.selectedIndex++;\n }\n\n /**\n * Go to first step\n */\n function firstStep()\n {\n vm.selectedIndex = 0;\n }\n\n /**\n * Go to last step\n */\n function lastStep()\n {\n vm.selectedIndex = totalSteps() - 1;\n }\n\n /**\n * Return total steps\n *\n * @returns {int}\n */\n function totalSteps()\n {\n return vm.forms.length;\n }\n\n /**\n * Is first step?\n *\n * @returns {boolean}\n */\n function isFirstStep()\n {\n return vm.selectedIndex === 0;\n }\n\n /**\n * Is last step?\n *\n * @returns {boolean}\n */\n function isLastStep()\n {\n return vm.selectedIndex === totalSteps() - 1;\n }\n\n /**\n * Is current step invalid?\n *\n * @returns {boolean}\n */\n function currentStepInvalid()\n {\n return angular.isDefined(vm.forms[vm.selectedIndex]) && vm.forms[vm.selectedIndex].$invalid;\n }\n\n /**\n * Is previous step invalid?\n *\n * @returns {boolean}\n */\n function previousStepInvalid()\n {\n return vm.selectedIndex > 0 && angular.isDefined(vm.forms[vm.selectedIndex - 1]) && vm.forms[vm.selectedIndex - 1].$invalid;\n }\n\n /**\n * Check if there is any incomplete forms\n *\n * @returns {boolean}\n */\n function formsIncomplete()\n {\n for ( var x = 0; x < vm.forms.length; x++ )\n {\n if ( vm.forms[x].$invalid )\n {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Reset form\n */\n function resetForm()\n {\n // Go back to the first step\n vm.selectedIndex = 0;\n\n // Make sure all the forms are back in the $pristine & $untouched status\n for ( var x = 0; x < vm.forms.length; x++ )\n {\n vm.forms[x].$setPristine();\n vm.forms[x].$setUntouched();\n }\n }\n }\n\n /** @ngInject */\n function msFormWizardDirective()\n {\n return {\n restrict : 'E',\n scope : true,\n controller: 'MsFormWizardController as msWizard',\n compile : function (tElement)\n {\n tElement.addClass('ms-form-wizard');\n\n return function postLink()\n {\n\n };\n }\n };\n }\n\n /** @ngInject */\n function msFormWizardFormDirective()\n {\n return {\n restrict: 'A',\n require : ['form', '^msFormWizard'],\n compile : function (tElement)\n {\n tElement.addClass('ms-form-wizard-form');\n\n return function postLink(scope, iElement, iAttrs, ctrls)\n {\n var formCtrl = ctrls[0],\n MsFormWizardCtrl = ctrls[1];\n\n MsFormWizardCtrl.registerForm(formCtrl);\n };\n }\n };\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .directive('msCard', msCardDirective);\n\n /** @ngInject */\n function msCardDirective()\n {\n return {\n restrict: 'E',\n scope : {\n templatePath: '=template',\n card : '=ngModel',\n vm : '=viewModel'\n },\n template: '
',\n compile : function (tElement)\n {\n // Add class\n tElement.addClass('ms-card');\n\n return function postLink(scope, iElement)\n {\n // Methods\n scope.cardTemplateLoaded = cardTemplateLoaded;\n\n //////////\n\n /**\n * Emit cardTemplateLoaded event\n */\n function cardTemplateLoaded()\n {\n scope.$emit('msCard::cardTemplateLoaded', iElement);\n }\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .provider('msDatepickerFixConfig', msDatepickerFixConfigProvider)\n .directive('msDatepickerFix', msDatepickerFix);\n\n /** @ngInject */\n function msDatepickerFixConfigProvider()\n {\n var service = this;\n\n // Default configuration\n var defaultConfig = {\n // To view\n formatter: function (val)\n {\n if ( !val )\n {\n return '';\n }\n\n return val === '' ? val : new Date(val);\n },\n // To model\n parser : function (val)\n {\n if ( !val )\n {\n return '';\n }\n\n return moment(val).add(moment(val).utcOffset(), 'm').toDate();\n }\n };\n\n // Methods\n service.config = config;\n\n //////////\n\n /**\n * Extend default configuration with the given one\n *\n * @param configuration\n */\n function config(configuration)\n {\n defaultConfig = angular.extend({}, defaultConfig, configuration);\n }\n\n /**\n * Service\n */\n service.$get = function ()\n {\n return defaultConfig;\n };\n }\n\n /** @ngInject */\n function msDatepickerFix(msDatepickerFixConfig)\n {\n return {\n require : 'ngModel',\n priority: 1,\n link : function (scope, elem, attrs, ngModel)\n {\n ngModel.$formatters.push(msDatepickerFixConfig.formatter); // to view\n ngModel.$parsers.push(msDatepickerFixConfig.parser); // to model\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .controller('MsThemeOptionsController', MsThemeOptionsController)\n .directive('msThemeOptions', msThemeOptions);\n\n /** @ngInject */\n function MsThemeOptionsController($cookies, fuseTheming)\n {\n var vm = this;\n\n // Data\n vm.themes = fuseTheming.themes;\n\n vm.layoutModes = [\n {\n label: 'Boxed',\n value: 'boxed'\n },\n {\n label: 'Wide',\n value: 'wide'\n }\n ];\n vm.layoutStyles = [\n {\n label : 'Vertical Navigation',\n value : 'verticalNavigation',\n figure: '/assets/images/theme-options/vertical-nav.jpg'\n },\n {\n label : 'Vertical Navigation with Fullwidth Toolbar',\n value : 'verticalNavigationFullwidthToolbar',\n figure: '/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg'\n },\n {\n label : 'Vertical Navigation with Fullwidth Toolbar 2',\n value : 'verticalNavigationFullwidthToolbar2',\n figure: '/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg'\n },\n {\n label : 'Horizontal Navigation',\n value : 'horizontalNavigation',\n figure: '/assets/images/theme-options/horizontal-nav.jpg'\n },\n {\n label : 'Content with Toolbar',\n value : 'contentWithToolbar',\n figure: '/assets/images/theme-options/content-with-toolbar.jpg'\n },\n {\n label : 'Content Only',\n value : 'contentOnly',\n figure: '/assets/images/theme-options/content-only.jpg'\n },\n ];\n\n vm.layoutMode = 'wide';\n vm.layoutStyle = $cookies.get('layoutStyle') || 'verticalNavigation';\n\n // Methods\n vm.setActiveTheme = setActiveTheme;\n vm.getActiveTheme = getActiveTheme;\n vm.updateLayoutMode = updateLayoutMode;\n vm.updateLayoutStyle = updateLayoutStyle;\n\n //////////\n\n /**\n * Set active theme\n *\n * @param themeName\n */\n function setActiveTheme(themeName)\n {\n fuseTheming.setActiveTheme(themeName);\n }\n\n /**\n * Get active theme\n *\n * @returns {service.themes.active|{name, theme}}\n */\n function getActiveTheme()\n {\n return fuseTheming.themes.active;\n }\n\n /**\n * Update layout mode\n */\n function updateLayoutMode()\n {\n var bodyEl = angular.element('body');\n\n // Update class on body element\n bodyEl.toggleClass('boxed', (vm.layoutMode === 'boxed'));\n }\n\n /**\n * Update layout style\n */\n function updateLayoutStyle()\n {\n // Update the cookie\n $cookies.put('layoutStyle', vm.layoutStyle);\n\n // Reload the page to apply the changes\n location.reload();\n }\n }\n\n /** @ngInject */\n function msThemeOptions($mdSidenav)\n {\n return {\n restrict : 'E',\n scope : {},\n controller : 'MsThemeOptionsController as vm',\n templateUrl: 'app/core/theme-options/theme-options.html',\n compile : function (tElement)\n {\n tElement.addClass('ms-theme-options');\n\n return function postLink(scope)\n {\n /**\n * Toggle options sidenav\n */\n function toggleOptionsSidenav()\n {\n // Toggle the fuse theme options panel\n $mdSidenav('fuse-theme-options').toggle();\n }\n\n // Expose the toggle function\n scope.toggleOptionsSidenav = toggleOptionsSidenav;\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .service('fuseTheming', fuseThemingService);\n\n /** @ngInject */\n function fuseThemingService($cookies, $log, $mdTheming)\n {\n var service = {\n getRegisteredPalettes: getRegisteredPalettes,\n getRegisteredThemes : getRegisteredThemes,\n setActiveTheme : setActiveTheme,\n setThemesList : setThemesList,\n themes : {\n list : {},\n active: {\n 'name' : '',\n 'theme': {}\n }\n }\n };\n\n return service;\n\n //////////\n\n /**\n * Get registered palettes\n *\n * @returns {*}\n */\n function getRegisteredPalettes()\n {\n return $mdTheming.PALETTES;\n }\n\n /**\n * Get registered themes\n *\n * @returns {*}\n */\n function getRegisteredThemes()\n {\n return $mdTheming.THEMES;\n }\n\n /**\n * Set active theme\n *\n * @param themeName\n */\n function setActiveTheme(themeName)\n {\n // If theme does not exist, fallback to the default theme\n if ( angular.isUndefined(service.themes.list[themeName]) )\n {\n // If there is no theme called \"default\"...\n if ( angular.isUndefined(service.themes.list.default) )\n {\n $log.error('You must have at least one theme named \"default\"');\n return;\n }\n\n $log.warn('The theme \"' + themeName + '\" does not exist! Falling back to the \"default\" theme.');\n\n // Otherwise set theme to default theme\n service.themes.active.name = 'default';\n service.themes.active.theme = service.themes.list.default;\n $cookies.put('selectedTheme', service.themes.active.name);\n\n return;\n }\n\n service.themes.active.name = themeName;\n service.themes.active.theme = service.themes.list[themeName];\n $cookies.put('selectedTheme', themeName);\n }\n\n /**\n * Set available themes list\n *\n * @param themeList\n */\n function setThemesList(themeList)\n {\n service.themes.list = themeList;\n }\n }\n})();\n\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .config(config);\n\n /** @ngInject */\n function config($mdThemingProvider, fusePalettes, fuseThemes)\n {\n // Inject Cookies Service\n var $cookies;\n angular.injector(['ngCookies']).invoke([\n '$cookies', function (_$cookies)\n {\n $cookies = _$cookies;\n }\n ]);\n\n // Check if custom theme exist in cookies\n var customTheme = $cookies.getObject('customTheme');\n if ( customTheme )\n {\n fuseThemes['custom'] = customTheme;\n }\n\n $mdThemingProvider.alwaysWatchTheme(true);\n\n // Define custom palettes\n angular.forEach(fusePalettes, function (palette)\n {\n $mdThemingProvider.definePalette(palette.name, palette.options);\n });\n\n // Register custom themes\n angular.forEach(fuseThemes, function (theme, themeName)\n {\n $mdThemingProvider.theme(themeName)\n .primaryPalette(theme.primary.name, theme.primary.hues)\n .accentPalette(theme.accent.name, theme.accent.hues)\n .warnPalette(theme.warn.name, theme.warn.hues)\n .backgroundPalette(theme.background.name, theme.background.hues);\n });\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n var fuseThemes = {\n default :{\n primary : {\n name: 'grey',\n hues: {\n 'default': '700',\n 'hue-1' : '500',\n 'hue-2' : '600',\n 'hue-3' : '400'\n }\n },\n accent : {\n name: 'grey',\n hues: {\n 'default': '50',\n 'hue-1' : '300',\n 'hue-2' : '500',\n 'hue-3' : '900'\n }\n },\n warn : {\n name: 'bizon-red',\n hues: {\n 'default': '700',\n 'hue-1' : '50',\n 'hue-2' : '200',\n 'hue-3' : '300'\n } \n },\n background: {\n name: 'grey',\n hues: {\n 'default': '50',\n 'hue-1' : 'A100',\n 'hue-2' : '100',\n 'hue-3' : '300'\n }\n }\n },\n 'bizon-red' :{\n primary : {\n name: 'grey',\n hues: {\n 'default': '700',\n 'hue-1' : '500',\n 'hue-2' : '600',\n 'hue-3' : '400'\n }\n },\n accent : {\n name: 'bizon-red',\n hues: {\n 'default': '700',\n 'hue-1' : '300',\n 'hue-2' : '500',\n 'hue-3' : '900'\n }\n },\n warn : {\n name: 'bizon-orange',\n hues: {\n 'default': '600',\n 'hue-1' : '200',\n 'hue-2' : '300',\n 'hue-3' : '900'\n } \n },\n background: {\n name: 'grey'\n }\n }, \n 'bizon-white' :{\n primary : {\n name: 'grey',\n hues: {\n 'default': '50',\n 'hue-1' : '500',\n 'hue-2' : '600',\n 'hue-3' : '400'\n }\n },\n accent : {\n name: 'bizon-red',\n hues: {\n 'default': '700',\n 'hue-1' : '300',\n 'hue-2' : '500',\n 'hue-3' : '900'\n }\n },\n warn : {\n name: 'bizon-orange',\n hues: {\n 'default': '600',\n 'hue-1' : '200',\n 'hue-2' : '300',\n 'hue-3' : '900'\n } \n },\n background: {\n name: 'grey',\n hues: {\n 'default': '50',\n 'hue-1' : '500',\n 'hue-2' : '600',\n 'hue-3' : '400'\n } \n }\n }, \n 'bizon-orange' :{\n primary : {\n name: 'grey',\n hues: {\n 'default': '700',\n 'hue-1' : '500',\n 'hue-2' : '600',\n 'hue-3' : '400'\n }\n },\n accent : {\n name: 'bizon-orange',\n hues: {\n 'default': '700',\n 'hue-1' : '300',\n 'hue-2' : '500',\n 'hue-3' : '900'\n }\n },\n warn : {\n name: 'red',\n hues: {\n 'default': '600',\n 'hue-1' : '200',\n 'hue-2' : '300',\n 'hue-3' : '900'\n } \n },\n background: {\n name: 'grey',\n hues: {\n 'default': '50',\n 'hue-1' : 'A100',\n 'hue-2' : '100',\n 'hue-3' : '300'\n }\n }\n }, \n 'bizon-green' :{\n primary : {\n name: 'green',\n hues: {\n 'default': '300',\n 'hue-1' : '500',\n 'hue-2' : '600',\n 'hue-3' : '400'\n }\n },\n accent : {\n name: 'red',\n hues: {\n 'default': '300',\n 'hue-1' : '300',\n 'hue-2' : '500',\n 'hue-3' : '900'\n }\n },\n warn : {\n name: 'cyan',\n hues: {\n 'default': '600',\n 'hue-1' : '200',\n 'hue-2' : '300',\n 'hue-3' : '900'\n } \n },\n background: {\n name: 'grey',\n hues: {\n 'default': '50',\n 'hue-1' : 'A100',\n 'hue-2' : '100',\n 'hue-3' : '300'\n }\n }\n }, \n 'bizon-blue' :{\n primary : {\n name: 'bizon-blue',\n hues: {\n 'default': '400',\n 'hue-1' : '500',\n 'hue-2' : '600',\n 'hue-3' : '400'\n }\n },\n accent : {\n name: 'bizon-purple',\n hues: {\n 'default': '700',\n 'hue-1' : '300',\n 'hue-2' : '500',\n 'hue-3' : '900'\n }\n },\n warn : {\n name: 'red',\n hues: {\n 'default': '600',\n 'hue-1' : '200',\n 'hue-2' : '300',\n 'hue-3' : '900'\n } \n },\n background: {\n name: 'grey',\n hues: {\n 'default': '50',\n 'hue-1' : 'A100',\n 'hue-2' : '100',\n 'hue-3' : '300'\n }\n }\n }, \n 'bizon-black': {\n primary : {\n name: 'black',\n hues: {\n 'default': 'A700',\n 'hue-1' : '600',\n 'hue-2' : '500',\n 'hue-3' : '400'\n }\n },\n accent : {\n name: 'black',\n hues: {\n 'default': '50',\n 'hue-1' : '100',\n 'hue-2' : '200',\n 'hue-3' : '300'\n }\n },\n warn : {\n name: 'red'\n },\n background: {\n name: 'black',\n hues: {\n 'default': 'A700',\n 'hue-1' : '700',\n 'hue-2' : '600',\n 'hue-3' : '500'\n }\n } \n }\n };\n\n angular\n .module('app.core')\n .constant('fuseThemes', fuseThemes);\n})();\n(function () {\n 'use strict';\n\n var fusePalettes = [\n /*{\n name: 'fuse-blue',\n options: {\n '50': '#ebf1fa',\n '100': '#c2d4ef',\n '200': '#9ab8e5',\n '300': '#78a0dc',\n '400': '#5688d3',\n '500': '#3470ca',\n '600': '#2e62b1',\n '700': '#275498',\n '800': '#21467e',\n '900': '#1a3865',\n 'A100': '#c2d4ef',\n 'A200': '#9ab8e5',\n 'A400': '#5688d3',\n 'A700': '#275498',\n 'contrastDefaultColor': 'light',\n 'contrastDarkColors': '50 100 200 A100',\n 'contrastStrongLightColors': '300 400'\n }\n },\n {\n name: 'fuse-paleblue',\n options: {\n '50': '#ececee',\n '100': '#c5c6cb',\n '200': '#9ea1a9',\n '300': '#7d818c',\n '400': '#5c616f',\n '500': '#3c4252',\n '600': '#cb3d5d', //hover on button\n '700': '#e25d7b', //all elements: buttons, bg-titles, border\n '800': '#262933',\n '900': '#1e2129',\n 'A100': '#c5c6cb',\n 'A200': '#9ea1a9',\n 'A400': '#5c616f',\n 'A700': '#2d323e',\n 'contrastDefaultColor': 'light',\n 'contrastDarkColors': '50 100 200 A100',\n 'contrastStrongLightColors': '300 400'\n }\n },*/\n {\n name: 'black',\n options: {\n '50': '#f0f0f0',\n '100': '#e0e0e0',\n '200': '#d0d0d0',\n '300': '#c0c0c0',\n '400': '#a0a0a0',\n '500': '#909090',\n '600': '#808080',\n '700': '#707070',\n '800': '#606060',\n '900': '#505050',\n 'A100': '#404040',\n 'A200': '#303030',\n 'A400': '#202020',\n 'A700': '#101010',\n 'contrastDefaultColor': 'light',\n 'contrastDarkColors': 'A700 700 600 500',\n 'contrastStrongLightColors': '300 400'\n }\n }, \n {\n name: 'bizon-red',\n options: {\n '50': '#e2ccd1', \n '100': '#e2bcc5',\n '200': '#e09fae', \n '300': '#e091a4',\n '400': '#e28a9f', \n '500': '#e28a9f', \n '600': '#e08298', \n '700': '#e05979',\n '800': '#e18a69',\n '900': '#e2496a', \n 'A100': '#e24a6e',\n 'A200': '#e03e65',\n 'A400': '#db325b', \n 'A700': '#e23860',\n 'contrastDefaultColor': 'light',\n 'contrastDarkColors': '50 100 200 A100',\n 'contrastStrongLightColors': '300 400'\n }\n },\n {\n name: 'bizon-blue',\n options: {\n '50': '#99d9e5',\n '100': '#8ed5e2',\n '200': '#7ed4e5',\n '300': '#6acee2',\n '400': '#5DCBE2',\n '500': '#50c7e0',\n '600': '#45c5e0',\n '700': '#3ac3e0',\n '800': '#2fc1e0',\n '900': '#1cb7d8',\n 'A100': '#8ed5e2',\n 'A200': '#7ed4e5',\n 'A400': '#5DCBE2',\n 'A700': '#5DCBE2',\n 'contrastDefaultColor': 'light',\n 'contrastDarkColors': '50 100 200 A100',\n 'contrastStrongLightColors': '300 400'\n }\n }, \n {\n name: 'bizon-purple',\n options: {\n '50': '#99d9e5',\n '100': '#8ed5e2',\n '200': '#7ed4e5',\n '300': '#6acee2',\n '400': '#b785e2',\n '500': '#b379e5',\n '600': '#ba8de0',\n '700': '#A55DE2',\n '800': '#aa6cdd',\n '900': '#a462db',\n 'A100': '#8ed5e2',\n 'A200': '#7ed4e5',\n 'A400': '#b785e2',\n 'A700': '#A55DE2',\n 'contrastDefaultColor': 'light',\n 'contrastDarkColors': '50 100 200 A100',\n 'contrastStrongLightColors': '300 400'\n }\n }, \n {\n name: 'bizon-orange',\n options: {\n '50': '#f7edd7', \n '100': '#f2e5c9',\n '200': '#f2dfb8', \n '300': '#efd6a2',\n '400': '#e28a9f', \n '500': '#efd192', \n '600': '#edc97d', \n '700': '#efb432',\n '800': '#e18a69',\n '900': '#f7ad0c', \n 'A100': '#efe5d0',\n 'A200': '#e0d4ba',\n 'A400': '#e0be74', \n 'A700': '#d89911',\n 'contrastDefaultColor': 'light',\n 'contrastDarkColors': '50 100 200 A100',\n 'contrastStrongLightColors': '300 400'\n }\n } \n /*,\n {\n name: 'fuse-black',\n options: {\n '100': '#282828'\n }\n }*/\n ];\n\n angular\n .module('app.core')\n .constant('fusePalettes', fusePalettes);\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .factory('fuseGenerator', fuseGeneratorService);\n\n /** @ngInject */\n function fuseGeneratorService($cookies, $log, fuseTheming)\n {\n // Storage for simplified themes object\n var themes = {};\n\n var service = {\n generate: generate,\n rgba : rgba\n };\n\n return service;\n\n //////////\n\n /**\n * Generate less variables for each theme from theme's\n * palette by using material color naming conventions\n */\n function generate()\n {\n // Get registered themes and palettes and copy\n // them so we don't modify the original objects\n var registeredThemes = angular.copy(fuseTheming.getRegisteredThemes());\n var registeredPalettes = angular.copy(fuseTheming.getRegisteredPalettes());\n\n // First, create a simplified object that stores\n // all registered themes and their colors\n\n // Iterate through registered themes\n angular.forEach(registeredThemes, function (registeredTheme)\n {\n themes[registeredTheme.name] = {};\n\n // Iterate through color types (primary, accent, warn & background)\n angular.forEach(registeredTheme.colors, function (colorType, colorTypeName)\n {\n themes[registeredTheme.name][colorTypeName] = {\n 'name' : colorType.name,\n 'levels': {\n 'default': {\n 'color' : rgba(registeredPalettes[colorType.name][colorType.hues.default].value),\n 'contrast1': rgba(registeredPalettes[colorType.name][colorType.hues.default].contrast, 1),\n 'contrast2': rgba(registeredPalettes[colorType.name][colorType.hues.default].contrast, 2),\n 'contrast3': rgba(registeredPalettes[colorType.name][colorType.hues.default].contrast, 3),\n 'contrast4': rgba(registeredPalettes[colorType.name][colorType.hues.default].contrast, 4)\n },\n 'hue1' : {\n 'color' : rgba(registeredPalettes[colorType.name][colorType.hues['hue-1']].value),\n 'contrast1': rgba(registeredPalettes[colorType.name][colorType.hues['hue-1']].contrast, 1),\n 'contrast2': rgba(registeredPalettes[colorType.name][colorType.hues['hue-1']].contrast, 2),\n 'contrast3': rgba(registeredPalettes[colorType.name][colorType.hues['hue-1']].contrast, 3),\n 'contrast4': rgba(registeredPalettes[colorType.name][colorType.hues['hue-1']].contrast, 4)\n },\n 'hue2' : {\n 'color' : rgba(registeredPalettes[colorType.name][colorType.hues['hue-2']].value),\n 'contrast1': rgba(registeredPalettes[colorType.name][colorType.hues['hue-2']].contrast, 1),\n 'contrast2': rgba(registeredPalettes[colorType.name][colorType.hues['hue-2']].contrast, 2),\n 'contrast3': rgba(registeredPalettes[colorType.name][colorType.hues['hue-2']].contrast, 3),\n 'contrast4': rgba(registeredPalettes[colorType.name][colorType.hues['hue-2']].contrast, 4)\n },\n 'hue3' : {\n 'color' : rgba(registeredPalettes[colorType.name][colorType.hues['hue-3']].value),\n 'contrast1': rgba(registeredPalettes[colorType.name][colorType.hues['hue-3']].contrast, 1),\n 'contrast2': rgba(registeredPalettes[colorType.name][colorType.hues['hue-3']].contrast, 2),\n 'contrast3': rgba(registeredPalettes[colorType.name][colorType.hues['hue-3']].contrast, 3),\n 'contrast4': rgba(registeredPalettes[colorType.name][colorType.hues['hue-3']].contrast, 4)\n }\n }\n };\n });\n });\n\n // Process themes one more time and then store them in the service for external use\n processAndStoreThemes(themes);\n\n // Iterate through simplified themes\n // object and create style variables\n var styleVars = {};\n\n // Iterate through registered themes\n angular.forEach(themes, function (theme, themeName)\n {\n styleVars = {};\n styleVars['@themeName'] = themeName;\n\n // Iterate through color types (primary, accent, warn & background)\n angular.forEach(theme, function (colorTypes, colorTypeName)\n {\n // Iterate through color levels (default, hue1, hue2 & hue3)\n angular.forEach(colorTypes.levels, function (colors, colorLevelName)\n {\n // Iterate through color name (color, contrast1, contrast2, contrast3 & contrast4)\n angular.forEach(colors, function (color, colorName)\n {\n styleVars['@' + colorTypeName + ucfirst(colorLevelName) + ucfirst(colorName)] = color;\n });\n });\n });\n\n // Render styles\n render(styleVars);\n });\n }\n\n // ---------------------------\n // INTERNAL HELPER FUNCTIONS\n // ---------------------------\n\n /**\n * Process and store themes for global use\n *\n * @param _themes\n */\n function processAndStoreThemes(_themes)\n {\n // Here we will go through every registered theme one more time\n // and try to simplify their objects as much as possible for\n // easier access to their properties.\n var themes = angular.copy(_themes);\n\n // Iterate through themes\n angular.forEach(themes, function (theme)\n {\n // Iterate through color types (primary, accent, warn & background)\n angular.forEach(theme, function (colorType, colorTypeName)\n {\n theme[colorTypeName] = colorType.levels;\n theme[colorTypeName].color = colorType.levels.default.color;\n theme[colorTypeName].contrast1 = colorType.levels.default.contrast1;\n theme[colorTypeName].contrast2 = colorType.levels.default.contrast2;\n theme[colorTypeName].contrast3 = colorType.levels.default.contrast3;\n theme[colorTypeName].contrast4 = colorType.levels.default.contrast4;\n delete theme[colorTypeName].default;\n });\n });\n\n // Store themes and set selected theme for the first time\n fuseTheming.setThemesList(themes);\n\n // Remember selected theme.\n var selectedTheme = $cookies.get('selectedTheme');\n\n if ( selectedTheme )\n {\n fuseTheming.setActiveTheme(selectedTheme);\n }\n else\n {\n fuseTheming.setActiveTheme('default');\n }\n }\n\n\n /**\n * Render css files\n *\n * @param styleVars\n */\n function render(styleVars)\n {\n var cssTemplate = '/* Content hack because they wont fix */\\n/* https://github.com/angular/material/pull/8067 */\\n[md-theme=\"@themeName\"] md-content.md-hue-1,\\nmd-content.md-@themeName-theme.md-hue-1 {\\n color: @backgroundHue1Contrast1;\\n background-color: @backgroundHue1Color;\\n}\\n\\n[md-theme=\"@themeName\"] md-content.md-hue-2,\\nmd-content.md-@themeName-theme.md-hue-2 {\\n color: @backgroundHue2Contrast1;\\n background-color: @backgroundHue2Color;\\n}\\n\\n[md-theme=\"@themeName\"] md-content.md-hue-3,\\n md-content.md-@themeName-theme.md-hue-3 {\\n color: @backgroundHue3Contrast1;\\n background-color: @backgroundHue3Color;\\n}\\n\\n/* Text Colors */\\n[md-theme=\"@themeName\"] a {\\n color: @accentDefaultColor;\\n}\\n\\n[md-theme=\"@themeName\"] .secondary-text,\\n[md-theme=\"@themeName\"] .icon {\\n color: @backgroundDefaultContrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .hint-text,\\n[md-theme=\"@themeName\"] .disabled-text {\\n color: @backgroundDefaultContrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .fade-text,\\n[md-theme=\"@themeName\"] .divider {\\n color: @backgroundDefaultContrast4;\\n}\\n\\n/* Primary */\\n[md-theme=\"@themeName\"] .md-primary-bg {\\n background-color: @primaryDefaultColor;\\n color: @primaryDefaultContrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg .secondary-text,\\n[md-theme=\"@themeName\"] .md-primary-bg .icon {\\n color: @primaryDefaultContrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg .hint-text,\\n[md-theme=\"@themeName\"] .md-primary-bg .disabled-text {\\n color: @primaryDefaultContrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg .fade-text,\\n[md-theme=\"@themeName\"] .md-primary-bg .divider {\\n color: @primaryDefaultContrast4;\\n}\\n\\n/* Primary, Hue-1 */\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-1 {\\n background-color: @primaryHue1Color;\\n color: @primaryHue1Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-1 .secondary-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-1 .icon {\\n color: @primaryHue1Contrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-1 .hint-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-1 .disabled-text {\\n color: @primaryHue1Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-1 .fade-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-1 .divider {\\n color: @primaryHue1Contrast4;\\n}\\n\\n/* Primary, Hue-2 */\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-2 {\\n background-color: @primaryHue2Color;\\n color: @primaryHue2Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-2 .secondary-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-2 .icon {\\n color: @primaryHue2Contrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-2 .hint-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-2 .disabled-text {\\n color: @primaryHue2Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-2 .fade-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-2 .divider {\\n color: @primaryHue2Contrast4;\\n}\\n\\n/* Primary, Hue-3 */\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-3 {\\n background-color: @primaryHue3Color;\\n color: @primaryHue3Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-3 .secondary-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-3 .icon {\\n color: @primaryHue3Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-3 .hint-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-3 .disabled-text {\\n color: @primaryHue3Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-3 .fade-text,\\n[md-theme=\"@themeName\"] .md-primary-bg.md-hue-3 .divider {\\n color: @primaryHue3Contrast4;\\n}\\n\\n/* Primary foreground */\\n[md-theme=\"@themeName\"] .md-primary-fg {\\n color: @primaryDefaultColor !important;\\n}\\n\\n/* Primary foreground, Hue-1 */\\n[md-theme=\"@themeName\"] .md-primary-fg.md-hue-1 {\\n color: @primaryHue1Color !important;\\n}\\n\\n/* Primary foreground, Hue-2 */\\n[md-theme=\"@themeName\"] .md-primary-fg.md-hue-2 {\\n color: @primaryHue2Color !important;\\n}\\n\\n/* Primary foreground, Hue-3 */\\n[md-theme=\"@themeName\"] .md-primary-fg.md-hue-3 {\\n color: @primaryHue3Color !important;\\n}\\n\\n/* Accent */\\n[md-theme=\"@themeName\"] .md-accent-bg {\\n background-color: @accentDefaultColor;\\n color: @accentDefaultContrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg .secondary-text,\\n[md-theme=\"@themeName\"] .md-accent-bg .icon {\\n color: @accentDefaultContrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg .hint-text,\\n[md-theme=\"@themeName\"] .md-accent-bg .disabled-text {\\n color: @accentDefaultContrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg .fade-text,\\n[md-theme=\"@themeName\"] .md-accent-bg .divider {\\n color: @accentDefaultContrast4;\\n}\\n\\n/* Accent, Hue-1 */\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-1 {\\n background-color: @accentHue1Color;\\n color: @accentHue1Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-1 .secondary-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-1 .icon {\\n color: @accentHue1Contrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-1 .hint-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-1 .disabled-text {\\n color: @accentHue1Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-1 .fade-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-1 .divider {\\n color: @accentHue1Contrast4;\\n}\\n\\n/* Accent, Hue-2 */\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-2 {\\n background-color: @accentHue2Color;\\n color: @accentHue2Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-2 .secondary-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-2 .icon {\\n color: @accentHue2Contrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-2 .hint-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-2 .disabled-text {\\n color: @accentHue2Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-2 .fade-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-2 .divider {\\n color: @accentHue2Contrast4;\\n}\\n\\n/* Accent, Hue-3 */\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-3 {\\n background-color: @accentHue3Color;\\n color: @accentHue3Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-3 .secondary-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-3 .icon {\\n color: @accentHue3Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-3 .hint-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-3 .disabled-text {\\n color: @accentHue3Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-3 .fade-text,\\n[md-theme=\"@themeName\"] .md-accent-bg.md-hue-3 .divider {\\n color: @accentHue3Contrast4;\\n}\\n\\n/* Accent foreground */\\n[md-theme=\"@themeName\"] .md-accent-fg {\\n color: @accentDefaultColor !important;\\n}\\n\\n/* Accent foreground, Hue-1 */\\n[md-theme=\"@themeName\"] .md-accent-fg.md-hue-1 {\\n color: @accentHue1Color !important;\\n}\\n\\n/* Accent foreground, Hue-2 */\\n[md-theme=\"@themeName\"] .md-accent-fg.md-hue-2 {\\n color: @accentHue2Color !important;\\n}\\n\\n/* Accent foreground, Hue-3 */\\n[md-theme=\"@themeName\"] .md-accent-fg.md-hue-3 {\\n color: @accentHue3Color !important;\\n}\\n\\n/* Warn */\\n[md-theme=\"@themeName\"] .md-warn-bg {\\n background-color: @warnDefaultColor;\\n color: @warnDefaultContrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg .secondary-text,\\n[md-theme=\"@themeName\"] .md-warn-bg .icon {\\n color: @warnDefaultContrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg .hint-text,\\n[md-theme=\"@themeName\"] .md-warn-bg .disabled-text {\\n color: @warnDefaultContrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg .fade-text,\\n[md-theme=\"@themeName\"] .md-warn-bg .divider {\\n color: @warnDefaultContrast4;\\n}\\n\\n/* Warn, Hue-1 */\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-1 {\\n background-color: @warnHue1Color;\\n color: @warnHue1Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-1 .secondary-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-1 .icon {\\n color: @warnHue1Contrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-1 .hint-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-1 .disabled-text {\\n color: @warnHue1Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-1 .fade-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-1 .divider {\\n color: @warnHue1Contrast4;\\n}\\n\\n/* Warn, Hue-2 */\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-2 {\\n background-color: @warnHue2Color;\\n color: @warnHue2Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-2 .secondary-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-2 .icon {\\n color: @warnHue2Contrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-2 .hint-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-2 .disabled-text {\\n color: @warnHue2Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-2 .fade-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-2 .divider {\\n color: @warnHue2Contrast4;\\n}\\n\\n/* Warn, Hue-3 */\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-3 {\\n background-color: @warnHue3Color;\\n color: @warnHue3Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-3 .secondary-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-3 .icon {\\n color: @warnHue3Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-3 .hint-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-3 .disabled-text {\\n color: @warnHue3Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-3 .fade-text,\\n[md-theme=\"@themeName\"] .md-warn-bg.md-hue-3 .divider {\\n color: @warnHue3Contrast4;\\n}\\n\\n/* Warn foreground */\\n[md-theme=\"@themeName\"] .md-warn-fg {\\n color: @warnDefaultColor !important;\\n}\\n\\n/* Warn foreground, Hue-1 */\\n[md-theme=\"@themeName\"] .md-warn-fg.md-hue-1 {\\n color: @warnHue1Color !important;\\n}\\n\\n/* Warn foreground, Hue-2 */\\n[md-theme=\"@themeName\"] .md-warn-fg.md-hue-2 {\\n color: @warnHue2Color !important;\\n}\\n\\n/* Warn foreground, Hue-3 */\\n[md-theme=\"@themeName\"] .md-warn-fg.md-hue-3 {\\n color: @warnHue3Color !important;\\n}\\n\\n/* Background */\\n[md-theme=\"@themeName\"] .md-background-bg {\\n background-color: @backgroundDefaultColor;\\n color: @backgroundDefaultContrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg .secondary-text,\\n[md-theme=\"@themeName\"] .md-background-bg .icon {\\n color: @backgroundDefaultContrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg .hint-text,\\n[md-theme=\"@themeName\"] .md-background-bg .disabled-text {\\n color: @backgroundDefaultContrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg .fade-text,\\n[md-theme=\"@themeName\"] .md-background-bg .divider {\\n color: @backgroundDefaultContrast4;\\n}\\n\\n/* Background, Hue-1 */\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-1 {\\n background-color: @backgroundHue1Color;\\n color: @backgroundHue1Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-1 .secondary-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-1 .icon {\\n color: @backgroundHue1Contrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-1 .hint-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-1 .disabled-text {\\n color: @backgroundHue1Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-1 .fade-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-1 .divider {\\n color: @backgroundHue1Contrast4;\\n}\\n\\n/* Background, Hue-2 */\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-2 {\\n background-color: @backgroundHue2Color;\\n color: @backgroundHue2Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-2 .secondary-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-2 .icon {\\n color: @backgroundHue2Contrast2;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-2 .hint-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-2 .disabled-text {\\n color: @backgroundHue2Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-2 .fade-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-2 .divider {\\n color: @backgroundHue2Contrast4;\\n}\\n\\n/* Background, Hue-3 */\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-3 {\\n background-color: @backgroundHue3Color;\\n color: @backgroundHue3Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-3 .secondary-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-3 .icon {\\n color: @backgroundHue3Contrast1;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-3 .hint-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-3 .disabled-text {\\n color: @backgroundHue3Contrast3;\\n}\\n\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-3 .fade-text,\\n[md-theme=\"@themeName\"] .md-background-bg.md-hue-3 .divider {\\n color: @backgroundHue3Contrast4;\\n}\\n\\n/* Background foreground */\\n[md-theme=\"@themeName\"] .md-background-fg {\\n color: @backgroundDefaultColor !important;\\n}\\n\\n/* Background foreground, Hue-1 */\\n[md-theme=\"@themeName\"] .md-background-fg.md-hue-1 {\\n color: @backgroundHue1Color !important;\\n}\\n\\n/* Background foreground, Hue-2 */\\n[md-theme=\"@themeName\"] .md-background-fg.md-hue-2 {\\n color: @backgroundHue2Color !important;\\n}\\n\\n/* Background foreground, Hue-3 */\\n[md-theme=\"@themeName\"] .md-background-fg.md-hue-3 {\\n color: @backgroundHue3Color !important;\\n}';\n\n var regex = new RegExp(Object.keys(styleVars).join('|'), 'gi');\n var css = cssTemplate.replace(regex, function (matched)\n {\n return styleVars[matched];\n });\n\n var headEl = angular.element('head');\n var styleEl = angular.element('');\n styleEl.html(css);\n headEl.append(styleEl);\n }\n\n /**\n * Convert color array to rgb/rgba\n * Also apply contrasts if needed\n *\n * @param color\n * @param _contrastLevel\n * @returns {string}\n */\n function rgba(color, _contrastLevel)\n {\n var contrastLevel = _contrastLevel || false;\n\n // Convert 255,255,255,0.XX to 255,255,255\n // According to Google's Material design specs, white primary\n // text must have opacity of 1 and we will fix that here\n // because Angular Material doesn't care about that spec\n if ( color.length === 4 && color[0] === 255 && color[1] === 255 && color[2] === 255 )\n {\n color.splice(3, 4);\n }\n\n // If contrast level provided, apply it to the current color\n if ( contrastLevel )\n {\n color = applyContrast(color, contrastLevel);\n }\n\n // Convert color array to color string (rgb/rgba)\n if ( color.length === 3 )\n {\n return 'rgb(' + color.join(',') + ')';\n }\n else if ( color.length === 4 )\n {\n return 'rgba(' + color.join(',') + ')';\n }\n else\n {\n $log.error('Invalid number of arguments supplied in the color array: ' + color.length + '\\n' + 'The array must have 3 or 4 colors.');\n }\n }\n\n /**\n * Apply given contrast level to the given color\n *\n * @param color\n * @param contrastLevel\n */\n function applyContrast(color, contrastLevel)\n {\n var contrastLevels = {\n 'white': {\n '1': '1',\n '2': '0.7',\n '3': '0.3',\n '4': '0.12'\n },\n 'black': {\n '1': '0.87',\n '2': '0.54',\n '3': '0.26',\n '4': '0.12'\n }\n };\n\n // If white\n if ( color[0] === 255 && color[1] === 255 && color[2] === 255 )\n {\n color[3] = contrastLevels.white[contrastLevel];\n }\n // If black\n else if ( color[0] === 0 && color[1] === 0 && color[2] === 0 )\n {\n color[3] = contrastLevels.black[contrastLevel];\n }\n\n return color;\n }\n\n /**\n * Uppercase first\n */\n function ucfirst(string)\n {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .factory('msUtils', msUtils);\n\n /** @ngInject */\n function msUtils($window)\n {\n // Private variables\n var mobileDetect = new MobileDetect($window.navigator.userAgent),\n browserInfo = null;\n\n var service = {\n exists : exists,\n detectBrowser: detectBrowser,\n guidGenerator: guidGenerator,\n isMobile : isMobile,\n toggleInArray: toggleInArray\n };\n\n return service;\n\n //////////\n\n /**\n * Check if item exists in a list\n *\n * @param item\n * @param list\n * @returns {boolean}\n */\n function exists(item, list)\n {\n return list.indexOf(item) > -1;\n }\n\n /**\n * Returns browser information\n * from user agent data\n *\n * Found at http://www.quirksmode.org/js/detect.html\n * but modified and updated to fit for our needs\n */\n function detectBrowser()\n {\n // If we already tested, do not test again\n if ( browserInfo )\n {\n return browserInfo;\n }\n\n var browserData = [\n {\n string : $window.navigator.userAgent,\n subString : 'Edge',\n versionSearch: 'Edge',\n identity : 'Edge'\n },\n {\n string : $window.navigator.userAgent,\n subString: 'Chrome',\n identity : 'Chrome'\n },\n {\n string : $window.navigator.userAgent,\n subString : 'OmniWeb',\n versionSearch: 'OmniWeb/',\n identity : 'OmniWeb'\n },\n {\n string : $window.navigator.vendor,\n subString : 'Apple',\n versionSearch: 'Version',\n identity : 'Safari'\n },\n {\n prop : $window.opera,\n identity: 'Opera'\n },\n {\n string : $window.navigator.vendor,\n subString: 'iCab',\n identity : 'iCab'\n },\n {\n string : $window.navigator.vendor,\n subString: 'KDE',\n identity : 'Konqueror'\n },\n {\n string : $window.navigator.userAgent,\n subString: 'Firefox',\n identity : 'Firefox'\n },\n {\n string : $window.navigator.vendor,\n subString: 'Camino',\n identity : 'Camino'\n },\n {\n string : $window.navigator.userAgent,\n subString: 'Netscape',\n identity : 'Netscape'\n },\n {\n string : $window.navigator.userAgent,\n subString : 'MSIE',\n identity : 'Explorer',\n versionSearch: 'MSIE'\n },\n {\n string : $window.navigator.userAgent,\n subString : 'Trident/7',\n identity : 'Explorer',\n versionSearch: 'rv'\n },\n {\n string : $window.navigator.userAgent,\n subString : 'Gecko',\n identity : 'Mozilla',\n versionSearch: 'rv'\n },\n {\n string : $window.navigator.userAgent,\n subString : 'Mozilla',\n identity : 'Netscape',\n versionSearch: 'Mozilla'\n }\n ];\n\n var osData = [\n {\n string : $window.navigator.platform,\n subString: 'Win',\n identity : 'Windows'\n },\n {\n string : $window.navigator.platform,\n subString: 'Mac',\n identity : 'Mac'\n },\n {\n string : $window.navigator.platform,\n subString: 'Linux',\n identity : 'Linux'\n },\n {\n string : $window.navigator.platform,\n subString: 'iPhone',\n identity : 'iPhone'\n },\n {\n string : $window.navigator.platform,\n subString: 'iPod',\n identity : 'iPod'\n },\n {\n string : $window.navigator.platform,\n subString: 'iPad',\n identity : 'iPad'\n },\n {\n string : $window.navigator.platform,\n subString: 'Android',\n identity : 'Android'\n }\n ];\n\n var versionSearchString = '';\n\n function searchString(data)\n {\n for ( var i = 0; i < data.length; i++ )\n {\n var dataString = data[i].string;\n var dataProp = data[i].prop;\n\n versionSearchString = data[i].versionSearch || data[i].identity;\n\n if ( dataString )\n {\n if ( dataString.indexOf(data[i].subString) !== -1 )\n {\n return data[i].identity;\n\n }\n }\n else if ( dataProp )\n {\n return data[i].identity;\n }\n }\n }\n\n function searchVersion(dataString)\n {\n var index = dataString.indexOf(versionSearchString);\n\n if ( index === -1 )\n {\n return;\n }\n\n return parseInt(dataString.substring(index + versionSearchString.length + 1));\n }\n\n var browser = searchString(browserData) || 'unknown-browser';\n var version = searchVersion($window.navigator.userAgent) || searchVersion($window.navigator.appVersion) || 'unknown-version';\n var os = searchString(osData) || 'unknown-os';\n\n // Prepare and store the object\n browser = browser.toLowerCase();\n version = browser + '-' + version;\n os = os.toLowerCase();\n\n browserInfo = {\n browser: browser,\n version: version,\n os : os\n };\n\n return browserInfo;\n }\n\n /**\n * Generates a globally unique id\n *\n * @returns {*}\n */\n function guidGenerator()\n {\n var S4 = function ()\n {\n return (((1 + Math.random()) * 0x10000) || 0).toString(16).substring(1);\n };\n return (S4() + S4() + S4() + S4() + S4() + S4());\n }\n\n /**\n * Return if current device is a\n * mobile device or not\n */\n function isMobile()\n {\n return mobileDetect.mobile();\n }\n\n /**\n * Toggle in array (push or splice)\n *\n * @param item\n * @param array\n */\n function toggleInArray(item, array)\n {\n if ( array.indexOf(item) === -1 )\n {\n array.push(item);\n }\n else\n {\n array.splice(array.indexOf(item), 1);\n }\n }\n }\n}());\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .provider('msApi', msApiProvider);\n\n /** @ngInject **/\n function msApiProvider()\n {\n /* ----------------- */\n /* Provider */\n /* ----------------- */\n var provider = this;\n\n // Inject the $log service\n var $log = angular.injector(['ng']).get('$log');\n\n // Data\n var baseUrl = '';\n var api = [];\n\n // Methods\n provider.setBaseUrl = setBaseUrl;\n provider.getBaseUrl = getBaseUrl;\n provider.getApiObject = getApiObject;\n provider.register = register;\n\n //////////\n\n /**\n * Set base url for API endpoints\n *\n * @param url {string}\n */\n function setBaseUrl(url)\n {\n baseUrl = url;\n }\n\n /**\n * Return the base url\n *\n * @returns {string}\n */\n function getBaseUrl()\n {\n return baseUrl;\n }\n\n /**\n * Return the api object\n *\n * @returns {object}\n */\n function getApiObject()\n {\n return api;\n }\n\n /**\n * Register API endpoint\n *\n * @param key\n * @param resource\n */\n function register(key, resource)\n {\n if ( !angular.isString(key) )\n {\n $log.error('\"path\" must be a string (eg. `dashboard.project`)');\n return;\n }\n\n if ( !angular.isArray(resource) )\n {\n $log.error('\"resource\" must be an array and it must follow $resource definition');\n return;\n }\n\n // Store the API object\n api[key] = {\n url : baseUrl + (resource[0] || ''),\n paramDefaults: resource[1] || [],\n actions : resource[2] || [],\n options : resource[3] || {}\n };\n }\n\n /* ----------------- */\n /* Service */\n /* ----------------- */\n this.$get = function ($log, $q, $resource, $rootScope)\n {\n // Data\n\n // Methods\n var service = {\n setBaseUrl: setBaseUrl,\n getBaseUrl: getBaseUrl,\n register : register,\n resolve : resolve,\n request : request\n };\n\n return service;\n\n //////////\n\n /**\n * Resolve an API endpoint\n *\n * @param action {string}\n * @param parameters {object}\n * @returns {promise|boolean}\n */\n function resolve(action, parameters)\n {\n // Emit an event\n $rootScope.$broadcast('msApi::resolveStart');\n \n var actionParts = action.split('@'),\n resource = actionParts[0],\n method = actionParts[1],\n params = parameters || {};\n\n if ( !resource || !method )\n {\n $log.error('msApi.resolve requires correct action parameter (resourceName@methodName)');\n return false;\n }\n\n // Create a new deferred object\n var deferred = $q.defer();\n\n // Get the correct resource definition from api object\n var apiObject = api[resource];\n\n if ( !apiObject )\n {\n $log.error('Resource \"' + resource + '\" is not defined in the api service!');\n deferred.reject('Resource \"' + resource + '\" is not defined in the api service!');\n }\n else\n {\n // Generate the $resource object based on the stored API object\n var resourceObject = $resource(apiObject.url, apiObject.paramDefaults, apiObject.actions, apiObject.options);\n\n // Make the call...\n resourceObject[method](params,\n\n // Success\n function (response)\n {\n deferred.resolve(response);\n\n // Emit an event\n $rootScope.$broadcast('msApi::resolveSuccess');\n },\n\n // Error\n function (response)\n {\n deferred.reject(response);\n\n // Emit an event\n $rootScope.$broadcast('msApi::resolveError');\n }\n );\n }\n\n // Return the promise\n return deferred.promise;\n }\n\n /**\n * Make a request to an API endpoint\n *\n * @param action {string}\n * @param [parameters] {object}\n * @param [success] {function}\n * @param [error] {function}\n *\n * @returns {promise|boolean}\n */\n function request(action, parameters, success, error)\n {\n // Emit an event\n $rootScope.$broadcast('msApi::requestStart');\n \n var actionParts = action.split('@'),\n resource = actionParts[0],\n method = actionParts[1],\n params = parameters || {};\n\n if ( !resource || !method )\n {\n $log.error('msApi.resolve requires correct action parameter (resourceName@methodName)');\n return false;\n }\n\n // Create a new deferred object\n var deferred = $q.defer();\n\n // Get the correct resource definition from api object\n var apiObject = api[resource];\n\n if ( !apiObject )\n {\n $log.error('Resource \"' + resource + '\" is not defined in the api service!');\n deferred.reject('Resource \"' + resource + '\" is not defined in the api service!');\n }\n else\n {\n // Generate the $resource object based on the stored API object\n var resourceObject = $resource(apiObject.url, apiObject.paramDefaults, apiObject.actions, apiObject.options);\n\n // Make the call...\n resourceObject[method](params,\n\n // SUCCESS\n function (response)\n {\n // Emit an event\n $rootScope.$broadcast('msApi::requestSuccess');\n \n // Resolve the promise\n deferred.resolve(response);\n\n // Call the success function if there is one\n if ( angular.isDefined(success) && angular.isFunction(success) )\n {\n success(response);\n }\n },\n\n // ERROR\n function (response)\n {\n // Emit an event\n $rootScope.$broadcast('msApi::requestError');\n \n // Reject the promise\n deferred.reject(response);\n\n // Call the error function if there is one\n if ( angular.isDefined(error) && angular.isFunction(error) )\n {\n error(response);\n }\n }\n );\n }\n\n // Return the promise\n return deferred.promise;\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .factory('apiResolver', apiResolverService);\n\n /** @ngInject */\n function apiResolverService($q, $log, api)\n {\n var service = {\n resolve: resolve\n };\n\n return service;\n\n //////////\n /**\n * Resolve api\n * @param action\n * @param parameters\n */\n function resolve(action, parameters)\n {\n var actionParts = action.split('@'),\n resource = actionParts[0],\n method = actionParts[1],\n params = parameters || {};\n\n if ( !resource || !method )\n {\n $log.error('apiResolver.resolve requires correct action parameter (ResourceName@methodName)');\n return false;\n }\n\n // Create a new deferred object\n var deferred = $q.defer();\n\n // Get the correct api object from api service\n var apiObject = getApiObject(resource);\n\n if ( !apiObject )\n {\n $log.error('Resource \"' + resource + '\" is not defined in the api service!');\n deferred.reject('Resource \"' + resource + '\" is not defined in the api service!');\n }\n else\n {\n apiObject[method](params,\n\n // Success\n function (response)\n {\n deferred.resolve(response);\n },\n\n // Error\n function (response)\n {\n deferred.reject(response);\n }\n );\n }\n\n // Return the promise\n return deferred.promise;\n }\n\n /**\n * Get correct api object\n *\n * @param resource\n * @returns {*}\n */\n function getApiObject(resource)\n {\n // Split the resource in case if we have a dot notated object\n var resourceParts = resource.split('.'),\n apiObject = api;\n\n // Loop through the resource parts and go all the way through\n // the api object and return the correct one\n for ( var l = 0; l < resourceParts.length; l++ )\n {\n if ( angular.isUndefined(apiObject[resourceParts[l]]) )\n {\n $log.error('Resource part \"' + resourceParts[l] + '\" is not defined!');\n apiObject = false;\n break;\n }\n\n apiObject = apiObject[resourceParts[l]];\n }\n\n if ( !apiObject )\n {\n return false;\n }\n\n return apiObject;\n }\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .filter('filterByTags', filterByTags)\n .filter('filterSingleByTags', filterSingleByTags);\n\n /** @ngInject */\n function filterByTags()\n {\n return function (items, tags)\n {\n if ( items.length === 0 || tags.length === 0 )\n {\n return items;\n }\n\n var filtered = [];\n\n items.forEach(function (item)\n {\n var match = tags.every(function (tag)\n {\n var tagExists = false;\n\n item.tags.forEach(function (itemTag)\n {\n if ( itemTag.name === tag.name )\n {\n tagExists = true;\n return;\n }\n });\n\n return tagExists;\n });\n\n if ( match )\n {\n filtered.push(item);\n }\n });\n\n return filtered;\n };\n }\n\n /** @ngInject */\n function filterSingleByTags()\n {\n return function (itemTags, tags)\n {\n if ( itemTags.length === 0 || tags.length === 0 )\n {\n return;\n }\n\n if ( itemTags.length < tags.length )\n {\n return [];\n }\n\n var filtered = [];\n\n var match = tags.every(function (tag)\n {\n var tagExists = false;\n\n itemTags.forEach(function (itemTag)\n {\n if ( itemTag.name === tag.name )\n {\n tagExists = true;\n return;\n }\n });\n\n return tagExists;\n });\n\n if ( match )\n {\n filtered.push(itemTags);\n }\n\n return filtered;\n };\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .filter('filterByPropIds', filterByPropIds);\n\n /** @ngInject */\n function filterByPropIds()\n {\n return function (items, parameter, ids)\n {\n if ( items.length === 0 || !ids || ids.length === 0 )\n {\n return items;\n }\n\n var filtered = [];\n\n for ( var i = 0; i < items.length; i++ )\n {\n var item = items[i];\n var match = false;\n\n for ( var j = 0; j < ids.length; j++ )\n {\n var id = ids[j];\n if ( item[parameter].indexOf(id) > -1 )\n {\n match = true;\n break;\n }\n }\n\n if ( match )\n {\n filtered.push(item);\n }\n\n }\n\n return filtered;\n\n };\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .filter('filterByIds', filterByIds);\n\n /** @ngInject */\n function filterByIds()\n {\n return function (items, ids)\n {\n\n if ( items.length === 0 || !ids )\n {\n return items;\n }\n\n if ( ids.length === 0 )\n {\n return [];\n }\n\n var filtered = [];\n\n for ( var i = 0; i < items.length; i++ )\n {\n var item = items[i];\n var match = false;\n\n for ( var j = 0; j < ids.length; j++ )\n {\n var id = ids[j];\n if ( item.id === id )\n {\n match = true;\n break;\n }\n }\n\n if ( match )\n {\n filtered.push(item);\n }\n\n }\n\n return filtered;\n\n };\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .filter('toTrusted', toTrustedFilter)\n .filter('htmlToPlaintext', htmlToPlainTextFilter)\n .filter('nospace', nospaceFilter)\n .filter('humanizeDoc', humanizeDocFilter);\n\n /** @ngInject */\n function toTrustedFilter($sce)\n {\n return function (value)\n {\n return $sce.trustAsHtml(value);\n };\n }\n\n /** @ngInject */\n function htmlToPlainTextFilter()\n {\n return function (text)\n {\n return String(text).replace(/<[^>]+>/gm, '');\n };\n }\n\n /** @ngInject */\n function nospaceFilter()\n {\n return function (value)\n {\n return (!value) ? '' : value.replace(/ /g, '');\n };\n }\n\n /** @ngInject */\n function humanizeDocFilter()\n {\n return function (doc)\n {\n if ( !doc )\n {\n return;\n }\n if ( doc.type === 'directive' )\n {\n return doc.name.replace(/([A-Z])/g, function ($1)\n {\n return '-' + $1.toLowerCase();\n });\n }\n return doc.label || doc.name;\n };\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .filter('altDate', altDate);\n\n /** @ngInject */\n function altDate()\n {\n return function (value)\n {\n var diff = Date.now() - new Date(value);\n\n /**\n * If in a hour\n * e.g. \"2 minutes ago\"\n */\n if ( diff < (60 * 60 * 1000) )\n {\n return moment(value).fromNow();\n }\n /*\n * If in the day\n * e.g. \"11:23\"\n */\n else if ( diff < (60 * 60 * 24 * 1000) )\n {\n return moment(value).format('HH:mm');\n }\n /*\n * If in week\n * e.g \"Tuesday\"\n */\n else if ( diff < (60 * 60 * 24 * 7 * 1000) )\n {\n return moment(value).format('dddd');\n }\n /*\n * If more than a week\n * e.g. 03/29/2016\n */\n else\n {\n return moment(value).calendar();\n }\n\n };\n }\n\n})();\n(function () {\n 'use strict';\n\n angular\n .module('app.core')\n .directive('hljs', hljsDirective);\n\n /** @ngInject */\n function hljsDirective($timeout, $q, $interpolate) {\n return {\n restrict: 'E',\n compile : function (element, attr) {\n var code;\n //No attribute? code is the content\n if (!attr.code) {\n code = element.html();\n element.empty();\n }\n\n return function (scope, element, attr) {\n\n if (attr.code) {\n // Attribute? code is the evaluation\n code = scope.$eval(attr.code);\n }\n var shouldInterpolate = scope.$eval(attr.shouldInterpolate);\n\n $q.when(code).then(function (code) {\n if (code) {\n if (shouldInterpolate) {\n code = $interpolate(code)(scope);\n }\n var contentParent = angular.element(\n '
'\n );\n element.append(contentParent);\n // Defer highlighting 1-frame to prevent GA interference...\n $timeout(function () {\n render(code, contentParent);\n }, 34, false);\n }\n });\n\n function render(contents, parent) {\n\n var codeElement = parent.find('code');\n var lines = contents.split('\\n');\n\n // Remove empty lines\n lines = lines.filter(function (line) {\n return line.trim().length;\n });\n\n // Make it so each line starts at 0 whitespace\n var firstLineWhitespace = lines[0].match(/^\\s*/)[0];\n var startingWhitespaceRegex = new RegExp('^' + firstLineWhitespace);\n lines = lines.map(function (line) {\n return line\n .replace(startingWhitespaceRegex, '')\n .replace(/\\s+$/, '');\n });\n\n var highlightedCode = hljs.highlight(attr.language || attr.lang, lines.join('\\n'), true);\n highlightedCode.value = highlightedCode.value\n .replace(/=\"\"<\\/span>/gi, '')\n .replace('', '')\n .replace('', '');\n codeElement.append(highlightedCode.value).addClass('highlight');\n }\n };\n }\n };\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .provider('fuseConfig', fuseConfigProvider);\n\n /** @ngInject */\n function fuseConfigProvider()\n {\n // Default configuration\n var fuseConfiguration = {\n 'disableCustomScrollbars' : false,\n 'disableMdInkRippleOnMobile' : true,\n 'disableCustomScrollbarsOnMobile': true\n };\n\n // Methods\n this.config = config;\n\n //////////\n\n /**\n * Extend default configuration with the given one\n *\n * @param configuration\n */\n function config(configuration)\n {\n fuseConfiguration = angular.extend({}, fuseConfiguration, configuration);\n }\n\n /**\n * Service\n */\n this.$get = function ()\n {\n var service = {\n getConfig: getConfig,\n setConfig: setConfig\n };\n\n return service;\n\n //////////\n\n /**\n * Returns a config value\n */\n function getConfig(configName)\n {\n if ( angular.isUndefined(fuseConfiguration[configName]) )\n {\n return false;\n }\n\n return fuseConfiguration[configName];\n }\n\n /**\n * Creates or updates config object\n *\n * @param configName\n * @param configValue\n */\n function setConfig(configName, configValue)\n {\n fuseConfiguration[configName] = configValue;\n }\n };\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.toolbar', [])\n .config(config);\n\n /** @ngInject */\n function config($translatePartialLoaderProvider)\n {\n $translatePartialLoaderProvider.addPart('app/toolbar');\n }\n\n\n})();\n\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.toolbar')\n .controller('ToolbarController', ToolbarController);\n\n /** @ngInject */\n function ToolbarController($rootScope, $q, $state, $timeout, $mdSidenav, $translate, $mdToast, msNavigationService)\n {\n var vm = this;\n\n // Data\n $rootScope.global = {\n search: ''\n };\n\n vm.bodyEl = angular.element('body');\n vm.userStatusOptions = [\n {\n 'title': 'Online',\n 'icon' : 'icon-checkbox-marked-circle',\n 'color': '#4CAF50'\n },\n {\n 'title': 'Away',\n 'icon' : 'icon-clock',\n 'color': '#FFC107'\n },\n {\n 'title': 'Do not Disturb',\n 'icon' : 'icon-minus-circle',\n 'color': '#F44336'\n },\n {\n 'title': 'Invisible',\n 'icon' : 'icon-checkbox-blank-circle-outline',\n 'color': '#BDBDBD'\n },\n {\n 'title': 'Offline',\n 'icon' : 'icon-checkbox-blank-circle-outline',\n 'color': '#616161'\n }\n ];\n vm.languages = {\n en: {\n 'title' : 'English',\n 'translation': 'TOOLBAR.ENGLISH',\n 'code' : 'en',\n 'flag' : 'us'\n },\n es: {\n 'title' : 'Spanish',\n 'translation': 'TOOLBAR.SPANISH',\n 'code' : 'es',\n 'flag' : 'es'\n },\n tr: {\n 'title' : 'Turkish',\n 'translation': 'TOOLBAR.TURKISH',\n 'code' : 'tr',\n 'flag' : 'tr'\n }\n };\n\n // Methods\n vm.toggleSidenav = toggleSidenav;\n vm.logout = logout;\n vm.changeLanguage = changeLanguage;\n vm.setUserStatus = setUserStatus;\n vm.toggleHorizontalMobileMenu = toggleHorizontalMobileMenu;\n vm.toggleMsNavigationFolded = toggleMsNavigationFolded;\n vm.search = search;\n vm.searchResultClick = searchResultClick;\n $rootScope.showBizon = showBizon;\n vm.goHome = function(){ $state.go('app.client.main'); }\n\n //////////\n\n init();\n\n function showBizon(){\n $rootScope.$broadcast('showBizon');\n }\n\n /**\n * Initialize\n */\n function init()\n {\n // Select the first status as a default\n vm.userStatus = vm.userStatusOptions[0];\n\n // Get the selected language directly from angular-translate module setting\n vm.selectedLanguage = vm.languages[$translate.preferredLanguage()];\n }\n\n\n /**\n * Toggle sidenav\n *\n * @param sidenavId\n */\n function toggleSidenav(sidenavId)\n {\n $mdSidenav(sidenavId).toggle();\n }\n\n /**\n * Sets User Status\n * @param status\n */\n function setUserStatus(status)\n {\n vm.userStatus = status;\n }\n\n /**\n * Logout Function\n */\n function logout()\n {\n // Do logout here..\n }\n\n /**\n * Change Language\n */\n function changeLanguage(lang)\n {\n vm.selectedLanguage = lang;\n\n /**\n * Show temporary message if user selects a language other than English\n *\n * angular-translate module will try to load language specific json files\n * as soon as you change the language. And because we don't have them, there\n * will be a lot of errors in the page potentially breaking couple functions\n * of the template.\n *\n * To prevent that from happening, we added a simple \"return;\" statement at the\n * end of this if block. If you have all the translation files, remove this if\n * block and the translations should work without any problems.\n */\n if ( lang.code !== 'en' )\n {\n var message = 'Fuse supports translations through angular-translate module, but currently we do not have any translations other than English language. If you want to help us, send us a message through ThemeForest profile page.';\n\n $mdToast.show({\n template : '
' + message + '
',\n hideDelay: 7000,\n position : 'top right',\n parent : '#content'\n });\n\n return;\n }\n\n // Change the language\n $translate.use(lang.code);\n }\n\n /**\n * Toggle horizontal mobile menu\n */\n function toggleHorizontalMobileMenu()\n {\n vm.bodyEl.toggleClass('ms-navigation-horizontal-mobile-menu-active');\n }\n\n /**\n * Toggle msNavigation folded\n */\n function toggleMsNavigationFolded()\n {\n msNavigationService.toggleFolded();\n }\n\n /**\n * Search action\n *\n * @param query\n * @returns {Promise}\n */\n function search(query)\n {\n var navigation = [],\n flatNavigation = msNavigationService.getFlatNavigation(),\n deferred = $q.defer();\n\n // Iterate through the navigation array and\n // make sure it doesn't have any groups or\n // none ui-sref items\n for ( var x = 0; x < flatNavigation.length; x++ )\n {\n if ( flatNavigation[x].uisref )\n {\n navigation.push(flatNavigation[x]);\n }\n }\n\n // If there is a query, filter the navigation;\n // otherwise we will return the entire navigation\n // list. Not exactly a good thing to do but it's\n // for demo purposes.\n if ( query )\n {\n navigation = navigation.filter(function (item)\n {\n if ( angular.lowercase(item.title).search(angular.lowercase(query)) > -1 )\n {\n return true;\n }\n });\n }\n\n // Fake service delay\n $timeout(function ()\n {\n deferred.resolve(navigation);\n }, 1000);\n\n return deferred.promise;\n }\n\n /**\n * Search result click action\n *\n * @param item\n */\n function searchResultClick(item)\n {\n // If item has a link\n if ( item.uisref )\n {\n // If there are state params,\n // use them...\n if ( item.stateParams )\n {\n $state.go(item.state, item.stateParams);\n }\n else\n {\n $state.go(item.state);\n }\n }\n }\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.quick-panel')\n .controller('QuickPanelController', QuickPanelController);\n\n /** @ngInject */\n function QuickPanelController($state,$mdSidenav,PannelData)\n {\n var vm = this;\n // Data\n vm.date = new Date();\n vm.PannelData = PannelData;\n vm.settings = {\n notify: true,\n cloud : false,\n retro : true\n };\n\n vm.navigate = function (state, params) {\n console.log('navigate ' + state);\n $mdSidenav('quick-panel').toggle();\n $state.go(state,params);\n PannelData.qvtOrderMessages();\n }\n\n PannelData.Load();\n\n /*msApi.request('quickPanel.activities@get', {},\n // Success\n function (response)\n {\n vm.activities = response.data;\n }\n );\n\n msApi.request('quickPanel.events@get', {},\n // Success\n function (response)\n {\n vm.events = response.data;\n }\n );\n\n msApi.request('quickPanel.notes@get', {},\n // Success\n function (response)\n {\n vm.notes = response.data;\n }\n );*/\n \n // Methods\n\n //////////\n }\n\n})();\n/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value \n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n(function($) {\n /**\n * polyfill for html5 form attr\n */\n\n // detect if browser supports this\n var sampleElement = $('[form]').get(0);\n var isIE11 = !(window.ActiveXObject) && \"ActiveXObject\" in window;\n if (sampleElement && window.HTMLFormElement && (sampleElement.form instanceof HTMLFormElement || sampleElement instanceof window.HTMLFormElement) && !isIE11) {\n // browser supports it, no need to fix\n return;\n }\n\n /**\n * Append a field to a form\n *\n */\n $.fn.appendField = function(data) {\n // for form only\n if (!this.is('form')) return;\n\n // wrap data\n if (!$.isArray(data) && data.name && data.value) {\n data = [data];\n }\n\n var $form = this;\n\n // attach new params\n $.each(data, function(i, item) {\n $('')\n .attr('type', 'hidden')\n .attr('name', item.name)\n .val(item.value).appendTo($form);\n });\n\n return $form;\n };\n\n /**\n * Find all input fields with form attribute point to jQuery object\n * \n */\n $('form[id]').submit(function(e) {\n // serialize data\n var data = $('[form='+ this.id + ']').serializeArray();\n // append data to form\n $(this).appendField(data);\n }).each(function() {\n var form = this,\n $fields = $('[form=' + this.id + ']');\n\n $fields.filter('button, input').filter('[type=reset],[type=submit]').click(function() {\n var type = this.type.toLowerCase();\n if (type === 'reset') {\n // reset form\n form.reset();\n // for elements outside form\n $fields.each(function() {\n this.value = this.defaultValue;\n this.checked = this.defaultChecked;\n }).filter('select').each(function() {\n $(this).find('option').each(function() {\n this.selected = this.defaultSelected;\n });\n });\n } else if (type.match(/^submit|image$/i)) {\n $(form).appendField({name: this.name, value: this.value}).submit();\n }\n });\n });\n\n\n})(jQuery);\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.navigation', ['app.common'])\n .run(run)\n .config(config);\n\n /** @ngInject */\n function config()\n {\n \n }\n\n function run($rootScope,$api,APP_SETTINGS,UTILS){\n // Activate loading indicator\n var stateChangeStartEvent = $rootScope.$on('$stateChangeStart', function (evt,to,params)\n {\n \t/*if (UTILS.isAuthenticated()) \t\t\n\t $api.users.counters.get({}, function(counters){\n\t APP_SETTINGS.Profile.Notifications = counters.Notifications;\n\t APP_SETTINGS.Profile.ChatNotifications = counters.ChatNotifications;\t \n\t APP_SETTINGS.Profile.OrderNotifications = counters.OrderNotifications;\t \n\t console.log(counters);\t \n\t })*/\n }); \t\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.navigation')\n .controller('NavigationController', NavigationController)\n .run(function($rootScope){\n // Close the mobile menu on $stateChangeSuccess\n var stateChangeStartEvent = $rootScope.$on('$stateChangeSuccess', function (evt,to,params)\n {\n console.log('$stateChangeSuccess');\n angular.element('body').removeClass('ms-navigation-horizontal-mobile-menu-active'); \n }); \n });\n\n /** @ngInject */\n function NavigationController($scope,$rootScope,APP_SETTINGS)\n {\n var vm = this;\n vm.createOrder = function(){ $rootScope.$clientDialogs.createOrderDialog(); }\n\n // Data\n vm.bodyEl = angular.element('body');\n vm.folded = false;\n vm.msScrollOptions = {\n suppressScrollX: true\n };\n\n // Methods\n vm.toggleMsNavigationFolded = toggleMsNavigationFolded;\n\n //////////\n\n /**\n * Toggle folded status\n */\n function toggleMsNavigationFolded()\n {\n vm.folded = !vm.folded;\n } \n }\n\n})();\n(function ()\n{\n 'use strict';\n\n console.log('index module');\n\n /**\n * Main module of the Fuse\n */\n angular\n .module('fuse', [\n\n // Common 3rd Party Dependencies\n 'angularDateInterceptor', \n 'ngFileUpload',\n 'LocalStorageModule',\n 'ngMask',\n 'SignalR',\n 'ngIdle',\n //'textAngular',\n //'xeditable',\n\n // Core\n 'app.core',\n\n // Navigation\n 'app.navigation',\n\n // Toolbar\n 'app.toolbar',\n\n // Quick Panel\n 'app.quick-panel',\n\n // Apps\n //'app.dashboards',\n //'app.calendar',\n 'app.common',\n 'app.controls',\n 'app.authzero',\n 'app.client'\n //'app.mail',\n //'app.chat',\n //'app.file-manager',\n //'app.gantt-chart',\n //'app.scrumboard',\n //'app.todo',\n //'app.contacts',\n //'app.notes',\n\n // Pages\n //'app.pages',\n\n // User Interface\n //'app.ui',\n\n // Components\n //'app.components'\n ]);\n})();\n\n(function ()\n{\n 'use strict';\n\n angular\n .module('fuse')\n .controller('MainController', MainController)\n .controller('CheckMobileController', CheckMobileController); \n\n /** @ngInject */\n function MainController($scope, $rootScope)\n {\n // Data\n\n //////////\n\n // Remove the splash screen\n $scope.$on('$viewContentAnimationEnded', function (event)\n {\n if ( event.targetScope.$id === $scope.$id )\n {\n $rootScope.$broadcast('msSplashScreen::remove');\n }\n });\n }\n\n function CheckMobileController($scope){\n var md = new MobileDetect(window.navigator.userAgent);\n $scope.hideInstallMobile = !md.mobile();\n $scope.closeMobileCheck = function(){\n $scope.hideInstallMobile = true; \n }\n\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .run(runBlock);\n\n /** @ngInject */\n function runBlock(msUtils, fuseGenerator, fuseConfig)\n {\n /**\n * Generate extra classes based on registered themes so we\n * can use same colors with non-angular-material elements\n */\n fuseGenerator.generate();\n\n /**\n * Disable md-ink-ripple effects on mobile\n * if 'disableMdInkRippleOnMobile' config enabled\n */\n if ( fuseConfig.getConfig('disableMdInkRippleOnMobile') && msUtils.isMobile() )\n {\n var bodyEl = angular.element('body');\n bodyEl.attr('md-no-ink', true);\n }\n\n /**\n * Put isMobile() to the html as a class\n */\n if ( msUtils.isMobile() )\n {\n angular.element('html').addClass('is-mobile');\n }\n\n /**\n * Put browser information to the html as a class\n */\n var browserInfo = msUtils.detectBrowser();\n if ( browserInfo )\n {\n var htmlClass = browserInfo.browser + ' ' + browserInfo.version + ' ' + browserInfo.os;\n angular.element('html').addClass(htmlClass);\n }\n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('app.core')\n .config(config);\n\n /** @ngInject */\n function config($ariaProvider, $logProvider, msScrollConfigProvider, fuseConfigProvider)\n {\n // Enable debug logging\n $logProvider.debugEnabled(true);\n\n /*eslint-disable */\n\n // ng-aria configuration\n $ariaProvider.config({\n tabindex: false\n });\n\n // Fuse theme configurations\n fuseConfigProvider.config({\n 'disableCustomScrollbars' : false,\n 'disableCustomScrollbarsOnMobile': true,\n 'disableMdInkRippleOnMobile' : true\n });\n\n // msScroll configuration\n msScrollConfigProvider.config({\n wheelPropagation: true\n });\n\n /*eslint-enable */\n }\n})();\n(function ()\n{\n 'use strict';\n\n console.log('index run')\n\n angular\n .module('fuse')\n .run(runBlock)\n /** @ngInject */\n function runBlock($rootScope,$timeout,$state,$api,$stateParams,$mdDialog,APP_SETTINGS,UTILS,$accountDialogs)\n {\n console.log('index runBlock') \n // 3rd Party Dependencies\n //editableThemes.default.submitTpl = '';\n //editableThemes.default.cancelTpl = '';\n\n // Activate loading indicator\n var stateChangeStartEvent = $rootScope.$on('$stateChangeStart', function (evt,to,params)\n {\n $rootScope.loadingProgress = true;\n if (to.redirectTo) {\n evt.preventDefault();\n $timeout(function(){ $state.go(to.redirectTo, params, {location: 'replace'}); });\n }\n\n if (APP_SETTINGS.Profile && UTILS.hasTag(APP_SETTINGS.Profile.Tags, 'register') && to.name != 'app.client.main')\n $timeout(function(){ \n console.log('go to continueRegistration')\n $state.go('app.client.main'); \n $accountDialogs.continueRegistration(); \n });\n if (UTILS.hasSavedSession() && UTILS.tokenExpired())\n $api.refreshToken();\n });\n\n // De-activate loading indicator\n var stateChangeSuccessEvent = $rootScope.$on('$stateChangeSuccess', function ()\n { \n $timeout(function ()\n {\n $rootScope.loadingProgress = false;\n });\n });\n\n // Store state in the root scope for easy access\n $rootScope.state = $state;\n $rootScope.stateParams = $stateParams;\n $rootScope.$mdDialog = $mdDialog;\n $rootScope.UTILS = UTILS;\n $rootScope.Math = window.Math;\n $rootScope.APP_SETTINGS = APP_SETTINGS;\n $rootScope.currentState = function (){ return $state.current.name; }\n\n // Cleanup\n $rootScope.$on('$destroy', function ()\n {\n stateChangeStartEvent();\n stateChangeSuccessEvent();\n });\n \n }\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('fuse')\n .config(routeConfig);\n\n /** @ngInject */\n function routeConfig($stateProvider, $urlRouterProvider, $locationProvider)\n {\n console.log('route config');\n\n $locationProvider.html5Mode(true);\n\n $urlRouterProvider.otherwise('/client/main');\n\n /**\n * Layout Style Switcher\n *\n * This code is here for demonstration purposes.\n * If you don't need to switch between the layout\n * styles like in the demo, you can set one manually by\n * typing the template urls into the `State definitions`\n * area and remove this code\n */\n // Inject $cookies\n var $cookies;\n\n angular.injector(['ngCookies']).invoke([\n '$cookies', function (_$cookies)\n {\n $cookies = _$cookies;\n }\n ]);\n\n // Get active layout\n var layoutStyle = /*$cookies.get('layoutStyle') ||*/ 'horizontalNavigation';\n\n var layouts = {\n verticalNavigation : {\n main : 'app/core/layouts/vertical-navigation.html',\n toolbar : 'app/toolbar/layouts/vertical-navigation/toolbar.html',\n navigation: 'app/navigation/layouts/vertical-navigation/navigation.html',\n },\n verticalNavigationFullwidthToolbar : {\n main : 'app/core/layouts/vertical-navigation-fullwidth-toolbar.html',\n toolbar : 'app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html',\n navigation: 'app/navigation/layouts/vertical-navigation/navigation.html'\n },\n verticalNavigationFullwidthToolbar2 : {\n main : 'app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html',\n toolbar : 'app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html',\n navigation: 'app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html'\n },\n horizontalNavigation: {\n main : 'app/core/layouts/horizontal-navigation.html',\n toolbar : 'app/toolbar/layouts/horizontal-navigation/toolbar.html',\n navigation: 'app/navigation/layouts/horizontal-navigation/navigation.html',\n footer : 'app/footer/footer.html'\n },\n contentOnly : {\n main : 'app/core/layouts/content-only.html',\n toolbar : '',\n navigation: ''\n },\n contentWithToolbar : {\n main : 'app/core/layouts/content-with-toolbar.html',\n toolbar : 'app/toolbar/layouts/content-with-toolbar/toolbar.html',\n navigation: ''\n }\n };\n // END - Layout Style Switcher\n console.log(layouts[layoutStyle]);\n\n // State definitions\n $stateProvider\n .state('app', {\n abstract: true,\n views : {\n 'main@' : {\n templateUrl: layouts[layoutStyle].main,\n controller : 'MainController as vm', \n resolve: {\n UTILS: function(UTILS){\n console.log('resolve UTILS');\n //if (UTILS.isAuthenticated()) \n return UTILS.init();\n }\n } \n },\n 'toolbar@app' : {\n templateUrl: layouts[layoutStyle].toolbar,\n controller : 'ToolbarController as vm'\n },\n 'navigation@app': {\n templateUrl: layouts[layoutStyle].navigation,\n controller : 'NavigationController as vm'\n },\n 'footer@app': {\n templateUrl: 'app/footer/footer.html'\n },\n 'mobile@app': {\n templateUrl: 'app/main/apps/checkmobile.html',\n controller : 'CheckMobileController as vm' \n }, \n 'quickPanel@app': {\n templateUrl: 'app/quick-panel/quick-panel.html',\n controller : 'QuickPanelController as vm'\n }\n }\n });\n }\n\n})();\n(function ()\n{\n 'use strict';\n\n console.log('index and main controller create');\n\n angular\n .module('fuse')\n .controller('IndexController', IndexController);\n\n /** @ngInject */\n function IndexController(fuseTheming,$scope,$rootScope,$timeout,$interval,UTILS)\n {\n var vm = this;\n\n // Data\n vm.themes = fuseTheming.themes;\n vm.showBizon = false;\n //////////\n vm.showBizonFunc = function(){\n vm.showBizon = true;\n $timeout(function(){\n vm.showBizon = false;\n }, 1000 ); \n }\n\n $scope.$on('showBizon', function(){\n vm.showBizonFunc();\n })\n\n $scope.$on('NewEvent', function (d,e){\n console.log('new event in index controller');\n if (e.Type == \"ClientAccept\" && e.Class == \"Order\" && UTILS.isDoer())\n $timeout( vm.showBizonFunc );\n });\n }\n\n \n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('fuse');\n})();\n\n(function ()\n{\n 'use strict';\n\n angular\n .module('fuse')\n .config(configLocale)\n .config(configIdle)\n .config(config);\n\n /** @ngInject */\n function config(/*uiGmapGoogleMapApiProvider, */ $translateProvider, $provide,$mdIconProvider)\n {\n // Put your common app configurations here\n\n // uiGmapgoogle-maps configuration\n /*uiGmapGoogleMapApiProvider.configure({\n key: 'AIzaSyAZsvWhoVzA33GHYFByGuCy1q4Ofz0D9lU',\n v : '3.exp',\n libraries: 'weather,geometry,visualization,places'\n });*/\n\n\n // Text Angular options\n/* $provide.decorator('taOptions', [\n '$delegate', function (taOptions)\n {\n taOptions.toolbar = [\n ['bold', 'italics', 'underline', 'ul', 'ol', 'quote']\n ];\n\n taOptions.classes = {\n focussed : 'focussed',\n toolbar : 'ta-toolbar',\n toolbarGroup : 'ta-group',\n toolbarButton : 'md-button',\n toolbarButtonActive: 'active',\n disabled : '',\n textEditor : 'form-control',\n htmlEditor : 'form-control'\n };\n\n return taOptions;\n }\n ]);\n\n // Text Angular tools\n $provide.decorator('taTools', [\n '$delegate', function (taTools)\n {\n taTools.quote.iconclass = 'icon-format-quote';\n taTools.bold.iconclass = 'icon-format-bold';\n taTools.italics.iconclass = 'icon-format-italic';\n taTools.underline.iconclass = 'icon-format-underline';\n taTools.strikeThrough.iconclass = 'icon-format-strikethrough';\n taTools.ul.iconclass = 'icon-format-list-bulleted';\n taTools.ol.iconclass = 'icon-format-list-numbers';\n taTools.redo.iconclass = 'icon-redo';\n taTools.undo.iconclass = 'icon-undo';\n taTools.clear.iconclass = 'icon-close-circle-outline';\n taTools.justifyLeft.iconclass = 'icon-format-align-left';\n taTools.justifyCenter.iconclass = 'icon-format-align-center';\n taTools.justifyRight.iconclass = 'icon-format-align-right';\n taTools.justifyFull.iconclass = 'icon-format-align-justify';\n taTools.indent.iconclass = 'icon-format-indent-increase';\n taTools.outdent.iconclass = 'icon-format-indent-decrease';\n taTools.html.iconclass = 'icon-code-tags';\n taTools.insertImage.iconclass = 'icon-file-image-box';\n taTools.insertLink.iconclass = 'icon-link';\n taTools.insertVideo.iconclass = 'icon-filmstrip';\n\n return taTools;\n }\n ]);*/\n\n //$provide.constant('$MD_THEME_CSS', '/**/'); \n\n $mdIconProvider.defaultFontSet('BIZON Material Icons');\n }\n /** @ngInject */\n function configLocale($translateProvider,$mdDateLocaleProvider)\n {\n var language = \"ru\";\n // Set the preferredLanguage in angular-translate\n /*$translateProvider.useLoader('$translatePartialLoader', {\n urlTemplate: '{part}/i18n/{lang}.json'\n });\n $translateProvider.useSanitizeValueStrategy('sanitize');\n\n $translateProvider.preferredLanguage(\"ru\");*/\n\n // Change moment's locale so the 'L'-format is adjusted.\n // For example the 'L'-format is DD.MM.YYYY for German\n moment.locale(language);\n\n // Set month and week names for the general $mdDateLocale service\n var localeData = moment.localeData();\n console.log(localeData);\n $mdDateLocaleProvider.months = localeData._months;\n $mdDateLocaleProvider.shortMonths = moment.monthsShort();\n $mdDateLocaleProvider.days = localeData._weekdays;\n $mdDateLocaleProvider.shortDays = localeData._weekdaysMin;\n // Optionaly let the week start on the day as defined by moment's locale data\n $mdDateLocaleProvider.firstDayOfWeek = localeData._week.dow;\n\n // Format and parse dates based on moment's 'L'-format\n // 'L'-format may later be changed\n $mdDateLocaleProvider.parseDate = function(dateString) {\n var m = moment(dateString, 'L', true);\n return m.isValid() ? m.toDate() : new Date(NaN);\n };\n\n $mdDateLocaleProvider.formatDate = function(date) {\n var m = moment(date);\n return m.isValid() ? m.format('L') : '';\n }; \n }\n\n /** @ngInject */\n function configIdle(KeepaliveProvider, IdleProvider) {\n // configure Idle settings\n IdleProvider.idle(900); // 15 min\n IdleProvider.timeout(60);\n KeepaliveProvider.interval(600); // heartbeat every 10 min\n } \n\n})();\n(function ()\n{\n 'use strict';\n\n angular\n .module('fuse')\n .factory('api', apiService);\n\n /** @ngInject */\n function apiService($resource)\n {\n /**\n * You can use this service to define your API urls. The \"api\" service\n * is designed to work in parallel with \"apiResolver\" service which you can\n * find in the \"app/core/services/api-resolver.service.js\" file.\n *\n * You can structure your API urls whatever the way you want to structure them.\n * You can either use very simple definitions, or you can use multi-dimensional\n * objects.\n *\n * Here's a very simple API url definition example:\n *\n * api.getBlogList = $resource('http://api.example.com/getBlogList');\n *\n * While this is a perfectly valid $resource definition, most of the time you will\n * find yourself in a more complex situation where you want url parameters:\n *\n * api.getBlogById = $resource('http://api.example.com/blog/:id', {id: '@id'});\n *\n * You can also define your custom methods. Custom method definitions allow you to\n * add hardcoded parameters to your API calls that you want to sent every time you\n * make that API call:\n *\n * api.getBlogById = $resource('http://api.example.com/blog/:id', {id: '@id'}, {\n * 'getFromHomeCategory' : {method: 'GET', params: {blogCategory: 'home'}}\n * });\n *\n * In addition to these definitions, you can also create multi-dimensional objects.\n * They are nothing to do with the $resource object, it's just a more convenient\n * way that we have created for you to packing your related API urls together:\n *\n * api.blog = {\n * list : $resource('http://api.example.com/blog'),\n * getById : $resource('http://api.example.com/blog/:id', {id: '@id'}),\n * getByDate: $resource('http://api.example.com/blog/:date', {id: '@date'}, {\n * get: {\n * method: 'GET',\n * params: {\n * getByDate: true\n * }\n * }\n * })\n * }\n *\n * If you look at the last example from above, we overrode the 'get' method to put a\n * hardcoded parameter. Now every time we make the \"getByDate\" call, the {getByDate: true}\n * object will also be sent along with whatever data we are sending.\n *\n * All the above methods are using standard $resource service. You can learn more about\n * it at: https://docs.angularjs.org/api/ngResource/service/$resource\n *\n * -----\n *\n * After you defined your API urls, you can use them in Controllers, Services and even\n * in the UIRouter state definitions.\n *\n * If we use the last example from above, you can do an API call in your Controllers and\n * Services like this:\n *\n * function MyController (api)\n * {\n * // Get the blog list\n * api.blog.list.get({},\n *\n * // Success\n * function (response)\n * {\n * console.log(response);\n * },\n *\n * // Error\n * function (response)\n * {\n * console.error(response);\n * }\n * );\n *\n * // Get the blog with the id of 3\n * var id = 3;\n * api.blog.getById.get({'id': id},\n *\n * // Success\n * function (response)\n * {\n * console.log(response);\n * },\n *\n * // Error\n * function (response)\n * {\n * console.error(response);\n * }\n * );\n *\n * // Get the blog with the date by using custom defined method\n * var date = 112314232132;\n * api.blog.getByDate.get({'date': date},\n *\n * // Success\n * function (response)\n * {\n * console.log(response);\n * },\n *\n * // Error\n * function (response)\n * {\n * console.error(response);\n * }\n * );\n * }\n *\n * Because we are directly using $resource service, all your API calls will return a\n * $promise object.\n *\n * --\n *\n * If you want to do the same calls in your UI Router state definitions, you need to use\n * \"apiResolver\" service we have prepared for you:\n *\n * $stateProvider.state('app.blog', {\n * url : '/blog',\n * views : {\n * 'content@app': {\n * templateUrl: 'app/main/apps/blog/blog.html',\n * controller : 'BlogController as vm'\n * }\n * },\n * resolve : {\n * Blog: function (apiResolver)\n * {\n * return apiResolver.resolve('blog.list@get');\n * }\n * }\n * });\n *\n * You can even use parameters with apiResolver service:\n *\n * $stateProvider.state('app.blog.show', {\n * url : '/blog/:id',\n * views : {\n * 'content@app': {\n * templateUrl: 'app/main/apps/blog/blog.html',\n * controller : 'BlogController as vm'\n * }\n * },\n * resolve : {\n * Blog: function (apiResolver, $stateParams)\n * {\n * return apiResolver.resolve('blog.getById@get', {'id': $stateParams.id);\n * }\n * }\n * });\n *\n * And the \"Blog\" object will be available in your BlogController:\n *\n * function BlogController(Blog)\n * {\n * var vm = this;\n *\n * // Data\n * vm.blog = Blog;\n *\n * ...\n * }\n */\n\n var api = {};\n\n // Base Url\n api.baseUrl = 'app/data/';\n\n /**\n * Here you can find all the definitions that the Demo Project requires\n *\n * If you wish to use this method, you can create your API definitions\n * in a similar way.\n */\n\n /*\n api.dashboard = {\n project : $resource(api.baseUrl + 'dashboard/project/data.json'),\n server : $resource(api.baseUrl + 'dashboard/server/data.json'),\n analytics: $resource(api.baseUrl + 'dashboard/analytics/data.json')\n };\n\n api.cards = $resource(api.baseUrl + 'cards/cards.json');\n\n api.fileManager = {\n documents: $resource(api.baseUrl + 'file-manager/documents.json')\n };\n\n api.ganttChart = {\n tasks: $resource(api.baseUrl + 'gantt-chart/tasks.json'),\n timespans : $resource(api.baseUrl + 'gantt-chart/timespans.json')\n };\n\n api.icons = $resource('assets/icons/selection.json');\n\n api.invoice = $resource(api.baseUrl + 'invoice/invoice.json');\n\n api.mail = {\n inbox: $resource(api.baseUrl + 'mail/inbox.json')\n };\n\n api.profile = {\n timeline : $resource(api.baseUrl + 'profile/timeline.json'),\n about : $resource(api.baseUrl + 'profile/about.json'),\n photosVideos: $resource(api.baseUrl + 'profile/photos-videos.json')\n };\n\n api.quickPanel = {\n activities: $resource(api.baseUrl + 'quick-panel/activities.json'),\n contacts : $resource(api.baseUrl + 'quick-panel/contacts.json'),\n events : $resource(api.baseUrl + 'quick-panel/events.json'),\n notes : $resource(api.baseUrl + 'quick-panel/notes.json')\n };\n\n api.search = {\n classic : $resource(api.baseUrl + 'search/classic.json'),\n mails : $resource(api.baseUrl + 'search/mails.json'),\n users : $resource(api.baseUrl + 'search/users.json'),\n contacts: $resource(api.baseUrl + 'search/contacts.json')\n };\n\n api.scrumboard = {\n boardList: $resource(api.baseUrl + 'scrumboard/boardList.json'),\n board : $resource(api.baseUrl + 'scrumboard/boards/:id.json')\n };\n\n api.tables = {\n employees : $resource(api.baseUrl + 'tables/employees.json'),\n employees100: $resource(api.baseUrl + 'tables/employees100.json')\n };\n\n api.timeline = {\n page1: $resource(api.baseUrl + 'timeline/page-1.json'),\n page2: $resource(api.baseUrl + 'timeline/page-2.json'),\n page3: $resource(api.baseUrl + 'timeline/page-3.json')\n };\n\n api.todo = {\n tasks: $resource(api.baseUrl + 'todo/tasks.json'),\n tags : $resource(api.baseUrl + 'todo/tags.json')\n };\n */\n\n return api;\n }\n\n})();\n(function ()\r\n{\r\n 'use strict';\r\n\r\n console.log('client module');\r\n\r\n angular\r\n .module('app.client',\r\n [\r\n //'uiGmapgoogle-maps',\r\n 'app.controls',\r\n 'app.common'\r\n ]\r\n )\r\n .config(config)\r\n .run(clientNavigation) \r\n .controller('OrdersController', OrdersController )\r\n .controller('OrderItemController', OrderItemController ) \r\n .controller('OrdersFilterController', OrdersFilterController ) \r\n .controller('PageNavigationController', PageNavigationController)\r\n .controller('TeamsController', TeamsController )\r\n .controller('TeamsFilterController', TeamsFilterController )\r\n .controller('TeamItemController', TeamItemController ) \r\n .controller('FeedbacksController', FeedbacksController ) \r\n .controller('UnitsController', UnitsController ) \r\n .controller('ProfileController', ProfileController )\r\n .controller('ContactController', ContactController ) \r\n //.service('$kladr', KladrService)\r\n .service('$clientDialogs', ClientDialogs)\r\n .service('$accountDialogs', AccountDialogs) \r\n .service('$doerDialogs', DoerDialogs) \r\n .service('$mapDialogs', MapDialogs)\r\n .run(function($rootScope,$clientDialogs,$doerDialogs,$accountDialogs, $mdToast, $mapDialogs){ \r\n $rootScope.$mapDialogs = $mapDialogs;\r\n $rootScope.$clientDialogs = $clientDialogs; \r\n $rootScope.$doerDialogs = $doerDialogs;\r\n $rootScope.$accountDialogs = $accountDialogs; \r\n //i18nService.setCurrentLang('ru'); \r\n $rootScope.showToast = function (text) {\r\n var toast = $mdToast.simple().textContent(text);\r\n toast._options.position = 'top center';\r\n $mdToast.show(toast);\r\n }\r\n });\r\n\r\n /** @ngInject */\r\n function config($stateProvider, $translatePartialLoaderProvider)\r\n {\r\n\r\n configMainStates($stateProvider);\r\n \r\n configOrdersStates($stateProvider);\r\n\r\n configCarriersStates($stateProvider);\r\n\r\n configChatStates($stateProvider);\r\n \r\n configCabinetStates($stateProvider);\r\n\r\n configSettingsStates($stateProvider); \r\n\r\n configMyOrdersStates($stateProvider);\r\n\r\n $stateProvider\r\n .state('app.client.auth', {\r\n url : '/auth',\r\n views : {\r\n 'content@app': {\r\n template: '
© 2020 Бизон.ру
\\nмаркетплэйс для перевозчиков
Наши мобильные приложения
\\\"\\\"
\\nООО «Универсал», ИНН: 7716730875, КПП: 771601001, ОГРН: 1127747169318
\\n115419, г.Москва, ул. Орджоникидзе, д.11, стр.1а, помещение VI
\\n+7 (800) 444-08-14
\");\n$templateCache.put(\"app/quick-panel/quick-panel.html\",\"\");\n$templateCache.put(\"app/core/layouts/content-only.html\",\"
\");\n$templateCache.put(\"app/core/layouts/content-with-toolbar.html\",\"
\\n
\");\n$templateCache.put(\"app/core/layouts/horizontal-navigation.html\",\"
\\n
\");\n$templateCache.put(\"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html\",\"
\");\n$templateCache.put(\"app/core/layouts/vertical-navigation-fullwidth-toolbar.html\",\"
\");\n$templateCache.put(\"app/core/layouts/vertical-navigation.html\",\"
\\n
\");\n$templateCache.put(\"app/core/theme-options/theme-options.html\",\"
\\nLayout Style:
\\n{{layoutStyle.label}}
\\n
Layout Mode:
{{layoutMode.label}}\\n
\\nColor Palette:
\");\n$templateCache.put(\"app/main/apps/checkmobile.html\",\"Перейти в мобильную версию. Также Вы можете установить мобильное приложение для Android или iOS\\n\");\n$templateCache.put(\"app/quick-panel/tabs/events.html\",\"
Новое \\n{{item.DT | date: \\'dd.MM.yy HH:mm\\'}}
{{item.Header}} #{{item.OrderId}}
{{item.Text}}
\");\n$templateCache.put(\"app/core/directives/ms-info-bar/ms-info-bar.html\",\"
\\n
\");\n$templateCache.put(\"app/core/directives/ms-material-color-picker/ms-material-color-picker.html\",\"
{{vm.selectedColor.palette}} {{vm.selectedColor.hue}} Select Color
\\n{{vm.selectedColor.palette}} {{vm.selectedColor.hue}} Select Color\\n\\n
{{palette}}
{{hue}}
\");\n$templateCache.put(\"app/core/directives/ms-search-bar/ms-search-bar.html\",\"
\\n
No Results!\\n
\\n
{{result.title}}
\\n{{result.description}}
\");\n$templateCache.put(\"app/core/directives/ms-shortcuts/ms-shortcuts.html\",\"
0\\\" ng-sortable=\\\"MsShortcuts.sortableOptions\\\">
{{shortcut.title.charAt(0)}}
{{shortcut.title}}\\n
\\nClick to add/remove shortcut
No Results!
\\n
\\n{{result.title}}
\\n
\");\n$templateCache.put(\"app/main/apps/auth0/callback.html\",\"

Выполняется вход в систему ...

\");\n$templateCache.put(\"app/main/apps/auth0/forgot-password.html\",\"
Recover your password
\\n
\\nEmail field is required
\\nEmail must be a valid e-mail address
SEND RESET LINK
\");\n$templateCache.put(\"app/main/apps/auth0/login.component.html\",\"
\\n
Вход в систему \\n{{vm.error || error}}ВходЗабыли пароль?
Напоминание пароля \\nВведите e-mail, указанный при регистрации, мы вышлем инструкции что делать дальше {{vm.form.error}}ОтправитьНе надо, я вспомнил!
Инструкция отправлена Проверьте указанный e-mail, там будет волшебная ссылка для сброса и установки нового пароляПродолжить
\\nВы выполнили вход под учетной записью {{UTILS.profile().Email}}Выход
\");\n$templateCache.put(\"app/main/apps/auth0/login.html\",\"
\\n
\\nLog in to your account
\\nEmail field is required
\\nEmail must be a valid e-mail address
Password field is required
\\n
LOG IN
\");\n$templateCache.put(\"app/main/apps/auth0/login_sms.html\",\"
Вход в систему
\\nВведите номер телефона
Введите корректный номер телефона
\\n
\\n{{vm.description}}У меня уже есть SMS - код\\nПолучить SMS - код
Введите код
\\n{{vm.description}}\\n\\nЯ не получил SMS-кодВход
\");\n$templateCache.put(\"app/main/apps/auth0/reset-password.html\",\"
F
Reset your password\\n
Email field is required
Email must be a valid e-mail address
\\n
Password field is required
\\n
Password (Confirm) field is required
\\n
RESET MY PASSWORD\\n
\");\n$templateCache.put(\"app/navigation/layouts/horizontal-navigation/navigation.html\",\"
\\n
Отправить груз\\nВход\\nПродолжить регистрацию\\n
\\n{{profile.Email}}
\\n
\\nМой кабинетМой кабинетМои заказыМои сообщенияВыход\\n
\\n 0}\\\" \\ndata-badge=\\\"{{profile.Notifications}}\\\">
\");\n$templateCache.put(\"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html\",\"\");\n$templateCache.put(\"app/navigation/layouts/vertical-navigation/navigation.html\",\"
Бизон\\n
\");\n$templateCache.put(\"app/quick-panel/tabs/activity/activity-tab.html\",\"Friends\\n\\\"{{friend.name}}\\\"
{{contact.unread}}

{{friend.message}}

{{friend.time}}

\\n
Application Servers

{{server.location}}

{{server.detail}}

\\n
User Stats
\\n{{stat.title}} ({{stat.current}} / {{stat.total}})
\");\n$templateCache.put(\"app/quick-panel/tabs/chat/chat-bizon.html\",\"
Новое \\n{{item.DT | date: \\'dd.MM.yy HH:mm\\'}}
{{item.Text}}
\");\n$templateCache.put(\"app/quick-panel/tabs/chat/chat-tab.html\",\"
Recent\\\"{{contact.name}}\\\"
{{contact.unread}}

{{contact.name}}

{{contact.lastMessage}}

\\n
Start New Chat\\\"{{contact.name}}\\\"
\\n

{{contact.name}}

\\n{{vm.chat.contact.name}}

\\n
\\\"{{vm.chat.contact.name}}\\\"
{{dialog.message}}
{{dialog.time}}
\\n
\\n
\");\n$templateCache.put(\"app/quick-panel/tabs/today/orders-tab.html\",\"
Новое \\n{{item.DT | date: \\'dd.MM.yy HH:mm\\'}}
{{item.Header}} #{{item.OrderId}}
{{item.Text}}
\");\n$templateCache.put(\"app/quick-panel/tabs/today/today-tab.html\",\"Today\\n
{{vm.date | date:\\'EEEE\\'}}
{{vm.date | date:\\'d\\'}} th \\n{{vm.date | date:\\'MMMM\\'}}
Events

{{event.title}}

\\n{{event.detail}}

Notes

{{note.title}}

\\n{{note.detail}}

\\nQuick Settings

Notifications

\\n

Cloud Sync

\\n

Retro Thrusters

\");\n$templateCache.put(\"app/toolbar/layouts/content-with-toolbar/toolbar.html\",\"
F FUSE
\\n
\\n
\\nJohn Doe
\\nMy ProfileInbox\\n{{vm.userStatus.title}}\\n{{status.title}}\\nLogout\\n
\\n\\n
{{vm.selectedLanguage.code}}\\n
{{lang.title}}\\n
\");\n$templateCache.put(\"app/toolbar/layouts/horizontal-navigation/toolbar.html\",\"
\\\"\\\"
\");\n$templateCache.put(\"app/toolbar/layouts/vertical-navigation/toolbar.html\",\"
\\n
John Doe
\\n
My ProfileInbox\\n{{vm.userStatus.title}}\\n{{status.title}}\\nLogout\\n
\\n\\n
{{vm.selectedLanguage.code}}\\n
{{lang.title}}\\n
\");\n$templateCache.put(\"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html\",\"
\\n
\\n
\\n
John Doe
My Profile\\nInbox\\n{{vm.userStatus.title}}{{status.title}}\\nLogout
\\n
\\n{{vm.selectedLanguage.code}}
\\n {{lang.title}}
\\n
\\n
\");\n$templateCache.put(\"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html\",\"
F FUSE
\\n
\\n\\n
\\n
\\n
John Doe
My Profile\\nInbox\\n{{vm.userStatus.title}}{{status.title}}\\nLogout
\\n
\\n
{{vm.selectedLanguage.code}}
\\n {{lang.title}}
\\n
\\n
\");\n$templateCache.put(\"app/core/directives/ms-navigation/templates/horizontal.html\",\"
\");\n$templateCache.put(\"app/core/directives/ms-navigation/templates/vertical.html\",\"
\\n\");\n$templateCache.put(\"app/main/apps/client/views/about.html\",\"
О сервисе

\\nСервис БИЗОН - это маркетплейс для отправителей груза и перевозчиков

\\nДоступ к сервису БИЗОН предоставляется бесплатно. Стоимость перевозки устанавливается каждым перевозчиком при отклике на заказ. Стоимость включает в себя оплату системы Платон, НДС и прочих налогов. Система БИЗОН за свои услуги взимает комиссию 10% за каждый заказ.\\n

\\nК сервису БИЗОН подключены несколько тысяч перевозчиков, каждый из которых прошел процедуру комплексной проверки на благонадежность. При этом всю юридическую и финансовую ответственность за действия перевозчиков сервис БИЗОН берет на себя, что подтверждается нашим стандартным договором и условиями.\\n

\\nКаждый перевозка, которая организована через сервис БИЗОН застрахована на сумму 5 000 000 рублей.

\\n
\");\n$templateCache.put(\"app/main/apps/client/views/carrier.cabinet.html\",\"
\\n
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/carriers.item.html\",\"
\\n
Общая информация\\n\\n{{team.Info || \\'Перевозчик не написал пока ничего о себе\\'}}Развернуть\\nДоступные автомобили ({{units[\\'@odata.count\\']}})\\nПоказать ещеРазрешительные документыОставленные отзывы
\\n\\n
\");\n$templateCache.put(\"app/main/apps/client/views/carriers.list.html\",\"
\\n
Записей не найдено
\");\n$templateCache.put(\"app/main/apps/client/views/chat.html\",\"
\\nСообщения
\");\n$templateCache.put(\"app/main/apps/client/views/client.cabinet.html\",\"
\\n
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/client.myorders.html\",\"
\\n
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/main.1.1.1.html\",\"
Найдите перевозчика за 5 минут \\n\\nБизон — это сервис, который позволяет заказчику и перевозчику найти друг друга для перевозки любого груза
Отправить груз
Я грузоперевозчик
Что вы хотите перевезти?
Выберите категорию вашего груза, а дальше мы расскажем что делать
Как это работает?\\n
\\n1. Создайте запрос на перевозку \\nВыберите тип груза и его параметры всего за пару минут
\\\"\\\"
\\n2. Получите десятки предложений Перевозчики будут предлагать свои цены и, возможно, задавать вопросы
\\\"\\\"
3. Выберите самое лучшее Перевозчики будут предлагать свои цены и, возможно, задавать вопросы
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/main.1.1.2.html\",\"
\\nНайдите заказ на перевозку за 5 минут \\nБизон — это сервис, который позволяет заказчику и перевозчику найти друг друга для перевозки любого груза
Найти заказ
Я грузоотправитель
Сейчас хотят перевезти
Тысячи запросов на самые разные перевозки грузов прямо здесь и сейчас!
Как это работает?
\\\"\\\"
1. Выберите подходящий заказ \\nВыбирите из сотен предложений те, которые подойдут именно вам
\\n
\\\"\\\"
2. Получите десятки предложений Узнайте сколько в среднем стоит данный заказ и предложите свою цену
\\n3. Перевезите груз и получите деньги! \\nПолучите деньги на ваш счет через безопасную сделку или наличными
\");\n$templateCache.put(\"app/main/apps/client/views/main.carriers.html\",\"
\\\"\\\"
{{team.Rating|number:0}}
{{team.Contact.Address.Country}}, {{team.Contact.Address.City}} \\n{{team.Feedbacks}} отзывов
{{team.Name}}
{{team.Info | limitTo: 300}}{{team.Info.length > 300 ? \\'...\\' : \\'\\'}}
\");\n$templateCache.put(\"app/main/apps/client/views/main.html\",\"
{{settings.Title}}
{{settings.Subtitle}}
\\n
\\nСейчас хотят перевезти
\\nТысячи запросов на самые разные перевозки грузов прямо здесь и сейчас!
Лучшие перевозчики
\\nА также еще много перевозчиков на любой вкус в нашем каталоге!
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/main.orders.html\",\"
Подходящих заказов не найдено
\");\n$templateCache.put(\"app/main/apps/client/views/messages.html\",\"
Сообщения
\\n
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/orders.item.html\",\"
\\n
\\n
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/orders.list.html\",\"
\\n
Подходящих заказов не найдено
\");\n$templateCache.put(\"app/main/apps/client/views/page.navigation.html\",\"\");\n$templateCache.put(\"app/main/apps/client/views/settings.html\",\"
\\n
\\nОбщая информацияУведомленияКонтактные данные\\n
\");\n$templateCache.put(\"app/main/apps/client/views/test.html\",\"
Сохранить
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/verified_email.html\",\"
\\nПодтверждение e-mail
Ваш e-mail адрес {{stateParams.email}} успешно подтвержден!\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/avatar.html\",\"
\\n
Вы можете загрузить изображение jpg или png\\n
Выбрать файл\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/bankdetails.html\",\"
ИНН
{{item.value}} ИНН: {{item.data.inn}}\\n {{item.data.address.value}}
Заполните поле
\\n
БИК вашего банка\\n
\\n{{item.value}} БИК: {{item.data.bic}} {{item.data.address.value}}
\\n
Заполните поле
\\n
Ваш номер расчетного счета
Введите 20-ти значный номер счета
Введите 20-ти значный номер счета
\");\n$templateCache.put(\"app/main/apps/controls/views/body.adv.html\",\"
Описание груза *
Понадобятся грузчики?Не нужны1 чел\\n2 чел3 чел
\");\n$templateCache.put(\"app/main/apps/controls/views/body.category.html\",\"\");\n$templateCache.put(\"app/main/apps/controls/views/body.info.html\",\"
Информация о грузе\\n
\\nОбъем груза в кубометрах м3
Вес груза в киллограммах кг
Информация о пассажирах
Количество человек\\n
Много багажа?\\n{{order.TagsHash[\\'LotOfLuggage\\'] ? \\'Да\\' : \\'Нет\\'}}
\\n
Информация о переезде
Площадь квартиры м2
\\nМного мебели?{{order.TagsHash[\\'LotOfFurniture\\'] ? \\'Да\\' : \\'Нет\\'}}
\\n
\\nПодходящий тип машины
\\nИсходя из типа и объема груза, мы рекомендуем выбрать {{vm.recmendedCat.Name}}\\n, но вы можете выбрать самостоятельно
\\\"\\\"{{item.Name}}
=models.length-1\\\">\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/body.offers.html\",\"\");\n$templateCache.put(\"app/main/apps/controls/views/carriers.filter.html\",\"
Параметры
\\nТип машины\\n
{{item.Name}}\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/change.contacts.html\",\"
ФИО
\\n
\\n
Заполните поле
Должность
Сохранить данные
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/change.email.html\",\"
Ваш e-mail\\n
Заполните поле\\n
Введите корректный e-mail адрес
\\nПароль для подтверждения
Введите пароль
Сохранить данные\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/change.password.html\",\"
Старый пароль
Введите пароль
Новый пароль
Введите пароль
\\nМинимальная длина пароля - 6 символов
\\nМаксимальная длина пароля - 15 символов
Новый пароль еще раз
Введите подтверждение пароля
\\n\\nПароль и подтверждение пароля должны совпадать
Сохранить данные\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/change.phone.html\",\"
Ваш телефон\\n
\\nВведите номер телефона
Введите корректный номер телефона\\n
ИзменитьПодтвердить
Код подтверждения
\\nВведите код подтверждения
Введите 4-х значный код
\\n
{{errorMessage}}
OK
\");\n$templateCache.put(\"app/main/apps/controls/views/chat.carrier.html\",\"
\\n
{{vm.item.Room.Last.User.Name}} Ваше сообщение \\n{{vm.item.Room.Last.DT | moment: \\'fromNow\\'}}
\\n{{vm.item.Room.Last.Text}}
{{msg.Name}} Ваше сообщение\\n Сервис БИЗОН {{msg.DT | moment: \\'fromNow\\'}}\\n
{{msg.Text}}
\\n
Развернуть\\nСвернуть\\n
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/chat.client.html\",\"
\\n
{{vm.item.Room.Last.User.Name}} \\nВаше сообщение \\n{{vm.item.Room.Last.DT | moment: \\'fromNow\\'}}
{{vm.item.Room.Last.Text}}
\\nРазвернуть
0) && send()\\\" \\nstyle=\\\"margin-left: -35px\\\">\\\"\\\" \\\"\\\" 0\\\" \\nsrc=\\\"../assets/loader.gif\\\" alt=\\\"\\\">
Общение с заказчиком\\n\\n
{{msg.User.Name}} \\nВаше сообщение Сервис БИЗОН \\n{{msg.DT | moment: \\'fromNow\\'}}
{{msg.Text}}
0) && send()\\\" \\nstyle=\\\"margin-left: -35px\\\">\\\"\\\" \\\"\\\" 0\\\" \\nsrc=\\\"../assets/loader.gif\\\" alt=\\\"\\\">
\");\n$templateCache.put(\"app/main/apps/controls/views/chat.private.carrier.html\",\"
{{msg.User.Name}} Ваше сообщение Сервис БИЗОН {{msg.DT | moment: \\'fromNow\\'}}
{{msg.Text}}\\n
\\n
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/chat.private.client.html\",\"
{{msg.User.Name}} Ваше сообщение Сервис БИЗОН {{msg.DT | moment: \\'fromNow\\'}}
{{msg.Text}}\\n
\\n
\\\"\\\" \\\"\\\"\\n
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/checkteam.html\",\"
Полное наименование {{vm.item.FullName}}
\\n
\\nКраткое наименование {{vm.item.ShortName}}
ИНН \\n{{vm.item.INN}}
ОГРН {{vm.item.OGRN}}
Юридический адрес {{vm.item.LegalAddress}}
Генеральный директор {{vm.item.Director}}\\n
Платежные реквизиты
\\n
Наименование банка {{vm.item.BankName}}
\\nРасчетный счет {{vm.item.Bill}}
\\n
БИК банка \\n{{vm.item.BIK}}
\\nРасчетный счет банка {{vm.item.BankBill}}\\n
В реквизитах есть ошибка
ИНН *
{{item.value}} ИНН: {{item.data.inn}} {{item.data.address.value}}
\\n
Заполните поле\\n
Полное наименование
\\nКраткое наименование *
ОГРН
\\n
\\nЮридический адрес
\\nГенеральный директор
\\nПлатежные реквизиты
\\nБИК банка *
{{item.value}} БИК: {{item.data.bic}} {{item.data.address.value}}
\\n
Заполните поле \\nВведите 9-ти значный код БИК
Наименование банка *
\\n
\\nРасчетный счет *
Заполните поле
Введите 20-ти значный номер расчетного счета
\\n
\\nРасчетный счет банка *
Заполните поле\\n
Введите 20-ти значный номер расчетного счета
\\nОтменить изменения
\");\n$templateCache.put(\"app/main/apps/controls/views/city.html\",\"{{city.structured_formatting.main_text}}\\n
Заполните поле
Выберите город из списка
\");\n$templateCache.put(\"app/main/apps/controls/views/contact.carrier.html\",\"
Ваше фото\\n Необязательно
Ваше ФИО *
{{item.value}}
Заполните поле\\n
Должность
Ваш e-mail *
Заполните поле
Введите корректный e-mail адрес
Пароль *\\n
Введите пароль
\\nМинимальная длина пароля - 6 символов
\\nМаксимальная длина пароля - 15 символов
Подтверждение *
Введите подтверждение пароля
\\nПароль и подтверждение пароля должны совпадать
Моб. телефон *
Введите номер телефона
\\n
Введите корректный номер телефона в формате +79111234567
\\n
Страна, регион *
Город *
\");\n$templateCache.put(\"app/main/apps/controls/views/contact.html\",\"
Ваше фото\\n Необязательно
Ваше ФИО *
{{item.value}}
Заполните поле\\n
Ваш e-mail
Заполните поле
Введите корректный e-mail адрес
Моб. телефон *
Введите номер телефона
\\n
Введите корректный номер телефона в формате +79111234567
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/country.region.html\",\"{{region.description}}
Заполните поле
Выберите регион из списка\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/docs.html\",\"
{{docType.Name}}
Загрузить документ
Удалить документ \\n{{vm.get(docType.CatId).filename}}
\");\n$templateCache.put(\"app/main/apps/controls/views/login.html\",\"
Вход в систему\\nE-mailТелефон\\n {{vm.error || error}}ПродолжитьЗабыли пароль?
\\nНапоминание пароля \\nВведите e-mail, указанный при регистрации, мы вышлем инструкции что делать дальше {{vm.form.error}}ПродолжитьНе надо, я вспомнил!
\\nИнструкция отправлена \\nПроверьте указанный e-mail, там будет волшебная ссылка для сброса и установки нового пароляПродолжить
\");\n$templateCache.put(\"app/main/apps/controls/views/login.register.html\",\"
\\n
Ваше ФИО *\\n
\\n{{item.value}}
Заполните поле
\\n
Моб. телефон *
Введите номер телефона
Введите корректный номер телефона в формате +79111234567
\");\n$templateCache.put(\"app/main/apps/controls/views/model.selector.html\",\"
\\n\\n
\\n\\\"\\\" {{item.Name}}
=models.length-1\\\">\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/order.block.html\",\"
Не опубликован Добавлено \\n{{vm.item.Created | moment: \\'fromNow\\'}}
Тип автомобиля\\n {{UTILS.getCategory(vm.item.ModelId).Name}}
\\\"\\\"
{{vm.item.Start | date: \\'dd.MM\\'}} \\n{{UTILS.vm.itemStatusText(vm.item.State)}}
\\n{{vm.item.StartPoint.City || vm.item.StartPoint.Region }}
{{vm.item.Path|number:0}} км.
\\n{{vm.item.Path|number:0}} км
\\n{{vm.item.Delivery.City || vm.item.Delivery.Region}}
0\\\">Вес: 0\\\">{{vm.item.Weight + \\' кг\\' || \\'нет данных\\'}} 0\\\">Объем: 0\\\">{{vm.item.Volume + \\' м3\\' || \\'нет данных\\'}} 0\\\">Пассажиров: 0\\\">{{vm.item.NumPersons || \\'нет данных\\'}} 0\\\">Площадь квартиры: 0\\\">{{vm.item.FlatArea + \\' м2\\' || \\'нет данных\\'}}\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/order.new.html\",\"
Отправить груз Для отправки груза заполните форму
\\n
\\n
Имя *
Заполните поле
Телефон *
Введите номер телефона
Введите корректный номер телефона в формате +79111234567
Отправить груз
Код подтверждения
\\n
Введите код подтверждения
Введите 4-х значный код
ПодтвердитьОтмена
{{error}}\\n\");\n$templateCache.put(\"app/main/apps/controls/views/order.pay.html\",\"
{{vm.item.Price}} ₽ СУММА ЗАКАЗА
\\n
ТИП ОПЛАТЫ
\");\n$templateCache.put(\"app/main/apps/controls/views/order.process.html\",\"
i\\\">\\n
i\\\" class=\\\"done-order-step-line\\\">
Ожидает оплаты
\\nГотов к отгрузке
В пути
Выполнен Оспаривается
\");\n$templateCache.put(\"app/main/apps/controls/views/order.route.block.html\",\"
Место загрузки \\n{{vm.item.StartPoint.City}} {{ vm.item.StartPoint.Street ? \\',\\' : \\'\\' }} {{vm.item.StartPoint.Street}} {{vm.item.StartPoint.House}} {{ vm.item.StartPoint.Country ? \\',\\' : \\'\\' }} \\n{{vm.item.StartPoint.Country}}, {{vm.item.StartPoint.Region}}\\n
Дальность: {{vm.item.Path | number:0}} км.
Место выгрузки \\n{{vm.item.Delivery.City}} {{ vm.item.Delivery.Street ? \\',\\' : \\'\\' }} {{vm.item.Delivery.Street}} {{vm.item.Delivery.House}} {{ vm.item.Delivery.Country ? \\',\\' : \\'\\' }} \\n{{vm.item.Delivery.Country}}, {{vm.item.Delivery.Region}}\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/order.route.html\",\"
Откуда и куда? Введите адреса в поля ниже или выберите точки на карте
\\nКогда загрузить?
\\n\\n
{{item.Address}} {{item.Country}} {{item.Region}}
\\n
{{order.StartPoint.Region}} {{order.StartPoint.City}} Выберите адрес из списка
Когда разгрузить?
{{item.showAddress}}\\n {{item.address.country}} {{item.address.county}}\\n
\\n{{order.Delivery.Region}} {{order.Delivery.City}} \\nВыберите адрес из списка
\");\n$templateCache.put(\"app/main/apps/controls/views/order.route.nomap.html\",\"
\\nКогда загрузить? *
\\nУкажите дату
\\n
{{item.Address}}\\n
\\nВыберите адрес из списка
Тип перевозки
\\n{{c.Name}}\\n
Укажите тип груза
{{item.Address}}\\n
Выберите адрес из списка\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/orders.filter.html\",\"
Параметры
Тип машины
{{item.Name}}\\n
Дата отгрузки
\\n
\\n
Показывать
Места отгрузки\\nМеста выгрузки\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/page.navigation.html\",\"
0\\\">ПОКАЗАТЬ ЕЩЕ1 3\\\" ui-sref=\\\".({page: tripointPrev })\\\">... \\n{{i}} ... 1\\\" \\nng-class=\\\"{\\'bi-active-page\\': totalPages==page}\\\" ui-sref=\\\".({page:totalPages})\\\">{{totalPages}} 1\\\" ui-sref=\\\".({page:prevPage})\\\">← ПРЕД. 1\\\" ui-sref=\\\".({page:nextPage})\\\">СЛЕД. →
\");\n$templateCache.put(\"app/main/apps/controls/views/private.html\",\"
Паспортные данные
Ваше ФИО полностью *
\\n{{item.value}}
Заполните поле
Серия и номер паспорта *
\\n
Дата выдачи * \\n
\\nБанковские данные
\\nНомер расчетного счета и БИК Вы можете узнать в своем банке. Они нужны, чтобы Вы могли вывести деньги с кошелька Бизона\\n
\\nБИК вашего банка *
{{item.value}} БИК: {{item.data.bic}} {{item.data.address.value}}
\\n
Заполните поле
Введите корректный БИК {{vm.item.BankName}}
\\n
Номер расчетного счета *
\\n
Заполните поле
\\n
Введите 20-ти значный номер расчетного счета
Номер банковской карты\\n
Введите корректный номер банковской карты
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/profile.account.html\",\"
E-mail и телефон \\nЕсли хотите изменить E-mail или телефон, то не забудьте ввести Ваш текущий пароль
\\n
\\n
Пароль \\nЧтобы не упустить ничего важного, настройте типы уведомлений и их каналы
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/profile.notifications.html\",\"
События
Новый откликУведомлять по СМС\\nУведомлять по e-mail\\nСообщения в чатеУведомлять по СМС\\nУведомлять по e-mail
\\nИзменение статуса заказаУведомлять по СМС\\nУведомлять по e-mailПополнение кошелька\\nУведомлять по СМСУведомлять по e-mail
Сохранить данные
\");\n$templateCache.put(\"app/main/apps/controls/views/route.block.html\",\"
Добавлено \\n{{vm.item.Created | moment: \\'fromNow\\'}}
{{vm.item.DeliveryId ? \\'Маршрут\\' : \\'Стоянка\\' }}
\\nc {{vm.item.Start | date: \\'dd.MM\\'}} по {{vm.item.Finish | date: \\'dd.MM\\'}}
{{vm.item.StartPoint.City}}
{{vm.item.Path|number:0}} км.
\\n{{vm.item.Path|number:0}} км
\\n{{vm.item.Delivery.City}}
\");\n$templateCache.put(\"app/main/apps/controls/views/route.plan.html\",\"
\\nЧто планируете сделать?\\nЯ планирую поехать по маршруту и готов к догрузуЯ остановлюсь на какое-то время и хочу найти заказы в этом месте\\n
\\nКогда загрузить?
\\n
\\n\\n
{{item.showAddress}} {{item.address.county}}, {{item.address.country}}
\\n
{{order.StartPoint.Country}} {{order.StartPoint.Region}}
\\n
Когда разгрузить?
\\n
{{item.Address}}\\n {{item.Country}} {{item.Region}}
\\n
{{order.Delivery.Country}} {{order.Delivery.Region}}\\n
c
по
\\n{{item.Address}} {{item.County}}, {{item.Region}}\\n
\\n{{order.StartPoint.Country}} {{order.StartPoint.Region}}
\");\n$templateCache.put(\"app/main/apps/controls/views/status.carrier.html\",\"Ваше предложение \\nВам предложили заказСтатус заказа
Стоимость заказа: {{vm.item.Price | number: 0}} ₽\\nСогласиться\\n
\\nВы были выбраны исполнителем! Ожидайте пока заказчик произведет оплату.\\nСогласиться\\nОтказаться от заказа\\n
\\n\\nЯ забрал груз
Я доставил груз
Ожидаем подтверждения доставки грузоотправителем.
Обязательно оставьте отзыв о заказчике, это поможет другим перевозчикам!Написать отзыв
\\nВы оставили свой отзыв по этому заказу
Отзыв оставлен
\\nСредняя цена за подобную перевозку на сайте \\n~{{vm.item.AvgPrice | number: 0}} ₽\\nСделать предложение\\nОтменить предложение
Вы сделали предложение, будьте готовы пообщаться с заказчиком
\\n~{{vm.item.AvgPrice | number: 0 }} ₽ СРЕДНЯЯ ЦЕНА
{{myoffer.dblValue | number: 0}} ₽\\n ВАША ЦЕНА
Редактировать предложениеОтменить предложение
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/status.client.html\",\"\\nСтатус заказа
\\nВы выбрали оплату через безопасную сделку, чтобы начать выполнение заказа необходимо произвести оплату.\\nОплатитьОтменить заказ
Перевозчик подтвердил доставку товара, теперь Ваша очередьПодтвердить получениеОспорить доставкуАвтоматическая оплата через {{autoPay}}
Обязательно оставьте отзыв о перевозчике, это поможет ему работать еще лучше!\\nНаписать отзыв
\\n
Вы оставили свой отзыв по этому заказу\\n
Отзыв оставлен
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/teamunits.html\",\"
\\n
Добавить еще один
\");\n$templateCache.put(\"app/main/apps/controls/views/time.selector.html\",\"{{h | zpad: 2}}:00
Укажите время
\\n
\");\n$templateCache.put(\"app/main/apps/controls/views/unit.html\",\"
Марка и модель автомобиля
{{item.Mark}} {{item.Model}}
Заполните поле
Модификация автомобиля\\n{{item.Name}}\\n
Эти параметры загружены из справочника. Вы можете их изменить под свой автомобиль\\n
Тип кузова\\n{{cat.Name}}
\\n
\\nГабариты кузова (Д,Ш,В в см) *
Объем кузова м3
Грузоподъемность кг
Пассажирских мест
\\n
\\nНомер СТС *
Загрузите фото СТС \\nПринимаются только jpg и png файлы, не более 3-х мегабайт
Загрузите фото машины Принимаются только jpg и png файлы, не более 3-х мегабайт
\");\n$templateCache.put(\"app/main/apps/controls/views/verify.html\",\"
Для продолжения регистрации Вам необходимо ввести и подтвердить номер мобильного телефона.\\n
Моб. телефон
Введите номер телефона
Введите корректный номер телефона
ИзменитьПодтвердить\\n
Код подтверждения
Введите код подтверждения
Введите 4-х значный код
Переотправить код
{{error}}
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-1/template-1.html\",\"
{{card.title}}
{{card.subtitle}}\\n
{{card.text}}
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-10/template-10.html\",\"
\\n
{{card.title}}
{{card.subtitle}}
\\\"{{card.media.image.alt}}\\\"
{{card.text}}
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-2/template-2.html\",\"
{{card.title}}
\\n{{card.subtitle}}
{{card.text}}\\n
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-3/template-3.html\",\"
{{card.title}}
{{card.subtitle}}
{{card.cta}}
\\\"{{card.media.image.alt}}\\\"
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-4/template-4.html\",\"
{{card.title}}\\n
{{card.text}}
\\\"{{card.media.image.alt}}\\\"
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-5/template-5.html\",\"
{{card.title}}
\\n{{card.event}}
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-6/template-6.html\",\"
\\n{{card.subtitle}}
{{card.title}}
{{card.text}}
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-7/template-7.html\",\"
{{card.title}}\\n
{{card.subtitle}}
{{card.text}}
\\n
\\\"{{card.media.image.alt}}\\\"
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-9/template-9.html\",\"
{{card.title}}
\\n{{card.subtitle}}
{{card.text}}
\\\"{{card.media.image.alt}}\\\"
\\n
\");\n$templateCache.put(\"app/core/directives/ms-card/templates/template-8/template-8.html\",\"
{{card.title}}
{{card.subtitle}}\\n
{{card.button1}}\\n{{card.button2}}
{{card.text}}
\");\n$templateCache.put(\"app/core/directives/ms-stepper/templates/horizontal/horizontal.html\",\"
{{$index + 1}} \\n
{{step.stepTitle}}
Optional
Back
Next\\nSubmit
\");\n$templateCache.put(\"app/core/directives/ms-stepper/templates/vertical/vertical.html\",\"
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.carrier.cash.html\",\"
\\nОсталось наличных поездок: {{profile.CashCount}}
\\nБесплатно расчитаться наличными можно только 10 раз. После этого, Вы сможете работать по безопасной сделке или купить пакет наличный расчет\\nКупить пакет на 10 поездок (1000р)Купить пакет на 20 поездок (1900р)\\nКупить пакет на 30 поездок (2700р)
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.carrier.header.html\",\"
\\nМой профиль\\nИстория платежей\\nОбщие настройки\\n\\nВыход из аккаунта
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.carrier.html\",\"
{{team.Name}}Настроить профиль
\\nОбщая информация\\n
\\n{{team.Info || \\'Заполните текст о себе в настройках профиля\\'}}
\\nРазвернуть\\nСвернуть
Контактная информация\\nДоступные автомобили\\n\\nРазрешительные документыОставленные отзывы \\nОт перевозчика Перевозчику\\n
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.carrier.right.html\",\"
\\\"\\\"
{{team.Rating | number: 1}} \\n{{team.Feedbacks}} отзыва(ов)
Пройдено в системе {{team.Path | number: 0}} км.\\n
Всего сделок {{team.TotalOrders}}
Безопасных сделок {{team.TotalSafeOrders}}
{{profile.Balance}} ₽ Баланс кошелькаПополнить кошелек\\nВывод средств
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.carrier.status.html\",\"
НА ЛИНИИНЕ НА ЛИНИИ
Регион поиска заказов
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.client.header.html\",\"
\\nМой профиль\\nИстория платежей\\nВыход из аккаунта
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.client.html\",\"
{{profile.Name}}Настроить профиль\\n
Общая информация\\n
{{profile.Info || \\'Заполните текст о себе в настройках профиля\\'}}\\n
Развернуть\\nСвернуть
\\nКонтактная информация\\n\\nОставленные отзывы
\\n\\n
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.client.right.html\",\"
\\\"\\\"
{{profile.ClientRating| number:1}} {{profile.TotalDoerFeedbacks}} отзыва(ов)
Пройдено в системе \\n{{profile.TotalClientPath | number: 0}} км.
Всего сделок \\n{{profile.TotalClientOrders}}
Безопасных сделок \\n{{profile.TotalClientSafeOrders}}
{{profile.Balance}} ₽ \\nБаланс кошелькаПополнить кошелек
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.contacts.html\",\"
Ваш телефон \\n{{profile.Phone | tel}} Уведомления включены \\nУведомления отключены
\\n
Ваш e-mail\\nПодтвердить
{{profile.Email}}\\n
(не подтвержден)
\\nУведомления включены Уведомления отключены
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.history.html\",\"
\\nИстория платежей
\\n
ЗаказДата операцииТип операцииСумма
#{{item.OrderId}} \\n{{item.Order.Start | date: \\'dd.MM\\'}} {{item.Order.StartPoint.City}}\\n{{item.Order.Delivery.City}}{{item.DT | date: \\'d MMMM yyyy\\'}}{{UTILS.eventTypeText(item.Type)}} {{item.Id}}{{item.dblValue | number:0}} ₽
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.main.html\",\"
\\nОбщие настройки
О себе Напишите пару строк о себе, чтобы заказчики лучше Вас узнали
Скрывать название компании\\nВместо имени компании заказчики будут видеть идентификационный номер #{{APP_SETTINGS.teamId}}
Местоположение
\\nСтрана, регион\\nГород
\\n
Фотография Для лучшей узнаваемости загрузите логотип или фото
Сохранить данные
\\n
\\nСобытия \\nЧтобы не упустить ничего важного, настройте типы уведомлений и их каналы
Новый отклик\\nУведомлять по СМС\\nУведомлять по e-mailСообщения в чате\\nУведомлять по СМС\\nУведомлять по e-mail\\n
Изменение статуса заказа\\nУведомлять по СМС\\nУведомлять по e-mailПополнение кошелька\\nУведомлять по СМС\\nУведомлять по e-mail
\\nСохранить данные
Пароль Чтобы не упустить ничего важного, настройте типы уведомлений и их каналы
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/profile.reviews.html\",\"
Пока отзывов нет\\n
feedbacks.value.length\\\">Развернуть\\n 2\\\">Свернуть
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/review.carrier.html\",\"
{{feedback.FromUser.Name}} \\n{{feedback.Rating | number: 0}} из 5
= i}\\\">
\\nДобавлено {{feedback.Created | moment: \\'fromNow\\'}} {{feedback.Comments}}
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/review.client.html\",\"
\\\"\\\" \\\"\\\"
{{feedback.FromTeam.Rating | number : 0}}\\n
{{feedback.FromTeam.Name}} {{feedback.FromTeam.Contact.Address.Country}}, {{feedback.FromTeam.Contact.Address.City}} {{feedback.Rating | number: 0}} из 5
= i}\\\">\\n
Добавлено {{feedback.Created | moment: \\'fromNow\\'}} \\n{{feedback.Comments}}
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/settings.contacts.html\",\"
Контактные данные Вы можете изменить ФИО и должность
\\n
E-mail Если хотите изменить E-mail, то не забудьте ввести Ваш текущий пароль
\\n
\\n
Телефон \\nЕсли хотите изменить телефон, то не забудьте ввести Ваш текущий пароль
\\n
Пароль \\nДля изменения пароля введите текущий пароль
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/settings.header.html\",\"
Настройки профиля\\n
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/settings.main.html\",\"
О себе \\nЕсли часто отправляете грузы, напишите пару строк о себе, чтобы перевозчики лучше Вас узнали
Скрывать имя и фамилию\\nВместо Вашего имени и фамилии перевозчики будут видеть идентификационный номер #{{profile.Id}}
Местоположение
\\nСтрана, регион\\nГород
\\n
Фотография Для лучшей узнаваемости загрузите Ваше фото или логотип
\\n
\\nСохранить данные
\");\n$templateCache.put(\"app/main/apps/client/views/cabinet/settings.notifications.html\",\"
События
Новый откликУведомлять по СМС\\nУведомлять по e-mail\\nСообщения в чатеУведомлять по СМСУведомлять по e-mail
Изменение статуса заказаУведомлять по СМСУведомлять по e-mail\\nПополнение кошелькаУведомлять по СМС\\n\\nУведомлять по e-mail
\\nСохранить данные
\");\n$templateCache.put(\"app/main/apps/client/views/carrier/car.html\",\"
{{unit.Mark}} {{unit.Model}}
\\nГрузодподьемность \\n{{unit.Carrying}} кг
\\nОбъем кузова {{unit.Volume}} м3
Тип {{UTILS.getCategory(unit.CategoryId).Name}}
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/carrier/cars.html\",\"
Пока автомобили не добавлены\");\n$templateCache.put(\"app/main/apps/client/views/carrier/docs.html\",\"
{{doc.Name}}\\n
\\n{{ !checkedDocument(doc.CatId) ? \\'Не проверено\\' : \\'Проверено\\' }}
{{!hasDocument(doc.CatId) ? \\'Не загружено\\' : \\'Загружено\\' }}
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/carrier/main.html\",\"
\\nПройдено в системе {{team.Path | number: 0}} км.
Всего сделок {{TotalOrders}}\\n
Безопасных сделок \\n{{TotalSafeOrders}}
\");\n$templateCache.put(\"app/main/apps/client/views/carrier/page.header.html\",\"
{{team.Name}}\\n
Проверенный перевозчик
\\nВернуться к списку
\\n{{team.Contact.Address.Country}}, {{team.Contact.Address.City}}
\");\n$templateCache.put(\"app/main/apps/client/views/carrier/review.html\",\"
\\\"\\\" \\\"\\\"
\\n{{feedback.FromUser.Name}} {{feedback.Rating | number: 0}} из 5\\n
= i}\\\">
\\nДобавлено {{feedback.Created | moment: \\'fromNow\\'}} {{feedback.Comments}}
\");\n$templateCache.put(\"app/main/apps/client/views/carrier/reviews.html\",\"
Пока отзывов нет\\n
feedbacks.value.length\\\">Развернуть\\n 2\\\">Свернуть
\");\n$templateCache.put(\"app/main/apps/client/views/carrier/right.html\",\"
\\\"\\\"
{{team.Rating | number:1}} \\n{{team.Feedbacks}} отзыва(ов)
Пройдено в системе {{team.Path | number: 0}} км.\\n
Всего сделок {{team.TotalOrders}}
Безопасных сделок {{team.TotalSafeOrders}}
Номер телефона {{team.Contact.Phone}}
\\nПРЕДЛОЖИТЬ ЗАКАЗПОКАЗАТЬ НОМЕР ТЕЛЕФОНАСКРЫТЬ НОМЕР ТЕЛЕФОНА
\");\n$templateCache.put(\"app/main/apps/client/views/carriers/main.html\",\"
\\\"\\\" \\\"\\\"\\n
\\n{{team.Rating | number:0}}
\\n{{team.Contact.Address.Country}}, {{team.Contact.Address.City}}
\\n
{{team.Name}}
\\nМы проверили этого перевозчика и считаем его надежным! \\nПроверенный перевозчик
Предложить заказ
{{team.Info | limitTo: 300}}{{team.Info.length > 300 ? \\'...\\' : \\'\\'}}
{{team.Feedbacks}} отзыва(ов)
{{UTILS.getCategory(tag).Name}}\\n
\");\n$templateCache.put(\"app/main/apps/client/views/carriers/page.header.html\",\"
\\nКаталог перевозчиковПоказать на карте
Сортировать по:\\n рейтингу кол-ву отзывов Показано перевозчиков : {{ODATA[\\'@odata.count\\']}}
\");\n$templateCache.put(\"app/main/apps/client/views/carriers/right.html\",\"
Местоположение
Не указано{{item}}\\n
Не указано\\n{{item}}\\n
\\nНе указано{{item}}\\n
Тип машины
\\nНе указано{{item.Name}}\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/add.money.html\",\"
Пополнить кошелек
\\n
Кошелек нужен для оплаты заказов через
«Безопасную сделку».
Безопасная сделка — это когда Бизон является посредником.\\nУкажите сумму, которую Вы хотите перечислить на свой счет в системе БИЗОН
₽\\n
\\nПополнить банковской картой
Пополнить банковским переводом\\n
\\nПри нажатии вы перейдете в сервис оплаты, после выполнения платежа деньги сразу поступят на Ваш счет в системе.\\n
\\nПри нажатии вы скачаете платежное поручение для банка. Как только платеж будет проведен банком, деньги поступят на Ваш счет в системе.\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/client.accept.html\",\"
Выбрать предложение?
Выберите способ оплаты, чтобы принять предложение {{offer.dblValue}} рублей от {{offer.Team.Name}} {{UTILS.profile().Balance}} ₽ \\nБаланс кошелька пополнить {{errorMessage}}
Безопасная сделка недоступна
\\nОплата наличными недоступна\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/create.order.html\",\"\\n
Заказ на перевозку\\n\\n
0 && nextStep()\\\">
Что вам нужно перевезти? Выберите категорию Вашего груза, а дальше мы расскажем что делать
\\nВыбор автомобиля \\nВведите информацию о грузе или самостоятельно выберите подходящий тип машины
\\n
\\nДополнительно \\nДобавьте описание груза и выберите дополнительные параметры, которые нужно знать перевозчику
\\n\\n
Уже зарегистрированы?
Я согласен с условиями предоставления и обработки персональных данных\\n
\\n
\\n
Назад\\n
\\n{{errorMessage || order.error}} \\nЗаполните все данные для продолжения \\nДлительность маршрута составит: {{order.Path | number:0}} км\\n
\\n{{ order.CategoryRateId != null && UTILS.isAuthenticated() ? \\'Завершить\\' : \\'Продолжить\\' }}\\nПродолжить\\n\\n{{ UTILS.isAuthenticated() ? \\'Завершить\\' : \\'Продолжить\\' }}ПродолжитьЗавершитьПродолжить\\nЗавершить
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/create.order.route.html\",\"
Откуда и куда? Введите адреса в поля ниже или выберите точки на карте
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/create.order.simple.html\",\"
Заказ на перевозку\\n\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/create.route.html\",\"\\n
Планирование\\n\\n
\\n
ОтменаСохранить
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/delivery.reject.html\",\"
Оспорить доставку
{{error}}
\\nОтправить\\n
Отмена\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/edit.company.carrier.html\",\"
Редактирование данных
\\n\\n
{{user.Team.Contact.ShortName}} \\nПроверьте реквизиты Вашей организации
Автомобили Добавьте описание автомобилей, которыми Вы располагаете
\\n
\\n
Документы \\n\\nЕсли у Вас есть лицензия на первозку опасных грузов или другие документы, загрузите их ниже
\\n
\\n
Контакты \\nДля проверки номера мобильного телефона мы отправим SMS с кодом, а на e-mail - ссылку, по которой нужно перейти\\n
\\n
\\n
\\n
Закрыть\\n
{{errorMessage}}
СохранитьСохранитьСохранитьСохранить\\nСохранитьПодтвердить
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/edit.private.carrier.html\",\"
Редактирование данных
\\n\\n
Контакты \\nДля проверки номера мобильного телефона мы отправим SMS с кодом, а на e-mail - ссылку, по которой нужно перейти\\n
\\n
\\n
Автомобили \\nДобавьте описание автомобилей, которыми Вы располагаете
Личные данные \\nМы надежно защищаем Ваши персональные данные и не передаем их третьим лицам
\\n
Документы \\nЕсли у Вас есть лицензия на первозку опасных грузов или другие документы, загрузите их ниже
\\n
\\n
Закрыть
{{errorMessage}}
Сохранить\\nПодтвердитьСохранитьСохранитьСохранить\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/enter.code.html\",\"
Введите 4-х значный код подтверждения
0\\\">\\nКод подтверждения отправлен на номер {{APP_SETTINGS.Profile.Phone | tel}} Для получения кода подтверждения нажмите на кнопку ОТПРАВИТЬ КОД
Введите код подтверждения
Введите 4-х значный код
{{errorMessage}}
Отправить код
0\\\">Новый код можно будет получить через {{codewait}} c\\n
Отмена\\nПодтвердить
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/login.html\",\"
\\nАвторизация
Ваш аккаунт Для работы в системе Вам необходимо иметь аккаунт
\\nВход в систему {{vm.error}}ПродолжитьЗабыли пароль?
Восстановление пароля Введите телефон, указанный при регистрации, мы вышлем ссылку для смены пароля {{vm.error}}ПродолжитьНе надо, я вспомнил!
Восстановление пароля Введите 4-х значный код, высланный на Ваш телефон {{vm.error}}ПродолжитьНе надо, я вспомнил!
Пароль отправлен \\nПроверьте указанный телефон, на него выслано СМС с новым паролемПродолжить
\\n
Вы еще не завели аккаунт?\\n Зарегистрируйтесь прямо сейчас и отправляйте или перевозите грузы!Регистрация перевозчикаРегистрация отправителя
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/message.html\",\"
{{vm.dialogTitle}}\\n\\n
{{vm.mainMessage}} \\n{{vm.descMessage}}{{vm.buttonText}}
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/pay.order.credit.html\",\"
Оплатить заказ #{{orderNo}}
\\n
Оплата заказа будет выполнена через
«Безопасную сделку».
Безопасная сделка — это когда Бизон является посредником.\\n\\nУказанная сумма будет переведена на счет в системе БИЗОН и зарезервирована для оплаты заказа перевозчику.
₽\\n
\\nПополнить банковской картой
\\nПри нажатии Вы перейдете в сервис оплаты, после выполнения платежа деньги сразу поступят на Ваш счет в системе, а перевозчик получит соответствующее уведомление и приступит к отгрузке.\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/question.html\",\"
{{vm.params.dialogTitle}}
\\n
{{vm.params.mainMessage}} \\n{{vm.params.descMessage}} {{vm.params.error || error}}
{{vm.params.okButtonText}}\\n{{vm.params.cancelButtonText}}
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/register.carrier-company.html\",\"
\\nРегистрация перевозчика
\\n\\n
\\n
Контакты \\nДля проверки номера мобильного телефона мы отправим SMS с кодом, а на e-mail - ссылку, по которой нужно перейти\\n
\\n
Я согласен с условиями\\n предоставления и обработки персональных данных
\\nИНН, БИК и номер р/с Вашей организации \\nОстальные реквизиты мы определим по базе данных организаций
Я согласен с условиями\\n предоставления и обработки персональных данных
{{user.Team.Contact.ShortName}} Проверьте реквизиты Вашей организации
\\n
\\n
Автомобили \\nДобавьте описание автомобилей, которыми Вы располагаете
\\n
Документы \\nЕсли у Вас есть лицензия на первозку опасных грузов или другие документы, загрузите их ниже
\\n
\\n\\nНазад
\\n{{errorMessage}} Заполните все данные для продолжения\\n
\\nПродолжить\\nПродолжитьПродолжитьПродолжитьПродолжить\\nПродолжить
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/register.carrier-private.html\",\"
\\nРегистрация перевозчика
\\n\\n
Контакты\\n \\nДля проверки номера мобильного телефона мы отправим SMS с кодом, а на e-mail - ссылку, по которой нужно перейти\\n
\\n
\\nЯ согласен с условиями предоставления и обработки персональных данных\\n
Автомобили Добавьте описание автомобилей, которыми Вы располагаете\\n
\\nЛичные данные Мы надежно защищаем Ваши персональные данные и не передаем их третьим лицам
Я согласен с условиями предоставления и обработки персональных данных\\n
Документы \\nЕсли у Вас есть лицензия на первозку опасных грузов или другие документы, загрузите их ниже
\\n
\\nНазад
{{errorMessage}} Заполните все данные для продолжения
\\nПродолжитьПродолжитьПродолжитьПродолжитьПродолжить
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/register.client.html\",\"
Регистрация грузоотправителя
\\n
Личные данные \\nУкажите ваше имя и, если хотите, загрузите фотографию. Так вас будут знать перевозчики в системе
\\n
Я согласен с условиями предоставления и обработки персональных данных\\n
Код подтверждения
\\nВведите код подтверждения
Введите 4-х значный код
\\n
Подтвердить\\nОтмена\\n
Назад
\\n
{{errorMessage}} Заполните все данные для продолжения
\\nПродолжитьПродолжить
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/register.html\",\"
\\nРегистрация
\\nДля работы в системе Вам необходимо иметь e-mail
Введите e-mail Введите пароль Минимальная длина пароля - 6 символов Максимальная длина пароля - 20 символов Введите подтверждение пароля\\n \\nПароль и подтверждение пароля должны совпадать {{vm.error}}Продолжить\\nОтмена
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/register.select.carrier.type.html\",\"
\\nРегистрация\\n
Для продолжения выберите тип перевозчика
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/register.select.role.html\",\"
\\nРегистрация
\\n
\\\"\\\" Я отправляю грузы\\n
Вы можете размещать заказы на перевозку и искать перевозчика
\\n
\\\"\\\"
\\nЯ перевожу грузы
Вы можете искать заказы для перевозки и предлагать цену.\\n
\\nДля продолжения выберите роль
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/route.full.html\",\"\\n
Маршрут
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/send.accept.html\",\"
Принять предложение по заказу
Принять заказ #{order.Id} стоимостью {order.Price} р?\\n
ОтправитьОтмена
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/send.message.html\",\"
Оставить сообщение
Отмена 0)\\\" submit-loader \\ntype=\\\"submit\\\">Отправить
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/send.offer.html\",\"
Сделать предложение
\\nУкажите цену, за которую Вы согласны перевезти заказ и напишите пару комментариев, если нужно
Возможна оплата наличнымиВозможна оплата по безопасной сделке
{{error}}
ОтправитьОтмена\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/send.order.html\",\"
\\nПредложение заказа
\\n
Выберите заказ \\nВыберите существующие заказы из списка, либо создайте новый и он будет автоматически предложен этому перевозчику\\n
Активных заказов не найдено
НазадВыберите заказ для продолженияПродолжить
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/send.outtransaction.request.html\",\"
Заявление на вывод средств
\\nУкажите сумму, которую Вы хотите вывести из системы БИЗОН
\\n
Проверьте реквизиты, на которые будет переведена указанная сумма:\\n
Наименование банка {{vm.profile.Team.Contact.BankName}}
Расчетный счет \\n{{vm.profile.Team.Contact.Bill}}
БИК банка {{vm.profile.Team.Contact.BIK}}\\n
\\nРасчетный счет банка {{vm.profile.Team.Contact.BankBill}}
\\n
\\nНомер кредитной карты {{vm.profile.Team.Contact.CreditCard | limit: 4}}
\\n
Подтвердить
Отмена
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/send.review.html\",\"
\\n
Оставить отзыв
Поставьте оценку
\\n{{feedback.Rating | number: 0}} из 5\\n
\\nОтменаОтправить
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/dialogs/step.html\",\"
Добавить населенный пункт
Введите название населенного пункта
Добавить
Отмена
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/map/carriers.details.html\",\"
ООО \\\"Вожу-Гружу\\\" Россия, Санкт-Петербург
\\\"\\\"
\\n
\\\"\\\"
5 2 отзыва
\\nПройдено в системе 1 650 км.
Всего сделок 10
Безопасных сделок 5
ПРЕДЛОЖИТЬ ЗАКАЗПОКАЗАТЬ НОМЕР ТЕЛЕФОНА
\");\n$templateCache.put(\"app/main/apps/client/views/map/carriers.html\",\"
Перевозчики на карте\\n\\n
\\n{{team.Name}} {{team.Contact.Address.Country}}, {{team.Contact.Address.City}}\\n
\\\"\\\"
\\n
\\n
\\\"\\\"
{{team.Rating|number:1}} \\n{{team.Feedbacks}} отзыва(ов)
Пройдено в системе {{team.Path | number: 0}} км.
Всего сделок {{team.TotalOrders}}
Безопасных сделок \\n{{team.TotalSafeOrders}}
Номер телефона {{team.Contact.Phone || \\'Не указан\\'}}
НАПИСАТЬ СООБЩЕНИЕ\\nПРЕДЛОЖИТЬ ЗАКАЗПОКАЗАТЬ НОМЕР ТЕЛЕФОНАСКРЫТЬ НОМЕР ТЕЛЕФОНА
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/map/orders.html\",\"\\n
Заказы на карте\\n\\n
\\n
\\n\\n\\n
\\\"\\\" \\n{{UTILS.getCategory(order.CategoryId).Name}}
\\n
\\n\\nПодробнее о заказе
\");\n$templateCache.put(\"app/main/apps/client/views/map/route.html\",\"
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.active.header.html\",\"
Активные заказы\\n
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.archive.header.html\",\"
Архивные заказы\\n
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.archive.item.html\",\"
Перевозчик {{order.Team.Name}} {{UTILS.orderStatusText(order.State)}} \\n{{order.Closed | date: \\'dd MMMM yyyy\\'}}
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.archive.right.html\",\"
Дата поставки \\n{{order.Finish | date : \\'dd MMMM yyyy\\'}}
Сумма заказа \\n{{order.Price | number: 0}} ₽
\\n\\nОставить отзыв
\\nОтзыв оставлен
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.header.html\",\"
Предложения\\nАктивныеВ процессеАрхивныеПланирование
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.inprogress.header.html\",\"
Заказы в работе\\n
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.list.html\",\"
\\n
Подходящих заказов не найдено
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.list.item.html\",\"
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.list.item.offer.html\",\"
{{offer.dblValue}} ₽
\\nВАШЕ ПРЕДЛОЖЕНИЕНаписать заказчику
Клиент предложил Вам этот заказ \\nЭтот заказ в Вашем городе Заказ по пути следования (ДОГРУЗ)
Откликнуться
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.list.item.stat.html\",\"
Просмотров \\n{{order.Views}}
\\nЗаявок {{order.Offers}}
Сообщений {{order.Messages}}
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.list.item.state.html\",\"
i\\\">\\n
i\\\" class=\\\"done-order-step-line\\\">
Ожидает оплаты
\\nГотов к отгрузке
В пути
Выполнен
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.offers.header.html\",\"
Предложения
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.offers.item.html\",\"
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.offers.list.html\",\"
\\n
Подходящих заказов не найдено
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.plan.header.html\",\"
Планирование
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.plan.item.html\",\"
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.plan.list.html\",\"
Добавить
\\nС помощью планирования Вы сможете искать в системе заказы, подходящие для Ваших маршрутов и мест стоянки. Система будет автоматически присылать приглашения для таких заказов\\n
\\nМаршруты и места стоянки пока не добавлены.
\");\n$templateCache.put(\"app/main/apps/client/views/myorders/myorders.plan.right.html\",\"
ИзменитьУдалить
\");\n$templateCache.put(\"app/main/apps/client/views/order/carrier.html\",\"Выбранный перевозчик\\n
\\\"\\\" \\\"\\\"
{{offer.Team.Rating | number : 0}}
\\n{{offer.Team.Contact.Address.Country}}, {{offer.Team.Contact.Address.City}} \\n{{offer.Team.Feedbacks}} отзывов
{{offer.dblValue}} ₽
\\n\\n
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/order/category.html\",\"\");\n$templateCache.put(\"app/main/apps/client/views/order/chat.html\",\"Чат с заказчиком\\n\");\n$templateCache.put(\"app/main/apps/client/views/order/feedback.html\",\"Оставить отзыв\\n
\\nПоставьте оценку
Плохо\\nОтлично\\n
Оставить отзыв
\");\n$templateCache.put(\"app/main/apps/client/views/order/main.html\",\"Общая информация\\n

Понадобятся грузчики - {{order.Properties.Stuff }} чел

\\n
\\\"\\\" \\\"\\\"
{{order.Comments}}
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/order/offers.html\",\"Предложения\\n
\\n
Пока предложений нет
\");\n$templateCache.put(\"app/main/apps/client/views/order/order.offers.item.html\",\"
\\\"\\\" \\\"\\\"
{{offer.Team.Rating | number : 0}}
\\n
{{offer.Team.Contact.Address.Country}}, {{offer.Team.Contact.Address.City}} {{offer.Team.Feedbacks}} отзывов
\\nБезопасная сделка - это сделка, при которой сервис БИЗОН является посредником
Перевозчик согласен принять оплату наличными
{{offer.dblValue}} ₽
Выбрать
\");\n$templateCache.put(\"app/main/apps/client/views/order/page.header.html\",\"
\\n{{order.StartPoint.City || order.StartPoint.Region}} \\n{{order.Delivery.City || order.Delivery.Region}} Вернуться к списку
\\n
\\nДобавлено {{order.Created | moment: \\'fromNow\\'}} Просмотрено {{order.Views}} раз Номер заказа: {{order.Id}} \\n{{UTILS.orderStatusText(order.State)}}
\");\n$templateCache.put(\"app/main/apps/client/views/order/route.html\",\"\\nМаршрут на карте \\n\\nРАЗВЕРНУТЬ КАРТУ
\");\n$templateCache.put(\"app/main/apps/client/views/order/status.carrier.cashpay.html\",\"Статус заказа\\n
Вы были выбраны исполнителем! \\nПодтвердите если готовы выполнить заказ за наличные.\\nСогласиться за наличныеОтказаться от заказа\\n
\");\n$templateCache.put(\"app/main/apps/client/views/order/status.carrier.clientoffer.html\",\"Вам предложили заказ\\n\\nСредняя цена за подобную перевозку на сайте ~{{order.AvgPrice}} ₽\\n\");\n$templateCache.put(\"app/main/apps/client/views/order/status.carrier.doeroffer.html\",\"Статус заказа\\n\\nВы сделали предложение, будьте готовы пообщаться с заказчиком
\\n~{{order.AvgPrice}} ₽ СРЕДНЯЯ ЦЕНА
~{{offer.Price}} ₽ ВАША ЦЕНА\\n
Редактировать предложение\\nОтменить предложение
\");\n$templateCache.put(\"app/main/apps/client/views/order/status.carrier.newoffer.html\",\"Ваше предложение\\n\\nСредняя цена за подобную перевозку на сайте ~{{order.AvgPrice}} ₽Сделать предложение\");\n$templateCache.put(\"app/main/apps/client/views/order/status.carrier.waitforpay.html\",\"Статус заказа\\n
Вы были выбраны исполнителем! \\nЗаказчик выбрал \\\"Безопасную сделку\\\", Вы сможете начать после оплаты им сделки.Согласиться за наличныеОтказаться от заказа
\");\n$templateCache.put(\"app/main/apps/client/views/order/status.client.delivery.html\",\"Статус заказа\\n
Вы были выбраны исполнителем! \\nПодтвердите если готовы выполнить заказ за наличные.\\nСогласиться за наличныеОтказаться от заказа\\n
\");\n$templateCache.put(\"app/main/apps/client/views/order/status.client.start.html\",\"Статус заказа\\n
\\n{{order.Price}} ₽ СУММА ЗАКАЗА
\\n
ТИП ОПЛАТЫ
\");\n$templateCache.put(\"app/main/apps/client/views/order/status.html\",\"\\n\\n\");\n$templateCache.put(\"app/main/apps/client/views/order/stdoffer.html\",\"Заказ на стандартную услугу\\n\\nВыберите способ оплаты, чтобы приступить к выполнению заказа
Безопасная сделкаОплата наличными
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/order/user.html\",\"Отправитель\\n
\\\"\\\" \\\"\\\"
\\n{{order.Client.ClientRating | number : 0 }}
{{order.Client.Name}} {{order.Client.TotalDoerFeedbacks}} отзыва(ов)
\");\n$templateCache.put(\"app/main/apps/client/views/order/what.html\",\"О грузе\\n
\\\"\\\" \\n{{UTILS.getCategory(order.CategoryId).Name}}
0\\\">Вес груза \\n{{order.Weight}} кг.
0\\\">
0\\\">Объем груза \\n{{order.Volume}} м3
0\\\">
0\\\">Пассажиров \\n{{order.NumPersons}}
0\\\">
0\\\">Площадь квартиры \\n{{order.FlatArea}} м2
Дата отгрузки {{order.Start | date: \\'dd MMMM\\'}}
\\n
Тип автомобиля\\n
\\\"\\\" \\n{{UTILS.getCategory(order.ModelId).Name}}
Редактировать заказОтменить заказ
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/orders/orders.filter.html\",\"
Показывать заказы только для моих автомобилей
Место загрузки
Не задано{{item}}\\n
Не задано\\n{{item}}\\n
Не задано\\n{{item}}\\n
Место выгрузки
Не задано{{item}}\\n
Не задано{{item}}\\n
Не задано{{item}}
\\nТип машины
\\nНе задано{{item.Name}}
\\nТип груза
Не задано{{item.Name}}
\\nДата отгрузки
\\n
\");\n$templateCache.put(\"app/main/apps/client/views/orders/page.header.html\",\"
Каталог заказов\\nПоказать на карте
\\n
Сортировать по: новизне дате отгрузки \\nПоказано заказов : {{orders[\\'@odata.count\\']}}
\");\n$templateCache.put(\"app/main/apps/client/views/messages/main.html\",\"\");\n$templateCache.put(\"app/main/apps/client/views/messages/messages.room.html\",\"
\\\"\\\" \\\"\\\"\\n
\\n{{room.Team.Rating | number : 0}}
\\\"\\\" \\\"\\\"
{{room.User.ClientRating | number : 0}}\\n
{{room.Team.Name}}\\n {{room.User.Name}} {{room.Team.Contact.Address.Country}}, {{room.Team.Contact.Address.City}} \\n{{room.User.Contact.Address.Country}}, {{room.User.Contact.Address.City}} Новые сообщения {{room.Messages}} сообщений
Ваше сообщение {{room.Last.Text}} \\n{{room.Last.DT | moment: \\'fromNow\\'}}
\\\"\\\"
\");\n$templateCache.put(\"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html\",\"
{{stepInfo.stepTitleTranslate | translate }}
{{stepInfo.stepTitle}}
Optional
Back\\nNext\\nSubmit
\");}]);"],"sourceRoot":"/source/"}