{"version":3,"file":"main.js","mappings":"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EAAa,GAChC9xB,EAAO8xB,aAAeA,EAAa,GAAK,IACxC9xB,EAAOwvC,aAAe1d,EAAa,OAC7B,CAEN,MAAM2d,EADa,6BACgBtxB,KAAKoxB,GACpCE,IACHzvC,EAAOwvC,aAAeC,EAAgB,GAExC,CAEA,OAAOzvC,CACR,CA9BKsvC,CAA4BJ,EAAWf,YAAYC,SAEvDjyC,iBAAkB,GAClByK,SAAUooC,EAAYU,8BCxDvB,IAAA3vC,EAAA,CACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,cACA,iBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,UACA,aACA,YACA,eACA,WACA,cACA,iBACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,UACA,eACA,kBACA,eACA,kBACA,aACA,YACA,eACA,YACA,eACA,cACA,iBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,cACA,iBACA,cACA,iBACA,YACA,eACA,WACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,qBACA,kBACA,qBACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,eACA,kBACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,gBACA,mBACA,eACA,kBACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,iBACA,oBACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,YACA,eACA,YACA,eACA,YACA,eACA,eACA,kBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,eACA,kBACA,YACA,eACA,WACA,cACA,WACA,iBACA,oBACA,cACA,YACA,eACA,kBACA,qBACA,YACA,eACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,mBAIA,SAAA4vC,EAAA37B,GACA,IAAAhR,EAAA4sC,EAAA57B,GACA,OAAA67B,EAAA7sC,EACA,CACA,SAAA4sC,EAAA57B,GACA,IAAA67B,EAAAC,EAAA/vC,EAAAiU,GAAA,CACA,IAAA0U,EAAA,IAAAvb,MAAA,uBAAA6G,EAAA,KACA,MAAA0U,EAAA4hB,KAAA,mBACA5hB,CACA,CACA,OAAA3oB,EAAAiU,EACA,CACA27B,EAAA9rC,KAAA,WACA,OAAA4e,OAAA5e,KAAA9D,EACA,EACA4vC,EAAA1vB,QAAA2vB,EACAxlB,EAAA0jB,QAAA6B,EACAA,EAAA3sC,GAAA","names":["COMMON_APP_CONFIG","InjectionToken","LOCALE_TRANSLATIONS","LOCAL_APP_DATA_GETTER","environment","require","isProductionMode","installedModules","CommonDataServiceClass","setData","data","this","clone","getData","setDataByPath","value","key","getDataByPath","path","get","CommonAppDataService","constructor","localAppData","appConfig","super","init","isDevServer","isEmpty","window","AppData","appData","omit","commonAppDataServiceFactory","localAppDataGetter","language","location","CommonBootstrapService","bootstrap","getBootstrap","static","t","core","Yz7","factory","ɵfac","CommonGeneralSettingsService","commonBootstrapService","generalSettings","setGeneralSettings","assign","getGeneralSettings","merge","hasMeridiem","timeFormat","PmDesignator","AmDesignator","i0","i1","CommonBootstrapDataService","http","commonGeneralSettingsService","shouldLoadData","res","AppBootstrap","of","origin","pipe","map","result","i2","i3","providedIn","commonConstants","downloadFilesAPIUrl","uploadFilesAPIUrl","USER_AVATAR_SIZE","standart","profile","animationDuration","defaultPageSize","defaultNumberDigitsAfterDecimal","defaultNumberDecimalSeparator","defaultNumberGroupSeparator","dataValidation","url","imageFormats","inn","intNum","cardExpire","cardExpireMonth","cardExpireYear","cardNumber","digits","email","throttle_milleseconds","fileUploadMaxSize","adaptiveScreenWidth","CommonUserDataService","commonBootstrapDataService","commonAppDataService","onAccountUpdated$","Subject","bootstrapPromise","requestOptions","withCredentials","headers","HttpHeaders","UserData","authData","post","mergeMap","forkJoin","user","isArray","wait","getUserAvatarUrl","id","mode","size","isNull","getUserForSuggest","Id","Name","DisplayName","isGuest","CommonTranslateParamsPipe","transform","params","forEach","keys","replace","RegExp","Yjl","pure","CommonLocaleService","translateService","commonUserDataService","commonTranslateParamsPipe","translations","locale","setTranslation","setDefaultLang","use","setFormats","userTimeZone","dateFormat","updateLocale","longDateFormat","LT","Format","L","ShortFormat","LL","LLL","LLLL","LTS","meridiemParse","isPM","input","meridiem","hours","week","doy","dow","IndexNumber","tz","setDefault","IanaId","instant","i4","i5","$html","$","userAgent","navigator","toLowerCase","browsers","ie","chrome","safari","firefox","commonBrowserService","CommonBrowser","browser","unknown","detectBrowserData","addClassesToHtml","document","addEventListener","isHiddenTab","hidden","getIsAdaptiveScreen","matchMedia","matches","getDeviceData","television","device","macos","find","ios","iphone","ipod","ipad","windows","android","androidPhone","androidTablet","blackberry","blackberryPhone","blackberryTablet","windowsPhone","windowsTablet","fxos","fxosPhone","fxosTablet","meego","mobile","tablet","desktop","touchscreenused","i","length","needle","indexOf","buildClasslist","prefix","list","p","push","_","test","addClass","scrollSizes","getScrollSizes","deviceClass","child","css","height","tester","position","top","left","overflow","width","appendTo","remove","CommonNotificationService","commonLocaleService","domSanitizer","NOTIFICATION_HEIGHT","NOTIFICATION_TIMEOUT","notificationsQueue","_queue","add","noty","queued","item","next","animationStartEvents","cacheHeight","$body","isIE","show","title","body","type","innerLayout","getMessage","setTimeout","createNotification","text","invoke","icon","iconType","buttons","handleResponseError","response","errorHeader","errorText","Error","errorType","includes","createNotificationLayout","options","$buttons","append","createNotificationButtons","$element","join","button","className","$button","uniqueId","isFunction","callback","on","getMaxVisible","Math","floor","innerHeight","getContainer","$notificationsContainer","layout","showNext","startClosingTimer","timer","close","timeout","endClosingTimer","clearTimeout","onAnimationEnd","animateAll","children","each","elementIndex","element","bottom","reduce","cacheItem","cacheIndex","showNotification","shown","truncate","outerHeight","animation","open","removeClass","off","closeNotification","defaults","mergeWith","objValue","srcValue","concat","createNotificationElement","notificationId","minViewportWidth","min","innerWidth","screen","notificationNormalWidth","mobilePaddings","querySelector","Dotdotdot","bodyEl","isObject","has","sanitize","SecurityContext","HTML","CommonTranslationCompiler","messageFormat","compile","compileTranslations","hasOwnProperty","resolveReferences","match","CommonLocaleModule","oAB","cJS","TranslateMessageFormatCompiler","imports","TranslateModule","forRoot","compiler","provide","TranslateCompiler","useClass","commonHttpErrorStatuses","CommonModulesPlaceholders","modulesPlaceholdersList","registerPlaceholder","placeholderObject","name","getPlaceholder","invokePlaceholder","bind","placeholder","deps","injector","Injector","create","providers","dependency","CommonErrorInterceptor","commonNotificationService","commonModulesPlaceholders","intercept","req","handle","rxMap","warningText","warningConfig","warningHeader","warningType","warningTypeConfigs","warningTypes","noop","catchError","status","throwError","DEFAULT_SETTINGS","firstDay","CommonServerDateService","daysSymbol","monthsSymbol","yearsSymbol","secondsInMinute","minutesInHour","hoursInDay","secondsInDay","daysInWeek","datetimeFormat","localDateTimeFormat","workingDays","nonWorkingDays","shortDateFormat","inputDateFormat","mediumDateFormat","displayTimeFormat","maskDelimiter","shortWithTime","mediumWithTime","timeWithMedium","inputDateMask","inputDatePlaceholder","inputTimeMask","inputTimePlaceholder","inputFormatWithFirstZero","amDesignator","pmDesignator","inputTimeRegex","isoDateTestRegex","dateTestRegexByYear","yyyymmdd","mmddyyyy","ddmmyyyy","inputDateTestRegexByYear","TIME_KEYS_FOR_DST_FIX","extendDateFormatsFromGeneralSettings","setInputSettings","workingDayIndexes","day","index","nonWorkingDaysRules","createNonWorkingRules","getMoment","dateString","invalidDateString","undefined","moment","isDateString","isISODateString","getMomentInstance","getDateFromTimeZone","timeZone","date","getMoscowDateTime","hasTime","isInputTimeString","timeString","isString","getTimezoneOffset","format","isChangedDates","newValues","oldValues","isChanged","some","isSame","getLastDaysDate","daysCount","isDayOff","isWorkingDayInWeek","rule","dayIndex","getDiffAsDays","startDate","endDate","unix","utcOffset","period","oldHour","newHour","diff","getCountDiffHours","dateTestRegex","isInputDateString","inputDateTestRegex","toISOString","toLocalDateTimeFormatString","toDateString","toDisplayDateString","toDisplayTimeString","minutesSymbol","hoursSymbol","mask","maskWithoutDelimiters","dateFormatSettings","extend","timeFormatSettings","MediumFormat","LongFormat","afterOrEqual","firstYear","firstMonth","secondYear","secondMonth","secondDay","StartDate","startYear","year","startMonth","month","startDayInMonth","EndDate","endYear","endMonth","endDayInMonth","testDate","dayInMonth","afterStart","beforeEnd","leftShift","rightShift","normalizeHour","hour","CommonTwoDigitsNumberPipe","num","slice","toString","CommonSecondsFormatterPipe","commonTwoDigitsNumberPipe","seconds","m","s","commonUtilitiesCoreService","CommonUtilitiesCore","hiddenDiv","createElement","appendChild","hasValue","isUndefined","isNaN","getDataFromCurrentRoute","$uiRouter","globals","$current","state","getQueryStringKeyValue","str","exec","href","decodeURIComponent","isOuterClick","event","owner","context","$context","$eventTarget","target","is","closest","getTempId","Date","getTime","isTempId","paginate","array","pageNumber","pageSize","getTextWidth","font","style","innerHTML","ceil","getBoundingClientRect","addMicrotask","callBack","queueMicrotask","Promise","resolve","then","compareModelCollection","model","originalItems","cloneDeep","itemsField","addedItemsField","deletedItemsField","fieldId","items","isEqual","j","splice","customMerge","x","y","customConcat","arr1","arr2","outputOptions","Array","prototype","apply","compact","groupByKey","GroupByKey","groupItemsKey","GroupItemsKey","arr2group","arr1group","arr1gr","insertionSortWithIgnoreCase","field","temp","pushWithKeyCheck","arr","el","updateTreeValidity","group","Object","controls","abstractControl","UntypedFormGroup","UntypedFormArray","updateValueAndValidity","onlySelf","CommonNAFormatter","CommonNAToBlankFormatter","CommonDateFormatter","commonServerDateService","formats","Short","Medium","Long","Time","ShortWithTime","MediumWithTime","TimeWithMedium","formatType","upperFirst","useCommonNAToBlankFormatter","CommonCapitalizeFormatter","charAt","toUpperCase","substr","CommonPrettyNumberPipe","digit","fixAfterDecimal","numberFormat","decimalSeparator","DecimalSeparator","groupSeparator","GroupSeparator","decimalIndex","CommonNumberWithUnitsFormatterPipe","commonNAFormatter","prettyNumber","unit","CommonPercentPipe","commonNumberWithUnitsFormatter","CommonEscapedBracketReplace","CommonExtensionFormatterPipe","extension","substring","CommonPassportNumberFormatterPipe","CommonSubdivisionCodeFormatterPipe","CommonPrettyPhoneNumber","divider","parenthesis","right","phoneRe","phoneMatches","CommonVersionFormatterPipe","version","Number","isInteger","CommonPipesModule","CommonDirectivesModule","CommonTextfieldInputMaskAliasesService","saveCharsRegExp","tagCharsRegExp","externalTagCharsRegExp","domainRegExp","scriptNameRegExp","onlyLettersRegExp","displayNameRegExp","numericParams","alias","radixPoint","autoGroup","rightAlign","unmaskAsNumber","allowMinus","integerParams","integerPositiveParams","numericParamsNoMinus","Observable","Inputmask","repeat","greedy","autoUnmask","showMaskOnHover","showMaskOnFocus","isComplete","buffer","definitions","b","validator","chr","onBeforeMask","newValue","onUnMask","maskedValue","unmaskedValue","c","d","e","f","g","casing","h","getCasemTimeMask","getCasemDateMask","getCasemCardExpireMask","getCasemCardExpireMonthMask","getCasemCardExpireYearhMask","getCasemParticipantIndividualInnMask","subscribe","leapday","separator","yearrange","minyear","maxyear","hourFormat","ru","CommonAppLayoutService","transitionService","resizeSubheaderSubject$","transitionStateChanges$","ReplaySubject","contentLoader","isLoading","module","toState","stateNames","words","pageClasses","htmlClasses","layoutMode","print","newDesign","withRightPanel","withoutPanels","notScrollToTop","scrollTop","getResizeSubheaderSubject","triggerResizeSubheader","setContentLoader","getContentLoader","initWatchTransitionChanges","onBefore","transition","onStart","onSuccess","subscribeOnBeforeTransition","to","subscribeOtherTransition","loaderTitle","$from","$to","promise","setRipples","ripples","Ripples","isTouch","$wrapper","relY","getRelY","relX","getRelX","rippleColor","getRipplesColor","$ripple","getComputedStyle","rippleOn","rippleEnd","rippleOut","getNewSize","max","outerWidth","wrapperOffset","offset","originalEvent","touches","pageX","pageY","color","hasTransitionSupport","thisStyle","documentElement","webkitTransition","animate","opacity","trigger","fn","CommonAppModule","app","ApplicationRef","commonTextfieldInputMaskAliasesService","commonAppLayoutService","shouldInitLayoutService","ngDoBootstrap","appModuleRun","mainComponent","appStartNotification","Header","Message","Type","disableLoader","disable","useFactory","HTTP_INTERCEPTORS","multi","APP_INITIALIZER","appInitializerFactory","UrlService","BrowserModule","HttpClientModule","urlService","hasInitialLoader","shouldAuthorize","deferIntercept","PROGRESS_OVERLAY_CLASS","PROGRESS_BODY_OVERFLOW_CLASS","isIe","ieVersion","regExp","toNumber","animateProgressCounter","animateProgress","container","progressEl","progressElWidth","isFixed","enable","hasBodyOverflowClass","hasClass","html","label","getTemplate","setLabel","setAnimateProgress","enableLoader","promises","from","FontFaceObserver","weight","load","FONT_LOADING_TIMEOUT","toPromise","listen","sync","CommonPrefixUrlInterceptor","meetingsAuth","prependedUrl","serverPrefix","fixedReq","endsWith","CommonXHRHeaderInterceptor","xhrRequest","setHeaders","CommonLoaderModule","CommonModule","CommonMinlengthValidatorModule","CommonMaxlengthValidatorModule","CommonRequiredValidatorModule","CommonPatternValidatorModule","CommonEmailValidatorModule","CommonMatchValidatorModule","CommonGroupRequiredModule","CommonNumberInSafeRangeValidatorModule","CommonMinValidatorModule","CommonMaxValidatorModule","CommonPasswordValidatorModule","CommonValidationModule","FormsModule","CommonTextfieldModule","CommonChooseTrueValidatorModule","CommonCheckboxModule","CommonSubmitButtonModule","AuthenticationMeetingsCommonModule","authenticationMeetingsLocalAppDataGetter","appName","appFullLocationUrl","protocol","host","pathname","authenticationReturnUrl","hash","appStartNotificationText","domainName","registrationErrorTitle","registrationErrorText","isRegistrationByLinkEnabled","authFlashMessage","colorsDictionarySysName","CommonBaseComponent","modifiers","localeService","changeDetector","ChangeDetectorRef","zone","NgZone","modifierSeparator","classesSeparator","needUnbind","ngOnInit","ngOnChanges","changes","ngAfterViewInit","ngOnDestroy","getBaseClasses","cssBaseClass","classes","split","modifierClasses","modifier","getBaseClassesAsString","func","time","finallyFunc","willUnbind","withUnbind","runUpdate","markForCheck","runOutsideAngular","observable","observerOrNext","error","complete","subscription","unsubscribe","authenticationMeetingsAppConfig","application","AuthenticationMeetingsComponent","Xpm","selectors","features","decls","vars","consts","template","rf","ctx","AuthenticationMeetingsUserService","login","confirm","Purpose","resetPassword","changePassword","register","sendCode","AuthenticationMeetingsErrorService","handleSuccessResponse","validationsErrorObject","control","ErrorMessages","showCustomError","custom","setErrors","CustomError","onChangeFieldHandler","resource","validationCustomErrors","unset","MeetingsAuthAnimation","CommonLowerCaseInputDirective","ngModelControl","controlSubscription","valueChanges","setValue","emitEvent","lG2","CommonControlComponent","modelChange","EventEmitter","changeEvent","isFocused","isHovered","idKey","writeValue","registerOnChange","onChangeForValueAccessor","registerOnTouched","onTouchedForValueAccessor","NgModel","formDirective","ngSubmit","detectChanges","statusChanges","validationMode","intersection","isValid","isDisabled","valid","onMouseEnterHandler","onMouseLeaveHandler","onFocusHandler","onBlurHandler","formSubmitAfterBlur","submitted","onSubmit","emitOnChange","emit","inputs","isReadonly","ctrlClasses","customErrors","outputs","DEFAULT_ERROR_MESSAGES","minLength","maxLength","pattern","incorrectDate","passwordError","ctx_r0","CommonValidationComponent","isShow","update","errors","val","errorName","message","isBoolean","CommonValidationComponent_div_0_Template","ctx_r1","CommonLoaderComponent_div_0_div_7_Template","_c0","ctrlLoaderTopAligned","ctrlLoaderWithOverlay","ctrlLoaderClasses","CommonLoaderComponent","hasDelay","loadTimeout","stopLoading","currentValue","startLoader","cancelTimer","CommonLoaderComponent_div_0_Template","floatLabel","hintValue","$event","_r9","ctx_r8","onClickIconHandler","ctx_r3","iconClasses","iconTitle","ctx_r4","charsLeft","_r11","ctx_r10","onClickClearButton","ctx_r12","clearModel","ctx_r6","parseUrlFunc","parseValue","ctx_r7","hasLoaderDelay","CommonTextfieldComponent","inputMask","inputMaskParams","autocomplete","autocapitalize","autocorrect","spellcheck","hideCount","hasClearIcon","hasDebounce","isUrl","isUseHint","focusEvent","blurEvent","enterEvent","keyDownEvent","keyUpEvent","clickEvent","iconClickEvent","modelIsEmpty","inputValue","isHintOn","isInputMaskInitialized","setModel$","formattedModel","setInputValue","getCharsLeft","isNeedEnableHint","onHint","updateModel","previousValue","isWithRightIcon","withRightIcon","isWithCount","initInputMask","disableHint","cancelSetModel","setModel","enableHint","onKeyDownInput","which","onKeyUpInput","onChangeInput","inputRef","nativeElement","onMouseUpInput","focus","onClickHandler","oldValue","inputmask","option","debounceSetModel","onPaste","getInputEl","trim","limitTo","unMaskValue","unmaskedvalue","parseUrl","preventDefault","mouseDownPreventDefault","oldModel","newModel","events","form","eventHandlers","eventName","eventHandler","pop","removeEventListener","isNumber","isFinite","limit","isTextfieldModel","viewQuery","NG_VALUE_ACCESSOR","useExisting","forwardRef","CommonTextfieldComponent_div_1_Template","CommonTextfieldComponent_input_2_Template","_r13","_r2","CommonTextfieldComponent_span_6_Template","CommonTextfieldComponent_div_7_Template","CommonTextfieldComponent_i_8_Template","CommonTextfieldComponent_a_9_Template","CommonTextfieldComponent_div_10_Template","_c1","CommonRequiredDirective","errorObject","CommonRequiredValidator","validate","commonRequired","NG_VALIDATORS","DATA_VALIDATION","CommonEmailValidatorDirective","CommonSubmitButtonComponent","withoutBtnClasses","ngContentSelectors","_r6","ctx_r5","remind","Email","AuthenticationMeetingsRemindComponent_ng_container_2_span_22_Template","AuthenticationMeetingsRemindComponent_ng_container_2_span_23_Template","invalid","AuthenticationMeetingsRemindComponent","authenticationMeetingsUserService","authenticationMeetingsErrorService","isReminded","finalize","IsSuccess","AuthenticationMeetingsRemindComponent_ng_container_1_Template","AuthenticationMeetingsRemindComponent_ng_container_2_Template","CommonMinlengthValidatorDirective","commonMinLengthRequired","minLengths","parseLength","commonMinlength","hasError","current","prev","parseInt","CommonMaxlengthValidatorDirective","pathValue","commonMaxlength","ctx_r2","AuthenticationMeetingsLoginComponent","router","commonAppData","PhoneNumber","Password","stateService","go","Result","ExpiresAt","password","getAboutUrl","_r3","_r0","AuthenticationMeetingsLoginComponent_span_25_Template","AuthenticationMeetingsLoginComponent_span_26_Template","getSanitizeLabel","descriptionValue","CommonCheckboxComponent","domSanitize","getIndeterminate","indeterminate","onChangeCheckbox","labelClasses","checkboxId","isDescriptionShow","checked","CommonCheckboxComponent_span_5_Template","CommonCheckboxComponent_div_6_Template","CommonHiddenAutofillComponent","AuthenticationMeetingsRegistrationComponent","FirstName","MiddleName","LastName","IsUserAgreementConsentGiven","IsPrivacyPolicyConsentGiven","userAgreementText","getUserAgreementText","privacyPolicyText","getPrivacyPolicyText","userAgreement","privacyPolicy","_r4","AuthenticationMeetingsRegistrationComponent_span_47_Template","AuthenticationMeetingsRegistrationComponent_ng_template_48_Template","getWaitingTimerText","resendCode","AuthenticationMeetingsConfirmComponent","commonSecondsFormatterPipe","resendDelaySeconds","isSending","Code","formattedPhoneNumber","initResendTimer","autofillConfirmationCode","clearInterval","stopResendTimer","dispose","isAuthenticationReturnFrontUrl","reload","code","getResendDelaySeconds","setInterval","nextPhoneConfirmationAttemptTime","now","confirmationAttempt","round","abs","phone","cookieWithCode","findLast","cookie","splittedFullUrl","i6","i7","_r7","AuthenticationMeetingsConfirmComponent_span_10_Template","AuthenticationMeetingsConfirmComponent_a_11_Template","AuthenticationMeetingsConfirmComponent_span_23_Template","AuthenticationMeetingsConfirmComponent_span_24_Template","CommonMatchValidatorDirective","matchControl","root","commonMatch","changeSubscription","CommonMatchValidator","ctx_r9","ConfirmPassword","AuthenticationMeetingsChangePasswordComponent_form_0_span_22_Template","AuthenticationMeetingsChangePasswordComponent_form_0_span_23_Template","passwordsMatch","isSaving","pageStateError","authenticationMeetingsRoutes","component","AuthenticationMeetingsChangePasswordComponent","confirmPassword","AuthenticationMeetingsChangePasswordComponent_form_0_Template","AuthenticationMeetingsChangePasswordComponent_ng_container_1_Template","AuthenticationMeetingsAuthRedirectInterceptor","localStorage","getItem","AuthenticationMeetingsLocaleTranslations","AuthenticationMeetingsModule","useValue","UIRouterModule","otherwise","states","useHash","BrowserAnimationsModule","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","err","console","exports","sourcemaps","devspecs","production","reloadless","buildConfig","server","port","https","proxyTargets","webSockets","isLocalServer","userData","IsGuest","GuestCookieName","GuestCookieValue","GuestCookieOptions","conf","packageJSON","devConf","mergedConf","proxy","targets","bankroAuth","getMeetingsAuthHelperParams","serverUrl","cookieSuffix","nonStandartPort","browserslist","webpackContext","webpackContextResolve","__webpack_require__","o"],"sourceRoot":"webpack:///","sources":["./src/Common/app/app.config.token.ts","./src/Common/services/locale/locale.translations.token.ts","./src/Common/services/app_data/local_app_data.token.ts","./environments/environment.prod.ts","./src/Common/services/data.service.ts","./src/Common/services/app_data/app_data.service.ts","./src/Common/services/bootstrap/bootstrap.service.ts","./src/Common/services/general_settings.service.ts","./src/Common/services/bootstrap/bootstrap_data.service.ts","./src/Common/constants/common.constants.ts","./src/Common/services/user_data.service.ts","./src/Common/services/locale/translate_params.pipe.ts","./src/Common/services/locale/locale.service.ts","./src/Common/services/browser.service.ts","./src/Common/services/notification.service.ts","./src/Common/services/locale/translation_compiler.service.ts","./src/Common/services/locale/locale.module.ts","./src/Common/interceptors/statuses.constant.ts","./src/Common/services/modules_placeholders.service.ts","./src/Common/interceptors/error_interceptor.service.ts","./src/Common/services/server_date.service.ts","./src/Common/pipes/two_digits_number.pipe.ts","./src/Common/pipes/seconds_formatter.pipe.ts","./src/Common/services/core.service.ts","./src/Common/pipes/na_formatter.pipe.ts","./src/Common/pipes/na_blank_formatter.pipe.ts","./src/Common/pipes/date_formatter.pipe.ts","./src/Common/pipes/capitalize_formatter.pipe.ts","./src/Common/pipes/pretty_number.pipe.ts","./src/Common/pipes/common_number_with_units_formatter.pipe.ts","./src/Common/pipes/common_percent_formatter.pipe.ts","./src/Common/pipes/escape_bracket_replace.pipe.ts","./src/Common/pipes/extension_formatter.pipe.ts","./src/Common/pipes/passport_number_formatter.pipe.ts","./src/Common/pipes/subdivision_code_formatter.pipe.ts","./src/Common/pipes/common_pretty_phone_number.pipe.ts","./src/Common/pipes/version_formatter.pipe.ts","./src/Common/pipes/pipes.module.ts","./src/Common/directives/directives.module.ts","./src/Common/controls/textfield/inputmasks_aliases_service.ts","./src/Common/services/common_app_layout.service.ts","./src/Common/vendor/common_animate_progress.ts","./src/Common/vendor/ripples.ts","./src/Common/app/app.module.ts","./src/Common/interceptors/prefix_url_interceptor.service.ts","./src/Common/interceptors/xhr_header_interceptor.ts","./src/Common/controls/loader/loader.module.ts","./src/Common/validators/minlength/minlength.module.ts","./src/Common/validators/maxlength/maxlength.module.ts","./src/Common/validators/required/required.module.ts","./src/Common/validators/pattern/pattern.module.ts","./src/Common/validators/email/email.module.ts","./src/Common/validators/match/match.module.ts","./src/Common/validators/group_required/group_required.module.ts","./src/Common/validators/number_In_safe_range/number_In_safe_range.module.ts","./src/Common/validators/min/min.module.ts","./src/Common/validators/max/max.module.ts","./src/Common/validators/password/common.password_validator.module.ts","./src/Common/controls/control/validation/validation.module.ts","./src/Common/controls/textfield/textfield.module.ts","./src/Common/validators/choose_true/choose_true.module.ts","./src/Common/controls/checkbox/checkbox.module.ts","./src/Common/controls/submit_button/submit_button.module.ts","./src/MeetingsAuth/src/authentication/authentication.meetings.common.module.ts","./src/MeetingsAuth/src/authentication/authentication.meetings.local_app_data.getter.ts","./src/Common/components/base.component.ts","./src/MeetingsAuth/src/authentication/authentication.meetings_app.config.ts","./src/MeetingsAuth/src/authentication/authentication.meetings.component.ts","./src/MeetingsAuth/src/authentication/authentication.meetings.component.pug","./src/MeetingsAuth/src/authentication/services/authentication.meetings.user.service.ts","./src/MeetingsAuth/src/authentication/services/authentication.meetings.error.service.ts","./src/MeetingsAuth/src/animation/animation.ts","./src/Common/directives/lower_case_input.ts","./src/Common/controls/control/control.component.ts","./src/Common/controls/control/throttler_milliseconds.constant.ts","./src/Common/controls/control/validation/default_error_messages.constant.ts","./src/Common/controls/control/validation/validation.component.pug","./src/Common/controls/control/validation/validation.component.ts","./src/Common/controls/loader/loader.component.pug","./src/Common/controls/loader/loader.component.ts","./src/Common/controls/loader/loader_default_delay_timeout_constant.ts","./src/Common/controls/textfield/textfield.component.pug","./src/Common/controls/textfield/textfield.component.ts","./src/Common/controls/control/autocomplete_props.constant.ts","./src/Common/controls/control/hot_keys.constant.ts","./src/Common/validators/required/required.directive.ts","./src/Common/validators/data_validation.constant.ts","./src/Common/validators/email/email.directive.ts","./src/Common/controls/submit_button/submit_button.component.ts","./src/Common/controls/submit_button/submit_button.component.pug","./src/MeetingsAuth/src/remind/authentication.meetings.remind.component.pug","./src/MeetingsAuth/src/remind/authentication.meetings.remind.component.ts","./src/Common/validators/minlength/minlength.directive.ts","./src/Common/validators/maxlength/maxlength.directive.ts","./src/MeetingsAuth/src/login/authentication.meetings.login.component.pug","./src/MeetingsAuth/src/login/authentication.meetings.login.component.ts","./src/Common/controls/checkbox/checkbox.component.pug","./src/Common/controls/checkbox/checkbox.component.ts","./src/Common/components/hidden_autofill/hidden_autofill.component.ts","./src/Common/components/hidden_autofill/hidden_autofill.component.pug","./src/MeetingsAuth/src/registration/authentication.meetings.registration.component.pug","./src/MeetingsAuth/src/registration/authentication.meetings.registration.component.ts","./src/MeetingsAuth/src/confirm/authentication.meetings.confirm.component.pug","./src/MeetingsAuth/src/confirm/authentication.meetings.confirm.component.ts","./src/Common/validators/match/match.directive.ts","./src/MeetingsAuth/src/change_password/authentication.meetings.change_password.component.pug","./src/MeetingsAuth/src/routes/router_config.ts","./src/MeetingsAuth/src/change_password/authentication.meetings.change_password.component.ts","./src/MeetingsAuth/src/interceptors/authentication.meetings.auth_redirect_interceptor.ts","./src/MeetingsAuth/src/authentication/authtentication.meetings.locale.translations.ts","./src/_Locale/json/ru/ru.common.json5","./src/_Locale/json/ru/ru.meetings_auth.json5","./src/MeetingsAuth/src/authentication/authentication.meetings.module.ts","./src/MeetingsAuth/src/main.ts","./config/conf.js","./config/config.js","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import {\n\tInjectionToken,\n\tType,\n} from '@angular/core';\n\nexport interface ICommonAppConfig {\n\treadonly application: string;\n\treadonly hasInitialLoader: boolean;\n\treadonly shouldAuthorize: boolean;\n\treadonly shouldInitLayoutService: boolean;\n\treadonly mainComponent: Type;\n}\n\nexport const COMMON_APP_CONFIG = new InjectionToken('COMMON_APP_CONFIG');\n","import { InjectionToken } from '@angular/core';\nimport { ICommonKeyValues } from '../../@types/core';\n\nexport type TCommonLocaleDictionary = {\n\t[language in 'ru']: ICommonKeyValues;\n};\n\nexport const LOCALE_TRANSLATIONS = new InjectionToken('LOCALE_TRANSLATIONS');\n","import { InjectionToken } from '@angular/core';\nimport { ICommonKeyValues } from '../../@types/core';\n\nexport interface ICommonAppData extends ICommonKeyValues {\n\treadonly locale: string;\n\treadonly appName: string;\n\treadonly appFullLocationUrl: string;\n\treadonly appStartNotificationText: string;\n\treadonly domainName: string;\n\treadonly colorsDictionarySysName: string | null;\n\treadonly supportContacts?: {\n\t\tEmail: string;\n\t\tPhone: string;\n\t\tSupportEmail?: string;\n\t};\n}\nexport type TLocalAppDataGetter = (locale: string, location: Location) => ICommonAppData;\n\nexport const LOCAL_APP_DATA_GETTER = new InjectionToken('LOCAL_APP_DATA_GETTER');\n","import { IBuildConfiguration } from '../config/config.interface';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst config = require('../config/config');\n\n// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment: IBuildConfiguration = {\n\t...config,\n\tisProductionMode: true,\n\tinstalledModules: null,\n};\n","import { Observable } from 'rxjs';\nimport { get, clone } from 'lodash';\n\ndeclare interface ICommonDataService {\n\tinit? (): Observable;\n\tsetData (data: T): void;\n\tgetData (): T;\n\tsetDataByPath (data: T, key: string): void;\n\tgetDataByPath (path: string): any;\n}\n\nexport abstract class CommonDataServiceClass implements ICommonDataService {\n\tprivate data: T;\n\n\tsetData (data: T): void {\n\t\tthis.data = clone(data);\n\t}\n\n\tgetData (): T {\n\t\treturn clone(this.data);\n\t}\n\n\tsetDataByPath (value: any, key: string): void {\n\t\tthis.data[key] = clone(value);\n\t}\n\n\tgetDataByPath (path: string): any {\n\t\treturn get(this.data, path);\n\t}\n}\n","import {\n\tisEmpty,\n\tget,\n\tomit,\n} from 'lodash';\n\nimport { environment } from '../../../../environments/environment';\nimport { IBuildConfiguration } from '../../../../config/config.interface';\nimport { ICommonAppConfig } from '../../app/app.config.token';\nimport { CommonDataServiceClass } from '../data.service';\nimport {\n\tICommonAppData,\n\tTLocalAppDataGetter,\n} from './local_app_data.token';\n\nexport interface ICommonAppDataServiceData extends ICommonAppData, ICommonAppConfig, Omit {\n\treadonly isDevServer: boolean;\n}\n\nexport class CommonAppDataService extends CommonDataServiceClass {\n\tconstructor (\n\t\tprivate localAppData: ICommonAppData,\n\t\tprotected appConfig: ICommonAppConfig,\n\t) {\n\t\tsuper();\n\t}\n\n\tinit (): any {\n\t\tconst isDevServer = isEmpty(window.AppData);\n\t\tconst appData: ICommonAppData = isDevServer ? this.localAppData : window.AppData;\n\n\t\tthis.setData({\n\t\t\t...omit(environment, [ 'proxy', 'language', 'devspecs']),\n\t\t\t...this.appConfig,\n\t\t\t...appData,\n\t\t\tisDevServer,\n\t\t});\n\n\t\treturn super.getData();\n\t}\n\n\tgetData (): ICommonAppDataServiceData {\n\t\tconst data = super.getData();\n\n\t\t// если данных нет - будет полная инициализация\n\t\tif (isEmpty(data)) {\n\t\t\treturn this.init();\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tgetDataByPath (path: string): any {\n\t\t// вызов перегруженного метода, чтобы прошла инициализация, если ее не было\n\t\treturn get(this.getData(), path);\n\t}\n}\n\n\nexport const commonAppDataServiceFactory = (\n\tlocalAppDataGetter: TLocalAppDataGetter,\n\tappConfig: ICommonAppConfig,\n): CommonAppDataService => new CommonAppDataService(localAppDataGetter(environment.language, window.location), appConfig);\n","// New version src/Common/bootstrap/bootstrap.service.ts CommonBootstrapService\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/common_bootstrap_service.ts CommonBootstrapService\n\nimport {get} from 'lodash';\nimport { Injectable } from '@angular/core';\n\nimport { ICommonKeyValues } from '../../@types/core';\n\nexport interface ICommonBootstrapService {\n\tgetBootstrap: (path?: string) => any;\n}\n\n@Injectable()\nexport class CommonBootstrapService implements ICommonBootstrapService {\n\tprivate bootstrap: ICommonKeyValues;\n\n\tinit (data: ICommonKeyValues): void {\n\t\tif (data['CaseMap.Modules.Main']) {\n\t\t\tthis.bootstrap = data['CaseMap.Modules.Main'];\n\t\t} else if (data['CaseDotStar.Shell']) {\n\t\t\tthis.bootstrap = data['CaseDotStar.Shell'];\n\t\t}\n\t}\n\n\tgetBootstrap (path?: string): T {\n\t\treturn path ? get(this.bootstrap, path) : this.bootstrap;\n\t}\n}\n","// New version src/Common/general_settings/general_settings.service.ts CommonGeneralSettingsService\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/common_general_settings_service_facroty.js CommonGeneralSettingsService\n\nimport { Injectable } from '@angular/core';\n\nimport {\n\tassign,\n\tmerge,\n\tget,\n} from 'lodash';\n\nimport { CommonBootstrapService } from './bootstrap/bootstrap.service';\nimport { ICommonKeyValues } from '../@types/core';\n\n@Injectable()\nexport class CommonGeneralSettingsService {\n\tprivate generalSettings = {};\n\n\tconstructor (private commonBootstrapService: CommonBootstrapService) {}\n\n\tinit (): void {\n\t\tconst bootstrap = this.commonBootstrapService.getBootstrap('GeneralSettings');\n\n\t\tif (bootstrap) {\n\t\t\tthis.setGeneralSettings(bootstrap);\n\t\t}\n\t}\n\n\tsetGeneralSettings (data: Record): void {\n\t\tassign(this.generalSettings, data);\n\t}\n\n\tgetGeneralSettings (key?: string) {\n\t\treturn merge(key ? get(this.generalSettings, key) : this.generalSettings);\n\t}\n\n\thasMeridiem (): boolean {\n\t\tconst timeFormat = this.getGeneralSettings('TimeFormat');\n\n\t\treturn timeFormat ? !!timeFormat.PmDesignator || !!timeFormat.AmDesignator : false;\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { of, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { CommonDataServiceClass } from '../data.service';\nimport { CommonBootstrapService } from './bootstrap.service';\nimport { CommonGeneralSettingsService } from '../general_settings.service';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class CommonBootstrapDataService extends CommonDataServiceClass {\n\tconstructor (\n\t\tprivate http: HttpClient,\n\t\tprivate commonBootstrapService: CommonBootstrapService,\n\t\tprivate commonGeneralSettingsService: CommonGeneralSettingsService,\n\t) {\n\t\tsuper();\n\t}\n\n\tinit (shouldLoadData = false): Observable {\n\t\tlet res: Observable;\n\n\t\tif (window.AppBootstrap || !shouldLoadData) {\n\t\t\tres = of(window.AppBootstrap || {});\n\t\t} else if (shouldLoadData) {\n\t\t\tres = this.http.get(`${window.location.origin}/api/bootstrap/GetBootstrap`);\n\t\t}\n\n\t\treturn res!\n\t\t\t.pipe(\n\t\t\t\tmap((result) => {\n\t\t\t\t\tthis.setData(result);\n\t\t\t\t\tthis.commonBootstrapService.init(result);\n\t\t\t\t\tthis.commonGeneralSettingsService.init();\n\n\t\t\t\t\treturn result;\n\t\t\t\t}),\n\t\t\t);\n\t}\n}\n","// New version src/Common/constants/common.constants.ts commonConstants\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/infinite_scroll_module.js\n\nexport const commonConstants = {\n\tdownloadFilesAPIUrl: 'api/download',\n\tuploadFilesAPIUrl: 'api/upload',\n\tUSER_AVATAR_SIZE: {\n\t\tstandart: 96,\n\t\tprofile: 208, // TODO: @backend return error Access with size ≠ 208,\n\t},\n\tanimationDuration: 200,\n\tdefaultPageSize: 20,\n\tdefaultNumberDigitsAfterDecimal: 2,\n\tdefaultNumberDecimalSeparator: ',',\n\tdefaultNumberGroupSeparator: ' ',\n\tdataValidation: {\n\t\turl: /^(https?:\\/\\/)?([\\da-zа-яё\\.-]+)\\.([a-zа-яё\\.]{2,6})([\\/\\w \\.-]*)*\\/?$/,\n\t\timageFormats: '.png, .jpg, .jpeg, .gif, .bmp, .jpe',\n\t\tinn: /^[\\d-\\s]+$/,\n\t\tintNum: /^[0-9]+$/,\n\t\tcardExpire: /^(0[1-9]|1[0-2])\\/\\d{2}$/,\n\t\tcardExpireMonth: /^(0[1-9]|1[0-2])$/,\n\t\tcardExpireYear: /^(\\d{2}|\\d{4})$/,\n\t\tcardNumber: /^\\d+$/,\n\t\tdigits: /^\\d+$/,\n\t\temail: /^[^ @]+@[^ @]/,\n\t},\n\tthrottle_milleseconds: 200,\n\tfileUploadMaxSize: 100 * 1024 * 1024, // 100 MB\n\tadaptiveScreenWidth: 900,\n};\n","// New version src/Common/user/user_data.service.ts CommonUserDataService\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/user_data_service_factory.js UserDataService\n\nimport { Injectable } from '@angular/core';\nimport {\n\tHttpClient,\n\tHttpHeaders,\n} from '@angular/common/http';\nimport {\n\tforkJoin,\n\tObservable,\n\tof,\n\tSubject,\n} from 'rxjs';\nimport {\n\tmap,\n\tmergeMap,\n} from 'rxjs/operators';\nimport {\n\tget,\n\tisArray,\n\tisNull,\n} from 'lodash';\n\nimport {\n\tICommonAuthor,\n\tUUID,\n} from '../@types/core';\nimport { CommonDataServiceClass } from './data.service';\nimport { CommonBootstrapDataService } from './bootstrap/bootstrap_data.service';\nimport { commonConstants } from '../constants/common.constants';\n\nimport { CommonAppDataService } from './app_data/app_data.service';\n\nexport interface ICommonUserDataServiceData extends ICommonAuthor {\n\tEmail: string | null;\n\tFileAvatarId?: UUID;\n\tRole?: string;\n}\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class CommonUserDataService extends CommonDataServiceClass {\n\tonAccountUpdated$: Subject = new Subject();\n\tprivate res: Observable;\n\n\tconstructor (\n\t\tprivate http: HttpClient,\n\t\tprivate commonBootstrapDataService: CommonBootstrapDataService,\n\t\tprivate commonAppDataService: CommonAppDataService,\n\t) {\n\t\tsuper();\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tinit (shouldLoadData = false, bootstrapPromise?: Observable): Observable {\n\t\tconst requestOptions = {\n\t\t\twithCredentials: true,\n\t\t\theaders: new HttpHeaders({\n\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\n\t\t\t}),\n\t\t};\n\n\t\tif (window.UserData || !shouldLoadData) {\n\t\t\tthis.res = of(window.UserData || {});\n\t\t} else if (shouldLoadData) {\n\t\t\tconst authData = this.commonAppDataService.getDataByPath('bankroAuth');\n\t\t\tthis.res = this.http.post(\n\t\t\t\t`${ window.location.origin }/authentication/account/login`,\n\t\t\t\tauthData,\n\t\t\t\trequestOptions,\n\t\t\t).pipe(\n\t\t\t\t// get user profile and bootstrap only after authorization\n\t\t\t\tmergeMap(() => forkJoin([\n\t\t\t\t\t\tthis.http.get(`${ window.location.origin }/api/UserProfiles/Get`, requestOptions),\n\t\t\t\t\t\tthis.commonBootstrapDataService.init(shouldLoadData),\n\t\t\t\t\t]),\n\t\t\t\t));\n\t\t}\n\n\t\treturn this.res = this.res\n\t\t\t.pipe(\n\t\t\t\tmap((result) => {\n\t\t\t\t\tconst user = isArray(result) ? get(result, '[0].Result') : result;\n\n\t\t\t\t\tthis.setData(user);\n\t\t\t\t\treturn user;\n\t\t\t\t}),\n\t\t\t);\n\t}\n\n\twait (): Observable {\n\t\treturn this.res;\n\t}\n\n\tgetUserAvatarUrl (id: string | null, mode: string): string {\n\t\tconst size = commonConstants.USER_AVATAR_SIZE[mode] || commonConstants.USER_AVATAR_SIZE.standart;\n\n\t\treturn isNull(id) ?\n\t\t\t'' :\n\t\t\t`${ commonConstants.downloadFilesAPIUrl }?id=${ id || this.getDataByPath('FileAvatarId') }&width=${ size }&height=${ size }`;\n\t}\n\n\tgetUserForSuggest (): { Id: string; Name: string } {\n\t\tconst user = this.getData();\n\n\t\treturn {\n\t\t\tId: user.Id,\n\t\t\tName: user.DisplayName,\n\t\t};\n\t}\n\n\tisGuest (): boolean {\n\t\treturn this.getDataByPath('Role') === 'Guest';\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\nimport {\n\tforEach,\n\tkeys,\n} from 'lodash';\n\n@Pipe({\n\tname: 'translateParams',\n})\nexport class CommonTranslateParamsPipe implements PipeTransform {\n\ttransform (value: string, params: {[key: string]: string }): string {\n\t\tforEach(keys(params), (key) => {\n\t\t\tvalue = value.replace(new RegExp('{' + key + '}', 'g'), params[key]);\n\t\t});\n\n\t\treturn value;\n\t}\n}\n","// New version src/Common/locale/locale.service.ts CommonLocaleService\n// Old version src/CaseDotStar.ServicePackages.Frontend.Locale/scripts/locale/locale_run.js LocaleRun\n\nimport {\n\tInjectable,\n\tInject,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n\tupdateLocale,\n\ttz,\n} from 'moment';\nimport 'moment-timezone';\nimport 'moment/locale/ru';\nimport { Observable } from 'rxjs';\n\nimport { CommonAppDataService } from '../app_data/app_data.service';\nimport { CommonUserDataService } from '../user_data.service';\nimport { CommonGeneralSettingsService } from '../general_settings.service';\nimport { CommonTranslateParamsPipe } from './translate_params.pipe';\nimport {\n\tLOCALE_TRANSLATIONS,\n\tTCommonLocaleDictionary,\n} from './locale.translations.token';\nimport { ICommonKeyValues } from '../../@types/core';\n\nexport interface ICommonLocaleServiceData {\n\tlocaleKey: string;\n\tlocaleUrlPath: string;\n\tlocaleFileName: string;\n\ttranslations?: ICommonLocaleServiceTranslations;\n}\n\nexport interface ICommonLocaleServiceTranslations extends ICommonKeyValues {}\nexport type TCommonLocaleServiceCompilerResult = string | ((params: any) => string);\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class CommonLocaleService {\n\treadonly locale: string = this.commonAppDataService.getDataByPath('locale');\n\n\tconstructor (\n\t\tprivate translateService: TranslateService,\n\t\tprivate commonAppDataService: CommonAppDataService,\n\t\tprivate commonUserDataService: CommonUserDataService,\n\t\tprivate commonGeneralSettingsService: CommonGeneralSettingsService,\n\t\tprivate commonTranslateParamsPipe: CommonTranslateParamsPipe,\n\t\t@Inject(LOCALE_TRANSLATIONS) protected translations: TCommonLocaleDictionary,\n\t) {\n\t\tthis.translateService.setTranslation(this.locale, this.translations[this.locale]);\n\t}\n\n\tinit (): Observable {\n\t\tthis.translateService.setDefaultLang(this.locale);\n\n\t\treturn this.translateService.use(this.locale);\n\t}\n\n\tsetFormats (): void {\n\t\tconst userTimeZone = this.commonUserDataService.getDataByPath('TimeZone');\n\t\tconst timeFormat = this.commonGeneralSettingsService.getGeneralSettings('TimeFormat');\n\t\tconst dateFormat = this.commonGeneralSettingsService.getGeneralSettings('DateFormat');\n\n\t\tif (timeFormat) {\n\t\t\tupdateLocale(this.locale, {\n\t\t\t\tlongDateFormat: {\n\t\t\t\t\tLT: timeFormat.Format,\n\t\t\t\t\tL: dateFormat.ShortFormat,\n\t\t\t\t\tLL: '',\n\t\t\t\t\tLLL: '',\n\t\t\t\t\tLLLL: '',\n\t\t\t\t\tLTS: '',\n\t\t\t\t},\n\t\t\t\tmeridiemParse: new RegExp(timeFormat.PmDesignator + '|' + timeFormat.AmDesignator, 'gi'),\n\t\t\t\tisPM: (input) => input === timeFormat.PmDesignator,\n\t\t\t\tmeridiem: (hours) => hours > 11 ? timeFormat.PmDesignator : timeFormat.AmDesignator,\n\t\t\t\tweek: {\n\t\t\t\t\tdoy: 1,\n\t\t\t\t\tdow: (this.commonGeneralSettingsService.getGeneralSettings('DayOfWeek').IndexNumber || 0) + 1 ,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tif (userTimeZone) {\n\t\t\ttz.setDefault(userTimeZone.IanaId);\n\t\t}\n\t}\n\n\t// todo: remove CommonTranslateParamsPipe and this method later, instead use TranslateService#instant\n\t// Now this method used only for backward compatibility with ng1\n\tinstant (key: string, params?: {[key: string]: any }): string {\n\t\tlet res = this.translateService.instant(key, params);\n\n\t\tif (params) {\n\t\t\tres = this.commonTranslateParamsPipe.transform(res, params);\n\t\t}\n\n\t\treturn res;\n\t}\n}\n","import { commonConstants } from '../constants/common.constants';\n// New version src/Common/browser/browser.service.ts CommonBrowser\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/common_browser_service.js CommonBrowser\n\nimport * as _ from 'lodash';\nimport { Injectable } from '@angular/core';\n\nexport interface ICommonBrowserScrollSizes {\n\twidth: number;\n\theight: number;\n}\n\nexport interface ICommmonBrowserInfo {\n\tie: boolean | null;\n\tunknown: boolean | null;\n\tchrome?: boolean | null;\n\tsafari?: boolean | null;\n\tfirefox?: boolean | null;\n}\n\nexport interface ICommonBrowserDeviceData {\n\tdevice: {\n\t\t[key: string]: CallableFunction;\n\t};\n\tbuildClasslist: () => string[];\n}\n\nconst $html = $('html');\nconst userAgent = window.navigator.userAgent.toLowerCase();\nconst browsers = {\n\tie: /Trident\\/7/i,\n\tchrome: /chrome/i,\n\tsafari: /safari/i,\n\tfirefox: /firefox/i,\n};\n\n@Injectable()\nexport class CommonBrowser {\n\tbrowser: ICommmonBrowserInfo = {\n\t\tie: null,\n\t\tunknown: null,\n\t};\n\tisHiddenTab: boolean;\n\tscrollSizes: ICommonBrowserScrollSizes;\n\n\tconstructor () {\n\t\tthis.detectBrowserData();\n\t\tthis.addClassesToHtml();\n\n\t\tdocument.addEventListener('visibilitychange', () => {\n\t\t\tthis.isHiddenTab = window.document.hidden;\n\t\t});\n\t}\n\n\tgetIsAdaptiveScreen (): boolean {\n\t\treturn window.matchMedia(`(max-width: ${commonConstants.adaptiveScreenWidth}px)`).matches;\n\t}\n\n\tgetDeviceData (): ICommonBrowserDeviceData {\n\t\tconst television = [\n\t\t\t'googletv',\n\t\t\t'viera',\n\t\t\t'smarttv',\n\t\t\t'internet.tv',\n\t\t\t'netcast',\n\t\t\t'nettv',\n\t\t\t'appletv',\n\t\t\t'boxee',\n\t\t\t'kylo',\n\t\t\t'roku',\n\t\t\t'dlnadoc',\n\t\t\t'pov_tv',\n\t\t\t'hbbtv',\n\t\t\t'ce-html',\n\t\t];\n\t\tconst device = {\n\t\t\tmacos : () => find('mac'),\n\t\t\tios : () => device.iphone() || device.ipod() || device.ipad(),\n\t\t\tiphone : () => !device.windows() && find('iphone'),\n\t\t\tipod : () => find('ipod'),\n\t\t\tipad : () => find('ipad'),\n\t\t\tandroid () {\n\t\t\t\treturn !this.windows() && find('android');\n\t\t\t},\n\t\t\tandroidPhone () {\n\t\t\t\treturn this.android() && find('mobile');\n\t\t\t},\n\t\t\tandroidTablet () {\n\t\t\t\treturn this.android() && !find('mobile');\n\t\t\t},\n\t\t\tblackberry : () => find('blackberry') || find('bb10') || find('rim'),\n\t\t\tblackberryPhone () {\n\t\t\t\treturn this.blackberry() && !find('tablet');\n\t\t\t},\n\t\t\tblackberryTablet () {\n\t\t\t\treturn this.blackberry() && find('tablet');\n\t\t\t},\n\t\t\twindows : () => find('windows'),\n\t\t\twindowsPhone () {\n\t\t\t\treturn this.windows() && find('phone');\n\t\t\t},\n\t\t\twindowsTablet () {\n\t\t\t\treturn this.windows() && (find('touch') && !this.windowsPhone());\n\t\t\t},\n\t\t\tfxos : () => (find('(mobile') || find('(tablet')) && find(' rv:'),\n\t\t\tfxosPhone () {\n\t\t\t\treturn this.fxos() && find('mobile');\n\t\t\t},\n\t\t\tfxosTablet () {\n\t\t\t\treturn this.fxos() && find('tablet');\n\t\t\t},\n\t\t\tmeego : () => find('meego'),\n\t\t\tmobile () {\n\t\t\t\treturn (\n\t\t\t\t\tthis.androidPhone() ||\n\t\t\t\t\tthis.iphone() ||\n\t\t\t\t\tthis.ipod() ||\n\t\t\t\t\tthis.windowsPhone() ||\n\t\t\t\t\tthis.blackberryPhone() ||\n\t\t\t\t\tthis.fxosPhone() ||\n\t\t\t\t\tthis.meego()\n\t\t\t\t);\n\t\t\t},\n\t\t\ttablet () {\n\t\t\t\treturn (\n\t\t\t\t\tthis.ipad() ||\n\t\t\t\t\tthis.androidTablet() ||\n\t\t\t\t\tthis.blackberryTablet() ||\n\t\t\t\t\tthis.windowsTablet() ||\n\t\t\t\t\tthis.fxosTablet()\n\t\t\t\t);\n\t\t\t},\n\t\t\tdesktop () {\n\t\t\t\treturn !this.tablet() && !this.mobile();\n\t\t\t},\n\t\t\ttouchscreenused () {\n\t\t\t\t// Fine-tune if needed (user may use touchscreen or mouse on the same device). Keep it simple for now\n\t\t\t\treturn this.tablet() || this.mobile();\n\t\t\t},\n\t\t\ttelevision () {\n\t\t\t\tlet i = 0;\n\t\t\t\twhile (i < television.length) {\n\t\t\t\t\tif (find(television[i])) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\ti++;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t};\n\n\t\tconst find = (needle: string) => userAgent.indexOf(needle) !== -1;\n\n\t\tfunction buildClasslist (prefix = '') {\n\t\t\tconst list = [];\n\n\t\t\tfor (const p in device) {\n\t\t\t\tif (device[p]()) {\n\t\t\t\t\tlist.push(prefix + p);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn list;\n\t\t}\n\n\t\treturn {\n\t\t\tdevice,\n\t\t\tbuildClasslist,\n\t\t};\n\t}\n\n\tprotected detectBrowserData (): void {\n\t\t_.each(browsers, (value, key) => {\n\t\t\tthis.browser[key] = browsers[key].test(userAgent);\n\n\t\t\tif (this.browser[key]) {\n\t\t\t\t$html.addClass(key);\n\t\t\t}\n\t\t});\n\n\t\tthis.browser.unknown = !_.keys(this.browser).length;\n\t\tthis.scrollSizes = this.getScrollSizes();\n\t\tthis.isHiddenTab = window.document.hidden;\n\t}\n\n\tprotected addClassesToHtml (): void {\n\t\tconst deviceData = this.getDeviceData();\n\n\t\tdeviceData.buildClasslist().forEach((deviceClass) => {\n\t\t\t$html.addClass(deviceClass);\n\t\t});\n\n\t\t_.each(browsers, (value, key) => {\n\t\t\tif (this.browser[key]) {\n\t\t\t\t$html.addClass(key);\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected getScrollSizes (): ICommonBrowserScrollSizes {\n\t\tconst size = 100;\n\t\tconst child = $('
')\n\t\t\t.css({\n\t\t\t\theight: '100%',\n\t\t\t});\n\n\t\tconst tester = $('
')\n\t\t\t.css({\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: '-9999px',\n\t\t\t\tleft: '-9999px',\n\t\t\t\toverflow: 'scroll',\n\t\t\t\theight: size + 'px',\n\t\t\t\twidth: size + 'px',\n\t\t\t});\n\n\t\tchild.appendTo(tester);\n\t\ttester.appendTo('body');\n\n\t\tconst result = {\n\t\t\twidth: size - child.width()!,\n\t\t\theight: size - child.height()!,\n\t\t};\n\n\t\ttester.remove();\n\t\treturn result;\n\t}\n}\n\nexport const commonBrowserService = new CommonBrowser();\n","// New version src/Common/notification/notification.service.ts CommonNotificationService\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/notification_service.js NotificationService\n\nimport {\n\tInjectable,\n\tSecurityContext,\n} from '@angular/core';\n\nimport {\n\tfind,\n\tforEach,\n\tget,\n\thas,\n\tincludes,\n\tinvoke,\n\tisArray,\n\tisFunction,\n\tisObject,\n\tmap,\n\tmergeWith,\n\treduce,\n\tremove,\n\tuniqueId,\n} from 'lodash';\nimport Dotdotdot from 'dotdotdot-js';\n\nimport { commonConstants } from '../constants/common.constants';\nimport { commonBrowserService } from './browser.service';\nimport { CommonLocaleService } from './locale/locale.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ICommonResponseError } from '../@types/core';\n\ndeclare interface INoty {\n\tid: string;\n\tshown: boolean;\n\tqueued: boolean;\n\ttimer: number | null;\n\t$element: JQuery;\n\t$body: JQuery;\n\t$buttons: JQuery;\n\tshow: () => void;\n\tclose: () => void;\n\ttruncate: () => void;\n}\n\ndeclare interface ICommonNotyOptionsAnimation {\n\topen: string;\n\tclose: string;\n}\n\ndeclare interface ICommonNotyOptionsButton {\n\tcallback: (noty: INoty) => void;\n\tclassName: string;\n\ttitle: string;\n}\n\ndeclare interface ICommonNotyOptions {\n\tanimation?: ICommonNotyOptionsAnimation;\n\tbuttons?: ICommonNotyOptionsButton[];\n\ticon?: string;\n\tlayout?: string;\n\ttext?: string;\n\ttimeout?: number;\n\ttype?: string;\n}\n\ndeclare interface ICommonNotyCacheHeight {\n\tid: string;\n\theight: number;\n}\n\ndeclare interface ICommonNotyShowParams {\n\ticonType?: string;\n\tbuttons?: ICommonNotyOptionsButton[];\n}\n\n@Injectable()\nexport class CommonNotificationService {\n\tprivate\tNOTIFICATION_HEIGHT = 208;\n\tprivate\tNOTIFICATION_TIMEOUT = 10000;\n\n\tprivate\tnotificationsQueue = {\n\t\t_queue: [] as INoty[],\n\t\tadd: (noty: INoty) => {\n\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\tif (!find(this.notificationsQueue._queue, noty)) {\n\t\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\t\tthis.notificationsQueue._queue.push(noty);\n\t\t\t\tnoty.queued = true;\n\t\t\t}\n\t\t\treturn this.notificationsQueue;\n\t\t},\n\t\tremove: (noty: INoty) => {\n\t\t\tnoty.queued = false;\n\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\tremove(this.notificationsQueue._queue, (item) => item === noty);\n\t\t\treturn this.notificationsQueue;\n\t\t},\n\t\t// eslint-disable-next-line no-underscore-dangle\n\t\tnext: () => this.notificationsQueue._queue[0],\n\t};\n\n\tprivate animationStartEvents = 'webkitAnimationStart animationstart';\n\tprivate cacheHeight: ICommonNotyCacheHeight[] = [];\n\tprivate $body = $('body');\n\tprivate isIE = commonBrowserService.browser.ie;\n\n\tconstructor (\n\t\tprivate commonLocaleService: CommonLocaleService,\n\t\tprivate domSanitizer: DomSanitizer\n\t) {}\n\n\tshow (title = '', body: string | Record = '', type: string, params: ICommonNotyShowParams = {}): void {\n\t\tconst innerLayout = this.getMessage(title, body);\n\n\t\tsetTimeout(() => {\n\t\t\tthis.createNotification({\n\t\t\t\ttext: innerLayout,\n\t\t\t\ttype: invoke(type, 'toLowerCase'),\n\t\t\t\ticon: params.iconType ? 'icon_' + params.iconType : '',\n\t\t\t\tbuttons: params.buttons,\n\t\t\t});\n\t\t}, 0);\n\t}\n\n\thandleResponseError (response: ICommonResponseError): void {\n\t\tconst errorHeader = (get(response, 'data.ErrorHeader') || get(response, 'error.ErrorHeader')) || this.commonLocaleService.instant('common.noty.error.title');\n\t\tconst\terrorText = get(response, 'data.Error') || get(response, 'error.Error') || response.Error || '';\n\t\tconst\terrorTypes = ['General', 'Subscription', 'ConditionFailed'];\n\t\tlet\terrorType = get(response, 'data.ErrorType') || get(response, 'error.ErrorType');\n\n\t\tif (!includes(errorTypes, errorType)) {\n\t\t\terrorType = 'error';\n\t\t}\n\n\t\terrorType = errorType.toLowerCase();\n\t\tthis.show(errorHeader, errorText, errorType);\n\t}\n\n\tprivate createNotificationLayout (noty: INoty, options: ICommonNotyOptions): JQuery {\n\t\tnoty.$buttons.append(this.createNotificationButtons(noty, options.buttons!));\n\t\tnoty.$body.append(options.text!);\n\n\t\treturn noty.$element\n\t\t\t.addClass([\n\t\t\t\t'b-noty_bar',\n\t\t\t\t`b-noty_type__${options.type}`,\n\t\t\t\t`b-noty_theme__${options.icon}`,\n\t\t\t].join(' '))\n\t\t\t.append([noty.$body, noty.$buttons]);\n\t}\n\n\tprivate createNotificationButtons (noty: INoty, buttons: ICommonNotyOptionsButton[]): Array> {\n\t\treturn map(buttons, (button) => {\n\t\t\tbutton.className = button.className || '';\n\t\t\tbutton.title = button.title || '';\n\n\t\t\tconst $button: JQuery = $(``);\n\n\t\t\tif (isFunction(button.callback)) {\n\t\t\t\t$button.on('click', () => {\n\t\t\t\t\tbutton.callback(noty);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn $button;\n\t\t});\n\t}\n\n\tprivate getMaxVisible (): number {\n\t\treturn Math.floor(window.innerHeight / this.NOTIFICATION_HEIGHT);\n\t}\n\n\tprivate getContainer (options: ICommonNotyOptions): JQuery {\n\t\tlet $notificationsContainer = this.$body.find('#common_noty_layout__' + options.layout);\n\n\t\tif ($notificationsContainer.length === 0) {\n\t\t\t$notificationsContainer = $(`
`);\n\t\t\tif (this.isIE) {\n\t\t\t\t$notificationsContainer.addClass('b-noty_no-animate');\n\t\t\t}\n\t\t\tthis.$body.append($notificationsContainer);\n\t\t}\n\n\t\treturn $notificationsContainer;\n\t}\n\n\tprivate showNext (): void {\n\t\t// eslint-disable-next-line no-underscore-dangle\n\t\tforEach(this.notificationsQueue._queue, (noty) => {\n\t\t\tinvoke(noty, 'show');\n\t\t});\n\t}\n\n\tprivate startClosingTimer (noty: INoty, options: ICommonNotyOptions): void {\n\t\tnoty.timer = window.setTimeout(noty.close, options.timeout);\n\t}\n\n\tprivate endClosingTimer (noty: INoty): void {\n\t\tif (noty.timer) {\n\t\t\tclearTimeout(noty.timer);\n\t\t\tnoty.timer = null;\n\t\t}\n\t}\n\n\tprivate onAnimationEnd (callback: () => void): () => void {\n\t\treturn () => {\n\t\t\tsetTimeout(callback, commonConstants.animationDuration);\n\t\t};\n\t}\n\n\tprivate animateAll (options: ICommonNotyOptions): void {\n\t\tconst $notificationsContainer = this.getContainer(options);\n\n\t\t$notificationsContainer.children().each((elementIndex, element) => {\n\t\t\tconst $element = $(element);\n\t\t\tconst bottom = reduce(this.cacheHeight, (result, cacheItem, cacheIndex) => {\n\t\t\t\tif (cacheIndex > elementIndex) {\n\t\t\t\t\treturn result + cacheItem.height!;\n\t\t\t\t} else {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t}, 0);\n\n\t\t\t$element.css({\n\t\t\t\tbottom,\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate showNotification (noty: INoty, options: ICommonNotyOptions): INoty {\n\t\tlet $notificationsContainer: JQuery;\n\n\t\tif (!noty.shown) {\n\t\t\tif (!noty.queued) {\n\t\t\t\tthis.showNext();\n\t\t\t\tthis.notificationsQueue.add(noty);\n\t\t\t}\n\n\t\t\t$notificationsContainer = this.getContainer(options);\n\n\t\t\tif ($notificationsContainer.children().length < this.getMaxVisible()) {\n\t\t\t\t$notificationsContainer.append(this.createNotificationLayout(noty, options));\n\n\t\t\t\tthis.notificationsQueue.remove(noty);\n\t\t\t\tnoty.truncate();\n\t\t\t\tthis.cacheHeight.push({id: noty.id, height: noty.$element.outerHeight(true)!});\n\n\t\t\t\tthis.animateAll(options);\n\n\t\t\t\tnoty.shown = true;\n\n\t\t\t\tnoty.$element\n\t\t\t\t\t.addClass(options.animation!.open)\n\t\t\t\t\t.on('mouseenter', () => {\n\t\t\t\t\t\tthis.endClosingTimer(noty);\n\t\t\t\t\t})\n\t\t\t\t\t.on('mouseleave', () => {\n\t\t\t\t\t\tthis.startClosingTimer(noty, options);\n\t\t\t\t\t})\n\t\t\t\t\t// in IE animationend does not fire sometimes\n\t\t\t\t\t// emulated animationend from animationstart to ANIMATE_DURATION\n\t\t\t\t\t.on(this.animationStartEvents, this.onAnimationEnd(() => {\n\t\t\t\t\t\tthis.startClosingTimer(noty, options);\n\t\t\t\t\t\tnoty.$element.removeClass(options.animation!.open);\n\t\t\t\t\t\tnoty.$element.off(this.animationStartEvents);\n\t\t\t\t\t}));\n\t\t\t}\n\t\t}\n\n\t\treturn noty;\n\t}\n\n\tprivate closeNotification (noty: INoty, options: ICommonNotyOptions): INoty {\n\t\tif (noty.shown) {\n\t\t\tthis.endClosingTimer(noty);\n\n\t\t\tnoty.$element\n\t\t\t\t.removeClass(options.animation!.open)\n\t\t\t\t.addClass(options.animation!.close)\n\t\t\t\t// in IE animationend does not fire sometimes\n\t\t\t\t// emulated animationend from animationstart to ANIMATE_DURATION\n\t\t\t\t.on(this.animationStartEvents, this.onAnimationEnd(() => {\n\t\t\t\t\tnoty.shown = false;\n\t\t\t\t\tnoty.$element.remove();\n\t\t\t\t\tremove(this.cacheHeight, (item) => item.id === noty.id);\n\n\t\t\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\t\t\tif (this.notificationsQueue._queue.length === 0) {\n\t\t\t\t\t\tthis.animateAll(options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.showNext();\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t}\n\n\t\treturn noty;\n\t}\n\n\tprivate createNotification (options: ICommonNotyOptions): void {\n\t\tconst id = uniqueId('common_noty_bar_');\n\n\t\tconst\tdefaults: ICommonNotyOptions = {\n\t\t\ttext: '',\n\t\t\ttype: 'success',\n\t\t\tlayout: 'bottomLeft',\n\t\t\ticon: '',\n\t\t\ttimeout: this.NOTIFICATION_TIMEOUT,\n\t\t\tanimation: {\n\t\t\t\topen: 'slideInUp',\n\t\t\t\tclose: 'slideOutLeftFade',\n\t\t\t},\n\t\t\tbuttons: [\n\t\t\t\t{\n\t\t\t\t\ttitle: this.commonLocaleService.instant('common.dismiss'),\n\t\t\t\t\tclassName: 'b_noty_button_close',\n\t\t\t\t\tcallback: (button) => {\n\t\t\t\t\t\tbutton.close();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\toptions = mergeWith({}, defaults, options, (objValue, srcValue) => {\n\t\t\tif (isArray(objValue) && isArray(srcValue)) {\n\t\t\t\treturn objValue.concat(srcValue);\n\t\t\t}\n\t\t});\n\n\t\tconst noty: INoty = {\n\t\t\tid,\n\t\t\tshown: false,\n\t\t\tqueued: false,\n\t\t\ttimer: null,\n\t\t\t$element: createNotificationElement(id),\n\t\t\t$body: $('
'),\n\t\t\t$buttons: $('
'),\n\t\t\tshow: () => this.showNotification(noty, options),\n\t\t\tclose: () => this.closeNotification(noty, options),\n\t\t\ttruncate: () => {\n\t\t\t\tconst element = document.querySelector('.b-noty-text-body--ellipsis');\n\t\t\t\tconst option = {\n\t\t\t\t\theight: 160, // 10 text lines\n\t\t\t\t};\n\t\t\t\tnew Dotdotdot(element as HTMLElement, option);\n\t\t\t},\n\t\t};\n\n\t\tnoty.show();\n\n\t\tfunction createNotificationElement (notificationId: string) {\n\t\t\tconst mobilePaddings = 32;\n\t\t\tconst notificationNormalWidth = 384;\n\t\t\tconst minViewportWidth = Math.min(window.innerWidth, window.screen.width);\n\t\t\tconst width = minViewportWidth > notificationNormalWidth + mobilePaddings\n\t\t\t\t? notificationNormalWidth\n\t\t\t\t: minViewportWidth - mobilePaddings;\n\n\t\t\treturn $(`
`);\n\t\t}\n\t}\n\n\tprivate getMessage (title = '', body: string | Record = ''): string {\n\t\tlet bodyEl = `
${ body }
`;\n\n\t\tif (isObject(body) && has(body, 'template')) {\n\t\t\t// now use template as string instead of templateUrl\n\t\t\t// this using in administration\n\t\t\tbodyEl = `
${ get(body, 'template') }
`;\n\t\t}\n\n\t\tconst template = `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\t
${ title }
\n\t\t\t\t\t\t${ bodyEl }\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\n\t\treturn this.domSanitizer.sanitize(SecurityContext.HTML, template) || '';\n\t}\n}\n","import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';\nimport { Injectable } from '@angular/core';\n\nimport { CommonAppDataService } from '../app_data/app_data.service';\nimport {\n\tICommonLocaleServiceTranslations,\n\tTCommonLocaleServiceCompilerResult,\n} from './locale.service';\n\n@Injectable()\nexport class CommonTranslationCompiler {\n\treadonly locale: string = this.commonAppDataService.getDataByPath('locale');\n\n\tconstructor (\n\t\tprivate messageFormat: TranslateMessageFormatCompiler,\n\t\tprivate commonAppDataService: CommonAppDataService,\n\t) {}\n\n\tcompile (value: string): string {\n\t\treturn value;\n\t}\n\n\tcompileTranslations (translations: ICommonLocaleServiceTranslations): ICommonLocaleServiceTranslations {\n\t\tfor (const key in translations) {\n\t\t\tif (translations.hasOwnProperty(key)) {\n\t\t\t\ttranslations[key] = this.resolveReferences(translations[key], translations);\n\t\t\t}\n\t\t}\n\t\treturn translations;\n\t}\n\n\tprivate resolveReferences (\n\t\tvalue: TCommonLocaleServiceCompilerResult,\n\t\ttranslations: ICommonLocaleServiceTranslations,\n\t): TCommonLocaleServiceCompilerResult {\n\t\tif ((value as string).match('plural,') || (value as string).match('select,')) {\n\t\t\treturn this.messageFormat.compile(value as string, this.locale);\n\t\t}\n\n\t\treturn (value as string).replace(/@:(\\S+)/, (\n\t\t\tmatches,\n\t\t\tkey,\n\t\t) => this.resolveReferences(translations[key], translations) as string);\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport {\n\tTranslateCompiler,\n\tTranslateModule,\n} from '@ngx-translate/core';\nimport { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';\n\nimport { CommonLocaleService } from './locale.service';\nimport { CommonTranslationCompiler } from './translation_compiler.service';\nimport { CommonTranslateParamsPipe } from './translate_params.pipe';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonTranslateParamsPipe,\n\t],\n\timports: [\n\t\tTranslateModule.forRoot({\n\t\t\tcompiler: {\n\t\t\t\tprovide: TranslateCompiler,\n\t\t\t\tuseClass: CommonTranslationCompiler,\n\t\t\t},\n\t\t}),\n\t],\n\texports: [\n\t\tCommonTranslateParamsPipe,\n\t],\n\tproviders: [\n\t\tCommonLocaleService,\n\t\tCommonTranslateParamsPipe,\n\t\tTranslateMessageFormatCompiler,\n\t],\n})\nexport class CommonLocaleModule {}\n","export const commonHttpErrorStatuses = {\n\terrors: [\n\t\t500,\n\t\t400,\n\t\t403,\n\t\t405,\n\t\t422,\n\t],\n};\n","// New version src/Common/modules_placeholders/modules_placeholders.service.ts CommonModulesPlaceholders\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/providers/modules_placeholders_provider.ts ModulesPlaceholders\n\n// Provider registration and storages info about module placeholder\nimport { map, isFunction, get} from 'lodash';\nimport { Injector, Provider, Injectable } from '@angular/core';\nimport { ICommonKeyValues } from '../@types/core';\n\nexport interface ICommonModulesPlaceholdersProvider {\n\tregisterPlaceholder(placeholder: ICommonModulesPlaceholderType): ICommonModulesPlaceholdersProvider;\n}\n\nexport interface ICommonModulesPlaceholderType {\n\tname: string;\n\tdeps?: [Provider];\n\tplaceholder: T;\n}\n\ninterface IPlaceholdersList extends ICommonKeyValues>> {}\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class CommonModulesPlaceholders {\n\tprivate modulesPlaceholdersList: IPlaceholdersList = {};\n\n\tpublic registerPlaceholder (placeholderObject: ICommonModulesPlaceholderType): ICommonModulesPlaceholdersProvider {\n\t\tthis.modulesPlaceholdersList[placeholderObject.name] = this.modulesPlaceholdersList[placeholderObject.name] || [];\n\t\tthis.modulesPlaceholdersList[placeholderObject.name].push(placeholderObject);\n\n\t\treturn this;\n\t}\n\n\tpublic getPlaceholder (name: string): T[] {\n\t\treturn map(this.modulesPlaceholdersList[name], this.invokePlaceholder.bind(this));\n\t}\n\n\tprivate invokePlaceholder (placeholderObject: ICommonModulesPlaceholderType): T {\n\t\tlet placeholder = placeholderObject.placeholder;\n\n\t\tif (isFunction(placeholder)) {\n\t\t\tlet deps = [];\n\n\t\t\t// not in constructor for downgrading support\n\t\t\tconst injector = Injector.create({providers: []});\n\n\t\t\tif (get(placeholderObject, 'deps.length')) {\n\t\t\t\tdeps = map(placeholderObject.deps, (dependency) => injector.get(dependency));\n\t\t\t}\n\n\t\t\tplaceholder = placeholder(...deps);\n\t\t}\n\n\t\treturn placeholder;\n\t}\n}\n","// New version src/Common/interceptors/error_interceptor.service.ts CommonErrorInterceptor\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/common_errors_interceptor_factory.js CommonErrorsInterceptor\n\nimport { Injectable } from '@angular/core';\nimport {\n\tHttpEvent,\n\tHttpHandler,\n\tHttpInterceptor,\n\tHttpRequest,\n\tHttpResponse,\n} from '@angular/common/http';\nimport {\n\tObservable,\n\tthrowError,\n} from 'rxjs';\nimport {\n\tcatchError,\n\tmap as rxMap,\n} from 'rxjs/operators';\nimport {\n\tfind,\n\tget,\n\tincludes,\n\tmap,\n\tnoop,\n} from 'lodash';\n\nimport { commonHttpErrorStatuses } from './statuses.constant';\nimport { CommonNotificationService } from '../services/notification.service';\nimport { CommonModulesPlaceholders } from '../services/modules_placeholders.service';\nimport { CommonLocaleService } from '../services/locale/locale.service';\nimport { ICommonResponseError } from '../@types/core';\n\ninterface CommonErrorInterceptorResponse extends HttpResponse {\n\tWarningHeader: string;\n\tWarning: string;\n\tWarningType: string;\n}\n\n@Injectable()\nexport class CommonErrorInterceptor implements HttpInterceptor {\n\tprivate warningTypeConfigs: any;\n\tprivate warningTypes: any;\n\n\tconstructor (\n\t\tprivate commonNotificationService: CommonNotificationService,\n\t\tprivate commonModulesPlaceholders: CommonModulesPlaceholders,\n\t\tprivate commonLocaleService: CommonLocaleService,\n\t) {}\n\n\tintercept (req: HttpRequest, next: HttpHandler): Observable> {\n\t\treturn next.handle(req).pipe(\n\t\t\trxMap((response: HttpEvent) => {\n\t\t\t\tconst warningText = get(response, 'body.data.Warning') || get(response, 'body.Warning');\n\t\t\t\tlet warningHeader = get(response, 'body.data.WarningHeader') || get(response, 'body.WarningHeader');\n\t\t\t\tlet warningType = get(response, 'body.data.WarningType') || get(response, 'body.WarningType');\n\t\t\t\tlet warningConfig;\n\n\t\t\t\tif (warningHeader || warningText || warningType) {\n\t\t\t\t\tif (!this.warningTypeConfigs) {\n\t\t\t\t\t\tthis.warningTypeConfigs = this.commonModulesPlaceholders.getPlaceholder('common-warning-types');\n\t\t\t\t\t\tthis.warningTypes = map(this.warningTypeConfigs, 'type');\n\t\t\t\t\t\tthis.warningTypes.push('Success');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!includes(this.warningTypes, warningType)) {\n\t\t\t\t\t\twarningType = 'warning';\n\t\t\t\t\t}\n\n\t\t\t\t\twarningConfig = (get(find(this.warningTypeConfigs, { type: 'TrustAccountInsufficientFunds'}), 'getConfig') || noop)();\n\n\t\t\t\t\twarningHeader = warningHeader || this.commonLocaleService.instant('common.noty.warning.title');\n\t\t\t\t\twarningType = warningType.toLowerCase();\n\t\t\t\t\tthis.commonNotificationService.show(warningHeader, warningText, warningType, warningConfig);\n\t\t\t\t}\n\n\t\t\t\treturn response;\n\t\t\t}),\n\t\t\tcatchError((response: ICommonResponseError) => {\n\t\t\t\tif (includes(commonHttpErrorStatuses.errors, response.status)) {\n\t\t\t\t\tthis.commonNotificationService.handleResponseError(response);\n\t\t\t\t}\n\n\t\t\t\treturn throwError(response);\n\t\t\t}),\n\t\t);\n }\n}\n","// New version src/Common/server_date/server_date.service.ts CommonServerDateService\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/server_date_service_factory.ts ServerDateService\nimport { Injectable } from '@angular/core';\n\nimport {\n\textend,\n\tfind,\n\tisArray,\n\tisEmpty,\n\tisNull,\n\tisString,\n\tmap,\n\tsome,\n} from 'lodash';\nimport * as moment from 'moment';\n\nimport {\n\tInt,\n\tUUID,\n} from '../@types/core';\nimport { CommonLocaleService } from './locale/locale.service';\nimport { CommonGeneralSettingsService } from './general_settings.service';\n\n// Helper for generating Opaque types.\ntype Opaque = T & { __opaque__: K };\ntype TCommonServerDateFormatString = Opaque; // 'YYYY-MM-DD'\ntype TCommonServerNonWorkingRule = (day: moment.Moment) => boolean;\n\ntype TCommonServerDateMomentPeriod = (\n\t'year' | 'years' | 'y' |\n\t'month' | 'months' | 'M' |\n\t'week' | 'weeks' | 'w' |\n\t'day' | 'days' | 'd' |\n\t'hour' | 'hours' | 'h' |\n\t'minute' | 'minutes' | 'm' |\n\t'second' | 'seconds' | 's' |\n\t'millisecond' | 'milliseconds' | 'ms'\n);\n\ntype TCommonServerDateMomentPeriodQuarter = 'quarter' | 'quarters' | 'Q';\n\ninterface ICommonServerDateWeekDay {\n\tId: UUID;\n\tName: string;\n\tOrder: Int;\n\tIndexNumber: Int;\n\tSysName: string;\n}\n\ninterface ICommonServerDateNonWorkingDay {\n\tName?: string;\n\tStartDate: TCommonServerDateFormatString;\n\tEndDate: TCommonServerDateFormatString;\n}\n\nexport const DAYS_SYMBOL = 'dd';\nexport const MONTHS_SYMBOL = 'mm';\nexport const YEARS_SYMBOL = 'yyyy';\nexport const DAYS_IN_WEEK = 7;\n\nconst DEFAULT_SETTINGS = {\n\tfirstDay: 0,\n};\n\n@Injectable()\nexport class CommonServerDateService {\n\tdaysSymbol = 'dd';\n\tmonthsSymbol = 'mm';\n\tyearsSymbol = 'yyyy';\n\tsecondsInMinute = 60;\n\tminutesInHour = 60;\n\thoursInDay = 24;\n\tsecondsInDay = 24 * 60 * 60;\n\tdaysInWeek = 7;\n\tdatetimeFormat = 'YYYY-MM-DD[T]HH:mm:ss.SSSZ';\n\tlocalDateTimeFormat = 'YYYY-MM-DD[T]HH:mm:ss';\n\tdateFormat = 'YYYY-MM-DD';\n\tworkingDays: ICommonServerDateWeekDay[] = [];\n\tnonWorkingDays: ICommonServerDateNonWorkingDay[] = [];\n\tshortDateFormat = 'DD.MM.Y';\n\tinputDateFormat = this.shortDateFormat;\n\tmediumDateFormat = 'D MMM Y';\n\tlongDateFormat = 'D MMMM Y';\n\tdisplayTimeFormat = 'HH:mm';\n\tmaskDelimiter = '.';\n\tshortWithTime = `${this.shortDateFormat}, ${this.displayTimeFormat}`;\n\tmediumWithTime = `${this.mediumDateFormat}, ${this.displayTimeFormat}`;\n\ttimeWithMedium = `${this.displayTimeFormat}, ${this.mediumDateFormat}`;\n\tdateTestRegex: RegExp;\n\tinputDateTestRegex: RegExp;\n\tinputDateMask = '';\n\tinputDatePlaceholder = '';\n\tinputTimeMask = '';\n\tinputTimePlaceholder = '';\n\tinputFormatWithFirstZero = -1 < this.inputDateFormat.indexOf('DD');\n\tamDesignator = '';\n\tpmDesignator = '';\n\tfirstDay = 0;\n\n\tprivate inputTimeRegex = /\\d{2}:\\d{2}/;\n\tprivate isoDateTestRegex = /\\d{4}-\\d{2}-\\d{2}/;\n\n\tprivate dateTestRegexByYear = {\n\t\tyyyymmdd: /\\d{4}[\\/\\-.]\\d{1,2}[\\/\\-.]\\d{1,2}/,\n\t\tmmddyyyy: /\\d{1,2}[\\/\\-.]\\d{1,2}[\\/\\-.]\\d{4}/,\n\t\tddmmyyyy: /\\d{1,2}[\\/\\-.]\\d{1,2}[\\/\\-.]\\d{4}/,\n\t};\n\n\tprivate inputDateTestRegexByYear = {\n\t\tyyyymmdd: /\\d{4}[\\/\\-.]\\d{2}[\\/\\-.]\\d{2}/,\n\t\tmmddyyyy: /\\d{2}[\\/\\-.]\\d{2}[\\/\\-.]\\d{4}/,\n\t\tddmmyyyy: /\\d{2}[\\/\\-.]\\d{2}[\\/\\-.]\\d{4}/,\n\t};\n\n\tprivate TIME_KEYS_FOR_DST_FIX = ['days', 'day', 'weeks', 'week', 'months', 'month', 'quarters', 'quarter', 'years', 'year', 'd', 'w', 'M', 'Q', 'y'];\n\tprivate workingDayIndexes: Int[];\n\tprivate nonWorkingDaysRules: TCommonServerNonWorkingRule[];\n\n\tconstructor (\n\t\tprivate commonLocaleService: CommonLocaleService,\n\t\tprivate commonGeneralSettingsService: CommonGeneralSettingsService,\n\t) {}\n\n\tinit () {\n\t\tthis.workingDays = this.commonGeneralSettingsService.getGeneralSettings('WorkingDays');\n\t\tthis.nonWorkingDays = this.commonGeneralSettingsService.getGeneralSettings('NonWorkingDays');\n\t\tthis.extendDateFormatsFromGeneralSettings();\n\n\t\tthis.setInputSettings();\n\n\t\tthis.workingDayIndexes = map(this.workingDays, (day) => {\n\t\t\tconst index = day.IndexNumber + 1;\n\n\t\t\tif (index === DAYS_IN_WEEK) {\n\t\t\t\treturn 0;\n\t\t\t} else {\n\t\t\t\treturn index;\n\t\t\t}\n\t\t}) as Int[];\n\n\t\tthis.nonWorkingDaysRules = this.createNonWorkingRules(this.nonWorkingDays);\n\t}\n\n\tgetMoment (dateString?: string | moment.Moment | object | number): moment.Moment {\n\t\tconst invalidDateString = dateString === 'current' || isNull(dateString) || dateString === '' || dateString === undefined;\n\t\treturn moment( invalidDateString ? undefined : dateString, (this.isDateString(dateString as string) && !this.isISODateString(dateString as string) ? this.shortDateFormat : null)!);\n\t}\n\n\tgetMomentInstance (): typeof moment {\n\t\treturn moment;\n\t}\n\n\tgetDateFromTimeZone (timeZone: string, date?: string, ): moment.Moment {\n\t\treturn date ? moment.tz(date, timeZone) : moment.tz(timeZone);\n\t}\n\n\tgetMoscowDateTime (date?: string): moment.Moment {\n\t\treturn this.getDateFromTimeZone('Europe/Moscow', date);\n\t}\n\n\thasTime (dateString: string): boolean {\n\t\treturn !!dateString && dateString.indexOf && dateString.indexOf('T') !== -1;\n\t}\n\n\tisInputTimeString (timeString: string | null): boolean {\n\t\treturn isString(timeString) && this.inputTimeRegex.test(timeString);\n\t}\n\n\tgetTimezoneOffset (): string {\n\t\treturn moment().format('Z');\n\t}\n\n\tisChangedDates (newValues: moment.Moment | string | [], oldValues: moment.Moment | string | []): boolean {\n\t\tlet isChanged;\n\n\t\tif (isArray(newValues)) {\n\t\t\tisChanged = some(newValues, (value, index) => !this.getMoment(value).isSame(this.getMoment(oldValues[index])));\n\t\t} else {\n\t\t\tisChanged = !this.getMoment(newValues as string).isSame(this.getMoment(oldValues as string));\n\t\t}\n\n\t\treturn isChanged;\n\t}\n\n\tgetLastDaysDate (daysCount: number): moment.Moment {\n\t\treturn moment().add(-daysCount, 'days');\n\t}\n\n\tisDayOff (date: moment.Moment): boolean {\n\t\tif (this.isWorkingDayInWeek(date)) {\n\t\t\treturn !!find(this.nonWorkingDaysRules, (rule) => rule(date));\n\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tisWorkingDayInWeek (date: moment.Moment): boolean {\n\t\tconst dayIndex = date.day() as Int;\n\t\treturn -1 < this.workingDayIndexes.indexOf(dayIndex);\n\t}\n\n\tgetDiffAsDays (startDate: moment.Moment, endDate: moment.Moment): number {\n\t\tconst minutesDiff = (endDate.unix() - startDate.unix()) / this.secondsInMinute;\n\t\tconst offsetDiff = endDate.utcOffset() - startDate.utcOffset();\n\n\t\treturn (minutesDiff + offsetDiff) / (this.minutesInHour * this.hoursInDay);\n\t}\n\n\tadd (date: moment.Moment, value: number, period: TCommonServerDateMomentPeriod | TCommonServerDateMomentPeriodQuarter): moment.Moment {\n\t\tconst isFixPeriod = -1 < this.TIME_KEYS_FOR_DST_FIX.indexOf(period);\n\n\t\tlet oldHour;\n\t\tlet newHour;\n\t\tlet diff;\n\n\t\tif (isFixPeriod) {\n\t\t\toldHour = date.hours();\n\t\t\tdate.add(value, period);\n\t\t\tnewHour = date.hours();\n\n\t\t\tif (oldHour !== newHour) {\n\t\t\t\tdiff = this.getCountDiffHours(newHour, oldHour);\n\n\t\t\t\tif (0 < diff) {\n\t\t\t\t\tdate.add(diff, 'hours');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn date;\n\t\t} else {\n\t\t\treturn date.add(value, period);\n\t\t}\n\t}\n\n\tisDateString (dateString: string): boolean {\n\t\treturn isString(dateString) && (this.dateTestRegex.test(dateString) || this.isISODateString(dateString));\n\t}\n\n\tisInputDateString (dateString: string): boolean {\n\t\treturn isString(dateString) && (this.inputDateTestRegex.test(dateString) || this.isISODateString(dateString));\n\t}\n\n\tisISODateString (dateString: string): boolean {\n\t\treturn isString(dateString) && this.isoDateTestRegex.test(dateString);\n\t}\n\n\t// convert date (or array of dates) to UTC ISO 8601 formatted string\n\ttoISOString (date: string | moment.Moment): string {\n\t\treturn date ? this.getMoment(date).clone().toISOString() : '';\n\t}\n\n\ttoLocalDateTimeFormatString (date: string | moment.Moment): string {\n\t\treturn date ? this.getMoment(date).clone().format(this.localDateTimeFormat) : '';\n\t}\n\n\ttoDateString (date: string | moment.Moment): TCommonServerDateFormatString | string {\n\t\treturn date ? this.getMoment(date).clone().format(this.dateFormat) : '';\n\t}\n\n\ttoDisplayDateString (date: moment.Moment | string): string {\n\t\treturn date ? this.getMoment(date).clone().format(this.shortDateFormat) : '';\n\t}\n\n\ttoDisplayTimeString (date: moment.Moment | string): string {\n\t\treturn date ? this.getMoment(date).clone().format(this.displayTimeFormat) : '';\n\t}\n\n\tsetInputSettings (): void {\n\t\tconst monthsSymbol = this.commonLocaleService.instant('common.symbols.months');\n\t\tconst yearsSymbol = this.commonLocaleService.instant('common.symbols.years');\n\t\tconst daysSymbol = this.commonLocaleService.instant('common.symbols.days');\n\t\tconst minutesSymbol = this.commonLocaleService.instant('common.symbols.minutes');\n\t\tconst hoursSymbol = this.commonLocaleService.instant('common.symbols.hours');\n\n\t\tconst mask = this.inputDateFormat\n\t\t\t.toLowerCase()\n\t\t\t.replace(/d{1,2}/i, DAYS_SYMBOL)\n\t\t\t.replace(/m{1,2}/i, MONTHS_SYMBOL)\n\t\t\t.replace(/y{1,4}/i, YEARS_SYMBOL);\n\n\t\tconst placeholder = mask\n\t\t\t.replace(/d/g, daysSymbol)\n\t\t\t.replace(/m/g, monthsSymbol)\n\t\t\t.replace(/y/g, yearsSymbol);\n\n\t\tconst maskWithoutDelimiters = mask.replace(/\\W/g, '');\n\t\tthis.maskDelimiter = this.inputDateFormat.replace(/\\w/g, '')[0];\n\n\t\tthis.dateTestRegex = this.dateTestRegexByYear[maskWithoutDelimiters];\n\t\tthis.inputDateTestRegex = this.inputDateTestRegexByYear[maskWithoutDelimiters];\n\t\tthis.inputDateMask = mask;\n\t\tthis.inputDatePlaceholder = placeholder;\n\t\tthis.inputTimeMask = 'h:s';\n\t\tthis.inputTimePlaceholder = this.inputTimeMask.replace(/h/g, hoursSymbol + hoursSymbol).replace(/s/g, minutesSymbol + minutesSymbol);\n\t}\n\n\tprivate extendDateFormatsFromGeneralSettings (): void {\n\t\tconst dateFormatSettings = this.commonGeneralSettingsService.getGeneralSettings('DateFormat');\n\n\t\tif (!isEmpty(dateFormatSettings)) {\n\t\t\tconst timeFormatSettings = this.commonGeneralSettingsService.getGeneralSettings('TimeFormat');\n\n\t\t\tthis.displayTimeFormat = timeFormatSettings.Format;\n\t\t\tthis.shortDateFormat = dateFormatSettings.ShortFormat;\n\t\t\tthis.mediumDateFormat = dateFormatSettings.MediumFormat;\n\t\t\tthis.longDateFormat = dateFormatSettings.LongFormat;\n\t\t\tthis.inputDateFormat = this.shortDateFormat;\n\t\t\tthis.maskDelimiter = this.inputDateFormat.replace(/\\w/g, '')[0];\n\t\t\tthis.shortWithTime = `${this.shortDateFormat}, ${this.displayTimeFormat}`;\n\t\t\tthis.mediumWithTime = `${this.mediumDateFormat}, ${this.displayTimeFormat}`;\n\t\t\tthis.timeWithMedium = `${this.displayTimeFormat}, ${this.mediumDateFormat}`;\n\t\t\tthis.amDesignator = timeFormatSettings.AmDesignator;\n\t\t\tthis.pmDesignator = timeFormatSettings.PmDesignator;\n\t\t\tthis.firstDay = this.commonGeneralSettingsService.getGeneralSettings('DayOfWeek').IndexNumber + 1;\n\t\t\tthis.inputFormatWithFirstZero = -1 < this.inputDateFormat.indexOf('DD');\n\t\t} else {\n\t\t\textend(this, DEFAULT_SETTINGS);\n\t\t}\n\t}\n\n\tprivate afterOrEqual (\n\t\tfirstYear: number,\n\t\tfirstMonth: number,\n\t\tfirstDay: number,\n\t\tsecondYear: number,\n\t\tsecondMonth: number,\n\t\tsecondDay: number,\n\t): boolean {\n\t\treturn firstYear < secondYear || (firstYear === secondYear && (\n\t\t\tfirstMonth < secondMonth || (firstMonth === secondMonth && (\n\t\t\t\tfirstDay < secondDay || firstDay === secondDay)\n\t\t\t))\n\t\t);\n\t}\n\n\tprivate createNonWorkingRules (nonWorkingDays: ICommonServerDateNonWorkingDay[]): TCommonServerNonWorkingRule[] {\n\t\treturn map(nonWorkingDays, (day) => {\n\t\t\tconst startDate = this.getMoment(day.StartDate);\n\t\t\tconst startYear = startDate.year();\n\t\t\tconst startMonth = startDate.month();\n\t\t\tconst startDayInMonth = startDate.date();\n\n\t\t\tif (day.EndDate) {\n\t\t\t\tconst endDate = this.getMoment(day.EndDate);\n\t\t\t\tconst endYear = endDate.year();\n\t\t\t\tconst endMonth = endDate.month();\n\t\t\t\tconst endDayInMonth = endDate.date();\n\n\t\t\t\treturn (testDate: moment.Moment): boolean => {\n\t\t\t\t\tconst year = testDate.year();\n\t\t\t\t\tconst month = testDate.month();\n\t\t\t\t\tconst dayInMonth = testDate.date();\n\t\t\t\t\tconst afterStart = this.afterOrEqual(startYear, startMonth, startDayInMonth, year, month, dayInMonth);\n\t\t\t\t\tconst beforeEnd = this.afterOrEqual(year, month, dayInMonth, endYear, endMonth, endDayInMonth);\n\n\t\t\t\t\treturn afterStart && beforeEnd;\n\t\t\t\t};\n\n\t\t\t} else {\n\t\t\t\treturn (testDate: moment.Moment): boolean => {\n\t\t\t\t\tconst year = testDate.year();\n\t\t\t\t\tconst month = testDate.month();\n\t\t\t\t\tconst dayInMonth = testDate.date();\n\n\t\t\t\t\treturn startYear === year && startMonth === month && startDayInMonth === dayInMonth;\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate getCountDiffHours (newHour: number, oldHour: number): number {\n\t\tconst newHourInRange = 0 <= newHour && newHour < this.hoursInDay;\n\t\tconst oldHourInRange = 0 <= oldHour && oldHour < this.hoursInDay;\n\n\t\tlet leftShift;\n\t\tlet rightShift;\n\n\t\tif (newHourInRange && oldHourInRange) {\n\t\t\tleftShift = 0;\n\t\t\trightShift = 0;\n\n\t\t\twhile (true) {\n\t\t\t\tif (this.normalizeHour(newHour + leftShift) === oldHour) {\n\t\t\t\t\treturn leftShift;\n\t\t\t\t} else {\n\t\t\t\t\tleftShift -= 1;\n\t\t\t\t}\n\t\t\t\tif (this.normalizeHour(newHour + rightShift) === oldHour) {\n\t\t\t\t\treturn rightShift;\n\t\t\t\t} else {\n\t\t\t\t\trightShift += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\tprivate normalizeHour (hour: number): number {\n\t\tif (this.hoursInDay <= hour) {\n\t\t\treturn this.normalizeHour(hour - this.hoursInDay);\n\t\t} else if (hour < 0) {\n\t\t\treturn this.normalizeHour(hour + this.hoursInDay);\n\t\t} else {\n\t\t\treturn hour;\n\t\t}\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\n\n@Pipe({\n\tname: 'commonTwoDigitsNumber',\n})\nexport class CommonTwoDigitsNumberPipe implements PipeTransform {\n\ttransform (num: number, placeholder = '0'): string {\n\t\tnum = num || 0;\n\n\t\tif (num < 10) {\n\t\t\treturn (placeholder + num).slice(-2);\n\t\t} else {\n\t\t\treturn num.toString(10);\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { CommonTwoDigitsNumberPipe } from './two_digits_number.pipe';\n\n@Pipe({\n\tname: 'commonSecondsFormatter',\n})\nexport class CommonSecondsFormatterPipe implements PipeTransform {\n\tconstructor (private commonTwoDigitsNumberPipe: CommonTwoDigitsNumberPipe) {}\n\n\ttransform (seconds: number) {\n\t\tconst m = Math.floor(seconds / 60);\n\t\tconst s = Math.floor(seconds % 60);\n\n\t\tif (!seconds) {\n\t\t\treturn seconds;\n\t\t}\n\n\t\treturn [this.commonTwoDigitsNumberPipe.transform(m), this.commonTwoDigitsNumberPipe.transform(s)].join(':');\n\t}\n}\n","// New version src/Common/utilities/core.service.ts CommonUtilitiesCore\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/utilities_service.js Utilities\n\nimport {\n\tUntypedFormArray,\n\tUntypedFormGroup,\n} from '@angular/forms';\nimport {\n\tcloneDeep,\n\tcompact,\n\tdefaults,\n\textend,\n\tfind,\n\tforEach,\n\tget,\n\tisArray,\n\tisEmpty,\n\tisEqual,\n\tisNaN,\n\tisNull,\n\tisObject,\n\tisUndefined,\n\tmerge,\n\tslice,\n\tuniqueId,\n} from 'lodash';\n\nimport { ICommonKeyValues } from '../@types/core';\n\ninterface ICommonServiceCompareModelParams {\n\toriginalItems?: T[];\n\titemsField: string;\n\tfieldId: string;\n\taddedItemsField: string;\n\tdeletedItemsField: string;\n}\n\nclass CommonUtilitiesCore {\n\tprivate hiddenDiv: HTMLElement = document.createElement('div');\n\n\tconstructor () {\n\t\tthis.hiddenDiv.className = 'g-hidden-measure-text';\n\t\tdocument.body.appendChild(this.hiddenDiv);\n\t}\n\n\thasValue (value: any): boolean {\n\t\treturn !isUndefined(value) && !isNull(value) && !isNaN(value) && value !== '';\n\t}\n\n\tgetDataFromCurrentRoute ($uiRouter: any): ICommonKeyValues {\n\t\tconst path = $uiRouter.globals.$current.path;\n\t\tlet data = {};\n\n\t\tforEach(path, (state) => {\n\t\t\tif (state.data) {\n\t\t\t\tdata = extend(data, state.data);\n\t\t\t}\n\t\t});\n\n\t\treturn data;\n\t}\n\n\tgetQueryStringKeyValue (key: string): string | null {\n\t\tconst reg = new RegExp('[?&]' + key + '=([^&#]*)', 'i');\n\t\tconst str = reg.exec(window.location.href);\n\n\t\treturn str ? decodeURIComponent(str[1]) : null;\n\t}\n\n\tisOuterClick (event: Event, owner: string | JQuery, context: string | JQuery = 'body'): boolean {\n\t\tconst $context = $(context);\n\n\t\tconst $eventTarget = $(event.target! as HTMLElement);\n\t\tconst isElementExist = !!$context.find($eventTarget).length || $eventTarget.is($context);\n\n\t\treturn isElementExist && !$eventTarget.is(owner) && !$eventTarget.closest(owner).length;\n\t}\n\n\tgetTempId (): string {\n\t\treturn uniqueId('temp_') + '_' + (new Date()).getTime();\n\t}\n\n\tisTempId (id: string): boolean {\n\t\treturn /^temp_/.test(id);\n\t}\n\n\tpaginate (array: T[], pageNumber: number, pageSize: number): T[] {\n\t\t--pageNumber; // because pages logically start with 1, but technically with 0\n\t\treturn slice(array, pageNumber * pageSize, (pageNumber + 1) * pageSize);\n\t}\n\n\tgetTextWidth (text: string, font: string): number {\n\t\tif (!text) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tthis.hiddenDiv.style.font = font;\n\t\tthis.hiddenDiv.innerHTML = text;\n\n\t\treturn Math.ceil(this.hiddenDiv.getBoundingClientRect().width);\n\t}\n\n\taddMicrotask (callBack: CallableFunction): void {\n\t\tif (!!window.queueMicrotask) {\n\t\t\tqueueMicrotask(() => callBack());\n\t\t} else {\n\t\t\tPromise.resolve()\n\t\t\t\t.then(() => callBack());\n\t\t}\n\t}\n\n\tcompareModelCollection (model: T, params: ICommonServiceCompareModelParams): void {\n\t\tif (params.originalItems) {\n\t\t\tparams.originalItems = cloneDeep(params.originalItems);\n\t\t}\n\n\t\tconst defaultOptions: ICommonServiceCompareModelParams = {\n\t\t\titemsField: '', // The name of a field with the changed collection\n\t\t\taddedItemsField: '', // The name of a field with new elements\n\t\t\tdeletedItemsField: '', // The name of a field with deleted elements\n\t\t\toriginalItems: [], // Copy of an old array\n\t\t\tfieldId: 'Id', // Field of comparing of elements\n\t\t};\n\n\t\tdefaults(params, defaultOptions);\n\t\tconst items = cloneDeep(model[params.itemsField]);\n\n\t\tif (!isEqual(model[params.itemsField], params.originalItems)) {\n\t\t\tif (model[params.itemsField] && model[params.itemsField].length) {\n\t\t\t\tif (!isEmpty(params.originalItems)) {\n\t\t\t\t\tfor (let i = 0; i < model[params.itemsField].length; i++) {\n\t\t\t\t\t\tfor (let j = 0; j < params.originalItems!.length; j++) {\n\t\t\t\t\t\t\tif (params.originalItems![j][params.fieldId] === model[params.itemsField][i][params.fieldId]) {\n\t\t\t\t\t\t\t\tparams.originalItems!.splice(j, 1);\n\t\t\t\t\t\t\t\tj--;\n\t\t\t\t\t\t\t\tmodel[params.itemsField].splice(i, 1);\n\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tmodel[params.addedItemsField] = isEqual(model[params.addedItemsField], model[params.itemsField]) ?\n\t\t\t\t\t\t[] :\n\t\t\t\t\t\tmodel[params.itemsField];\n\t\t\t\t\tmodel[params.deletedItemsField] = params.originalItems;\n\t\t\t\t\tmodel[params.itemsField] = items;\n\t\t\t\t} else {\n\t\t\t\t\tmodel[params.addedItemsField] = isEqual(model[params.addedItemsField], model[params.itemsField]) ?\n\t\t\t\t\t\t[] :\n\t\t\t\t\t\tmodel[params.itemsField];\n\t\t\t\t}\n\t\t\t} else if (!isEmpty(params.originalItems)) {\n\t\t\t\tmodel[params.deletedItemsField] = params.originalItems;\n\t\t\t}\n\t\t}\n\t}\n\n\tcustomMerge (\n\t\tx: T[] | T,\n\t\ty: T[] | T,\n\t): T[] | T {\n\t\tif (isUndefined(x)) {\n\t\t\treturn y;\n\t\t}\n\n\t\tif (isUndefined(y) || isNull(y) || isNull(x)) {\n\t\t\treturn x;\n\t\t}\n\n\t\tif (isArray(x) && isArray(y)) {\n\t\t\treturn y;\n\t\t}\n\n\t\tif (isObject(x) && isObject(y)) {\n\t\t\treturn merge(x, y, this.customMerge);\n\t\t} else {\n\t\t\treturn y;\n\t\t}\n\t}\n\n\tcustomConcat (\n\t\tarr1: T[],\n\t\tarr2: T[],\n\t\toutputOptions?: { GroupByKey: string; GroupItemsKey: string },\n\t): T[] {\n\t\tif (!isEmpty(arr1) && !isEmpty(arr2) && outputOptions) {\n\t\t\tconst groupByKey = outputOptions.GroupByKey;\n\t\t\tconst groupItemsKey = outputOptions.GroupItemsKey;\n\n\t\t\tarr2.forEach((arr2group) => {\n\t\t\t\tconst arr1group = find(arr1, (arr1gr) => arr1gr[groupByKey].Id === arr2group[groupByKey].Id);\n\n\t\t\t\tif (arr1group) {\n\t\t\t\t\tArray.prototype.push.apply(arr1group[groupItemsKey], arr2group[groupItemsKey]);\n\t\t\t\t} else {\n\t\t\t\t\tarr1.push(arr2group);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tArray.prototype.push.apply(arr1, compact(arr2));\n\t\t}\n\n\t\treturn arr1;\n\t}\n\n\tinsertionSortWithIgnoreCase (array: T[], field: string): T[] {\n\t\tfor (let i = 0; i < array.length; i++) {\n\t\t\tconst temp = array[i];\n\t\t\tlet j = i - 1;\n\n\t\t\twhile (j >= 0 && get(array[j], field) && (get(array[j], field).toLowerCase() > get(temp, field).toLowerCase())) {\n\t\t\t\tarray[j + 1] = array[j];\n\t\t\t\tj--;\n\t\t\t}\n\t\t\tarray[j + 1] = temp;\n\t\t}\n\n\t\treturn array;\n\t}\n\n\tpushWithKeyCheck (arr: T[], item: T, key: string): void {\n\t\tconst found = find(arr, (el) => el[key] === item[key]);\n\n\t\tif (!found) {\n\t\t\tarr.push(item);\n\t\t}\n\t}\n\n\tupdateTreeValidity (group: UntypedFormGroup | UntypedFormArray): void {\n\t\tObject.keys(group.controls).forEach((key: string) => {\n\t\t\tconst abstractControl = group.controls[key];\n\n\t\t\tif (abstractControl instanceof UntypedFormGroup || abstractControl instanceof UntypedFormArray) {\n\t\t\t\tthis.updateTreeValidity(abstractControl);\n\t\t\t} else {\n\t\t\t\tabstractControl.updateValueAndValidity({ onlySelf: true });\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport const commonUtilitiesCoreService = new CommonUtilitiesCore();\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\n\nimport { commonUtilitiesCoreService } from '../services/core.service';\n\n@Pipe({\n\tname: 'commonNAFormatter',\n})\nexport class CommonNAFormatter implements PipeTransform {\n\ttransform (data: any): string {\n\t\treturn commonUtilitiesCoreService.hasValue(data) ? data : '—';\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { commonUtilitiesCoreService } from '../services/core.service';\n\n@Pipe({\n\tname: 'commonNAToBlankFormatter',\n})\nexport class CommonNAToBlankFormatter implements PipeTransform {\n\ttransform (data: any): string {\n\t\treturn !commonUtilitiesCoreService.hasValue(data) ? '' : data;\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\n\nimport { upperFirst } from 'lodash';\n\nimport { CommonNAFormatter } from './na_formatter.pipe';\nimport { CommonNAToBlankFormatter } from './na_blank_formatter.pipe';\nimport { commonUtilitiesCoreService } from '../services/core.service';\nimport { CommonServerDateService } from '../services/server_date.service';\n\nexport interface ICommonDateFormats {\n\tShort: string;\n\tMedium: string;\n\tLong: string;\n\tTime: string;\n\tShortWithTime: string;\n\tMediumWithTime: string;\n\tTimeWithMedium: string;\n}\n\n@Pipe({\n\tname: 'commonDateFormatter',\n})\nexport class CommonDateFormatter implements PipeTransform {\n\tprivate formats: ICommonDateFormats = {\n\t\tShort: this.commonServerDateService.shortDateFormat,\n\t\tMedium: this.commonServerDateService.mediumDateFormat,\n\t\tLong: this.commonServerDateService.longDateFormat,\n\t\tTime: this.commonServerDateService.displayTimeFormat,\n\t\tShortWithTime: this.commonServerDateService.shortWithTime,\n\t\tMediumWithTime: this.commonServerDateService.mediumWithTime,\n\t\tTimeWithMedium: this.commonServerDateService.timeWithMedium,\n\t};\n\n\tconstructor (\n\t\tprivate commonServerDateService: CommonServerDateService,\n\t) {}\n\n\ttransform (date: string, options = {} as any) {\n\t\tif (!commonUtilitiesCoreService.hasValue(date)) {\n\t\t\tif (options.useCommonNAToBlankFormatter) {\n\t\t\t\treturn new CommonNAToBlankFormatter().transform(null);\n\t\t\t} else {\n\t\t\t\treturn new CommonNAFormatter().transform(null);\n\t\t\t}\n\t\t}\n\n\t\toptions.formatType = options.formatType || 'Medium';\n\n\t\treturn upperFirst(this.commonServerDateService.getMomentInstance()(date).format(this.formats[options.formatType]));\n\t}\n}\n","// New version src/Common/pipes/capitalize_formatter.pipe.ts\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/filters/common_capitalize_filter.ts\n\nimport {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\n\n@Pipe({\n\tname: 'commonCapitalizeFormatter',\n})\nexport class CommonCapitalizeFormatter implements PipeTransform {\n\ttransform (data: string): string {\n\t\treturn (!!data && 0 < data.length) ? data.charAt(0).toUpperCase() + data.substr(1) : '';\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\n\nimport { CommonGeneralSettingsService } from '../services/general_settings.service';\nimport { commonConstants } from '../constants/common.constants';\n\n@Pipe({\n\tname: 'prettyNumber',\n})\nexport class CommonPrettyNumberPipe implements PipeTransform {\n\tconstructor (private generalSettings: CommonGeneralSettingsService) {}\n\n\ttransform (digit: string | number, options: { fixAfterDecimal?: boolean } = {}) {\n\t\tif (!digit) {\n\t\t\treturn digit;\n\t\t}\n\n\t\toptions.fixAfterDecimal = options.fixAfterDecimal !== false; // cut off to true by default is necessary numbers of signs after a comma\n\t\tconst numberFormat = this.generalSettings.getGeneralSettings('NumberFormat') || {};\n\t\tconst decimalSeparator = numberFormat.DecimalSeparator || commonConstants.defaultNumberDecimalSeparator;\n\t\tconst groupSeparator = numberFormat.GroupSeparator || commonConstants.defaultNumberGroupSeparator;\n\t\tlet result = digit.toString()\n\t\t\t.replace(/[' ]/g, '')\n\t\t\t.replace('.', decimalSeparator)\n\t\t\t.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n\n\t\tif (options.fixAfterDecimal) {\n\t\t\tconst decimalIndex = result.indexOf(decimalSeparator);\n\n\t\t\tif (decimalIndex !== -1) {\n\t\t\t\tresult = result.slice(0, decimalIndex + commonConstants.defaultNumberDigitsAfterDecimal + 1);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\nimport { commonUtilitiesCoreService } from '../services/core.service';\n\nimport { CommonNAFormatter } from './na_formatter.pipe';\nimport { CommonPrettyNumberPipe } from './pretty_number.pipe';\n\n@Pipe({\n\tname: 'commonNumberWithUnitsFormatter',\n})\nexport class CommonNumberWithUnitsFormatterPipe implements PipeTransform {\n\tconstructor (\n\t\tprivate commonNAFormatter: CommonNAFormatter,\n\t\tprivate prettyNumber: CommonPrettyNumberPipe,\n\t) { }\n\ttransform (num: any, unit?: string) {\n\t\tif (!commonUtilitiesCoreService.hasValue(num)) {\n\t\t\treturn this.commonNAFormatter.transform(num);\n\t\t}\n\n\t\treturn this.prettyNumber.transform(num) + (unit ? unit : '');\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CommonNumberWithUnitsFormatterPipe } from './common_number_with_units_formatter.pipe';\n\n@Pipe({\n\tname: 'commonPercentFormatter',\n})\nexport class CommonPercentPipe implements PipeTransform {\n\tconstructor (\n\t\tprivate commonNumberWithUnitsFormatter: CommonNumberWithUnitsFormatterPipe,\n\t) {}\n\ttransform (data: any): string {\n\t\treturn this.commonNumberWithUnitsFormatter.transform(data, '%');\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'commonEscapedBracketReplace',\n})\nexport class CommonEscapedBracketReplace implements PipeTransform {\n\ttransform (str: string) {\n\t\treturn str ? str.replace(/</g, '<').replace(/>/g, '>') : str;\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\nimport { commonUtilitiesCoreService } from '../services/core.service';\n\n@Pipe({\n\tname: 'commonExtensionFormatter',\n})\nexport class CommonExtensionFormatterPipe implements PipeTransform {\n\ttransform (extension: string): string {\n\t\tif (!commonUtilitiesCoreService.hasValue(extension)) {\n\t\t\treturn extension;\n\t\t}\n\n\t\treturn extension.substring(1).toLowerCase();\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\n\n@Pipe({\n\tname: 'commonPassportNumberFormatter',\n})\nexport class CommonPassportNumberFormatterPipe implements PipeTransform {\n\ttransform (data: string): string {\n\t\tconst clearRe = /[\\s_-]/g;\n\t\tconst formatRe = /(\\d{2})(\\d{2})(\\d{6})/;\n\n\t\tdata = data.replace(clearRe, '');\n\t\treturn data.replace(formatRe, '$1 $2 $3');\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\n\n@Pipe({\n\tname: 'commonSubdivisionCodeFormatter',\n})\nexport class CommonSubdivisionCodeFormatterPipe implements PipeTransform {\n\ttransform (data: string): string {\n\t\tconst clearRe = /[\\s_-]/g;\n\t\tconst formatRe = /(\\d{3})(\\d{3})/;\n\n\t\tdata = data.replace(clearRe, '');\n\t\treturn data.replace(formatRe, '$1-$2');\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\n\nimport { CommonNAFormatter } from './na_formatter.pipe';\nimport { commonUtilitiesCoreService } from '../services/core.service';\n\n@Pipe({\n\tname: 'commonPrettyPhoneNumber',\n})\nexport class CommonPrettyPhoneNumber implements PipeTransform {\n\tconstructor (\n\t\tprivate commonNAFormatter: CommonNAFormatter,\n\t) { }\n\ttransform (\n\t\tvalue: string,\n\t\toptions: { divider: string; parenthesis: {left: string; right: string} } = { divider: '-', parenthesis: {left: '-', right: '-' }}\n\t): string {\n\t\tif (!commonUtilitiesCoreService.hasValue(value)) {\n\t\t\treturn this.commonNAFormatter.transform(value);\n\t\t}\n\n\t\tconst { divider, parenthesis } = options;\n\t\tconst prefixRe = /^\\+/;\n\t\tconst phoneRe = /(\\d{1})(\\d{3})(\\d{3})(\\d{2})(\\d{2})/;\n\t\tconst phoneMatches = phoneRe.exec(value);\n\t\tconst prefix = prefixRe.test(value) ? '+' : (phoneMatches && phoneMatches[1] === '7' ? '+' : '');\n\n\t\tif (phoneRe.test(value)) {\n\t\t\treturn value.replace(\n\t\t\t\t/(\\d{1})(\\d{3})(\\d{3})(\\d{2})(\\d{2})/,\n\t\t\t\t`${ prefix }$1${ parenthesis.left }$2${ parenthesis.right }$3${ divider }$4${ divider }$5`,\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t}\n}\n","import {\n\tPipe,\n\tPipeTransform,\n} from '@angular/core';\nimport { commonUtilitiesCoreService } from '../services/core.service';\n\n@Pipe({\n\tname: 'commonVersionFormatter',\n})\nexport class CommonVersionFormatterPipe implements PipeTransform {\n\ttransform (version: number | undefined): string {\n\t\tversion = version || 0;\n\n\t\tif (!commonUtilitiesCoreService.hasValue(version)) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Number.isInteger(version)) {\n\t\t\treturn `${ version }.0`;\n\t\t} else {\n\t\t\treturn version.toString(10);\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { CommonSecondsFormatterPipe } from './seconds_formatter.pipe';\nimport { CommonTwoDigitsNumberPipe } from './two_digits_number.pipe';\nimport { CommonDateFormatter } from './date_formatter.pipe';\nimport { CommonNAFormatter } from './na_formatter.pipe';\nimport { CommonNAToBlankFormatter } from './na_blank_formatter.pipe';\nimport { CommonCapitalizeFormatter } from './capitalize_formatter.pipe';\nimport { CommonPrettyNumberPipe } from './pretty_number.pipe';\nimport { CommonPercentPipe } from './common_percent_formatter.pipe';\nimport { CommonNumberWithUnitsFormatterPipe } from './common_number_with_units_formatter.pipe';\nimport { CommonEscapedBracketReplace } from './escape_bracket_replace.pipe';\nimport { CommonExtensionFormatterPipe } from './extension_formatter.pipe';\nimport { CommonPassportNumberFormatterPipe } from './passport_number_formatter.pipe';\nimport { CommonSubdivisionCodeFormatterPipe } from './subdivision_code_formatter.pipe';\nimport { CommonPrettyPhoneNumber } from './common_pretty_phone_number.pipe';\nimport { CommonVersionFormatterPipe } from './version_formatter.pipe';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonSecondsFormatterPipe,\n\t\tCommonTwoDigitsNumberPipe,\n\t\tCommonEscapedBracketReplace,\n\t\tCommonDateFormatter,\n\t\tCommonNAFormatter,\n\t\tCommonNAToBlankFormatter,\n\t\tCommonCapitalizeFormatter,\n\t\tCommonPrettyNumberPipe,\n\t\tCommonPercentPipe,\n\t\tCommonNumberWithUnitsFormatterPipe,\n\t\tCommonExtensionFormatterPipe,\n\t\tCommonPassportNumberFormatterPipe,\n\t\tCommonSubdivisionCodeFormatterPipe,\n\t\tCommonPrettyPhoneNumber,\n\t\tCommonVersionFormatterPipe,\n\t],\n\tproviders: [\n\t\tCommonSecondsFormatterPipe,\n\t\tCommonTwoDigitsNumberPipe,\n\t\tCommonEscapedBracketReplace,\n\t\tCommonDateFormatter,\n\t\tCommonNAFormatter,\n\t\tCommonNAToBlankFormatter,\n\t\tCommonCapitalizeFormatter,\n\t\tCommonPrettyNumberPipe,\n\t\tCommonPercentPipe,\n\t\tCommonNumberWithUnitsFormatterPipe,\n\t\tCommonExtensionFormatterPipe,\n\t\tCommonPassportNumberFormatterPipe,\n\t\tCommonSubdivisionCodeFormatterPipe,\n\t\tCommonPrettyPhoneNumber,\n\t\tCommonVersionFormatterPipe,\n\t],\n\texports: [\n\t\tCommonSecondsFormatterPipe,\n\t\tCommonTwoDigitsNumberPipe,\n\t\tCommonEscapedBracketReplace,\n\t\tCommonDateFormatter,\n\t\tCommonNAFormatter,\n\t\tCommonNAToBlankFormatter,\n\t\tCommonCapitalizeFormatter,\n\t\tCommonPrettyNumberPipe,\n\t\tCommonPercentPipe,\n\t\tCommonNumberWithUnitsFormatterPipe,\n\t\tCommonExtensionFormatterPipe,\n\t\tCommonPassportNumberFormatterPipe,\n\t\tCommonSubdivisionCodeFormatterPipe,\n\t\tCommonPrettyPhoneNumber,\n\t\tCommonVersionFormatterPipe,\n\t],\n})\nexport class CommonPipesModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonStopPropagationDirective } from './stop_propagation.directive';\nimport { CommonPreventDefaultDirective } from './prevent_default.directive';\nimport { CommonAutofocusDirective } from './autofocus.directive';\nimport { CommonDotdotdotDirective } from './dotdotdot.directive';\nimport { CommonLowerCaseInputDirective } from './lower_case_input';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonPreventDefaultDirective,\n\t\tCommonStopPropagationDirective,\n\t\tCommonAutofocusDirective,\n\t\tCommonDotdotdotDirective,\n\t\tCommonLowerCaseInputDirective,\n\t],\n\texports: [\n\t\tCommonPreventDefaultDirective,\n\t\tCommonStopPropagationDirective,\n\t\tCommonAutofocusDirective,\n\t\tCommonDotdotdotDirective,\n\t\tCommonLowerCaseInputDirective,\n\t],\n})\nexport class CommonDirectivesModule {}\n","// New version src/Common/controls/textfield/inputmasks_aliases_service.ts\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/input_mask_aliases_run.js\n\nimport { Injectable } from '@angular/core';\nimport {\n\tObservable,\n\tSubscription,\n} from 'rxjs';\nimport {\n\tclone,\n\tget,\n\tmerge,\n} from 'lodash';\nimport * as Inputmask from 'inputmask';\n\nimport { commonConstants } from '../../constants/common.constants';\nimport { CommonLocaleService } from '../../services/locale/locale.service';\nimport { CommonServerDateService } from '../../services/server_date.service';\nimport { CommonGeneralSettingsService } from '../../services/general_settings.service';\n\ndeclare interface IMask {\n\tmask: string;\n\tplaceholder?: string;\n\tshowMaskOnHover?: boolean;\n\tshowMaskOnFocus?: boolean;\n\thourFormat?: string;\n\talias?: string;\n\tleapday?: string;\n\tseparator?: string;\n\tyearrange?: {\n\t\tminyear: number;\n\t\tmaxyear: number;\n\t};\n}\n\nconst { defaultNumberDecimalSeparator, defaultNumberGroupSeparator, defaultNumberDigitsAfterDecimal } = commonConstants;\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class CommonTextfieldInputMaskAliasesService {\n\tprivate saveCharsRegExp = new RegExp('[^\\\\\\\\:/*?\"<>|]');\n\tprivate tagCharsRegExp = new RegExp('^[0-9A-Za-z_]');\n\tprivate externalTagCharsRegExp = new RegExp('^[0-9A-Za-z_\\\\[\\\\]]');\n\tprivate domainRegExp = new RegExp('^[0-9a-zA-Z-]');\n\tprivate scriptNameRegExp = new RegExp('^[0-9a-zA-Z-_]');\n\tprivate onlyLettersRegExp = new RegExp(/(^$)|(^([^\\-!#$%&()*,./:;?@\\[\\\\\\]_{|}¨ˇ“”€+<=>§°\\d\\s¤®™©'\"^±~`№])+$)/); // all letters\n\tprivate displayNameRegExp = new RegExp(/(^$)|(^([^\\-!#$%&()*,./:;?@\\[\\\\\\]_{|}¨ˇ“”€+<=>§°\\d\\s¤®™©№^±~'\"]| )+$)/); // all letters, quotes and gaps\n\tprivate numberFormat = this.commonGeneralSettingsService.getGeneralSettings('NumberFormat');\n\tprivate decimalSeparator = get(this.numberFormat, 'DecimalSeparator') || defaultNumberDecimalSeparator;\n\tprivate groupSeparator = get(this.numberFormat, 'GroupSeparator') || defaultNumberGroupSeparator;\n\n\tprivate numericParams = {\n\t\talias: 'numeric',\n\t\tradixPoint: this.decimalSeparator,\n\t\tgroupSeparator: this.groupSeparator,\n\t\tautoGroup: true,\n\t\trightAlign: false,\n\t\tunmaskAsNumber: true,\n\t\tdigits: defaultNumberDigitsAfterDecimal.toString(),\n\t\tallowMinus: true,\n\t};\n\n\tprivate integerParams = clone(this.numericParams);\n\tprivate integerPositiveParams = clone(this.integerParams);\n\tprivate numericParamsNoMinus = clone(this.numericParams);\n\n\tconstructor (\n\t\tprivate commonGeneralSettingsService: CommonGeneralSettingsService,\n\t\tprivate commonServerDateService: CommonServerDateService,\n\t\tprivate commonLocaleService: CommonLocaleService,\n\t) {}\n\n\tinit (): Subscription {\n\t\treturn new Observable(() => {\n\t\t\tthis.numericParamsNoMinus.allowMinus = false;\n\t\t\tthis.integerParams.alias = 'integer';\n\t\t\tthis.integerParams.digits = '0';\n\t\t\tthis.integerPositiveParams.allowMinus = false;\n\n\t\t\tInputmask\n\t\t\t\t.extendAliases({\n\t\t\t\t\t// text mask with only digits (\"00001\")\n\t\t\t\t\t'casem-text-digits': {\n\t\t\t\t\t\tmask: 'b',\n\t\t\t\t\t\trepeat: '*',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\tautoUnmask: true,\n\t\t\t\t\t\tshowMaskOnHover: false,\n\t\t\t\t\t\tshowMaskOnFocus: false,\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean => commonConstants.dataValidation.digits.test(buffer.join('')),\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\tb: {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => commonConstants.dataValidation.digits.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-phone': {\n\t\t\t\t\t\tmask: '\\\\+9{*}',\n\t\t\t\t\t\tshowMaskOnHover: false,\n\t\t\t\t\t\tshowMaskOnFocus: true,\n\t\t\t\t\t},\n\t\t\t\t\t'casem-phone-numb-11': {\n\t\t\t\t\t\tmask: '\\\\+7 999 999-99-99',\n\t\t\t\t\t\tshowMaskOnHover: false,\n\t\t\t\t\t\tshowMaskOnFocus: true,\n\t\t\t\t\t\tautoUnmask: true,\n\t\t\t\t\t\tonBeforeMask: (value: string): string => {\n\t\t\t\t\t\t\tconst newValue = value.replace(/[+\\s_-]/g, '');\n\t\t\t\t\t\t\t// это необходимо если номер телефона уже существует, потому что inputmask добавляет 7 вначало строки и номер телефона обрезается\n\t\t\t\t\t\t\t// 7 999 999 99 99 => 7 799 999 99 99\n\t\t\t\t\t\t\tif (newValue.length === 11) {\n\t\t\t\t\t\t\t\treturn newValue.slice(1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn newValue;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonUnMask: (maskedValue: string, unmaskedValue: string): string => !unmaskedValue ? unmaskedValue : maskedValue.replace(/[+\\s_-]/g, ''),\n\t\t\t\t\t},\n\t\t\t\t\t'casem-safe-characters': {\n\t\t\t\t\t\tmask: 'c',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trepeat: '*', // http://git.io/vcguC - transmits value to model\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean =>\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\n\t\t\t\t\t\t\t this.saveCharsRegExp.test(buffer.join(''))\n\t\t\t\t\t\t,\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\tc: {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => this.saveCharsRegExp.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-tag': {\n\t\t\t\t\t\tmask: 'd',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trepeat: '*', // http://git.io/vcguC - transmits value to model\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean =>\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\n\t\t\t\t\t\t\t this.tagCharsRegExp.test(buffer.join(''))\n\t\t\t\t\t\t,\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\td: {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => this.tagCharsRegExp.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-external-tag': {\n\t\t\t\t\t\tmask: 'e',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trepeat: '+', // http://git.io/vcguC - transmits value to model\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean =>\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\n\t\t\t\t\t\t\t this.externalTagCharsRegExp.test(buffer.join(''))\n\t\t\t\t\t\t,\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\te: {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => this.externalTagCharsRegExp.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-domain': {\n\t\t\t\t\t\tmask: 'f',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trepeat: '*', // http://git.io/vcguC - transmits value to model\n\t\t\t\t\t\tisComplete: (buffer: string[]) =>\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\n\t\t\t\t\t\t\t this.domainRegExp.test(buffer.join(''))\n\t\t\t\t\t\t,\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\tf: {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => this.domainRegExp.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-script-name': {\n\t\t\t\t\t\tmask: '*',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trepeat: '*', // http://git.io/vcguC - transmits value to model\n\t\t\t\t\t\tisComplete: (buffer: string[]) =>\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\n\t\t\t\t\t\t\t this.scriptNameRegExp.test(buffer.join(''))\n\t\t\t\t\t\t,\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\t'*': {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => this.scriptNameRegExp.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-numeric': this.numericParams,\n\t\t\t\t\t'casem-numeric-no-minus': this.numericParamsNoMinus,\n\t\t\t\t\t'casem-integer': this.integerParams,\n\t\t\t\t\t'casem-integer-positive': this.integerPositiveParams,\n\t\t\t\t\t'casem-initials': {\n\t\t\t\t\t\tmask: 'g',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trepeat: '3', // http://git.io/vcguC - transmits value to model\n\t\t\t\t\t\tisComplete: (buffer: string[]) =>\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\n\t\t\t\t\t\t\t this.onlyLettersRegExp.test(buffer.join(''))\n\t\t\t\t\t\t,\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\tg: {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => this.onlyLettersRegExp.test(chr),\n\t\t\t\t\t\t\t\tcasing: 'upper',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-letters': {\n\t\t\t\t\t\tmask: '*',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trepeat: '+',\n\t\t\t\t\t\tisComplete: (buffer: string[]) => this.onlyLettersRegExp.test(buffer.join('')),\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\t'*': {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => this.onlyLettersRegExp.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-displayname': {\n\t\t\t\t\t\tmask: 'h',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trepeat: '+', // http://git.io/vcguC - transmits value to model\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean =>\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\n\t\t\t\t\t\t\t this.displayNameRegExp.test(buffer.join(''))\n\t\t\t\t\t\t,\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\th: {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => this.displayNameRegExp.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-cardnumber': {\n\t\t\t\t\t\tmask: 'i',\n\t\t\t\t\t\trepeat: '24',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\tautoUnmask: true,\n\t\t\t\t\t\tshowMaskOnHover: false,\n\t\t\t\t\t\tshowMaskOnFocus: false,\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean => commonConstants.dataValidation.cardNumber.test(buffer.join('')),\n\t\t\t\t\t\tdefinitions: {\n\t\t\t\t\t\t\ti: {\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => commonConstants.dataValidation.cardNumber.test(chr),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'casem-invoice-time-rounding-minutes': {\n\t\t\t\t\t\talias: 'numeric',\n\t\t\t\t\t\trepeat: '3',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trightAlign: false,\n\t\t\t\t\t\tunmaskAsNumber: true,\n\t\t\t\t\t\tallowMinus: false,\n\t\t\t\t\t\tdigits: '0',\n\t\t\t\t\t},\n\t\t\t\t\t'casem-invoice-time-rounding-hours': {\n\t\t\t\t\t\talias: 'numeric',\n\t\t\t\t\t\trepeat: '2',\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\trightAlign: false,\n\t\t\t\t\t\tunmaskAsNumber: true,\n\t\t\t\t\t\tallowMinus: false,\n\t\t\t\t\t\tdigits: '2',\n\t\t\t\t\t},\n\t\t\t\t\t'casem-time': this.getCasemTimeMask(),\n\t\t\t\t\t'casem-date': this.getCasemDateMask(),\n\t\t\t\t\t'casem-cardexpire': this.getCasemCardExpireMask(),\n\t\t\t\t\t'casem-cardexpire-month': this.getCasemCardExpireMonthMask(),\n\t\t\t\t\t'casem-cardexpire-year': this.getCasemCardExpireYearhMask(),\n\t\t\t\t\t'casem-participant-individual-inn': this.getCasemParticipantIndividualInnMask(),\n\t\t\t\t\t'casem-participant-inn-organization': {\n\t\t\t\t\t\tmask: '9999999999',\n\t\t\t\t\t\tautoUnmask: true,\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\tshowMaskOnHover: false,\n\t\t\t\t\t},\n\t\t\t\t\t'casem-participant-inn-person': {\n\t\t\t\t\t\tmask: '999999999999',\n\t\t\t\t\t\tautoUnmask: true,\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t\tshowMaskOnHover: false,\n\t\t\t\t\t},\n\t\t\t\t\t'meetings-individual-ogrn': {\n\t\t\t\t\t\tmask: '9999999999999[99]',\n\t\t\t\t\t\tautoUnmask: true,\n\t\t\t\t\t\tgreedy: false,\n\t\t\t\t\t},\n\t\t\t\t\t'meetings-passport': {\n\t\t\t\t\t\tmask: '99 99 999999',\n\t\t\t\t\t\tshowMaskOnHover: false,\n\t\t\t\t\t\tshowMaskOnFocus: true,\n\t\t\t\t\t\tautoUnmask: true,\n\t\t\t\t\t},\n\t\t\t\t\t'meetings-subdivision-code': {\n\t\t\t\t\t\tmask: '999-999',\n\t\t\t\t\t\tshowMaskOnHover: false,\n\t\t\t\t\t\tshowMaskOnFocus: true,\n\t\t\t\t\t\tautoUnmask: true,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t})\n\t\t\t.subscribe();\n\t}\n\n\tprivate getCasemDateMask (): IMask {\n\t\tconst inputDateMask = this.commonServerDateService.inputDateMask;\n\t\tconst mask = inputDateMask.replace(/dd|mm/, '1').replace(/dd|mm/, '2').replace('yyyy', 'y');\n\t\tconst alias = inputDateMask.replace(/\\W/g, '/');\n\t\tconst leapday = inputDateMask.replace('dd', '29').replace('mm', '02').replace('yyyy', '');\n\t\tconst separator = inputDateMask.match(/\\W/)![0];\n\n\t\treturn {\n\t\t\tmask,\n\t\t\tplaceholder: this.commonServerDateService.inputDatePlaceholder,\n\t\t\tleapday,\n\t\t\tseparator,\n\t\t\talias,\n\t\t\tyearrange: {\n\t\t\t\tminyear: 1900,\n\t\t\t\tmaxyear: 2999,\n\t\t\t},\n\t\t\tshowMaskOnHover: false,\n\t\t\tshowMaskOnFocus: true,\n\t\t};\n\t}\n\n\tprivate getCasemTimeMask (): IMask {\n\t\treturn {\n\t\t\tmask: this.commonServerDateService.inputTimeMask,\n\t\t\tplaceholder: this.commonServerDateService.inputTimePlaceholder,\n\t\t\talias: 'datetime',\n\t\t\thourFormat: this.commonGeneralSettingsService.hasMeridiem() ? '12' : '24',\n\t\t\tshowMaskOnHover: false,\n\t\t\tshowMaskOnFocus: true,\n\t\t};\n\t}\n\n\tprivate getCasemCardExpireMask (): IMask {\n\t\tconst monthsSymbol = this.commonLocaleService.instant('common.symbols.months');\n\t\tconst yearsSymbol = this.commonLocaleService.instant('common.symbols.years');\n\n\t\treturn {\n\t\t\tmask: '99/99',\n\t\t\tplaceholder: (monthsSymbol + monthsSymbol + '/' + yearsSymbol + yearsSymbol).toUpperCase(),\n\t\t\tshowMaskOnHover: false,\n\t\t\tshowMaskOnFocus: false,\n\t\t};\n\t}\n\n\tprivate getCasemCardExpireMonthMask (): IMask {\n\t\tconst monthsSymbol = this.commonLocaleService.instant('common.symbols.months');\n\n\t\treturn {\n\t\t\tmask: '99',\n\t\t\tplaceholder: (monthsSymbol + monthsSymbol).toUpperCase(),\n\t\t\tshowMaskOnHover: false,\n\t\t\tshowMaskOnFocus: false,\n\t\t};\n\t}\n\n\tprivate getCasemCardExpireYearhMask (): IMask {\n\t\tconst yearsSymbol = this.commonLocaleService.instant('common.symbols.years');\n\n\t\treturn {\n\t\t\tmask: '(99)|(9999)',\n\t\t\tplaceholder: (yearsSymbol + yearsSymbol).toUpperCase(),\n\t\t\tshowMaskOnHover: false,\n\t\t\tshowMaskOnFocus: false,\n\t\t};\n\t}\n\n\tprivate getCasemParticipantIndividualInnMask (): IMask {\n\t\tconst locale = this.commonLocaleService.locale;\n\n\t\tconst masks = {\n\t\t\tru: {\n\t\t\t\tmask: '9999999999[99]',\n\t\t\t},\n\t\t};\n\n\t\tconst maskParams = {\n\t\t\tautoUnmask: true,\n\t\t\tgreedy: false,\n\t\t};\n\n\t\treturn merge(masks[locale], maskParams);\n\t}\n}\n","import {\n\tNg2StateDeclaration,\n\tTransition,\n\tTransitionService,\n} from '@uirouter/angular';\n\nimport { Injectable } from '@angular/core';\n\nimport {\n\tforEach,\n\tget,\n\tisEmpty,\n\twords,\n} from 'lodash';\n\nimport {\n\tReplaySubject,\n\tSubject,\n} from 'rxjs';\n\nimport { CommonLocaleService } from './locale/locale.service';\n\ndeclare interface ICommonAppLayoutData {\n\tlayoutMode: string;\n\tpageClasses: string;\n\thtmlClasses: string;\n}\n\ndeclare interface ICommonAppLayouTransitionState {\n\tevent: string;\n\ttransition?: Transition;\n}\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class CommonAppLayoutService {\n\tprivate resizeSubheaderSubject$: Subject = new Subject();\n\tprivate data: ICommonAppLayoutData;\n\tprivate transitionStateChanges$ = new ReplaySubject(1);\n\n\tprivate contentLoader = {\n\t\tisLoading: false,\n\t\ttitle: '',\n\t};\n\n\tconstructor (\n\t\tprivate transitionService: TransitionService,\n\t\tprivate commonLocaleService: CommonLocaleService,\n\t) {}\n\n\tsetData (module: string, toState: Ng2StateDeclaration): void {\n\t\tconst stateNames = words(`${(get(toState, 'name', '')).toLowerCase()} ${(get(toState, 'parent', '') as string).toLowerCase()}`);\n\t\tconst pageClasses = [];\n\t\tconst htmlClasses = ['l-page'];\n\t\tconst layoutMode = get(toState, 'data.layoutMode') || module;\n\n\t\tif (layoutMode) {\n\t\t\tpageClasses.push('l-page--' + layoutMode);\n\t\t}\n\n\t\tif (!isEmpty(stateNames)) {\n\t\t\tforEach(stateNames, (item) => {\n\t\t\t\tpageClasses.push(`l-page--${item}`);\n\t\t\t});\n\t\t}\n\n\t\tif (toState.data) {\n\t\t\tif (toState.data.print) {\n\t\t\t\tpageClasses.push('l-page--print');\n\t\t\t\thtmlClasses.push(`${module}--print`);\n\t\t\t}\n\n\t\t\tif (toState.data.newDesign) {\n\t\t\t\tpageClasses.push('l-page--new_design');\n\t\t\t\thtmlClasses.push(`${module}--new_design`);\n\t\t\t}\n\n\t\t\tif (toState.data.withRightPanel) {\n\t\t\t\tpageClasses.push('l-page--with_right_panel');\n\t\t\t\thtmlClasses.push(`${module}--with_right_panel`);\n\t\t\t}\n\n\t\t\tif (toState.data.withoutPanels) {\n\t\t\t\tpageClasses.push('l-page--without_panels');\n\t\t\t\thtmlClasses.push(`${module}--without_panels`);\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!toState.data.notScrollToTop) {\n\t\t\t\t\t$(window).scrollTop(0);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.data = {\n\t\t\tlayoutMode,\n\t\t\tpageClasses: pageClasses.join(' '),\n\t\t\thtmlClasses: htmlClasses.join(' '),\n\t\t};\n\t}\n\n\tgetData (path?: string): string | ICommonAppLayoutData {\n\t\treturn path ? get(this.data, path) : this.data;\n\t}\n\n\tgetResizeSubheaderSubject (): Subject {\n\t\treturn this.resizeSubheaderSubject$;\n\t}\n\n\ttriggerResizeSubheader (): void {\n\t\tthis.resizeSubheaderSubject$.next();\n\t}\n\n\tsetContentLoader (isLoading: boolean, title?: string): void {\n\t\tthis.contentLoader.isLoading = isLoading;\n\t\tthis.contentLoader.title = title!;\n\t}\n\n\tgetContentLoader (key: string): boolean | string {\n\t\treturn get(this.contentLoader, key);\n\t}\n\n\tinitWatchTransitionChanges (): void {\n\t\tthis.transitionService.onBefore({}, (t: Transition) => {\n\t\t\tthis.transitionStateChanges$.next({\n\t\t\t\tevent: 'before',\n\t\t\t\ttransition: t,\n\t\t\t});\n\t\t});\n\n\t\tthis.transitionService.onStart({}, (t: Transition) => {\n\t\t\tthis.transitionStateChanges$.next({\n\t\t\t\tevent: 'start',\n\t\t\t\ttransition: t,\n\t\t\t});\n\t\t});\n\n\t\tthis.transitionService.onSuccess({}, (t: Transition) => {\n\t\t\tthis.transitionStateChanges$.next({\n\t\t\t\tevent: 'success',\n\t\t\t\ttransition: t,\n\t\t\t});\n\t\t});\n\t}\n\n\tsubscribeOnBeforeTransition (): void {\n\t\tthis.transitionStateChanges$\n\t\t\t\t.subscribe((response) => {\n\t\t\t\t\tif (response.event === 'before') {\n\t\t\t\t\t\tthis.setData('meetings', response.transition!.to());\n\t\t\t\t\t}\n\t\t\t\t});\n\t}\n\n\tsubscribeOtherTransition (): void {\n\t\tthis.transitionStateChanges$.subscribe((response) => {\n\t\t\tconst loaderTitle = get(response.transition!.to(), 'data.appLoaderTitle');\n\n\t\t\tif (response.event === 'start' && !!loaderTitle) {\n\t\t\t\tthis.setContentLoader(true, this.commonLocaleService.instant(loaderTitle));\n\t\t\t}\n\n\t\t\t// затреггирим ресайз хэдера если был переход c перезагрузкой страницы\n\t\t\tif (response.transition!.$from().name === response.transition!.$to().name) {\n\t\t\t\tthis.triggerResizeSubheader();\n\t\t\t\tthis.setContentLoader(false);\n\t\t\t}\n\n\t\t\tif (response.event === 'success') {\n\t\t\t\t// затреггирим ресайз хэдера если был переход, но без перезагрузки страницы\n\t\t\t\tthis.triggerResizeSubheader();\n\t\t\t\tresponse.transition!.promise.then(() => {\n\t\t\t\t\tthis.setContentLoader(false);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n","import { toNumber } from 'lodash';\n\nexport const setAnimateProgress = ($: JQueryStatic) => {\n\tconst PROGRESS_OVERLAY_CLASS = 'b-progress-overlay';\n\tconst PROGRESS_BODY_OVERFLOW_CLASS = 'b-progress-body_overflow';\n\tconst ieDetector = (userAgent: string): number | boolean => {\n\t\tlet ieVersion: number | null = null;\n\n\t\tconst regExp: { [key: number]: RegExp } = {\n\t\t\t9: /Trident\\/5/i,\n\t\t\t10: /Trident\\/6/i,\n\t\t\t11: /Trident\\/7/i,\n\t\t};\n\n\t\tfor (const key in regExp) {\n\t\t\tif (regExp.hasOwnProperty(key)) {\n\t\t\t\tif (regExp[key].test(userAgent)) {\n\t\t\t\t\tieVersion = toNumber(key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn ieVersion || false;\n\t};\n\n\tconst isIe = ieDetector(window.navigator.userAgent);\n\tconst getTemplate = (label: string) => '
' + label + '
';\n\tlet animateProgressCounter = 0;\n\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore next-line\n\t$.animateProgress = (params: { container: string | JQuery; isFixed?: boolean; label?: string }) => {\n\t\tconst container = typeof params.container === 'string' ? $(params.container) : params.container;\n\t\tconst body = $('body');\n\t\tlet progressEl: JQuery;\n\t\tlet progressElWidth: number;\n\n\t\tparams.isFixed = params.isFixed !== false;\n\n\t\tfunction animate () {\n\t\t\tprogressEl\n\t\t\t\t.css('left', -progressElWidth)\n\t\t\t\t.animate({ left: '100%' }, 2000, 'easeInOutCirc', animate);\n\t\t}\n\n\t\tfunction enable () {\n\t\t\tconst hasBodyOverflowClass = body.hasClass(PROGRESS_BODY_OVERFLOW_CLASS);\n\n\t\t\tcontainer\n\t\t\t\t.addClass(PROGRESS_OVERLAY_CLASS + (params.isFixed ? '' : ' is-absolute'))\n\t\t\t\t.html(getTemplate(params.label as string));\n\n\t\t\tif (isIe && isIe < 11) {\n\t\t\t\tprogressEl = container.find('.b-progress-ie');\n\t\t\t\tprogressElWidth = progressEl.width()!;\n\n\t\t\t\tanimate();\n\t\t\t}\n\n\t\t\tif (params.isFixed) {\n\t\t\t\tanimateProgressCounter++;\n\t\t\t}\n\n\t\t\tif (!hasBodyOverflowClass && params.isFixed) {\n\t\t\t\tbody.addClass(PROGRESS_BODY_OVERFLOW_CLASS);\n\t\t\t}\n\t\t}\n\n\t\tfunction disable () {\n\t\t\tcontainer.removeClass(PROGRESS_OVERLAY_CLASS + (params.isFixed ? '' : ' is-absolute'));\n\t\t\tcontainer\n\t\t\t\t.find('.b-progress-wrapper')\n\t\t\t\t.remove();\n\n\t\t\tif (params.isFixed && animateProgressCounter > 0) {\n\t\t\t\tanimateProgressCounter--;\n\t\t\t}\n\t\t\tif (body.hasClass(PROGRESS_BODY_OVERFLOW_CLASS) && animateProgressCounter < 1) {\n\t\t\t\tbody.removeClass(PROGRESS_BODY_OVERFLOW_CLASS);\n\t\t\t}\n\t\t}\n\n\t\tfunction setLabel (label: string) {\n\t\t\tcontainer\n\t\t\t\t.find('.b-progress-label')\n\t\t\t\t.html(label);\n\t\t}\n\n\t\treturn {\n\t\t\tenable,\n\t\t\tdisable,\n\t\t\tsetLabel,\n\t\t};\n\t};\n};\n","/* Copyright 2014+, Federico Zivolo, LICENSE at https://github.com/FezVrasta/bootstrap-material-design/blob/master/LICENSE.md */\n\nimport { ICommonKeyValues } from '../@types/core';\n\nexport const setRipples = ($: JQueryStatic) => {\n\t/**\n\t * Define the name of the plugin\n\t */\n\tconst ripples = 'ripples';\n\n\t/**\n\t * Define the defaults of the plugin\n\t */\n\tconst defaults = {};\n\n\t/**\n\t * Create the main plugin function\n\t */\n\tclass Ripples {\n\t\telement: JQuery;\n\t\toptions: ICommonKeyValues;\n\t\tdefaults: ICommonKeyValues;\n\t\tname: string;\n\n\t\tconstructor (element: JQuery, options: ICommonKeyValues) {\n\t\t\tthis.element = $(element);\n\n\t\t\tthis.options = $.extend({}, defaults, options);\n\n\t\t\tthis.defaults = defaults;\n\t\t\tthis.name = ripples;\n\n\t\t\tthis.init();\n\t\t}\n\n\t\tinit () {\n\t\t\tconst $element = this.element;\n\n\t\t\t$element.on('mousedown touchstart', (event: JQuery.TriggeredEvent) => {\n\t\t\t\t/**\n\t\t\t\t * Verify if the user is just touching on a device and return if so\n\t\t\t\t */\n\t\t\t\tif (this.isTouch() && event.type === 'mousedown') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Verify if the current element already has a ripple wrapper element and\n\t\t\t\t * creates if it doesn't\n\t\t\t\t */\n\t\t\t\tif (!($element.find('.ripple-container').length)) {\n\t\t\t\t\t$element.append('
');\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Find the ripple wrapper\n\t\t\t\t */\n\t\t\t\tconst $wrapper = $element.children('.ripple-container');\n\n\t\t\t\t/**\n\t\t\t\t * Get relY and relX positions\n\t\t\t\t */\n\t\t\t\tconst relY = this.getRelY($wrapper, event);\n\t\t\t\tconst relX = this.getRelX($wrapper, event);\n\n\t\t\t\t/**\n\t\t\t\t * If relY and/or relX are false, return the event\n\t\t\t\t */\n\t\t\t\tif (!relY && !relX) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Get the ripple color\n\t\t\t\t */\n\t\t\t\tconst rippleColor = this.getRipplesColor($element);\n\n\t\t\t\t/**\n\t\t\t\t * Create the ripple element\n\t\t\t\t */\n\t\t\t\tconst $ripple = $('
');\n\n\t\t\t\t$ripple\n\t\t\t\t\t.addClass('ripple')\n\t\t\t\t\t.css({\n\t\t\t\t\t\tleft: relX,\n\t\t\t\t\t\ttop: relY,\n\t\t\t\t\t\t'background-color': rippleColor,\n\t\t\t\t\t});\n\n\t\t\t\t/**\n\t\t\t\t * Append the ripple to the wrapper\n\t\t\t\t */\n\t\t\t\t$wrapper.append($ripple);\n\n\t\t\t\t/**\n\t\t\t\t * Make sure the ripple has the styles applied (ugly hack but it works)\n\t\t\t\t */\n\t\t\t\t(() => window.getComputedStyle($ripple[0]).opacity)();\n\n\t\t\t\t/**\n\t\t\t\t * Turn on the ripple animation\n\t\t\t\t */\n\t\t\t\tthis.rippleOn($element, $ripple);\n\n\t\t\t\t/**\n\t\t\t\t * Call the rippleEnd function when the transition 'on' ends\n\t\t\t\t */\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.rippleEnd($ripple);\n\t\t\t\t}, 500);\n\n\t\t\t\t/**\n\t\t\t\t * Detect when the user leaves the element\n\t\t\t\t */\n\t\t\t\t$element.on('mouseup mouseleave touchend', () => {\n\t\t\t\t\t$ripple.data('mousedown', 'off');\n\n\t\t\t\t\tif ($ripple.data('animating') === 'off') {\n\t\t\t\t\t\tthis.rippleOut($ripple);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t});\n\t\t}\n\n\t\tgetNewSize ($element: JQuery, $ripple: JQuery) {\n\t\t\treturn (Math.max($element.outerWidth()!, $element.outerHeight()!) / $ripple.outerWidth()!) * 2.5;\n\t\t}\n\n\t\tgetRelX ($wrapper: JQuery, event: JQuery.TriggeredEvent): number | string {\n\t\t\tconst wrapperOffset = $wrapper.offset()!;\n\n\t\t\tif (!this.isTouch()) {\n\t\t\t\t/**\n\t\t\t\t * Get the mouse position relative to the ripple wrapper\n\t\t\t\t */\n\t\t\t\treturn event.pageX! - wrapperOffset.left;\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Make sure the user is using only one finger and then get the touch\n\t\t\t\t * position relative to the ripple wrapper\n\t\t\t\t */\n\n\t\t\t\tif ((event as JQuery.TouchStartEvent).originalEvent?.touches.length === 1) {\n\t\t\t\t\treturn (event as JQuery.TouchStartEvent).originalEvent!.touches[0].pageX - wrapperOffset.left;\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\n\t\tgetRelY ($wrapper: JQuery, event: JQuery.TriggeredEvent): number | string {\n\t\t\tconst wrapperOffset = $wrapper.offset()!;\n\n\t\t\tif (!this.isTouch()) {\n\t\t\t\t/**\n\t\t\t\t * Get the mouse position relative to the ripple wrapper\n\t\t\t\t */\n\t\t\t\treturn event.pageY! - wrapperOffset.top;\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t * Make sure the user is using only one finger and then get the touch\n\t\t\t\t * position relative to the ripple wrapper\n\t\t\t\t */\n\n\t\t\t\tif ((event as JQuery.TouchStartEvent).originalEvent?.touches.length === 1) {\n\t\t\t\t\treturn (event as JQuery.TouchStartEvent).originalEvent!.touches[0].pageY - wrapperOffset.top;\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Get the ripple color\n\t\t */\n\t\tgetRipplesColor ($element: JQuery) {\n\t\t\tconst color = $element.data('rippleColor') ? $element.data('rippleColor') : window.getComputedStyle($element[0]).color;\n\n\t\t\treturn color;\n\t\t}\n\n\t\t/**\n\t\t * Verify if the client browser has transistion support\n\t\t */\n\t\thasTransitionSupport () {\n\t\t\tconst thisBody = document.body || document.documentElement;\n\t\t\tconst thisStyle = thisBody.style;\n\n\t\t\treturn (\n\t\t\t\tthisStyle.transition !== undefined ||\n\t\t\t\tthisStyle.webkitTransition !== undefined\n\t\t\t);\n\t\t}\n\n\n\t\t/**\n\t\t * Verify if the client is using a mobile device\n\t\t */\n\t\tisTouch () {\n\t\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n\t\t}\n\n\t\t/**\n\t\t * End the animation of the ripple\n\t\t */\n\t\trippleEnd ($ripple: JQuery) {\n\t\t\t$ripple.data('animating', 'off');\n\n\t\t\tif ($ripple.data('mousedown') === 'off') {\n\t\t\t\tthis.rippleOut($ripple);\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Turn off the ripple effect\n\t\t */\n\t\trippleOut ($ripple: JQuery) {\n\t\t\t$ripple.off();\n\n\t\t\tif (this.hasTransitionSupport()) {\n\t\t\t\t$ripple.addClass('ripple-out');\n\t\t\t} else {\n\t\t\t\t$ripple.animate({ opacity: 0 }, 100, () => {\n\t\t\t\t\t$ripple.trigger('transitionend');\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t$ripple.on('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', () => {\n\t\t\t\t$ripple.remove();\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Turn on the ripple effect\n\t\t */\n\t\trippleOn ($element: JQuery, $ripple: JQuery) {\n\t\t\tconst size = this.getNewSize($element, $ripple);\n\n\t\t\tif (this.hasTransitionSupport()) {\n\t\t\t\t$ripple\n\t\t\t\t\t.css({\n\t\t\t\t\t\t'-ms-transform': 'scale(' + size + ')',\n\t\t\t\t\t\t'-moz-transform': 'scale(' + size + ')',\n\t\t\t\t\t\t'-webkit-transform': 'scale(' + size + ')',\n\t\t\t\t\t\ttransform: 'scale(' + size + ')',\n\t\t\t\t\t})\n\t\t\t\t\t.addClass('ripple-on')\n\t\t\t\t\t.data('animating', 'on')\n\t\t\t\t\t.data('mousedown', 'on');\n\t\t\t} else {\n\t\t\t\t$ripple.animate({\n\t\t\t\t\twidth: Math.max($element.outerWidth()!, $element.outerHeight()!) * 2,\n\t\t\t\t\theight: Math.max($element.outerWidth()!, $element.outerHeight()!) * 2,\n\t\t\t\t\t'margin-left': Math.max($element.outerWidth()!, $element.outerHeight()!) * (-1),\n\t\t\t\t\t'margin-top': Math.max($element.outerWidth()!, $element.outerHeight()!) * (-1),\n\t\t\t\t\topacity: 0.2,\n\t\t\t\t}, 500, () => {\n\t\t\t\t\t$ripple.trigger('transitionend');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Create the jquery plugin function\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\t// @ts-ignore next-line\n\t$.fn.ripples = function (options: ICommonKeyValues) {\n\t\treturn this.each(() => {\n\t\t\tif (!$.data(this, 'plugin_' + ripples)) {\n\t\t\t\t$.data(this, 'plugin_' + ripples, (new Ripples(this, options)));\n\t\t\t}\n\t\t});\n\t};\n};\n","import {\n\tAPP_INITIALIZER,\n\tApplicationRef,\n\tDoBootstrap,\n\tInjector,\n\tNgModule,\n} from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport {\n\tHTTP_INTERCEPTORS,\n\tHttpClientModule,\n} from '@angular/common/http';\nimport {\n\tforkJoin,\n\tfrom,\n\tof,\n} from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { UrlService } from '@uirouter/core';\nimport * as FontFaceObserver from 'fontfaceobserver';\n\nimport { CommonLocaleService } from '../services/locale/locale.service';\nimport { CommonBootstrapDataService } from '../services/bootstrap/bootstrap_data.service';\nimport { CommonUserDataService } from '../services/user_data.service';\nimport {\n\tCommonAppDataService,\n\tcommonAppDataServiceFactory,\n} from '../services/app_data/app_data.service';\nimport { LOCAL_APP_DATA_GETTER } from '../services/app_data/local_app_data.token';\nimport { COMMON_APP_CONFIG } from './app.config.token';\nimport { CommonNotificationService } from '../services/notification.service';\nimport { CommonGeneralSettingsService } from '../services/general_settings.service';\nimport { CommonLocaleModule } from '../services/locale/locale.module';\nimport { CommonErrorInterceptor } from '../interceptors/error_interceptor.service';\nimport { CommonServerDateService } from '../services/server_date.service';\nimport { CommonPipesModule } from '../pipes/pipes.module';\nimport { CommonDirectivesModule } from '../directives/directives.module';\nimport { CommonBootstrapService } from '../services/bootstrap/bootstrap.service';\nimport { CommonTextfieldInputMaskAliasesService } from '../controls/textfield/inputmasks_aliases_service';\nimport { CommonAppLayoutService } from '../services/common_app_layout.service';\nimport { setAnimateProgress } from '../vendor/common_animate_progress';\nimport { setRipples } from '../vendor/ripples';\nimport { isFunction } from 'lodash';\n\nlet animate: IAnimateProgressActions;\n\n@NgModule({\n\timports: [\n\t\tBrowserModule,\n\t\tHttpClientModule,\n\t\tCommonLocaleModule,\n\t\tCommonPipesModule,\n\t\tCommonDirectivesModule,\n\t],\n\texports: [\n\t\tBrowserModule,\n\t\tHttpClientModule,\n\t\tTranslateModule,\n\t\tCommonLocaleModule,\n\t\tCommonPipesModule,\n\t\tCommonDirectivesModule,\n\t],\n\tproviders: [\n\t\tCommonBootstrapDataService,\n\t\tCommonUserDataService,\n\t\tCommonNotificationService,\n\t\t{\n\t\t\tprovide: CommonAppDataService,\n\t\t\tuseFactory: commonAppDataServiceFactory,\n\t\t\tdeps: [LOCAL_APP_DATA_GETTER, COMMON_APP_CONFIG],\n\t\t},\n\t\t{\n\t\t\tprovide: HTTP_INTERCEPTORS,\n\t\t\tuseClass: CommonErrorInterceptor,\n\t\t\tmulti: true,\n\t\t},\n\t\tCommonGeneralSettingsService,\n\t\tCommonServerDateService,\n\t\tCommonBootstrapService,\n\t\t{\n\t\t\tprovide: APP_INITIALIZER,\n\t\t\tuseFactory: appInitializerFactory,\n\t\t\tdeps: [\n\t\t\t\tUrlService,\n\t\t\t\tCommonLocaleService,\n\t\t\t\tCommonAppDataService,\n\t\t\t\tCommonUserDataService,\n\t\t\t\tCommonBootstrapDataService,\n\t\t\t\tCommonAppLayoutService,\n\t\t\t],\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class CommonAppModule implements DoBootstrap {\n\tprotected commonAppDataService: CommonAppDataService = this.injector.get(CommonAppDataService);\n\tprotected commonLocaleService: CommonLocaleService = this.injector.get(CommonLocaleService);\n\tprivate app: ApplicationRef = this.injector.get(ApplicationRef);\n\tprivate commonTextfieldInputMaskAliasesService: CommonTextfieldInputMaskAliasesService = this.injector.get(CommonTextfieldInputMaskAliasesService);\n\tprivate commonServerDateService = this.injector.get(CommonServerDateService);\n\tprivate commonAppLayoutService = this.injector.get(CommonAppLayoutService);\n\tprivate commonNotificationService = this.injector.get(CommonNotificationService);\n\n\tprivate appData = this.commonAppDataService.getData();\n\n\tconstructor (\n\t\tprotected injector: Injector,\n\t) {\n\t\t// выполнять какие-либо действия нужно после инициализации приложения (когда уже инициализированы переводы и тд), но подписываться на изменения нужно в конструкторе\n\t\t// поэтому организовано через observable\n\t\tif (this.appData.shouldInitLayoutService) {\n\t\t\tthis.commonAppLayoutService.initWatchTransitionChanges();\n\t\t}\n\t}\n\n\tngDoBootstrap () {\n\t\tthis.appModuleRun(this.app);\n\t}\n\n\tappModuleRun (\n\t\tapp: ApplicationRef,\n\t) {\n\t\t/**\n\t\t * Выполняется после APP_INITIALIZER. Все данные в сервисах уже есть.\n\t\t */\n\t\tif (this.appData.shouldInitLayoutService) {\n\t\t\tthis.commonAppLayoutService.subscribeOtherTransition();\n\t\t}\n\n\t\tthis.commonServerDateService.init();\n\t\tthis.commonLocaleService.setFormats();\n\t\tthis.commonTextfieldInputMaskAliasesService.init();\n\n\t\tif (this.appData.mainComponent) {\n\t\t\tapp.bootstrap(this.appData.mainComponent);\n\t\t}\n\n\t\tif (isFunction(this.appData.callback)) {\n\t\t\tthis.appData.callback();\n\t\t}\n\t\tconst { appStartNotification } = this.commonAppDataService.getData();\n\t\tif (appStartNotification) {\n\t\t\tthis.commonNotificationService.show(appStartNotification.Header, appStartNotification.Message, appStartNotification.Type);\n\t\t}\n\n\t\tdisableLoader();\n\t}\n}\n\nexport function appInitializerFactory (\n\turlService: UrlService,\n\tcommonLocaleService: CommonLocaleService,\n\tcommonAppDataService: CommonAppDataService,\n\tcommonUserDataService: CommonUserDataService,\n\tcommonBootstrapDataService: CommonBootstrapDataService,\n\tcommonAppLayoutService: CommonAppLayoutService,\n) {\n\tconst FONT_LOADING_TIMEOUT = 60000;\n\tconst { hasInitialLoader, shouldAuthorize, shouldInitLayoutService } = commonAppDataService.getData();\n\n\t// останавливаем UiRouter до полной загрузки данных\n\turlService.deferIntercept();\n\n\treturn () => {\n\t\t/**\n\t\t * Выполняется до ngDoBootstrap. ngDoBootstrap ждет загрузки этих данных\n\t\t */\n\t\tsetAnimateProgress($);\n\t\tsetRipples($);\n\n\t\tif (hasInitialLoader) {\n\t\t\tenableLoader();\n\t\t}\n\n\t\tconst promises = [\n\t\t\tcommonLocaleService.init(),\n\t\t\tcommonUserDataService.init(shouldAuthorize),\n\t\t\tfrom(new FontFaceObserver('Roboto', { weight: 400 }).load('', FONT_LOADING_TIMEOUT))\n\t\t\t\t.pipe(catchError(() => of(undefined))),\n\t\t\tfrom(new FontFaceObserver('Roboto', { weight: 500 }).load('', FONT_LOADING_TIMEOUT))\n\t\t\t\t.pipe(catchError(() => of(undefined))),\n\t\t\tfrom(new FontFaceObserver('Roboto', { weight: 700 }).load('', FONT_LOADING_TIMEOUT))\n\t\t\t\t.pipe(catchError(() => of(undefined))),\n\t\t];\n\n\t\tif (!shouldAuthorize) {\n\t\t\tpromises.push(commonBootstrapDataService.init(false));\n\t\t}\n\n\t\tif (shouldInitLayoutService) {\n\t\t\tcommonAppLayoutService.subscribeOnBeforeTransition();\n\t\t}\n\n\t\t// !!! внутри toPromise уже вызывается subscribe\n\t\t// https://github.com/ReactiveX/rxjs/blob/master/src/internal/Observable.ts#L474\n\t\treturn forkJoin(promises)\n\t\t\t.toPromise()\n\t\t\t.then(() => {\n\t\t\t\t// стартуем UiRouter только когда все данные загружены\n\t\t\t\t// https://bankro.atlassian.net/browse/CTB-2038\n\t\t\t\turlService.listen();\n\t\t\t\turlService.sync();\n\t\t\t});\n\t};\n}\n\nfunction enableLoader () {\n\tanimate = $.animateProgress({\n\t\tlabel: 'Загрузка',\n\t\tcontainer: '.app-loading',\n\t});\n\tanimate.enable();\n}\n\nfunction disableLoader () {\n\tif (animate) {\n\t\tanimate.disable();\n\t}\n\n\t$('.app-loading').remove();\n}\n","import { Injectable } from '@angular/core';\nimport {\n\tHttpEvent,\n\tHttpHandler,\n\tHttpInterceptor,\n\tHttpRequest,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport { endsWith } from 'lodash';\nimport { CommonAppDataService } from '../services/app_data/app_data.service';\n\n@Injectable()\nexport class CommonPrefixUrlInterceptor implements HttpInterceptor {\n\tprivate serverPrefix: string;\n\tprivate isDevServer: boolean;\n\n\tconstructor (\n\t\tprivate commonAppDataService: CommonAppDataService,\n\t) {\n\t\tconst { meetingsAuth: { prependedUrl = '' }, isDevServer } = this.commonAppDataService.getData();\n\t\tthis.serverPrefix = prependedUrl;\n\t\tthis.isDevServer = isDevServer;\n\t}\n\n\tintercept (req: HttpRequest, next: HttpHandler): Observable> {\n\t\tlet fixedReq = req;\n\n\t\tif (this.isDevServer && this.serverPrefix && !endsWith(req.url, '.html') && !endsWith(req.url, '.json')) {\n\t\t\tfixedReq = req.clone({\n\t\t\t\turl: this.serverPrefix + req.url,\n\t\t\t});\n\t\t}\n\n\t\treturn next.handle(fixedReq);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport {\n\tHttpEvent,\n\tHttpHandler,\n\tHttpInterceptor,\n\tHttpRequest,\n} from '@angular/common/http';\n\n@Injectable()\nexport class CommonXHRHeaderInterceptor implements HttpInterceptor {\n\tintercept (req: HttpRequest, next: HttpHandler): Observable> {\n\t\tconst headers = {\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t};\n\n\t\tconst xhrRequest = req.clone({\n\t\t\tsetHeaders: headers,\n\t\t});\n\n\t\treturn next.handle(xhrRequest);\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CommonLoaderComponent } from './loader.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n CommonLoaderComponent,\n ],\n exports: [\n CommonLoaderComponent,\n CommonModule,\n ]\n})\nexport class CommonLoaderModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonMinlengthValidatorDirective } from './minlength.directive';\n\n@NgModule({\n\texports: [\n\t\tCommonMinlengthValidatorDirective,\n\t],\n\tdeclarations: [\n\t\tCommonMinlengthValidatorDirective,\n\t],\n})\nexport class CommonMinlengthValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonMaxlengthValidatorDirective } from './maxlength.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonMaxlengthValidatorDirective,\n\t],\n\texports: [\n\t\tCommonMaxlengthValidatorDirective,\n\t],\n})\nexport class CommonMaxlengthValidatorModule {}\n","import { NgModule } from '@angular/core';\n\nimport { CommonRequiredDirective } from './required.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonRequiredDirective,\n\t],\n\texports: [\n\t\tCommonRequiredDirective,\n\t],\n})\nexport class CommonRequiredValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonPatternValidatorDirective } from './pattern.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonPatternValidatorDirective,\n\t],\n\texports: [\n\t\tCommonPatternValidatorDirective,\n\t],\n})\nexport class CommonPatternValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonEmailValidatorDirective } from './email.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonEmailValidatorDirective,\n\t],\n\texports: [\n\t\tCommonEmailValidatorDirective,\n\t],\n})\nexport class CommonEmailValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonMatchValidatorDirective } from './match.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonMatchValidatorDirective,\n\t],\n\texports: [\n\t\tCommonMatchValidatorDirective,\n\t],\n})\nexport class CommonMatchValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonGroupRequiredDirective } from './group_required.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonGroupRequiredDirective,\n\t],\n\texports: [\n\t\tCommonGroupRequiredDirective,\n\t],\n})\nexport class CommonGroupRequiredModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonNumberInSafeRangeValidatorDirective } from './number_In_safe_range.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonNumberInSafeRangeValidatorDirective,\n\t],\n\texports: [\n\t\tCommonNumberInSafeRangeValidatorDirective,\n\t],\n})\nexport class CommonNumberInSafeRangeValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonMinValidatorDirective } from './min.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonMinValidatorDirective,\n\t],\n\texports: [\n\t\tCommonMinValidatorDirective,\n\t],\n})\nexport class CommonMinValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonMaxValidatorDirective } from './max.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonMaxValidatorDirective,\n\t],\n\texports: [\n\t\tCommonMaxValidatorDirective,\n\t],\n})\nexport class CommonMaxValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonPasswordValidatorDirective } from './common.password_validator.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonPasswordValidatorDirective,\n\t],\n\texports: [\n\t\tCommonPasswordValidatorDirective,\n\t],\n})\nexport class CommonPasswordValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CommonValidationComponent } from './validation.component';\nimport { CommonMinlengthValidatorModule } from '../../../validators/minlength/minlength.module';\nimport { CommonMaxlengthValidatorModule } from '../../../validators/maxlength/maxlength.module';\nimport { CommonRequiredValidatorModule } from '../../../validators/required/required.module';\nimport { CommonPatternValidatorModule } from '../../../validators/pattern/pattern.module';\nimport { CommonEmailValidatorModule } from '../../../validators/email/email.module';\nimport { CommonMatchValidatorModule } from '../../../validators/match/match.module';\nimport { CommonGroupRequiredModule } from '../../../validators/group_required/group_required.module';\nimport { CommonNumberInSafeRangeValidatorModule } from '../../../validators/number_In_safe_range/number_In_safe_range.module';\nimport { CommonMinValidatorModule } from '../../../validators/min/min.module';\nimport { CommonMaxValidatorModule } from '../../../validators/max/max.module';\nimport { CommonPasswordValidatorModule } from '../../../validators/password/common.password_validator.module';\n\n@NgModule({\n imports: [\n CommonModule,\n CommonMinlengthValidatorModule,\n CommonMaxlengthValidatorModule,\n CommonRequiredValidatorModule,\n CommonPatternValidatorModule,\n CommonEmailValidatorModule,\n CommonMatchValidatorModule,\n CommonGroupRequiredModule,\n CommonNumberInSafeRangeValidatorModule,\n CommonMinValidatorModule,\n CommonMaxValidatorModule,\n CommonPasswordValidatorModule,\n ],\n declarations: [\n CommonValidationComponent,\n ],\n exports: [\n CommonValidationComponent,\n CommonMinlengthValidatorModule,\n CommonMaxlengthValidatorModule,\n CommonRequiredValidatorModule,\n CommonPatternValidatorModule,\n CommonEmailValidatorModule,\n CommonMatchValidatorModule,\n CommonGroupRequiredModule,\n CommonNumberInSafeRangeValidatorModule,\n CommonMinValidatorModule,\n CommonMaxValidatorModule,\n CommonPasswordValidatorModule,\n CommonModule,\n FormsModule,\n ]\n})\nexport class CommonValidationModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { CommonTextfieldComponent } from './textfield.component';\nimport { CommonLoaderModule } from '../loader/loader.module';\nimport { CommonValidationModule } from '../control/validation/validation.module';\nimport { CommonTextfieldInputMaskAliasesService } from './inputmasks_aliases_service';\n\n@NgModule({\n imports: [\n CommonModule,\n CommonValidationModule,\n CommonLoaderModule,\n ],\n declarations: [\n CommonTextfieldComponent,\n ],\n providers: [\n CommonTextfieldInputMaskAliasesService,\n ],\n exports: [\n CommonTextfieldComponent,\n CommonModule,\n FormsModule,\n CommonValidationModule,\n ]\n})\nexport class CommonTextfieldModule {}\n\n","import { NgModule } from '@angular/core';\nimport { CommonChooseTrueValidatorDirective } from './choose_true.directive';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonChooseTrueValidatorDirective,\n\t],\n\texports: [\n\t\tCommonChooseTrueValidatorDirective,\n\t],\n})\nexport class CommonChooseTrueValidatorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CommonChooseTrueValidatorModule } from '../../validators/choose_true/choose_true.module';\nimport { CommonValidationModule } from '../control/validation/validation.module';\nimport { CommonCheckboxComponent } from './checkbox.component';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n CommonChooseTrueValidatorModule,\n CommonValidationModule,\n ],\n declarations: [\n CommonCheckboxComponent,\n ],\n exports: [\n CommonCheckboxComponent,\n CommonChooseTrueValidatorModule,\n CommonModule,\n FormsModule,\n CommonValidationModule,\n ]\n})\nexport class CommonCheckboxModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CommonSubmitButtonComponent } from './submit_button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n CommonSubmitButtonComponent,\n ],\n exports: [\n CommonSubmitButtonComponent,\n CommonModule,\n FormsModule,\n ]\n})\nexport class CommonSubmitButtonModule {}\n","import { NgModule } from '@angular/core';\n\nimport { CommonTextfieldModule } from '../../../Common/controls/textfield/textfield.module';\nimport { CommonCheckboxModule } from '../../../Common/controls/checkbox/checkbox.module';\nimport { CommonHiddenAutofillComponent } from '../../../Common/components/hidden_autofill/hidden_autofill.component';\nimport { CommonSubmitButtonModule } from '../../../Common/controls/submit_button/submit_button.module';\n\n@NgModule({\n\tdeclarations: [\n\t\tCommonHiddenAutofillComponent,\n\t],\n\texports: [\n\t\tCommonTextfieldModule,\n\t\tCommonCheckboxModule,\n\t\tCommonHiddenAutofillComponent,\n\t\tCommonSubmitButtonModule,\n\t],\n})\nexport class AuthenticationMeetingsCommonModule {}\n","import {\n\tICommonAppData,\n\tTLocalAppDataGetter,\n} from '../../../Common/services/app_data/local_app_data.token';\n\nexport const authenticationMeetingsLocalAppDataGetter: TLocalAppDataGetter = (\n\tlocale: string,\n\tlocation: Location,\n): ICommonAppData => ({\n\t\tlocale,\n\t\tappName: 'Bankro.tech',\n\t\tappFullLocationUrl: `${ location.protocol }//${ location.host }${ location.pathname.toLowerCase().replace(/\\/admin(\\/)?$/g, '/') }`,\n\t\tauthenticationReturnUrl: `${ location.origin || '/' }${ location.hash }`,\n\t\tappStartNotificationText: '', // For test notifications 'Access denied' before redirect\n\t\tdomainName: location.host,\n\t\tregistrationErrorTitle: '', // If registration by link is disabled - this field used as title for block of blocking reason\n\t\tregistrationErrorText: '', // If registration by link is disabled - this field used as description for block of blocking reason\n\t\tisRegistrationByLinkEnabled: true, // Flag indicating is registration by link are enabled in service\n\t\tauthFlashMessage: false, // Field used to show user some notification under login block\n\t\tcolorsDictionarySysName: null,\n\t});\n","import {\n\tAfterViewInit,\n\tChangeDetectorRef,\n\tInjectable,\n\tInjector,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tOnInit,\n\tSimpleChanges,\n} from '@angular/core';\n\nimport {\n\tforEach,\n\tmap,\n\tremove,\n} from 'lodash';\n\nimport { Observable } from 'rxjs';\n\nimport { CommonLocaleService } from '../services/locale/locale.service';\n\n@Injectable()\nexport class CommonBaseComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n\t@Input() modifiers = '';\n\n\tprotected localeService: CommonLocaleService = this.injector.get(CommonLocaleService);\n\tprotected changeDetector: ChangeDetectorRef = this.injector.get(ChangeDetectorRef);\n\tprotected zone: NgZone = this.injector.get(NgZone);\n\n\tprotected modifierSeparator = '--';\n\tprotected classesSeparator = ' ';\n\tprotected needUnbind: CallableFunction[] = [];\n\n\tconstructor (\n\t\tprotected injector: Injector,\n\t) {}\n\n\t// eslint-disable-next-line @angular-eslint/contextual-lifecycle, @angular-eslint/no-empty-lifecycle-method\n\tngOnInit () {\n\t\t// Empty\n\t}\n\n\t// eslint-disable-next-line @angular-eslint/contextual-lifecycle, @angular-eslint/no-empty-lifecycle-method,@typescript-eslint/no-unused-vars\n\tngOnChanges (changes: SimpleChanges) {\n\t\t// Empty\n\t}\n\n\t// eslint-disable-next-line @angular-eslint/contextual-lifecycle, @angular-eslint/no-empty-lifecycle-method\n\tngAfterViewInit () {\n\t\t// Empty\n\t}\n\n\tngOnDestroy () {\n\t\tforEach(this.needUnbind, (callback) => {\n\t\t\tcallback();\n\t\t});\n\t}\n\n\tinstant (key: string, params?: object): string {\n\t\treturn this.localeService.instant(key, params);\n\t}\n\n\tprotected getBaseClasses (cssBaseClass: string): string[] {\n\t\tconst classes = [cssBaseClass];\n\n\t\tif (this.modifiers.length) {\n\t\t\tconst modifiers = this.modifiers.split(this.classesSeparator);\n\t\t\tconst modifierClasses = map(modifiers, (modifier) => cssBaseClass + this.modifierSeparator + modifier);\n\n\t\t\treturn classes.concat(modifierClasses);\n\n\t\t} else {\n\t\t\treturn classes;\n\t\t}\n\t}\n\n\tprotected getBaseClassesAsString (cssBaseClass: string): string {\n\t\treturn this.getBaseClasses(cssBaseClass).join(this.classesSeparator);\n\t}\n\n\t// Timeout with additional functional\n\t// The third argument it is possible to transfer function which of all is performed in case of completion of the timer\n\t// Returns canceling function\n\tprotected timeout (\n\t\tfunc: CallableFunction = (): void => void (0),\n\t\ttime = 0,\n\t\tfinallyFunc: CallableFunction = (): void => void (0),\n\t): CallableFunction {\n\t\tconst timer = setTimeout(() => {\n\t\t\tfunc();\n\t\t\tfinallyFunc();\n\t\t}, time);\n\n\t\treturn () => {\n\t\t\tclearTimeout(timer);\n\t\t\tfinallyFunc();\n\t\t};\n\t}\n\n\tprotected willUnbind (callback: () => void): (withUnbind?: boolean) => void {\n\t\tthis.needUnbind.push(callback);\n\n\t\treturn (withUnbind = false): void => {\n\t\t\tremove(this.needUnbind, (f) => f === callback);\n\n\t\t\tif (withUnbind) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t};\n\t}\n\n\tprotected runUpdate () {\n\t\tthis.changeDetector.markForCheck();\n\t}\n\n\tprotected runOutsideAngular (func: (...args: any[]) => T): T {\n\t\treturn this.zone.runOutsideAngular(func);\n\t}\n\n\tprotected subscribe (observable: Observable, observerOrNext: any): void;\n\tprotected subscribe (observable: Observable, observerOrNext: (value: T) => void, error?: (error: any) => void ): void;\n\tprotected subscribe (observable: Observable, observerOrNext: (value: T) => void, error?: (error: any) => void, complete?: () => void ): void {\n\t\tconst subscription = observable.subscribe(observerOrNext, error, complete);\n\n\t\tthis.willUnbind(() => {\n\t\t\tsubscription.unsubscribe();\n\t\t});\n\t}\n}\n","import { ICommonAppConfig } from '../../../Common/app/app.config.token';\n\nimport { AuthenticationMeetingsComponent } from './authentication.meetings.component';\n\nexport const authenticationMeetingsAppConfig: ICommonAppConfig = {\n\tapplication: 'meetings_auth',\n\thasInitialLoader: false,\n\tshouldAuthorize: false,\n\tmainComponent: AuthenticationMeetingsComponent,\n\tshouldInitLayoutService: false,\n};\n","import {\n\tComponent,\n\tInjector,\n} from '@angular/core';\n\nimport {\n\ttrigger,\n\ttransition,\n} from '@angular/animations';\n\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\n\n@Component({\n\ttemplateUrl: './authentication.meetings.component.pug',\n\tselector: 'authentication-meetings-app',\n\tanimations: [\n\t\ttrigger('parentAnimation', [\n\t\t\ttransition(':enter', []),\n\t\t]),\n\t],\n})\nexport class AuthenticationMeetingsComponent extends CommonBaseComponent {\n\tconstructor (\n\t\tprotected injector: Injector,\n\t) {\n\t\tsuper(injector);\n\t}\n}\n","\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport {\n\tIAuthenticationMeetingsChangePassword,\n\tIAuthenticationMeetingsConfirmUser,\n\tIAuthenticationMeetingsLoginUser,\n\tIAuthenticationMeetingsRegistration,\n\tIAuthenticationMeetingsRemindUser,\n} from '../authentication.interfaces';\n\nimport { ICommonResponseError } from '../../../../Common/@types/core';\n\nconst urls = {\n\tlogin: 'account/login',\n\tconfirm: 'account/verifyCode',\n\tregistration: 'account/register',\n\tresetPassword: 'account/resetPassword',\n\tcode: 'account/sendCode',\n\tchangePassword: 'account/applyPassword',\n};\n\nexport interface IAuthenticationMeetingsUserActionsResponse extends ICommonResponseError {\n\tIsSuccess: boolean;\n\tErrorMessages?: string[];\n\tResult: {\n\t\tExpiresAt: string;\n\t};\n}\n\n@Injectable()\nexport class AuthenticationMeetingsUserService {\n\tconstructor (\n\t\tprivate http: HttpClient,\n\t) {}\n\n\tlogin (data: IAuthenticationMeetingsLoginUser): Observable {\n\t\treturn this.http.post(urls.login, data);\n\t}\n\n\tconfirm (data: IAuthenticationMeetingsConfirmUser): Observable {\n\t\treturn this.http.post(urls.confirm, { ...data, Purpose: 'TwoFactor' });\n\t}\n\n\tresetPassword (data: IAuthenticationMeetingsRemindUser): Observable {\n\t\treturn this.http.post(urls.resetPassword, data);\n\t}\n\n\tchangePassword (data: IAuthenticationMeetingsChangePassword): Observable {\n\t\treturn this.http.post(urls.changePassword, data);\n\t}\n\n\tregister (data: IAuthenticationMeetingsRegistration): Observable {\n\t\treturn this.http.post(urls.registration, data);\n\t}\n\n\tsendCode (): Observable {\n\t\treturn this.http.post(urls.code, { Purpose: 'TwoFactor' });\n\t}\n}\n","import { isEmpty, unset, get } from 'lodash';\nimport { AbstractControl } from '@angular/forms';\nimport { Injectable } from '@angular/core';\n\nimport { IAuthenticationMeetingsValidationErrors } from '../authentication.interfaces';\n\nimport { ICommonKeyValues, ICommonResponseError } from '../../../../Common/@types/core';\n\n@Injectable()\nexport class AuthenticationMeetingsErrorService {\n\thandleSuccessResponse (response: ICommonResponseError, validationsErrorObject: IAuthenticationMeetingsValidationErrors, control: AbstractControl): void {\n\t\tif (!isEmpty(response.Error) || !isEmpty(response.ErrorMessages)) {\n\t\t\tthis.showCustomError(response, validationsErrorObject, control);\n\t\t}\n\t}\n\n\tshowCustomError (response: ICommonKeyValues, validationsErrorObject: IAuthenticationMeetingsValidationErrors, control: AbstractControl) {\n\t\tvalidationsErrorObject.custom = get(response, 'ErrorMessages[0]') || response.Error;\n\t\tcontrol.setErrors({CustomError: true});\n\t}\n\n\tonChangeFieldHandler (control: AbstractControl, resource: {validationCustomErrors: IAuthenticationMeetingsValidationErrors}) {\n\t\tif (resource.validationCustomErrors.custom) {\n\t\t\tcontrol.setErrors(null);\n\t\t\tunset(resource, 'validationCustomErrors.custom');\n\t\t}\n\t}\n}\n","import {\n\tstyle,\n\ttransition,\n\tanimate,\n\ttrigger,\n} from '@angular/animations';\n\nexport const MeetingsAuthAnimation = [\n\ttrigger('formAnimation', [\n\t\ttransition(':enter', [\n\t\t\tstyle({ transform: 'translateX(50px)' }),\n\t\t\tanimate('300ms ease-out'),\n\t\t]),\n\t]),\n];\n","import { Directive } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n\tselector: '[commonLowerCaseInput]',\n})\nexport class CommonLowerCaseInputDirective {\n\tprivate controlSubscription: Subscription;\n\n\tconstructor (\n\t\tprivate ngModelControl: NgModel,\n\t) {}\n\n\tngOnInit (): void {\n\t\tconst { control } = this.ngModelControl;\n\n\t\tthis.controlSubscription = control.valueChanges\n\t\t\t.subscribe((value: string) => {\n\t\t\t\tconst newValue = (value || '').toLowerCase();\n\n\t\t\t\tif (value && newValue && newValue !== value) {\n\t\t\t\t\tcontrol.setValue(newValue, { emitEvent: false });\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tngOnDestroy (): void {\n\t\tif (this.controlSubscription) {\n\t\t\tthis.controlSubscription.unsubscribe();\n\t\t}\n\t}\n}\n","import {\n\tDirective,\n\tEventEmitter,\n\tInjector,\n\tInput,\n\tOutput,\n} from '@angular/core';\n\nimport {\n\tget,\n\tintersection,\n\tinvoke,\n\tkeys,\n\tuniqueId,\n} from 'lodash';\n\nimport {\n\tControlValueAccessor,\n\tNgModel,\n} from '@angular/forms';\n\nimport { CommonBaseComponent } from '../../components/base.component';\nimport { ICommonValidationComponentCustomErrors } from './validation/validation.component';\n\ndeclare type TCommonControlValidationMode = 'blur' | 'submit';\n\n@Directive()\nexport class CommonControlComponent extends CommonBaseComponent implements ControlValueAccessor {\n\t@Input() model: any;\n\t@Output() modelChange = new EventEmitter();\n\n\t@Input() isDisabled: boolean;\n\t@Input() isReadonly: boolean;\n\t@Input() ctrlClasses: string;\n\t@Input() name: string;\n\t@Input() customErrors: ICommonValidationComponentCustomErrors;\n\n\t@Output() changeEvent = new EventEmitter();\n\n\tngModelControl: NgModel;\n\tid = '';\n\tisFocused = false;\n\tisHovered = false;\n\n\tprotected idKey = 'control_';\n\n\tprivate validationMode: TCommonControlValidationMode;\n\n\tconstructor (protected injector: Injector) {\n\t\tsuper(injector);\n\t}\n\n\twriteValue (value: any): void {\n\t\tthis.model = value;\n\t\tthis.runUpdate();\n\t}\n\n\tregisterOnChange (fn: any): void {\n\t\tthis.onChangeForValueAccessor = fn;\n\t}\n\n\tregisterOnTouched (fn: any): void {\n\t\tthis.onTouchedForValueAccessor = fn;\n\t}\n\n\tngOnInit () {\n\t\tsuper.ngOnInit();\n\n\t\tthis.ngModelControl = this.injector.get(NgModel);\n\n\t\tthis.id = uniqueId(this.idKey);\n\n\t\tif (get(this.ngModelControl, 'formDirective')) {\n\t\t\tif (this.ngModelControl.formDirective) {\n\t\t\t\tthis.subscribe(this.ngModelControl.formDirective.ngSubmit, () => {\n\t\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.subscribe(this.ngModelControl.control.statusChanges, () => {\n\t\t\t\tthis.changeDetector.detectChanges();\n\t\t\t});\n\n\t\t\t// Если на форме есть editFormSubmitWidget то подсветка ошибок будет происходить после первого сабмита формы\n\t\t\t// Если editFormSubmitWidget нет — после blur любого элемета формы\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst controls = keys(this.ngModelControl.formDirective.controls);\n\t\t\t\tconst submitControls = ['editFormSubmitWidget', 'submitButton'];\n\n\t\t\t\tthis.validationMode = intersection(controls, submitControls).length > 0 ? 'submit' : 'blur';\n\t\t\t});\n\t\t}\n\t}\n\n\tisValid () {\n\t\tconst submitted = get(this, 'ngModelControl.formDirective.submitted');\n\n\t\tif (submitted && !this.isDisabled) {\n\t\t\treturn this.ngModelControl.valid;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tonMouseEnterHandler (event?: Event): void {\n\t\tthis.isHovered = true;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tonMouseLeaveHandler (event?: Event): void {\n\t\tthis.isHovered = false;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tonFocusHandler (event?: Event): void {\n\t\tthis.isFocused = true;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tonBlurHandler (event?: Event): void {\n\t\tthis.isFocused = false;\n\n\t\tif (this.onTouchedForValueAccessor) {\n\t\t\tthis.onTouchedForValueAccessor();\n\t\t}\n\n\t\tthis.formSubmitAfterBlur();\n\t}\n\n\tupdateValueAndValidity (): void {\n\t\tinvoke(this, 'ngModelControl.control.updateValueAndValidity');\n\t}\n\n\tprotected formSubmitAfterBlur (): void {\n\t\tif (this.validationMode === 'blur' && !this.ngModelControl.formDirective.submitted && !this.ngModelControl.formDirective.valid) {\n\t\t\tthis.ngModelControl.formDirective.onSubmit(null);\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tprotected onChangeForValueAccessor (value: any) { /**/ }\n\n\tprotected onTouchedForValueAccessor () { /**/ }\n\n\tprotected emitOnChange (value: any) {\n\t\tthis.onChangeForValueAccessor(value);\n\t\tthis.changeEvent.emit(value);\n\t}\n}\n","export const COMMON_THROTTLE_MILLISECONDS = 200;\n","export const DEFAULT_ERROR_MESSAGES = {\n\tmin: 'common.validation.min',\n\tmax: 'common.validation.max',\n\tminLength: 'common.validation.minlength',\n\tmaxLength: 'common.validation.maxlength',\n\tpattern: 'common.validation.pattern',\n\tincorrectDate: 'common.validation.incorrectDate',\n\temail: 'common.validation.email',\n\tpasswordError: 'common.validation.password.error',\n};\n","\n
\n
\n
{{ getMessage() }}
\n
\n
","// New version src/Common/controls/control/validation/validation.component.ts CommonValidationComponent\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/widgets/validation_component_service.jsx ValidationComponent\n\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tInput,\n\tInjector,\n} from '@angular/core';\n\nimport {\n\tNgModel,\n\tNgForm,\n} from '@angular/forms';\n\nimport {\n\tforEach,\n\tisBoolean,\n\tget,\n} from 'lodash';\nimport { ICommonKeyValues } from '../../../@types/core';\n\nimport { CommonBaseComponent } from '../../../components/base.component';\nimport { DEFAULT_ERROR_MESSAGES } from './default_error_messages.constant';\n\nexport interface ICommonValidationComponentCustomErrors {\n\t[errorName: string]: string;\n}\n\nexport interface ICommonValidationComponentError {\n\tmessage: string;\n\tcontext: ICommonKeyValues;\n}\n\nexport type TCommonValidationComponentError = ICommonValidationComponentError | boolean;\n\n@Component({\n\tselector: 'common-validation',\n\ttemplateUrl: './validation.component.pug',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstyleUrls: [\n\t\t'./validation.component.sass',\n\t],\n})\nexport class CommonValidationComponent extends CommonBaseComponent {\n\t@Input() customErrors: ICommonValidationComponentCustomErrors;\n\t@Input() ngModelControl: NgModel;\n\t@Input() isShow = true;\n\n\tconstructor (protected injector: Injector) {\n\t\tsuper(injector);\n\t}\n\n\tngOnInit () {\n\t\tif (this.ngModelControl) {\n\t\t\tthis.subscribe(this.ngModelControl.update, () => {\n\t\t\t\tthis.runUpdate();\n\t\t\t});\n\n\t\t\tthis.subscribe(this.ngModelControl.control.statusChanges, () => {\n\t\t\t\tthis.runUpdate();\n\t\t\t});\n\n\t\t\tif (this.ngModelControl.formDirective) {\n\t\t\t\tthis.subscribe(this.ngModelControl.formDirective.ngSubmit, () => {\n\t\t\t\t\tthis.runUpdate();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tgetMessage (): string {\n\t\tlet result = '';\n\n\t\tif (this.ngModelControl && this.isShow) {\n\t\t\tconst formDirective: NgForm = this.ngModelControl.formDirective;\n\n\t\t\tif (formDirective && formDirective.submitted && !this.ngModelControl.valid) {\n\t\t\t\tforEach(this.ngModelControl.errors, (val: TCommonValidationComponentError, errorName) => {\n\t\t\t\t\tif (!val) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet message = DEFAULT_ERROR_MESSAGES[errorName];\n\t\t\t\t\tlet context = {};\n\n\t\t\t\t\tif (!isBoolean(val)) {\n\t\t\t\t\t\tcontext = val.context || context;\n\t\t\t\t\t\tmessage = val.message || message;\n\t\t\t\t\t}\n\n\t\t\t\t\t // условие необходимо для показа тултипов только при заполненных полях (false для booleanCheckbox, 0 для текстфилда)\n\t\t\t\t\tif (this.ngModelControl.model || [null, false, 0].indexOf(this.ngModelControl.model) >= 0) {\n\t\t\t\t\t\tmessage = get(this.customErrors, errorName) || message;\n\n\t\t\t\t\t\tif (message) {\n\t\t\t\t\t\t\tmessage = this.instant(message, context);\n\n\t\t\t\t\t\t\tresult = message || result;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmessage = null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n}\n","\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{ label }}
\n
","// New version src/Common/controls/loader/loader.component.ts CommonLoaderComponent\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/controls/common_controls_loader_module/ctrl_loader_component_service.jsx CtrlLoaderComponent\n\nimport {\n\tInjector,\n\tComponent,\n\tInput,\n\tSimpleChanges,\n} from '@angular/core';\nimport {CommonBaseComponent} from '../../components/base.component';\nimport {COMMON_LOADER_DEFAULT_DELAY_TIMEOUT} from './loader_default_delay_timeout_constant';\n\n@Component({\n\tselector: 'common-loader',\n\ttemplateUrl: './loader.component.pug',\n\tstyleUrls: [\n\t\t'./loader.component.sass',\n\t],\n})\nexport class CommonLoaderComponent extends CommonBaseComponent {\n\t@Input() isLoading = false;\n\t@Input() hasDelay = false;\n\t@Input() label = '';\n\t@Input() ctrlLoaderClasses = '';\n\t@Input() className = '';\n\t@Input() ctrlLoaderTopAligned = false;\n\t@Input() ctrlLoaderWithOverlay = false;\n\n\tisShow = false;\n\tprotected loadTimeout = 0;\n\tprotected cancelTimer: any;\n\n\tconstructor (protected injector: Injector) {\n\t\tsuper(injector);\n\t}\n\tngOnInit (): void {\n\t\tsuper.ngOnInit();\n\n\t\tthis.willUnbind(() => {\n\t\t\tthis.stopLoading();\n\t\t});\n\t}\n\n\tngOnChanges (changes: SimpleChanges): void {\n\t\tsuper.ngOnChanges(changes);\n\n\t\tif (changes.hasDelay) {\n\t\t\tif (changes.hasDelay.currentValue) {\n\t\t\t\tthis.loadTimeout = COMMON_LOADER_DEFAULT_DELAY_TIMEOUT;\n\t\t\t} else {\n\t\t\t\tthis.loadTimeout = 0;\n\t\t\t}\n\t\t}\n\n\t\tif (changes.isLoading) {\n\t\t\tif (changes.isLoading.currentValue) {\n\t\t\t\tif (this.hasDelay) {\n\t\t\t\t\tthis.startLoader();\n\t\t\t\t} else {\n\t\t\t\t\tthis.isShow = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.hasDelay) {\n\t\t\t\t\tthis.stopLoading();\n\t\t\t\t} else {\n\t\t\t\t\tthis.isShow = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected startLoader (): void {\n\t\tthis.cancelTimer = this.timeout(\n\t\t\t() => this.isShow = true,\n\t\t\tthis.loadTimeout,\n\t\t\t(): null => this.cancelTimer = null,\n\t\t);\n\t}\n\n\tprotected stopLoading (): void {\n\t\tif (this.cancelTimer) {\n\t\t\tthis.cancelTimer();\n\t\t}\n\n\t\tthis.isShow = false;\n\t}\n}\n","export const COMMON_LOADER_DEFAULT_DELAY_TIMEOUT = 300;\n","\n
\n
{{floatLabel}}
\n \n \n \n
\n
{{ charsLeft }}
\n
\n \n
\n \n
","// New version src/Common/controls/textfield/textfield.component.ts CommonTextfieldComponent\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/controls/common_controls_textfield_module/ctrl_textfield_component_service.jsx CtrlTextfieldComponent\n\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tforwardRef,\n\tInjector,\n\tInput,\n\tOutput,\n\tSimpleChanges,\n\tViewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n\textend,\n\tforEach,\n\tisBoolean,\n\tisFunction,\n\tisNumber,\n\tisString,\n} from 'lodash';\n\nimport {\n\tSubscription,\n\ttimer,\n} from 'rxjs';\n\nimport * as Inputmask from 'inputmask';\nimport { CommonControlComponent } from '../control/control.component';\nimport { commonUtilitiesCoreService } from '../../services/core.service';\nimport { COMMON_THROTTLE_MILLISECONDS } from '../control/throttler_milliseconds.constant';\nimport { THTMLInputType } from '../../@types/core';\nimport { COMMON_HOT_KEYS } from '../control/hot_keys.constant';\nimport { commonBrowserService } from '../../services/browser.service';\nimport { COMMON_AUTOCOMPLETE_PROPS } from '../control/autocomplete_props.constant';\n\nexport type TCommonTextfieldModel = string | number | null;\n\n@Component({\n\tselector: 'common-textfield',\n\ttemplateUrl: './textfield.component.pug',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstyleUrls: [\n\t\t'../control/control.component.sass',\n\t\t'./textfield.component.sass',\n\t],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => CommonTextfieldComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class CommonTextfieldComponent extends CommonControlComponent {\n\t@Input() model: TCommonTextfieldModel;\n\t@Output() modelChange = new EventEmitter();\n\t@Output() changeEvent = new EventEmitter();\n\n\t@Input() isDisabled = false;\n\t@Input() isReadonly = false;\n\t@Input() inputMask = '';\n\t@Input() inputMaskParams: any = null; // interface\n\t@Input() placeholder = '';\n\t@Input() floatLabel = '';\n\t@Input() autocomplete: string = COMMON_AUTOCOMPLETE_PROPS.AUTOCOMPLETE_OFF;\n\t@Input() autocapitalize: string = COMMON_AUTOCOMPLETE_PROPS.AUTOCAPITALIZE_OFF;\n\t@Input() autocorrect: string = COMMON_AUTOCOMPLETE_PROPS.AUTOCORRECT_OFF;\n\t@Input() spellcheck = 'true';\n\t@Input() name = '';\n\t@Input() type: THTMLInputType = 'text';\n\t@Input() iconClasses = '';\n\t@Input() iconTitle = '';\n\t@Input() withRightIcon: boolean;\n\t@Input() hideCount = false;\n\t@Input() ctrlClasses = '';\n\t@Input() hasClearIcon = false;\n\t@Input() hasDebounce = false;\n\t@Input() isUrl = false;\n\t@Input() parseUrl: (value: string) => string;\n\t@Input() isLoading = false;\n\t@Input() hasLoaderDelay = false;\n\t@Input() isUseHint = false;\n\t@Input() onHint: (model: TCommonTextfieldModel) => string;\n\t@Input() maxLength: number;\n\n\t@Output() focusEvent = new EventEmitter();\n\t@Output() blurEvent = new EventEmitter();\n\t@Output() enterEvent = new EventEmitter();\n\t@Output() keyDownEvent = new EventEmitter();\n\t@Output() keyUpEvent = new EventEmitter();\n\t@Output() clickEvent = new EventEmitter();\n\t@Output() iconClickEvent = new EventEmitter();\n\t@ViewChild('input', {static: true}) inputRef: ElementRef;\n\n\tmodelIsEmpty = false;\n\tvalue = '';\n\tinputValue = '';\n\tisHintOn = false;\n\thintValue = '';\n\tcharsLeft = 0;\n\n\tprotected idKey = 'textfield_';\n\tprotected isInputMaskInitialized = false;\n\tprotected setModel$: Subscription | null = null;\n\n\tconstructor (protected injector: Injector) {\n\t\tsuper(injector);\n\t}\n\n\tngOnInit () {\n\t\tsuper.ngOnInit();\n\n\t\tthis.value = this.formattedModel(this.model);\n\t\tthis.setInputValue(this.value);\n\t\tthis.modelIsEmpty = this.isEmpty(this.value);\n\t\tthis.charsLeft = this.getCharsLeft(this.value);\n\n\t\tif (this.isNeedEnableHint(this.model)) {\n\t\t\tthis.hintValue = this.onHint(this.model);\n\t\t\tthis.isHintOn = true;\n\t\t}\n\t}\n\n\tngOnChanges (changes: SimpleChanges) {\n\t\tsuper.ngOnChanges(changes);\n\n\t\tif (changes.model) {\n\t\t\tthis.updateModel(changes.model.previousValue, changes.model.currentValue);\n\t\t}\n\t}\n\n\twriteValue (value: any): void {\n\t\tthis.updateModel(this.model, value);\n\t}\n\n\tisWithRightIcon (): boolean {\n\t\treturn this.withRightIcon || this.hasClearIcon || this.isUrl || this.isLoading;\n\t}\n\n\tisWithCount (): boolean {\n\t\treturn !!this.maxLength && !this.hideCount && !this.isDisabled;\n\t}\n\n\tonFocusHandler (event: Event): void {\n\t\tif (this.isDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initInputMask();\n\t\tsuper.onFocusHandler(event);\n\t\tthis.focusEvent.emit(event);\n\t\tthis.disableHint();\n\t}\n\n\tonBlurHandler (event: Event): void {\n\t\t// For input mask\n\t\t// this.onChangeInput(this.inputRef.nativeElement.value, event);\n\n\t\tif (this.isDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet model = this.model;\n\n\t\t// this._setSubmitted();\n\t\tsuper.onBlurHandler(event);\n\n\t\t// Cancel debounce and set model\n\t\tthis.cancelSetModel(() => {\n\t\t\tmodel = this.parseValue(this.value);\n\t\t\tthis.setModel(model);\n\t\t});\n\n\t\tthis.blurEvent.emit(event);\n\n\t\tthis.timeout(() => {\n\t\t\tif (this.isNeedEnableHint(model)) {\n\t\t\t\tthis.enableHint();\n\t\t\t}\n\t\t});\n\t}\n\n\tonKeyDownInput (event: KeyboardEvent): void {\n\t\tif (this.isDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.which === COMMON_HOT_KEYS.ENTER) {\n\t\t\tthis.enterEvent.emit(event);\n\t\t}\n\n\t\tthis.keyDownEvent.emit(event);\n\t}\n\n\tonKeyUpInput (event: KeyboardEvent): void {\n\t\t// For input mask\n\t\tthis.onChangeInput(this.inputRef.nativeElement.value);\n\n\t\tif (!this.isDisabled) {\n\t\t\tthis.keyUpEvent.emit(event);\n\t\t}\n\t}\n\n\tonMouseUpInput (event: MouseEvent): void {\n\t\tif (commonBrowserService.browser.ie && event.which === COMMON_HOT_KEYS.RIGHT_MOUSE) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\tonClickHandler (event?: MouseEvent): void {\n\t\tif (!this.isDisabled) {\n\t\t\tthis.clickEvent.emit(event);\n\t\t}\n\t}\n\n\tonClickIconHandler (event?: MouseEvent): void {\n\t\tif (!this.isDisabled) {\n\t\t\tthis.iconClickEvent.emit(event);\n\t\t}\n\t}\n\n\tonChangeInput (value: string) {\n\t\tif (this.isDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst oldValue = this.value;\n\n\t\tif (value === this.value) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Saves async access to variables of an event (react)\n\t\t// event.persist && event.persist();\n\n\t\tconst parseValue = this.parseValue(value);\n\n\t\tthis.setValue(value, parseValue);\n\n\t\tif (this.isInputMaskInitialized && this.inputMask) {\n\t\t\tconst inputmask = this.inputRef.nativeElement.inputmask;\n\t\t\tconst unmaskAsNumber = inputmask.option('unmaskAsNumber');\n\n\t\t\t// Save '-' when user writes the first character\n\t\t\tif (!(unmaskAsNumber && oldValue === '' && value === '-')) {\n\t\t\t\tthis.debounceSetModel(parseValue);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.debounceSetModel(parseValue);\n\t\t}\n\t}\n\n\tonPaste (): void {\n\t\tsetTimeout(() => {\n\t\t\tthis.onChangeInput(this.getInputEl().value);\n\t\t});\n\t}\n\n\tgetInputEl (): HTMLInputElement {\n\t\treturn this.inputRef.nativeElement;\n\t}\n\n\tdetectChanges () {\n\t\tthis.changeDetector.detectChanges();\n\t}\n\n\t// input value -> model\n\tparseValue (inputValue: string): TCommonTextfieldModel {\n\t\tconst maxLength = this.maxLength;\n\t\tlet value: TCommonTextfieldModel = inputValue.trim();\n\n\t\tif (maxLength) {\n\t\t\tvalue = this.limitTo(value, maxLength);\n\t\t}\n\n\t\tif (this.isInputMaskInitialized && this.inputMask) {\n\t\t\tconst input = this.inputRef.nativeElement;\n\t\t\tconst inputmask = input.inputmask;\n\t\t\tconst unmaskAsNumber = inputmask.option('unmaskAsNumber');\n\t\t\tconst autoUnmask = inputmask.option('autoUnmask');\n\t\t\tconst unMaskValue = inputmask.unmaskedvalue();\n\t\t\tconst placeholder = inputmask.option('placeholder');\n\n\t\t\t// Filter the placeholder value for IE\n\t\t\tif (placeholder && unMaskValue === '' && value === placeholder) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (autoUnmask || unmaskAsNumber) {\n\t\t\t\tvalue = unMaskValue;\n\n\t\t\t\tif (isString(value)) {\n\t\t\t\t\tvalue = value.trim();\n\t\t\t\t}\n\n\t\t\t\t// Because of check (unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts) || unmaskedValue)\n\t\t\t\t// for numerical masks method unmaskedvalue return 0 as string, it is necessary to put this crutch\n\t\t\t\t// https://github.com/RobinHerbots/jquery.inputmask/blob/3.x/js/inputmask.js#L1736\n\t\t\t\tif (unmaskAsNumber && value === '0') {\n\t\t\t\t\tvalue = 0;\n\t\t\t\t}\n\n\t\t\t\t// In IE return '0' with empty sting in input\n\t\t\t\tif (!input.value) {\n\t\t\t\t\tvalue = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tparseUrlFunc (url: string): string {\n\t\tif (this.parseUrl) {\n\t\t\turl = this.parseUrl(url);\n\t\t}\n\n\t\tif (!url.match(/^[a-zA-Z+]+:/)) {\n\t\t\turl = 'http://' + url;\n\t\t}\n\n\t\treturn url;\n\t}\n\n\tclearModel (event: MouseEvent): void {\n\t\tevent.preventDefault();\n\t\t// Don't forget about debounce\n\t\tthis.cancelSetModel();\n\n\t\tthis.setValue('', '');\n\t\tthis.setModel('');\n\t}\n\n\tonClickClearButton (event: MouseEvent): void {\n\t\tif (this.isDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.mouseDownPreventDefault(event, () => this.clearModel(event));\n\t}\n\n\tprotected updateModel (oldModel: TCommonTextfieldModel, newModel: TCommonTextfieldModel) {\n\t\tconst hasValueInModels = commonUtilitiesCoreService.hasValue(newModel) || commonUtilitiesCoreService.hasValue(oldModel);\n\n\t\tif (hasValueInModels && newModel !== oldModel) {\n\t\t\t// Filter the placeholder value for IE\n\t\t\tif (this.isInputMaskInitialized && this.inputMask) {\n\t\t\t\tconst inputmask = this.inputRef.nativeElement.inputmask;\n\t\t\t\tconst unMaskValue = inputmask.unmaskedvalue();\n\n\t\t\t\tif (unMaskValue !== newModel) {\n\t\t\t\t\tconst newValue = this.formattedModel(newModel);\n\t\t\t\t\tconst placeholder = inputmask.option('placeholder');\n\n\t\t\t\t\tif (!(placeholder && newValue === '' && unMaskValue === '' && this.value === placeholder)) {\n\t\t\t\t\t\tthis.setValue(newValue, newModel);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst newValue = this.formattedModel(newModel);\n\n\t\t\t\tthis.setValue(newValue, newModel);\n\t\t\t}\n\n\t\t\tif (this.isNeedEnableHint(newModel)) {\n\t\t\t\tthis.enableHint();\n\t\t\t} else {\n\t\t\t\tthis.disableHint();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected focus () {\n\t\tthis.inputRef.nativeElement.focus();\n\t}\n\n\tprotected initInputMask () {\n\t\tif (!this.isInputMaskInitialized && this.inputMask) {\n\t\t\tconst input = this.inputRef.nativeElement;\n\n\t\t\tInputmask(this.inputMask, this.inputMaskParams).mask(input);\n\n\t\t\tthis.willUnbind(() => {\n\t\t\t\t// When run \"inputmask.remove()\" \"input\" is not have \"form\" field,\n\t\t\t\t// so inputmask can't remove \"submit\" handler\n\t\t\t\t// https://jira.parcsis.org/browse/CASEM-26200\n\t\t\t\tconst events = input.inputmask.events;\n\t\t\t\tconst form = input.form;\n\n\t\t\t\tforEach(events, (eventHandlers, eventName) => {\n\t\t\t\t\tif (-1 < ['submit', 'reset'].indexOf(eventName) && input.form) {\n\t\t\t\t\t\twhile (0 < eventHandlers.length) {\n\t\t\t\t\t\t\tconst eventHandler = eventHandlers.pop();\n\t\t\t\t\t\t\tform.removeEventListener(eventName, eventHandler);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdelete events[eventName];\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// timeout so that the events on submit do not break, then remove the mask\n\t\t\t\t// https://jira.parcsis.org/browse/CASEM-22727\n\t\t\t\tthis.runOutsideAngular(() => {\n\t\t\t\t\tthis.timeout(() => {\n\t\t\t\t\t\tif (input.inputmask) {\n\t\t\t\t\t\t\tinput.inputmask.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Input mask beak event change\n\t\t\t// in IE without incomplete the garbage gets to model\n\n\t\t\t// The 'blur' event is needed to update numbers in the model, if inputmask params has min, max values\n\t\t\t// https://jira.parcsis.org/browse/CASEM-23473\n\t\t\t// this.willUnbind(\n\t\t\t// \tthis.onEvent($input, 'keyup keydown paste cut incomplete blur', (event) => this._onInput(event))\n\t\t\t// );\n\t\t\tthis.isInputMaskInitialized = true;\n\t\t}\n\t}\n\n\t// Formats value of model till a line of an input\n\tprotected formattedModel (model: TCommonTextfieldModel): string {\n\t\tconst maxLength = this.maxLength;\n\t\tlet result = '';\n\n\t\tif (isString(model)) {\n\t\t\tresult = model;\n\t\t}\n\n\t\tif (isNumber(model) && isFinite(model)) {\n\t\t\tresult = model.toString();\n\t\t}\n\n\t\tresult = result.trim();\n\n\t\tif (maxLength && result.length > maxLength) {\n\t\t\tresult = this.limitTo(result, maxLength);\n\t\t}\n\n\t\t// In IE in case of an initialization doesn't fulfill input a mask\n\t\t// Blank lines not to lay down, behaves inadequately\n\t\tif (result && this.inputMask) {\n\t\t\tresult = Inputmask.format(result, extend({ alias: this.inputMask }, this.inputMaskParams));\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected limitTo (val: string, limit: number): string {\n\t\treturn val.substr(0, limit);\n\t}\n\n\t// Quantity of the remained free characters\n\tprotected getCharsLeft (value: string): number {\n\t\tconst maxLength = this.maxLength;\n\n\t\tif (maxLength && !this.hideCount) {\n\t\t\treturn maxLength - value.length;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\tprotected isEmpty (value: string): boolean {\n\t\treturn !commonUtilitiesCoreService.hasValue(value);\n\t}\n\n\tprotected isNeedEnableHint (model: TCommonTextfieldModel): boolean {\n\t\treturn this.isUseHint && !!model;\n\t}\n\n\t// The single method which shall change value in state\n\tprotected setValue (value: string, model: TCommonTextfieldModel): void {\n\t\tif (this.isTextfieldModel(value) && this.isTextfieldModel(model)) {\n\t\t\tthis.value = value;\n\t\t\tthis.model = model;\n\t\t\tthis.modelIsEmpty = this.isEmpty(value);\n\t\t\tthis.charsLeft = this.getCharsLeft(value);\n\n\t\t\tthis.setInputValue(value);\n\t\t}\n\t}\n\n\t// Fix for inputmask\n\tprotected setInputValue (value: string): void {\n\t\tif (value !== this.inputRef.nativeElement.value) {\n\t\t\tthis.inputValue = value;\n\t\t\tthis.inputRef.nativeElement.value = value;\n\t\t}\n\t}\n\n\tprotected setModel (model: TCommonTextfieldModel): void {\n\t\tif (this.isTextfieldModel(model)) {\n\t\t\tthis.modelChange.emit(model);\n\t\t\tthis.changeEvent.emit(model);\n\t\t\tthis.emitOnChange(model);\n\t\t}\n\t}\n\n\tprotected debounceSetModel (model: TCommonTextfieldModel): void {\n\t\tif (this.isTextfieldModel(model)) {\n\t\t\tthis.model = model;\n\t\t}\n\n\t\tif (this.hasDebounce) {\n\t\t\tthis.cancelSetModel();\n\n\t\t\tthis.setModel$ = timer(COMMON_THROTTLE_MILLISECONDS)\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tthis.setModel(model);\n\t\t\t\t\tthis.setModel$ = null;\n\t\t\t\t});\n\t\t} else {\n\t\t\tthis.setModel(model);\n\t\t}\n\t}\n\n\tprotected cancelSetModel (callback: CallableFunction | null = null) {\n\t\tif (this.setModel$) {\n\t\t\tthis.setModel$.unsubscribe();\n\n\t\t\tif (isFunction(callback)) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected enableHint (): void {\n\t\tconst hintValue = this.onHint(this.model);\n\n\t\tthis.isHintOn = true;\n\t\tthis.hintValue = hintValue;\n\t}\n\n\tprotected disableHint (): void {\n\t\tif (this.isHintOn) {\n\t\t\tthis.isHintOn = false;\n\t\t\tthis.hintValue = '';\n\t\t}\n\t}\n\n\tprotected mouseDownPreventDefault (\n\t\tevent: MouseEvent,\n\t\tcallback: CallableFunction = (): void => void (0),\n\t): void {\n\t\tif (event.which === COMMON_HOT_KEYS.LEFT_MOUSE && !this.isDisabled) {\n\t\t\t// Save focus in input\n\t\t\tevent.preventDefault();\n\t\t\tcallback();\n\t\t}\n\t}\n\n\t// для случая когда commonTextfield используется в другом компоненте (например автокомплит)\n\t// в этом случае в текстфилд может попасть ngModel не того типа, напрмер объект\n\tprivate isTextfieldModel (model: TCommonTextfieldModel): boolean {\n\t\treturn isNumber(model) || isString(model) || isBoolean(model) || !model;\n\t}\n}\n","export const COMMON_AUTOCOMPLETE_PROPS = {\n\tAUTOCOMPLETE_OFF: 'off',\n\tAUTOCAPITALIZE_OFF: 'off',\n\tAUTOCORRECT_OFF: 'off',\n};\n","export const COMMON_HOT_KEYS = {\n\tLEFT_MOUSE: 1,\n\tMIDDLE_MOUSE: 2,\n\tRIGHT_MOUSE: 3,\n\tARROW_UP: 38,\n\tARROW_DOWN: 40,\n\tARROW_RIGHT: 39,\n\tARROW_LEFT: 37,\n\tENTER: 13,\n\tESC: 27,\n\tTAB: 9,\n\tEND: 35,\n\tHOME: 36,\n\tBACKSPACE: 8,\n\tDELETE: 46,\n\tSPACE: 32,\n};\n","import {\n\tAbstractControl,\n\tNG_VALIDATORS,\n\tValidationErrors,\n\tValidator,\n} from '@angular/forms';\nimport {\n\tDirective,\n\tInput,\n} from '@angular/core';\n\nimport {\n\tisBoolean,\n\tisEmpty,\n\tisObject,\n} from 'lodash';\nimport { commonUtilitiesCoreService } from '../../services/core.service';\n\n@Directive({\n\tselector: '[commonRequired]',\n\tproviders: [{\n\t\tprovide: NG_VALIDATORS,\n\t\tuseExisting: CommonRequiredDirective,\n\t\tmulti: true,\n\t}],\n})\nexport class CommonRequiredDirective implements Validator {\n\t@Input() commonRequired: boolean;\n\n\tprivate errorObject = {\n\t\tCommonRequiredValidator: true,\n\t};\n\n\tvalidate (control: AbstractControl): ValidationErrors | null {\n\t\t// валидация отключена по флагу\n\t\tif (this.commonRequired === false) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// особые случаи валидации\n\t\tif (isBoolean(control.value)) {\n\t\t\treturn control.value ? null : this.errorObject;\n\t\t} else if (isObject(control.value)) {\n\t\t\treturn !isEmpty(control.value) ? null : this.errorObject;\n\t\t}\n\n\t\treturn commonUtilitiesCoreService.hasValue(control.value) ? null : this.errorObject;\n\t}\n}\n","// New version src/Common/validators/data_validation.constant.ts DATA_VALIDATION\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/infinite_scroll_module.js DATA_VALIDATION\n\nexport const DATA_VALIDATION = {\n\temail: /^[^ @]+@[^ @]/,\n};\n","import {\n\tAbstractControl,\n\tNG_VALIDATORS,\n\tValidator,\n\tValidationErrors,\n} from '@angular/forms';\n\nimport { Directive } from '@angular/core';\nimport { isEmpty } from 'lodash';\n\nimport { DATA_VALIDATION } from '../data_validation.constant';\n\n@Directive({\n\tselector: '[commonEmail]',\n\tproviders: [{\n\t\tprovide: NG_VALIDATORS,\n\t\tuseExisting: CommonEmailValidatorDirective,\n\t\tmulti: true,\n\t}],\n})\nexport class CommonEmailValidatorDirective implements Validator {\n\tvalidate (control: AbstractControl): ValidationErrors | null {\n\t\tlet res = null;\n\n\t\tif (!isEmpty(control.value)) {\n\t\t\tres = RegExp(DATA_VALIDATION.email).test(control.value) ? null : {\n\t\t\t\temail: true,\n\t\t\t};\n\t\t}\n\n\t\treturn res;\n\t}\n}\n","/***\n * !!! В попапах используется CommonEditFormSubmitWidgetComponent\n * Является простой оберткой над кнопкой submit и регистрируется в форме\n * Нужен в формах с валидацией в режиме submit\n */\nimport {\n\tComponent,\n\tInput,\n\tChangeDetectionStrategy,\n\tforwardRef,\n} from '@angular/core';\nimport {\n\tNG_VALUE_ACCESSOR,\n\tControlValueAccessor,\n} from '@angular/forms';\n\n@Component({\n\tselector: 'common-submit-button',\n\ttemplateUrl: './submit_button.component.pug',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [{\n\t\tprovide: NG_VALUE_ACCESSOR,\n\t\tmulti: true,\n\t\tuseExisting: forwardRef(() => CommonSubmitButtonComponent),\n\t}],\n})\n// компонент зарегистрирован как контрол для того чтобы можно было понять в каком режиме включать валидацию формы\nexport class CommonSubmitButtonComponent implements ControlValueAccessor {\n\t@Input() isDisabled = false;\n\t@Input() ctrlClasses = '';\n\t@Input() withoutBtnClasses: boolean;\n\n\tmodel: any = null;\n\n\twriteValue (value: any): void {\n\t\tthis.model = value;\n\t}\n\n\tregisterOnChange (): void {\n\t\t//\n\t}\n\n\tregisterOnTouched (): void {\n\t\t//\n\t}\n}\n","\n","\n
\n \n
{{'meetings_auth.forms.remind_success.title' | translate}}
\n
{{'meetings_auth.forms.remind_success.description' | translate}}
\n \n
\n \n
\n
{{'meetings_auth.forms.remind.title' | translate}}
\n
{{'meetings_auth.forms.remind.description' | translate}}
\n
\n
\n
\n \n
\n
\n
\n
{{'meetings_auth.forms.remind.controls.back.title' | translate}}
\n {{'meetings_auth.forms.remind.controls.send_btn_progress.title' | translate}}{{'meetings_auth.forms.remind.controls.send_btn.title' | translate}}\n
\n
\n
\n
\n
","import {\n\tComponent,\n\tInjector,\n} from '@angular/core';\n\nimport {\n\tNgForm,\n\tUntypedFormControl,\n} from '@angular/forms';\n\nimport { finalize } from 'rxjs/operators';\n\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\n\nimport { AuthenticationMeetingsUserService, IAuthenticationMeetingsUserActionsResponse } from '../authentication/services/authentication.meetings.user.service';\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\nimport { MeetingsAuthAnimation } from '../animation/animation';\nimport { IAuthenticationMeetingsRemindUser } from '../authentication/authentication.interfaces';\n\n@Component({\n\tselector: 'authentication-meetings-remind',\n\ttemplateUrl: './authentication.meetings.remind.component.pug',\n\tanimations: [\n\t\tMeetingsAuthAnimation,\n\t],\n})\nexport class AuthenticationMeetingsRemindComponent extends CommonBaseComponent {\n\tstate = {\n\t\tisLoading: false,\n\t\tisReminded: false,\n\t};\n\n\tdata: IAuthenticationMeetingsRemindUser = {\n\t\tEmail: '',\n\t};\n\n\tresource = {\n\t\tvalidationCustomErrors: {\n\t\t\tcustom: '',\n\t\t},\n\t};\n\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\n\n\tconstructor (\n\t\tprotected injector: Injector,\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\n\t) {\n\t\tsuper(injector);\n\t}\n\n\tremind (form: NgForm) {\n\t\tif (form.valid) {\n\t\t\tthis.state.isLoading = true;\n\n\t\t\tthis.authenticationMeetingsUserService\n\t\t\t\t.resetPassword(this.data)\n\t\t\t\t.pipe(\n\t\t\t\t\tfinalize(() => this.state.isLoading = false),\n\t\t\t\t)\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\n\t\t\t\t\tif (response.IsSuccess) {\n\t\t\t\t\t\tthis.state.isReminded = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.email as UntypedFormControl);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\t}\n}\n","import {\n\tAbstractControl,\n\tNG_VALIDATORS,\n\tValidationErrors,\n\tValidator,\n} from '@angular/forms';\nimport {\n\tDirective,\n\tInput,\n} from '@angular/core';\nimport {\n\tget,\n\tisString,\n} from 'lodash';\n\n@Directive({\n\tselector: '[commonMinlength]',\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: CommonMinlengthValidatorDirective,\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class CommonMinlengthValidatorDirective implements Validator {\n\t@Input() commonMinlength: number | string;\n\t@Input() commonMinLengthRequired = true;\n\n\tvalidate (control: AbstractControl): ValidationErrors | null {\n\t\tconst length = get(control, 'value.length', null);\n\t\tconst minLengths = this.parseLength(this.commonMinlength);\n\n\t\tif (!this.commonMinLengthRequired && (length === null || length === 0)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.hasError(minLengths, length) ? { minLength: true } : null;\n\t}\n\n\thasError (minLengths: number[], length: number): boolean {\n\t\treturn minLengths.some((current, index) => {\n\t\t\tconst prev = minLengths[index - 1] || null;\n\t\t\tconst inPrevRange = prev ? length <= prev : false;\n\n\t\t\treturn !inPrevRange && length < current;\n\t\t});\n\t}\n\n\tparseLength (minLength: number | string): number[] {\n\t\tif (isString(minLength)) {\n\t\t\treturn minLength.split('|').map((item) => parseInt(item) || 0);\n\t\t}\n\t\treturn [minLength];\n\t}\n}\n","import {\n\tAbstractControl,\n\tNG_VALIDATORS,\n\tValidator,\n\tValidationErrors\n} from '@angular/forms';\nimport {\n\tDirective,\n\tInput\n} from '@angular/core';\nimport { get } from 'lodash';\n\n@Directive({\n\tselector: '[commonMaxlength]',\n\tproviders: [{\n\t\tprovide: NG_VALIDATORS,\n\t\tuseExisting: CommonMaxlengthValidatorDirective,\n\t\tmulti: true,\n\t}],\n})\nexport class CommonMaxlengthValidatorDirective implements Validator {\n\t@Input() commonMaxlength: number;\n\t@Input() pathValue: string;\n\n\tvalidate (control: AbstractControl): ValidationErrors | null {\n\t\tif (this.pathValue) {\n\t\t\treturn get(control, `value.${this.pathValue}.length`, null) <= this.commonMaxlength ? null : {\n\t\t\t\tmaxLength: true,\n\t\t\t};\n\t\t}\n\t\treturn get(control, 'value.length', null) <= this.commonMaxlength ? null : {\n\t\t\tmaxLength: true,\n\t\t};\n\t}\n}\n","\n
\n
{{instant('meetings_auth.forms.login.title')}}
\n
{{instant('meetings_auth.forms.login.description')}} {{instant('meetings_auth.forms.login.description_link' )}}
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
{{instant('meetings_auth.forms.login.controls.remind.title')}}
\n {{instant('meetings_auth.forms.login.controls.login_btn_progress.title')}}{{instant('meetings_auth.forms.login.controls.login_btn.title')}}\n
\n \n
\n
","import {\n\tComponent,\n\tInjector,\n} from '@angular/core';\n\nimport { NgForm } from '@angular/forms';\n\nimport { finalize } from 'rxjs/operators';\nimport { UIRouter } from '@uirouter/angular';\n\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\nimport { CommonAppDataService } from '../../../Common/services/app_data/app_data.service';\nimport { CommonUserDataService } from '../../../Common/services/user_data.service';\n\nimport {\n\tAuthenticationMeetingsUserService,\n\tIAuthenticationMeetingsUserActionsResponse,\n} from '../authentication/services/authentication.meetings.user.service';\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\nimport { MeetingsAuthAnimation } from '../animation/animation';\nimport { IAuthenticationMeetingsLoginUser } from '../authentication/authentication.interfaces';\n\n@Component({\n\tselector: 'authentication-meetings-login',\n\ttemplateUrl: './authentication.meetings.login.component.pug',\n\tanimations: [\n\t\tMeetingsAuthAnimation,\n\t],\n})\nexport class AuthenticationMeetingsLoginComponent extends CommonBaseComponent {\n\tstate = {\n\t\tisLoading: false,\n\t};\n\n\tuser: IAuthenticationMeetingsLoginUser = {\n\t\tPhoneNumber: '',\n\t\tPassword: '',\n\t};\n\n\tresource = {\n\t\tvalidationCustomErrors: {\n\t\t\tcustom: '',\n\t\t\tminLength: this.instant('meetings_auth.forms.login.controls.password.messages.minlength'),\n\t\t},\n\t};\n\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\n\n\tconstructor (\n\t\tprotected injector: Injector,\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\n\t\tprivate router: UIRouter,\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\n\t\tprivate commonAppData: CommonAppDataService,\n\t\tprivate commonUserDataService: CommonUserDataService,\n\t) {\n\t\tsuper(injector);\n\t}\n\n\tngOnInit (): void {\n\t\tif (this.commonAppData.getDataByPath('isAccountNotExists')) {\n\t\t\tthis.commonAppData.setDataByPath(false, 'isAccountNotExists');\n\t\t\tthis.router.stateService.go('registration');\n\t\t}\n\t}\n\n\tlogin (form: NgForm) {\n\t\tif (form.valid) {\n\t\t\tthis.state.isLoading = true;\n\n\t\t\tthis.authenticationMeetingsUserService\n\t\t\t\t.login(this.user)\n\t\t\t\t.pipe(\n\t\t\t\t\tfinalize(() => this.state.isLoading = false),\n\t\t\t\t)\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\n\t\t\t\t\tif (response.IsSuccess) {\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(response.Result.ExpiresAt, 'nextPhoneConfirmationAttemptTime');\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(this.user.PhoneNumber, 'phoneNumber');\n\n\t\t\t\t\t\tthis.router.stateService.go('confirm');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.password);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\t}\n\n\tgetAboutUrl (): string {\n\t\treturn this.commonAppData.getDataByPath('aboutPage') || '';\n\t}\n}\n","\n \n \n ","// New version src/Common/controls/checkbox/checkbox.component.ts CommonCheckboxComponent\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/controls/ctrl_checkbox_directive.js CtrlCheckbox\n\nimport {\n\tComponent,\n\tEventEmitter,\n\tInput,\n\tOutput,\n\tforwardRef,\n\tChangeDetectionStrategy,\n\tInjector,\n\tSecurityContext\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonControlComponent } from '../control/control.component';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n\tselector: 'common-checkbox',\n\ttemplateUrl: './checkbox.component.pug',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstyleUrls: [\n\t\t'../control/control.component.sass',\n\t\t'./checkbox.component.sass',\n\t],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => CommonCheckboxComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class CommonCheckboxComponent extends CommonControlComponent {\n\t@Input() model: boolean;\n\t@Output() modelChange = new EventEmitter();\n\n\t@Input() label: string;\n\t@Input() labelClasses: string;\n\t@Input() checkboxId: string;\n\t@Input() indeterminate: boolean;\n\t@Input() isDescriptionShow: boolean;\n\t@Input() descriptionValue: string;\n\n\t@Output() changeEvent = new EventEmitter();\n\n\tidKey = 'checkbox_';\n\n\tconstructor (\n\t\tprotected injector: Injector,\n\t\tprivate domSanitize: DomSanitizer\n\t\t) {\n\t\tsuper(injector);\n\t}\n\n\tgetIndeterminate (): boolean {\n\t\treturn !this.model && this.indeterminate;\n\t}\n\n\tonChangeCheckbox (value: boolean) {\n\t\tconst oldValue = this.model;\n\t\tthis.model = value;\n\n\t\tif (oldValue !== value) {\n\t\t\tthis.modelChange.emit(value);\n\t\t\tthis.emitOnChange(value);\n\t\t}\n\t}\n\n\tgetSanitizeLabel (): string {\n\t\treturn this.domSanitize.sanitize(SecurityContext.HTML, this.label) ?? '';\n\t}\n\n}\n","// New src/Common/components/hidden_autofill/hidden_autofill.component.ts CommonHiddenAutofillComponent\n// Old src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/directives/common_hidden_autofill_directive.js commonHiddenAutofillDirective\n\nimport {\n\tComponent,\n\tInput,\n} from '@angular/core';\n\n@Component({\n\tselector: 'common-hidden-autofill',\n\ttemplateUrl: './hidden_autofill.component.pug',\n\tstyleUrls: [\n\t\t'./hidden_autofill.component.sass',\n\t],\n})\nexport class CommonHiddenAutofillComponent {\n\t@Input() type: string;\n}\n","\n","\n
\n \n
{{instant(\"meetings_auth.forms.registration.title\")}}
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
{{instant('meetings_auth.forms.registration.controls.back.title')}}
\n {{ instant('meetings_auth.forms.registration.controls.create_btn_progress.title') }}\n {{ instant('meetings_auth.forms.registration.controls.create_btn.title') }}\n \n
\n \n
\n
","import {\n\tComponent,\n\tInjector,\n} from '@angular/core';\n\nimport {\n\tUntypedFormControl,\n\tNgForm,\n} from '@angular/forms';\n\nimport { UIRouter } from '@uirouter/angular';\nimport { finalize } from 'rxjs/operators';\n\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\nimport { CommonUserDataService } from '../../../Common/services/user_data.service';\n\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\nimport {\n\tAuthenticationMeetingsUserService,\n\tIAuthenticationMeetingsUserActionsResponse,\n} from '../authentication/services/authentication.meetings.user.service';\nimport { MeetingsAuthAnimation } from '../animation/animation';\nimport { IAuthenticationMeetingsRegistration } from '../authentication/authentication.interfaces';\nimport { CommonAppDataService } from '../../../Common/services/app_data/app_data.service';\n\n@Component({\n\tselector: 'authentication-meetings-registration',\n\ttemplateUrl: './authentication.meetings.registration.component.pug',\n\tanimations: [\n\t\tMeetingsAuthAnimation,\n\t],\n})\nexport class AuthenticationMeetingsRegistrationComponent extends CommonBaseComponent {\n\tstate = {\n\t\tisLoading: false,\n\t};\n\n\tdata: IAuthenticationMeetingsRegistration = {\n\t\tFirstName: '',\n\t\tMiddleName: '',\n\t\tLastName: '',\n\t\tPhoneNumber: '',\n\t\tEmail: '',\n\t\tIsUserAgreementConsentGiven: false,\n\t\tIsPrivacyPolicyConsentGiven: false,\n\t\tPassword: '',\n\t};\n\n\tuserAgreementText: string;\n\tprivacyPolicyText: string;\n\n\tresource = {\n\t\tvalidationCustomErrors: {\n\t\t\tcustom: '',\n\t\t\tminLength: this.instant('meetings_auth.forms.registration.controls.password.messages.minlength'),\n\t\t},\n\t};\n\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\n\n\tconstructor (\n\t\tprotected injector: Injector,\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\n\t\tprivate commonAppData: CommonAppDataService,\n\t\tprivate commonUserDataService: CommonUserDataService,\n\t\tprivate router: UIRouter,\n\t) {\n\t\tsuper(injector);\n\n\t\tthis.userAgreementText = this.getUserAgreementText();\n\t\tthis.privacyPolicyText = this.getPrivacyPolicyText();\n\t}\n\n\tregister (form: NgForm) {\n\t\tif (form.valid) {\n\t\t\tthis.state.isLoading = true;\n\n\t\t\tthis.authenticationMeetingsUserService\n\t\t\t\t.register(this.data)\n\t\t\t\t.pipe(\n\t\t\t\t\tfinalize(() => this.state.isLoading = false),\n\t\t\t\t)\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\n\t\t\t\t\tif (response.IsSuccess) {\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(response.Result.ExpiresAt, 'nextPhoneConfirmationAttemptTime');\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(this.data.PhoneNumber, 'phoneNumber');\n\n\t\t\t\t\t\tthis.router.stateService.go('confirm');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t...response,\n\t\t\t\t\t\t\t\t// CTB-1803\n\t\t\t\t\t\t\t\tErrorMessages: [response.ErrorMessages!.join('\\n\\n')],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tthis.resource.validationCustomErrors,\n\t\t\t\t\t\t\tform.controls.password as UntypedFormControl,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\t}\n\n\tgetUserAgreementText (): string {\n\t\tconst href = 'docs/user_agreement.pdf';\n\t\tconst label = this.instant('meetings_auth.forms.registration.terms_links.user_agreement.link');\n\t\tconst link = `${ label }`;\n\n\t\treturn this.instant('meetings_auth.forms.registration.terms_links.user_agreement.text', { userAgreement: link });\n\t}\n\n\tgetPrivacyPolicyText (): string {\n\t\tconst href = 'docs/privacy_policy.pdf';\n\t\tconst label = this.instant('meetings_auth.forms.registration.terms_links.privacy_policy.link');\n\t\tconst link = `${ label }`;\n\n\t\treturn this.instant('meetings_auth.forms.registration.terms_links.privacy_policy.text', { privacyPolicy: link });\n\t}\n\n\tgetAboutUrl (): string {\n\t\treturn this.commonAppData.getDataByPath('aboutPage') || '';\n\t}\n}\n","\n
\n
{{instant('meetings_auth.forms.confirm.title')}}
\n
\n

{{instant('meetings_auth.forms.confirm.description')}}

\n

{{resource.formattedPhoneNumber}}

\n

{{getWaitingTimerText()}}{{instant('meetings_auth.forms.confirm.controls.send_again.title')}}

\n
\n
\n
\n
\n \n
\n
\n
\n
{{instant('meetings_auth.forms.confirm.controls.back.title')}}
\n {{instant('meetings_auth.forms.confirm.controls.confirm_btn_progress.title')}}{{instant('meetings_auth.forms.confirm.controls.confirm_btn.title')}}\n
\n
\n
","import {\n\tComponent,\n\tInjector,\n} from '@angular/core';\n\nimport {\n\tUntypedFormControl,\n\tNgForm,\n} from '@angular/forms';\n\nimport * as Inputmask from 'inputmask';\nimport { finalize } from 'rxjs/operators';\nimport { UIRouter } from '@uirouter/angular';\n\nimport {\n\tfindLast,\n\tincludes,\n} from 'lodash';\n\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\nimport { CommonSecondsFormatterPipe } from '../../../Common/pipes/seconds_formatter.pipe';\nimport { CommonAppDataService } from '../../../Common/services/app_data/app_data.service';\nimport { CommonUserDataService } from '../../../Common/services/user_data.service';\nimport { CommonServerDateService } from '../../../Common/services/server_date.service';\n\nimport {\n\tAuthenticationMeetingsUserService,\n\tIAuthenticationMeetingsUserActionsResponse,\n} from '../authentication/services/authentication.meetings.user.service';\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\nimport { MeetingsAuthAnimation } from '../animation/animation';\nimport { IAuthenticationMeetingsConfirmUser } from '../authentication/authentication.interfaces';\n\n@Component({\n\tselector: 'authentication-meetings-confirm',\n\ttemplateUrl: './authentication.meetings.confirm.component.pug',\n\tanimations: [\n\t\tMeetingsAuthAnimation,\n\t],\n})\nexport class AuthenticationMeetingsConfirmComponent extends CommonBaseComponent {\n\tstate = {\n\t\tisLoading: false,\n\t\tresendDelaySeconds: 0,\n\t\tisSending: false,\n\t};\n\n\tdata: IAuthenticationMeetingsConfirmUser = {\n\t\tCode: '',\n\t};\n\n\tresource = {\n\t\tvalidationCustomErrors: {\n\t\t\tcustom: '',\n\t\t},\n\t\tformattedPhoneNumber: '',\n\t};\n\n\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\n\n\tprivate stopResendTimer: number;\n\n\tconstructor (\n\t\tprotected injector: Injector,\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\n\t\tprivate router: UIRouter,\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\n\t\tprivate commonUserDataService: CommonUserDataService,\n\t\tprivate commonServerDateService: CommonServerDateService,\n\t\tprivate commonSecondsFormatterPipe: CommonSecondsFormatterPipe,\n\t\tprivate commonAppDataService: CommonAppDataService,\n\t) {\n\t\tsuper(injector);\n\t}\n\n\tngOnInit (): void {\n\t\tif (this.commonUserDataService.getDataByPath('nextPhoneConfirmationAttemptTime')) {\n\t\t\tthis.resource.formattedPhoneNumber = Inputmask.format(\n\t\t\t\tthis.commonUserDataService.getDataByPath('phoneNumber'), {\n\t\t\t\t\talias: 'casem-phone-numb-11',\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.initResendTimer();\n\t\t\tthis.autofillConfirmationCode();\n\t\t} else {\n\t\t\tthis.router.stateService.go('login');\n\t\t}\n\t}\n\n\tngOnDestroy (): void {\n\t\tclearInterval(this.stopResendTimer);\n\t}\n\n\tconfirm (form: NgForm): void {\n\t\tif (form.valid) {\n\t\t\tthis.state.isLoading = true;\n\n\t\t\tthis.authenticationMeetingsUserService\n\t\t\t\t.confirm(this.data)\n\t\t\t\t.pipe(\n\t\t\t\t\tfinalize(() => this.state.isLoading = false),\n\t\t\t\t)\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\n\t\t\t\t\tif (response.IsSuccess) {\n\t\t\t\t\t\tthis.router.dispose();\n\t\t\t\t\t\tconst authenticationReturnUrl = this.commonAppDataService.getDataByPath('authenticationReturnUrl') || '/';\n\n\t\t\t\t\t\twindow.location.assign(authenticationReturnUrl);\n\n\t\t\t\t\t\tif (this.isAuthenticationReturnFrontUrl(authenticationReturnUrl)) {\n\t\t\t\t\t\t\t// перезагрузка страницы если это бековская ссылка приведет к потере редиректа.\n\t\t\t\t\t\t\t// если же ссылка фронтовая с содержанием хэша то нам нужна перезагрузка страницы чтобы загрузилось нужное ангуляр приложение. и включился роутер.\n\t\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.code as UntypedFormControl);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\t}\n\n\tinitResendTimer (): void {\n\t\tthis.state.resendDelaySeconds = this.getResendDelaySeconds();\n\n\t\tif (this.state.resendDelaySeconds) {\n\t\t\tthis.stopResendTimer = window.setInterval(() => {\n\t\t\t\tthis.state.resendDelaySeconds--;\n\n\t\t\t\tif (!this.state.resendDelaySeconds) {\n\t\t\t\t\tclearInterval(this.stopResendTimer);\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}\n\t}\n\n\tgetResendDelaySeconds (): number {\n\t\tconst nextPhoneConfirmationAttemptTime = this.commonUserDataService.getDataByPath('nextPhoneConfirmationAttemptTime');\n\t\tconst now = this.commonServerDateService.getMoscowDateTime();\n\t\tconst confirmationAttempt = this.commonServerDateService.getMoscowDateTime(nextPhoneConfirmationAttemptTime);\n\t\tconst diff = now.diff(confirmationAttempt, 'seconds', true);\n\n\t\treturn !nextPhoneConfirmationAttemptTime ? 0 : Math.round(Math.abs(diff || 0));\n\t}\n\n\tgetWaitingTimerText (): string {\n\t\treturn this.instant('meetings_auth.forms.confirm.controls.timer_text.title', {\n\t\t\ttime: this.commonSecondsFormatterPipe.transform(this.state.resendDelaySeconds),\n\t\t});\n\t}\n\n\tautofillConfirmationCode (): void {\n\t\tconst codeLength = 4;\n\t\tconst phone = this.commonUserDataService.getDataByPath('phoneNumber');\n\t\tconst cookieWithCode = findLast(document.cookie.split(';'), (cookie) => includes(cookie, `SendTo-${phone}`));\n\n\t\tif (cookieWithCode) {\n\t\t\tconst code = decodeURIComponent(cookieWithCode).slice(-codeLength);\n\n\t\t\tif (code) {\n\t\t\t\tthis.data.Code = code;\n\t\t\t}\n\t\t}\n\t}\n\n\tresendCode (form: NgForm): void {\n\t\tif (!this.state.isSending) {\n\t\t\tthis.state.isSending = true;\n\n\t\t\tthis.authenticationMeetingsUserService.sendCode()\n\t\t\t\t.pipe(\n\t\t\t\t\tfinalize(() => this.state.isSending = false),\n\t\t\t\t)\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\n\t\t\t\t\tif (response.IsSuccess) {\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(response.Result.ExpiresAt, 'nextPhoneConfirmationAttemptTime');\n\t\t\t\t\t\tthis.initResendTimer();\n\t\t\t\t\t\tthis.autofillConfirmationCode();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.code as UntypedFormControl);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\t}\n\n\tprivate isAuthenticationReturnFrontUrl (authenticationReturnUrl: string): boolean {\n\t\tconst splittedFullUrl = (location.origin + authenticationReturnUrl).split('#');\n\t\tconst isMatchedUrls = splittedFullUrl[0] === this.commonAppDataService.getDataByPath('appFullLocationUrl');\n\t\tconst hasHash = !!splittedFullUrl[1];\n\t\treturn isMatchedUrls && hasHash;\n\t}\n}\n","import {\n\tAbstractControl,\n\tNG_VALIDATORS,\n\tValidationErrors,\n\tValidator\n} from '@angular/forms';\nimport {\n\tDirective,\n\tInput\n} from '@angular/core';\nimport { get } from 'lodash';\n\n@Directive({\n\tselector: '[commonMatch]',\n\tproviders: [{\n\t\tprovide: NG_VALIDATORS,\n\t\tuseExisting: CommonMatchValidatorDirective,\n\t\tmulti: true,\n\t}],\n})\nexport class CommonMatchValidatorDirective implements Validator {\n\t@Input() commonMatch: string;\n\n\tvalidate (control: AbstractControl): ValidationErrors | null {\n\t\tconst matchControl = control.root.get(this.commonMatch);\n\t\tlet res;\n\n\t\tif (matchControl) {\n\t\t\tconst changeSubscription = matchControl.valueChanges.subscribe(() => {\n\t\t\t\tcontrol.updateValueAndValidity();\n\t\t\t\tchangeSubscription.unsubscribe();\n\t\t\t});\n\n\t\t\tres = get(matchControl, 'value') !== control.value;\n\t\t\tcontrol.setErrors(res ? {CommonMatchValidator: true} : null);\n\t\t}\n\n\t\treturn res ? {\n\t\t\tmatch: true,\n\t\t} : null;\n\n\t}\n}\n","\n
\n
{{'meetings_auth.forms.change_password.title' | translate}}
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
{{'meetings_auth.forms.change_password.controls.back.title' | translate}}
\n {{'meetings_auth.forms.change_password.controls.change_btn_progress.title' | translate}}{{'meetings_auth.forms.change_password.controls.change_btn.title' | translate}}\n
\n
\n
\n\n
{{pageStateError.Header}}
\n
{{pageStateError.Message}}
\n \n
","import { AuthenticationMeetingsRemindComponent } from '../remind/authentication.meetings.remind.component';\nimport { Ng2StateDeclaration } from '@uirouter/angular';\n\nimport { AuthenticationMeetingsLoginComponent } from '../login/authentication.meetings.login.component';\nimport { AuthenticationMeetingsRegistrationComponent } from '../registration/authentication.meetings.registration.component';\nimport { AuthenticationMeetingsConfirmComponent } from '../confirm/authentication.meetings.confirm.component';\nimport { AuthenticationMeetingsChangePasswordComponent } from '../change_password/authentication.meetings.change_password.component';\n\nexport const authenticationMeetingsRoutes: Ng2StateDeclaration[] = [\n\t{\n\t\tname: 'login',\n\t\turl: '/login',\n\t\tcomponent: AuthenticationMeetingsLoginComponent,\n\t},\n\t{\n\t\tname: 'confirm',\n\t\turl: '/confirm',\n\t\tcomponent: AuthenticationMeetingsConfirmComponent,\n\t},\n\t{\n\t\tname: 'registration',\n\t\turl: '/registration',\n\t\tcomponent: AuthenticationMeetingsRegistrationComponent,\n\t},\n\t{\n\t\tname: 'remind',\n\t\turl: '/remind',\n\t\tcomponent: AuthenticationMeetingsRemindComponent,\n\t},\n\t{\n\t\tname: 'new_password',\n\t\turl: '/applypassword',\n\t\tcomponent: AuthenticationMeetingsChangePasswordComponent,\n\t},\n];\n","import {\n\tComponent,\n\tInjector,\n} from '@angular/core';\n\nimport {\n\tNgForm,\n\tUntypedFormControl,\n} from '@angular/forms';\n\nimport { finalize } from 'rxjs/operators';\nimport { UIRouter } from '@uirouter/angular';\n\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\nimport { CommonAppDataService } from '../../../Common/services/app_data/app_data.service';\nimport { CommonNotificationService } from '../../../Common/services/notification.service';\nimport { commonUtilitiesCoreService } from '../../../Common/services/core.service';\n\nimport { AuthenticationMeetingsUserService, IAuthenticationMeetingsUserActionsResponse } from '../authentication/services/authentication.meetings.user.service';\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\nimport { MeetingsAuthAnimation } from '../animation/animation';\nimport { IAuthenticationMeetingsChangePassword } from '../authentication/authentication.interfaces';\n\n@Component({\n\tselector: 'authentication-meetings-change-password',\n\ttemplateUrl: './authentication.meetings.change_password.component.pug',\n\tanimations: [\n\t\tMeetingsAuthAnimation,\n\t],\n})\nexport class AuthenticationMeetingsChangePasswordComponent extends CommonBaseComponent {\n\tstate = {\n\t\tisSaving: false,\n\t};\n\n\tdata: IAuthenticationMeetingsChangePassword = {\n\t\tCode: commonUtilitiesCoreService.getQueryStringKeyValue('code'),\n\t\tPassword: '',\n\t\tConfirmPassword: '',\n\t};\n\n\tpageStateError = this.commonAppDataService.getDataByPath('pageStateError');\n\n\tresource = {\n\t\tvalidationCustomErrors: {\n\t\t\tcustom: '',\n\t\t\tpasswordsMatch: this.instant('meetings_auth.forms.change_password.controls.new_password.messages.match'),\n\t\t\tminLength: this.instant('meetings_auth.forms.change_password.controls.password.messages.minlength'),\n\t\t},\n\t};\n\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\n\n\tconstructor (\n\t\tprotected injector: Injector,\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\n\t\tprivate router: UIRouter,\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\n\t\tprivate commonAppDataService: CommonAppDataService,\n\t\tprivate commonNotificationService: CommonNotificationService,\n\t) {\n\t\tsuper(injector);\n\t}\n\n\tchangePassword (form: NgForm) {\n\t\tif (form.valid) {\n\t\t\tthis.state.isSaving = true;\n\n\t\t\tthis.authenticationMeetingsUserService\n\t\t\t\t.changePassword(this.data)\n\t\t\t\t.pipe(\n\t\t\t\t\tfinalize(() => this.state.isSaving = false),\n\t\t\t\t)\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\n\t\t\t\t\tif (response.IsSuccess) {\n\t\t\t\t\t\tthis.router.stateService.go('login')\n\t\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\t\tthis.commonNotificationService.show(\n\t\t\t\t\t\t\t\t\tthis.instant('meetings_auth.forms.login.password_notification.title'),\n\t\t\t\t\t\t\t\t\tthis.instant('meetings_auth.forms.login.password_notification.description'),\n\t\t\t\t\t\t\t\t\t'info',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.confirmPassword as UntypedFormControl);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport {\n\tHttpEvent,\n\tHttpHandler,\n\tHttpInterceptor,\n\tHttpRequest,\n} from '@angular/common/http';\nimport {\n\tObservable,\n\tthrowError,\n} from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { ICommonResponseError } from '../../../Common/@types/core';\n\n@Injectable()\nexport class AuthenticationMeetingsAuthRedirectInterceptor implements HttpInterceptor {\n\n\tintercept (req: HttpRequest, next: HttpHandler): Observable> {\n\t\treturn next.handle(req).pipe(\n\t\t\tcatchError((response: ICommonResponseError) => {\n\t\t\t\tif (response.status === 401 && !localStorage.getItem('isBeingAuthorizedLocally')) {\n\t\t\t\t\twindow.location.assign(`${ window.location.protocol }//${ window.location.host }${ window.location.pathname }`);\n\t\t\t\t}\n\n\t\t\t\treturn throwError(response);\n\t\t\t}),\n\t\t);\n\t}\n}\n","import commonRUTranslations from '../../../_Locale/json/ru/ru.common.json5';\nimport authenticationMeetingsRUTranslations from '../../../_Locale/json/ru/ru.meetings_auth.json5';\nimport { TCommonLocaleDictionary } from '../../../Common/services/locale/locale.translations.token';\n\nexport const AuthenticationMeetingsLocaleTranslations: TCommonLocaleDictionary = {\n\tru: {\n\t\t...commonRUTranslations,\n\t\t...authenticationMeetingsRUTranslations,\n\t}\n};\n","export default {'common.loading':'Загрузка','common.back':'Назад','common.close':'Закрыть','common.dismiss':'Закрыть','common.main_menu':'Основное меню','common.date':'Дата','common.time':'Время','common.author':'Автор','common.group':'Группа','common.go_to':'Перейти','common.no_data':'Нет данных','common.status':'Статус','common.name':'Название','common.responsible':'Ответственный','common.save':'Сохранить','common.saved':'Сохранено','common.saving':'Сохранение','common.add':'Добавить','common.apply':'Применить','common.create':'Создать','common.remove':'Удалить','common.removal':'Удаление','common.view':'Просмотреть','common.edit':'Редактировать','common.rename':'Переименовать','common.decline':'Отменить','common.cancel':'Отмена','common.continue':'Продолжить','common.pay_attn':'Обратите внимание','common.reset':'Сбросить','common.eliminate':'Исключение','common.load_more':'Загрузить еще','common.all_values':'Все значения','common.any':'Любой','common.yes':'Да','common.no':'Нет','common.no_matches':'Нет совпадений','common.merge':'Объединить','common.not_selected':'Не выбрано','common.today':'Сегодня','common.expand':'Развернуть','common.collapse':'Свернуть','common.print':'Распечатать','common.quick_search':'Быстрый поиск','common.show_more':'Показать больше','common.hidden_data':'Данные скрыты','common.nothing_found.title':'Ничего не найдено','common.nothing_found.description':'Попробуйте другие параметры поиска','common.symbols.hours':'ч','common.symbols.minutes':'м','common.symbols.days':'д','common.symbols.months':'м','common.symbols.years':'г','common.abbreviation.minutes':'мин','common.abbreviation.gigabyte':'ГБ','common.abbreviation.thousand':'тыс','common.abbreviation.million':'млн','common.abbreviation.billion':'млрд','common.abbreviation.trillion':'трлн','common.abbreviation.quadrillion':'квадрлн','common.abbreviation.quintillion':'квантлн','common.placeholder.type':'Тип','common.placeholder.status':'Статус','common.placeholder.name':'Название','common.placeholder.responsible':'Ответственный','common.multiple_operations.select_all.title':'Выделить все','common.multiple_operations.actions.delete_selected.title':'Удалить выбранные объекты','common.multiple_operations.actions.delete_selected.header':'Удалить выбранные объекты?','common.multiple_operations.actions.delete_selected.accept_text':'@:common.remove','common.multiple_operations.actions.delete_selected.decline_text':'@:common.cancel','common.controls.autocomplete.empty_result.title':'@:common.nothing_found.title','common.controls.autocomplete.add_value':'Добавить значение','common.controls.autocomplete_with_replacement.add_value':'Добавить {type}','common.controls.fileupload.title':'Файлы приложений','common.controls.fileupload.placeholder':'Добавить файл…','common.controls.fileupload.dragzone':'Перетащите файл сюда','common.controls.fileupload.preview':'Просмотреть файл','common.controls.fileupload.remove':'Удалить файл','common.controls.fileupload.download':'Скачать файл','common.controls.fileupload.remove_confirm.header':'Удалить документ?','common.controls.fileupload.remove_confirm.text':'Удалить выбранный документ?
Обратите внимание, восстановить удаленные документы невозможно.','common.controls.fileupload.incorrect_type.title':'Недопустимый формат','common.controls.fileupload.incorrect_type.text':'Разрешённые форматы: ','common.controls.fileupload.preview_icon.title':'Предпросмотр файла','common.controls.fileupload.preview_unpossible_title':'Предпросмотр невозможен','common.controls.fileupload.preview_unpossible_text':'Формат приложенного файла не поддерживается. Предпросмотр невозможен. Для просмотра необходимо скачать файл','common.controls.fileupload.max_file_size.title':'Превышен максимальный размер файла','common.controls.fileupload.max_file_size.text':'Максимальный размер файла не должен превышать {maxFileSizeMB} MB','common.controls.fileupload.max_count_file.title':'Внимание!','common.controls.fileupload.max_count_file.text':'Возможно прикрепление не более {count, plural, one{# файла} few{# файлов} many{# файлов} other{# файлов}}','common.controls.fileupload.cancel_upload.confirm_title':'Вы уверены, что хотите остановить загрузку файла?','common.controls.fileupload_document.buttons.add':'@:common.add','common.controls.fileupload_document.buttons.cancel':'@:common.cancel','common.controls.fileupload_document.buttons.upload':'Загрузить','common.controls.fileupload_document.nothing_found':'@:common.nothing_found.title','common.controls.fileupload_document.empty_list':'Документов нет','common.controls.fileupload_document.search':'@:common.filters.search.placeholder','common.controls.fileupload_document.root_title':'Документы','common.controls.date_time_select.title':'Дата и время','common.controls.responsible.title':'@:common.responsible','common.controls.responsible.placeholder':'Выберите ответственного','common.controls.time_spent.title':'Затрачено','common.controls.time_spent.placeholder':'@:common.controls.time_spent.title','common.controls.add_line.placeholder':'Добавить строку…','common.controls.calculation_formula.cancel':'@:common.cancel','common.controls.calculation_formula.apply':'Применить','common.controls.calculation_formula.enter_manually':'Ввести вручную','common.controls.expand_list.expand_all_title':'Показать полный список','common.controls.expand_list.collapse_all_title':'Скрыть полный список','common.controls.download_file.notification.title':'@:common.pay_attn','common.controls.download_file.notification.text':'Формирование файла для загрузки может занять несколько минут','common.controls.selectize.place_text':'Вставить как текст','common.controls.selectize.remove':'@:common.remove','common.controls.more.title':'Еще','common.controls.repeat_interval.title':'Интервал','common.controls.repeat_interval.placeholder.minutes':'{count, plural, one{Каждую # минуту} few{Каждые # минуты} many{Каждые # минут} other{Каждые # минут}}','common.controls.repeat_interval.placeholder.hours':'{count, plural, one{Каждый # час} few{Каждые # часа} many{Каждые # часов} other{Каждые # часов}}','common.controls.repeat_interval.placeholder.days':'{count, plural, one{Каждый # день} few{Каждые # дня} many{Каждые # дней} other{Каждые # дней}}','common.controls.repeat_interval.placeholder.weeks':'{count, plural, one{Каждую # неделю} few{Каждые # недели} many{Каждые # недель} other{Каждые # недель}}','common.controls.repeat_interval.placeholder.months':'{count, plural, one{Каждый # месяц} few{Каждые # месяца} many{Каждые # месяцев} other{Каждые # месяцев}}','common.controls.custom_interval.title':'Каждый','common.controls.custom_interval.placeholder':'@:common.controls.custom_interval.title','common.controls.textfield_with_link.copy_tooltip_text':'Скопировать ссылку в буфер обмена','common.controls.phone.call_via_application':'Вызов {applicationName}','common.widgets.page_list.rows_per_page':'Количество строк:','common.widgets.page_list.pages_label':'{numberOfFirstItem}—{numberOfLastItem} из {countItems}','common.widgets.initials.group.description':'Группа','common.widgets.folder_menu_widget.buttons.accept.title':'@:common.apply','common.widgets.folder_menu_widget.buttons.decline.title':'@:common.cancel','common.widgets.folder_menu_widget.buttons.new_folder.title':'Создать новую папку','common.widgets.folder_menu_widget.header.title':'Меню папок','common.widgets.tree_component.remove_dialog.header':'@:common.remove','common.widgets.tree_component.remove_dialog.text':'Вы уверены, что хотите удалить блок?','common.widgets.tree_component.remove_dialog.text_with_children':'Вы уверены, что хотите удалить блок? Все следующие за ним операторы будут удалены.','common.widgets.tree_component.remove_dialog.accept_text':'@:common.remove_dialog.accept_text','common.widgets.tree_component.remove_dialog.decline_text':'@:common.remove_dialog.decline_text','common.widgets.data_selection_in_order.button.title':'Настройка отображения','common.widgets.data_selection_in_order.hint.title':'Вы можете перетаскивать элементы и выстраивать их в удобном для отображения порядке.','common.noty.error_not_found.title':'@:common.noty.error.title','common.noty.error.title':'Произошла ошибка','common.noty.warning.title':'@:common.pay_attn','common.filters.status.title':'@:common.placeholder.status','common.filters.search.placeholder':'Поиск','common.filters.search.no_matches':'@:common.no_matches','common.filters.authors.all_items_label':'Все авторы','common.filters.authors.title':'Автор','common.filters.authors.search_field_placeholder':'@:common.filters.search.placeholder','common.filters.tasks_groups.all_items_label':'Все статусы','common.filters.tasks_groups.title':'Статус','common.filters.tasks_groups.search_field_placeholder':'@:common.filters.search.placeholder','common.filters.types.all_items_label':'Все типы','common.filters.types.title':'Тип','common.filters.types.search_field_placeholder':'@:common.filters.search.placeholder','common.filters.responsibles.all_items_label':'Все ответственные','common.filters.responsibles.title':'Ответственный','common.filters.responsibles.search_field_placeholder':'@:common.filters.search.placeholder','common.filters.branches.title':'Подразделение','common.filters.branches.all_items_label':'Все подразделения','common.filters.branches.search_field_placeholder':'@:common.filters.search.placeholder','common.filters.date.from':'С','common.filters.date.from.lower':'с','common.filters.date.to':'По','common.filters.date.to.lower':'по','common.filters.date.any':'За всё время','common.filters.date.today':'@:common.today','common.filters.date.yesterday':'Вчера','common.filters.date.for_today':'За сегодня','common.filters.date.for_yesterday':'За вчера','common.filters.date.for_last_month':'За текущий месяц','common.filters.date.for_last_7_days':'За 7 дней','common.filters.date.for_last_week':'За текущую неделю','common.filters.date.for_last_30_days':'За 30 дней','common.filters.date.any_button_title':'За все время','common.filters.date.count_button_title':'За последние','common.filters.date.range_button_title':'За период','common.filters.date.for_3_days':'За три дня','common.filters.date.for_last_7_days_week_label':'За неделю','common.filters.date.for_last_30_days_month_label':'За месяц','common.filters.date.for_180_days_year_label':'За полгода','common.filters.date.days_count':'{val, plural, one{# день} few{# дня} many{# дней} other{# дней}}','common.filters.date.days_count_without_number':'{val, plural, one{день} few{дня} many{дней} other{дней}}','common.filters.date.days_range.start':'c {startDate}','common.filters.date.days_range.end':'по {endDate}','common.filters.date.selected.week.title':'за последнюю неделю','common.filters.date.selected.month.title':'за последний месяц','common.filters.date.selected.half_year.title':'полгода','common.filters.create_date.any_button_title':'Дата создания','common.filters.create_date.count_button_title':'Создан за последние','common.filters.create_date.range_button_title':'Создан в период','common.filters.create_date.any_label':'Создан в любое время','common.filters.create_date.count_label':'Создан в течение последних','common.filters.create_date.range_label':'Создан в период','common.filters.received_date.any_button_title':'Дата получения','common.filters.received_date.count_button_title':'Получен за последние','common.filters.received_date.range_button_title':'Получен в период','common.filters.received_date.any_label':'Получен в любое время','common.filters.received_date.count_label':'Получен в течение последних','common.filters.received_date.range_label':'Получен в период','common.filters.update_date.any_button_title':'Дата изменения','common.filters.update_date.count_button_title':'Изменен за последние','common.filters.update_date.range_button_title':'Изменен в период','common.filters.update_date.any_label':'Изменен в любое время','common.filters.update_date.count_label':'Изменен в течение последних','common.filters.update_date.range_label':'Изменен в период','common.filters.more_filters.title':'Ещё фильтры','common.filters.range.from':'от','common.filters.range.to':'до','common.filters.range.min':'Минимум','common.filters.range.max':'Максимум','common.validation.min':'Мин. значение: {value}','common.validation.min_common':'Превышено мин. значение','common.validation.max':'Макс. значение: {value}','common.validation.max_common':'Превышено макс. значение','common.validation.minlength':'Недостаточное количество символов','common.validation.minlength.inn':'ИНН должен содержать 10 или 12 цифр','common.validation.minlength.organization.inn':'ИНН организации должен содержать 10 цифр','common.validation.minlength.person.inn':'ИНН физического лица должен содержать 12 цифр','common.validation.minlength.ogrn':'ОГРН должен содержать 13 или 15 цифр','common.validation.maxlength':'Превышено количество символов','common.validation.pattern':'Некорректный формат','common.validation.incorrectDate':'Некорректная дата','common.validation.password.match':'Пароли должны совпадать','common.validation.password.error':'Длина пароля - не менее 6 символов, заглавные и строчные буквы (A, z), цифры (0-9), специальные символы ({special})','common.validation.email':'Некорректный email','common.remove_dialog.header':'Удалить данные?','common.remove_dialog.text':'Обратите внимание, что после удаления восстановить данные будет невозможно.','common.remove_dialog.accept_text':'Удалить','common.remove_dialog.decline_text':'@:common.decline','common.tasks.tasks_priority.urgent':'Срочно','common.tasks.tasks_priority.neutral':'Нейтрально','common.tasks.tasks_priority.not_necessary':'Необязательно','common.hotkeys.noty.no_grants.title':'Произошла ошибка','common.hotkeys.noty.no_grants.text':'Недостаточно прав','common.custom_blocks.dialogs.delete_block.header':'Удалить блок?','common.custom_blocks.dialogs.delete_block.text':'Блок и все данные в нём будут удалены.
Отменить удаление будет невозможно.','common.custom_blocks.dialogs.delete_block.decline':'@:common.decline','common.custom_blocks.dialogs.delete_block.accept':'@:common.remove_dialog.accept_text','common.custom_blocks.dialogs.clear_block.header':'Очистить блок?','common.custom_blocks.dialogs.clear_block.text':'Все данные в блоке будут удалены.
Отменить удаление данных будет невозможно.','common.custom_blocks.dialogs.clear_block.decline':'@:common.decline','common.custom_blocks.dialogs.clear_block.accept':'Да, очистить','common.custom_blocks.actions.block_add.title':'Добавить блок','common.custom_blocks.actions.block_remove.title':'Удалить блок','common.custom_blocks.actions.block_clear.title':'Очистить','common.image_gallery_block.no_images':'Нет изображений','common.image_gallery_block.drop_text':'Перетащите файлы сюда','common.image_gallery_block.show_more':'@:common.show_more','common.image_gallery_block.loading_text':'Загрузка изображений','common.image_gallery_block.dropdown_actions.upload_images':'Загрузить','common.image_gallery_block.dropdown_actions.download_text':'Скачать','common.image_gallery_block.dropdown_actions.remove_image.title':'@:common.remove','common.image_gallery_block.dropdown_actions.remove_image.confirm_dialog.header':'Удалить','common.image_gallery_block.dropdown_actions.remove_image.confirm_dialog.text':'Вы уверены, что хотите удалить изображение?','common.image_gallery_block.dropdown_actions.remove_image.confirm_dialog.accept_text':'@:common.remove_dialog.accept_text','common.image_viewer.description.placeholder':'Добавить описание','common.image_viewer.dropdown_actions.download_text':'@:common.image_gallery_block.dropdown_actions.download_text','common.image_viewer.dropdown_actions.remove_image.title':'@:common.image_gallery_block.dropdown_actions.remove_image.title','common.image_viewer.dropdown_actions.remove_image.confirm_dialog.header':'@:common.image_gallery_block.dropdown_actions.remove_image.confirm_dialog.header','common.image_viewer.dropdown_actions.remove_image.confirm_dialog.text':'@:common.image_gallery_block.dropdown_actions.remove_image.confirm_dialog.text','common.image_viewer.dropdown_actions.remove_image.confirm_dialog.accept_text':'@:common.image_gallery_block.dropdown_actions.remove_image.confirm_dialog.accept_text','common.copy_link.notification.title':'Ссылка скопирована','common.copy_link.notification.description':'Ссылка скопирована в буфер обмена','common.charts.loading':'Построение графика…','common.charts.updating':'Обновление…','common.save_changes_dialog.header':'Сохранить изменения?','common.save_changes_dialog.decline_text':'Не сохранять','common.save_changes_dialog.accept_text.save':'@:common.save','common.save_changes_dialog.accept_text.stay':'Отменить','common.save_changes_dialog.close_text':'@:common.close','common.dictionaries.project.active.title':'В работе','common.dictionaries.project.archive.title':'В архиве','common.dictionaries.project_group.active.title':'@:common.dictionaries.project.active.title','common.dictionaries.project_group.archive.title':'@:common.dictionaries.project.archive.title','common.steps.edit.new_step_name':'Новая'}","export default {'meetings_auth.forms.login.title':'Электронное собрание','meetings_auth.forms.login.description':'Для входа в сервис введите ваш номер телефона и пароль или','meetings_auth.forms.login.description_link':'зарегистрируйтесь.','meetings_auth.forms.login.controls.phone.title':'Телефон','meetings_auth.forms.login.controls.phone.placeholder':'@:meetings_auth.forms.login.controls.phone.title','meetings_auth.forms.login.controls.password.title':'Пароль','meetings_auth.forms.login.controls.password.placeholder':'@:meetings_auth.forms.login.controls.password.title','meetings_auth.forms.login.controls.password.messages.minlength':'Пароль не может быть менее 8 символов','meetings_auth.forms.login.controls.login_btn.title':'Войти','meetings_auth.forms.login.controls.login_btn_progress.title':'Вход…','meetings_auth.forms.login.links.about':'О сервисе','meetings_auth.forms.login.controls.remind.title':'Забыли пароль?','meetings_auth.forms.login.password_notification.title':'Пароль был успешно изменен.','meetings_auth.forms.login.password_notification.description':'Попробуйте войти в систему снова, используя новый пароль.','meetings_auth.forms.confirm.title':'Электронное собрание','meetings_auth.forms.confirm.description':'Вам отправлен временный код на номер','meetings_auth.forms.confirm.controls.send_again.title':'Отправить повторно','meetings_auth.forms.confirm.controls.code.title':'Введите код','meetings_auth.forms.confirm.controls.code.placeholder':'@:meetings_auth.forms.confirm.controls.code.title','meetings_auth.forms.confirm.controls.back.title':'Назад','meetings_auth.forms.confirm.controls.confirm_btn.title':'Подтвердить','meetings_auth.forms.confirm.controls.confirm_btn_progress.title':'Подтверждение…','meetings_auth.forms.confirm.controls.timer_text.title':'{time} до повторной отправки','meetings_auth.forms.remind.title':'Восстановление пароля','meetings_auth.forms.remind.description':'Введите ваш имейл указанный при регистрации.','meetings_auth.forms.remind.controls.email.title':'Email','meetings_auth.forms.remind.controls.email.placeholder':'@:meetings_auth.forms.remind.controls.email.title','meetings_auth.forms.remind.controls.back.title':'Назад','meetings_auth.forms.remind.controls.send_btn.title':'Отправить','meetings_auth.forms.remind.controls.send_btn_progress.title':'Отправка…','meetings_auth.forms.remind_success.title':'Ссылка отправлена','meetings_auth.forms.remind_success.description':'Проверьте указанный почтовый ящик, на него высланы инструкции для смены пароля.','meetings_auth.forms.remind_success.controls.back.title':'Вернуться на страницу авторизации','meetings_auth.forms.registration.title':'Создать аккаунт','meetings_auth.forms.registration.controls.last_name.title':'Фамилия','meetings_auth.forms.registration.controls.last_name.placeholder':'@:meetings_auth.forms.registration.controls.last_name.title','meetings_auth.forms.registration.controls.first_name.title':'Имя','meetings_auth.forms.registration.controls.first_name.placeholder':'@:meetings_auth.forms.registration.controls.first_name.title','meetings_auth.forms.registration.controls.middle_name.title':'Отчество','meetings_auth.forms.registration.controls.middle_name.placeholder':'@:meetings_auth.forms.registration.controls.middle_name.title','meetings_auth.forms.registration.controls.email.title':'Email','meetings_auth.forms.registration.controls.email.placeholder':'@:meetings_auth.forms.registration.controls.email.title','meetings_auth.forms.registration.controls.phone.title':'Телефон','meetings_auth.forms.registration.controls.phone.placeholder':'@:meetings_auth.forms.registration.controls.phone.title','meetings_auth.forms.registration.controls.back.title':'Назад','meetings_auth.forms.registration.controls.create_btn.title':'@:common.create','meetings_auth.forms.registration.controls.create_btn_progress.title':'Создание…','meetings_auth.forms.registration.controls.password.title':'Пароль','meetings_auth.forms.registration.controls.password.placeholder':'@:meetings_auth.forms.registration.controls.password.title','meetings_auth.forms.registration.controls.password.messages.minlength':'@:meetings_auth.forms.login.controls.password.messages.minlength','meetings_auth.forms.registration.terms_links.user_agreement.text':'Я даю {userAgreement} ООО «АБТ» на обработку моих персональных данных в соответствии с Федеральным законом от 27.07.2006 г. № 152-ФЗ «О персональных данных» в целях прохождения регистрации.','meetings_auth.forms.registration.terms_links.user_agreement.link':'своё согласие','meetings_auth.forms.registration.terms_links.privacy_policy.text':'Я принимаю условия {privacyPolicy}.','meetings_auth.forms.registration.terms_links.privacy_policy.link':'Политики в отношении обработки персональных данных','meetings_auth.forms.registration.validation.address_in_use':'Адрес уже занят','meetings_auth.forms.registration.validation.policy_agreement':'Подтвердите, чтобы продолжить','meetings_auth.forms.change_password.title':'Восстановление пароля','meetings_auth.forms.change_password.controls.password.title':'Новый пароль','meetings_auth.forms.change_password.controls.password.placeholder':'@:meetings_auth.forms.change_password.controls.password.title','meetings_auth.forms.change_password.controls.password.messages.minlength':'@:meetings_auth.forms.login.controls.password.messages.minlength','meetings_auth.forms.change_password.controls.new_password.title':'Новый пароль еще раз','meetings_auth.forms.change_password.controls.new_password.placeholder':'@:meetings_auth.forms.change_password.controls.new_password.title','meetings_auth.forms.change_password.controls.new_password.messages.match':'Пароли должны совпадать','meetings_auth.forms.change_password.controls.back.title':'Вспомнили пароль?','meetings_auth.forms.change_password.controls.change_btn_progress.title':'Изменение…','meetings_auth.forms.change_password.controls.change_btn.title':'Изменить','meetings_auth.forms.change_password_error.controls.back.title':'Перейти к форме входа'}","import {\n\tInjector,\n\tNgModule,\n} from '@angular/core';\n\nimport { FormsModule } from '@angular/forms';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { COMMON_APP_CONFIG } from '../../../Common/app/app.config.token';\nimport { LOCALE_TRANSLATIONS } from '../../../Common/services/locale/locale.translations.token';\nimport { LOCAL_APP_DATA_GETTER } from '../../../Common/services/app_data/local_app_data.token';\nimport { CommonAppModule } from '../../../Common/app/app.module';\nimport { CommonPrefixUrlInterceptor } from '../../../Common/interceptors/prefix_url_interceptor.service';\nimport { CommonXHRHeaderInterceptor } from '../../../Common/interceptors/xhr_header_interceptor';\n\nimport { AuthenticationMeetingsCommonModule } from './authentication.meetings.common.module';\nimport { AuthenticationMeetingsComponent } from './authentication.meetings.component';\nimport { authenticationMeetingsLocalAppDataGetter } from './authentication.meetings.local_app_data.getter';\nimport { authenticationMeetingsAppConfig } from './authentication.meetings_app.config';\nimport { AuthenticationMeetingsLoginComponent } from '../login/authentication.meetings.login.component';\nimport { authenticationMeetingsRoutes } from '../routes/router_config';\nimport { AuthenticationMeetingsUserService } from './services/authentication.meetings.user.service';\nimport { AuthenticationMeetingsErrorService } from './services/authentication.meetings.error.service';\nimport { AuthenticationMeetingsConfirmComponent } from '../confirm/authentication.meetings.confirm.component';\nimport { AuthenticationMeetingsRemindComponent } from '../remind/authentication.meetings.remind.component';\nimport { AuthenticationMeetingsChangePasswordComponent } from '../change_password/authentication.meetings.change_password.component';\nimport { AuthenticationMeetingsRegistrationComponent } from '../registration/authentication.meetings.registration.component';\nimport { AuthenticationMeetingsAuthRedirectInterceptor } from '../interceptors/authentication.meetings.auth_redirect_interceptor';\nimport { AuthenticationMeetingsLocaleTranslations } from './authtentication.meetings.locale.translations';\n\n@NgModule({\n declarations: [\n AuthenticationMeetingsComponent,\n AuthenticationMeetingsLoginComponent,\n AuthenticationMeetingsConfirmComponent,\n AuthenticationMeetingsRegistrationComponent,\n AuthenticationMeetingsRemindComponent,\n AuthenticationMeetingsChangePasswordComponent,\n ],\n imports: [\n CommonAppModule,\n UIRouterModule.forRoot({\n otherwise: '/login',\n states: authenticationMeetingsRoutes,\n useHash: true,\n }),\n FormsModule,\n BrowserAnimationsModule,\n AuthenticationMeetingsCommonModule,\n ],\n providers: [\n {\n provide: COMMON_APP_CONFIG,\n useValue: authenticationMeetingsAppConfig,\n },\n {\n provide: LOCAL_APP_DATA_GETTER,\n useValue: authenticationMeetingsLocalAppDataGetter,\n },\n {\n provide: LOCALE_TRANSLATIONS,\n useValue: AuthenticationMeetingsLocaleTranslations,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: CommonPrefixUrlInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: CommonXHRHeaderInterceptor,\n multi: true,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthenticationMeetingsAuthRedirectInterceptor,\n multi: true,\n },\n AuthenticationMeetingsUserService,\n AuthenticationMeetingsErrorService,\n ]\n})\nexport class AuthenticationMeetingsModule extends CommonAppModule {\n\tconstructor (\n\t\tprotected injector: Injector,\n\t) {\n\t\tsuper(\n\t\t\tinjector,\n\t\t);\n\t}\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AuthenticationMeetingsModule } from './authentication/authentication.meetings.module';\nimport { environment } from '../../../environments/environment';\n\nif (environment.isProductionMode) {\n\tenableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AuthenticationMeetingsModule)\n\t.catch((err) => console.error(err));\n","module.exports = {\n\tsourcemaps: true,\n\tdevspecs: false,\n\tproduction: true,\n\treloadless: false,\n\tbuildConfig: {\n\t\tlanguage: 'ru',\n\t\tserver: 'https://test.case.one',\n\t\tlogin: 'user1@user.ru',\n\t\tpassword: '123123',\n\t\tport: 9000,\n\t\thttps: true,\n\t\tproxyTargets: ['/api', '/authentication', '/signalr', '/account', '/notificationHub'],\n\t\twebSockets: ['/signalr', '/notificationHub'],\n\t\tisLocalServer: true\n\t},\n\tuserData: {\n\t\tIsGuest: false,\n\t\t// актуальные гостевые куки для СК/КК нужно скопировать из браузера (DevTools/Application/Cookies), пройдя по сгенерированной гостевой ссылке\n\t\tGuestCookieName: '.AspNetCore.Cookies.meetings',\n\t\tGuestCookieValue: '',\n\t\t// не нужно менять, одинаковы для всех гостевых кук\n\t\tGuestCookieOptions: 'domain=localhost; path=/; max-age=1209600; secure; samesite=lax;'\n\t}\n};\n","// конфигурация сборки ngx\nconst conf = require('./conf');\nconst packageJSON = require('../package.json');\nlet devConf;\n\ntry {\n\tdevConf = require('./dev.conf');\n} catch (e) {\n\tif (e.code === 'MODULE_NOT_FOUND') {\n\t\tdevConf = {};\n\t} else {\n\t\tthrow e;\n\t}\n}\n\nconst mergedConf = {\n\t...conf,\n\t...devConf,\n\tbuildConfig: {\n\t\t...(conf.buildConfig || {}),\n\t\t...(devConf.buildConfig || {}),\n\t},\n\tuserData: {\n\t\t...(conf.userData || {}),\n\t\t...(devConf.userData || {}),\n\t}\n};\n\n/**\n * @type IBuildConfiguration\n */\nmodule.exports = {\n\tisProductionMode: false,\n\tdevspecs: mergedConf.devspecs,\n\tlanguage: mergedConf.buildConfig.language,\n\tproxy: {\n\t\tserver: mergedConf.buildConfig.server,\n\t\tport: mergedConf.buildConfig.port,\n\t\thttps: mergedConf.buildConfig.https,\n\t\ttargets: mergedConf.buildConfig.proxyTargets,\n\t\twebSockets: mergedConf.buildConfig.webSockets\n\t},\n\tbankroAuth: {\n\t\tlogin: mergedConf.buildConfig.login,\n\t\tpassword: mergedConf.buildConfig.password,\n\t},\n\tmeetingsAuth: {\n\t\tPhoneNumber: mergedConf.userData.PhoneNumber,\n\t\tPassword: mergedConf.userData.Password,\n\t\tIsGuest: mergedConf.userData.IsGuest,\n\t\tGuestCookieName: mergedConf.userData.GuestCookieName,\n\t\tGuestCookieValue: mergedConf.userData.GuestCookieValue,\n\t\tGuestCookieOptions: mergedConf.userData.GuestCookieOptions,\n\t\t...getMeetingsAuthHelperParams(mergedConf.buildConfig.server)\n\t},\n\tinstalledModules: [],\n\tbrowsers: packageJSON.browserslist\n};\n\n/**\n * @param serverUrl: string\n * @returns {{prependedUrl: string, cookieSuffix: string}}\n */\nfunction getMeetingsAuthHelperParams (serverUrl) {\n\tconst prependUrlRegExp = /https?:\\/\\/[^\\/]*\\/([\\w\\d-]*)/;\n\tconst result = {\n\t\tprependedUrl: '',\n\t\tcookieSuffix: '',\n\t};\n\tconst prependedUrl = prependUrlRegExp.exec(serverUrl); // может быть null\n\n\tif (prependedUrl && prependedUrl[1]) {\n\t\tresult.prependedUrl = prependedUrl[1] + '/';\n\t\tresult.cookieSuffix = prependedUrl[1];\n\t} else {\n\t\tconst portRegExp = /https?:\\/\\/[^:]*:([\\w\\d]*)/;\n\t\tconst nonStandartPort = portRegExp.exec(serverUrl);\n\t\tif (nonStandartPort) {\n\t\t\tresult.cookieSuffix = nonStandartPort[1];\n\t\t}\n\t}\n\n\treturn result;\n}\n","var map = {\n\t\"./af\": 5609,\n\t\"./af.js\": 5609,\n\t\"./ar\": 1689,\n\t\"./ar-dz\": 7039,\n\t\"./ar-dz.js\": 7039,\n\t\"./ar-kw\": 6765,\n\t\"./ar-kw.js\": 6765,\n\t\"./ar-ly\": 803,\n\t\"./ar-ly.js\": 803,\n\t\"./ar-ma\": 7271,\n\t\"./ar-ma.js\": 7271,\n\t\"./ar-sa\": 3355,\n\t\"./ar-sa.js\": 3355,\n\t\"./ar-tn\": 3374,\n\t\"./ar-tn.js\": 3374,\n\t\"./ar.js\": 1689,\n\t\"./az\": 5772,\n\t\"./az.js\": 5772,\n\t\"./be\": 8597,\n\t\"./be.js\": 8597,\n\t\"./bg\": 65,\n\t\"./bg.js\": 65,\n\t\"./bm\": 8487,\n\t\"./bm.js\": 8487,\n\t\"./bn\": 530,\n\t\"./bn-bd\": 723,\n\t\"./bn-bd.js\": 723,\n\t\"./bn.js\": 530,\n\t\"./bo\": 4153,\n\t\"./bo.js\": 4153,\n\t\"./br\": 2319,\n\t\"./br.js\": 2319,\n\t\"./bs\": 9937,\n\t\"./bs.js\": 9937,\n\t\"./ca\": 3648,\n\t\"./ca.js\": 3648,\n\t\"./cs\": 3644,\n\t\"./cs.js\": 3644,\n\t\"./cv\": 4031,\n\t\"./cv.js\": 4031,\n\t\"./cy\": 5621,\n\t\"./cy.js\": 5621,\n\t\"./da\": 1640,\n\t\"./da.js\": 1640,\n\t\"./de\": 29,\n\t\"./de-at\": 6915,\n\t\"./de-at.js\": 6915,\n\t\"./de-ch\": 6511,\n\t\"./de-ch.js\": 6511,\n\t\"./de.js\": 29,\n\t\"./dv\": 5833,\n\t\"./dv.js\": 5833,\n\t\"./el\": 5218,\n\t\"./el.js\": 5218,\n\t\"./en-au\": 636,\n\t\"./en-au.js\": 636,\n\t\"./en-ca\": 8181,\n\t\"./en-ca.js\": 8181,\n\t\"./en-gb\": 8345,\n\t\"./en-gb.js\": 8345,\n\t\"./en-ie\": 5534,\n\t\"./en-ie.js\": 5534,\n\t\"./en-il\": 8338,\n\t\"./en-il.js\": 8338,\n\t\"./en-in\": 3593,\n\t\"./en-in.js\": 3593,\n\t\"./en-nz\": 629,\n\t\"./en-nz.js\": 629,\n\t\"./en-sg\": 894,\n\t\"./en-sg.js\": 894,\n\t\"./eo\": 9041,\n\t\"./eo.js\": 9041,\n\t\"./es\": 332,\n\t\"./es-do\": 1650,\n\t\"./es-do.js\": 1650,\n\t\"./es-mx\": 4481,\n\t\"./es-mx.js\": 4481,\n\t\"./es-us\": 9931,\n\t\"./es-us.js\": 9931,\n\t\"./es.js\": 332,\n\t\"./et\": 4044,\n\t\"./et.js\": 4044,\n\t\"./eu\": 2401,\n\t\"./eu.js\": 2401,\n\t\"./fa\": 3833,\n\t\"./fa.js\": 3833,\n\t\"./fi\": 4531,\n\t\"./fi.js\": 4531,\n\t\"./fil\": 7989,\n\t\"./fil.js\": 7989,\n\t\"./fo\": 4352,\n\t\"./fo.js\": 4352,\n\t\"./fr\": 8371,\n\t\"./fr-ca\": 4043,\n\t\"./fr-ca.js\": 4043,\n\t\"./fr-ch\": 8230,\n\t\"./fr-ch.js\": 8230,\n\t\"./fr.js\": 8371,\n\t\"./fy\": 1135,\n\t\"./fy.js\": 1135,\n\t\"./ga\": 8185,\n\t\"./ga.js\": 8185,\n\t\"./gd\": 3493,\n\t\"./gd.js\": 3493,\n\t\"./gl\": 2263,\n\t\"./gl.js\": 2263,\n\t\"./gom-deva\": 4263,\n\t\"./gom-deva.js\": 4263,\n\t\"./gom-latn\": 5502,\n\t\"./gom-latn.js\": 5502,\n\t\"./gu\": 304,\n\t\"./gu.js\": 304,\n\t\"./he\": 2997,\n\t\"./he.js\": 2997,\n\t\"./hi\": 2350,\n\t\"./hi.js\": 2350,\n\t\"./hr\": 9099,\n\t\"./hr.js\": 9099,\n\t\"./hu\": 2140,\n\t\"./hu.js\": 2140,\n\t\"./hy-am\": 5619,\n\t\"./hy-am.js\": 5619,\n\t\"./id\": 1011,\n\t\"./id.js\": 1011,\n\t\"./is\": 6096,\n\t\"./is.js\": 6096,\n\t\"./it\": 4846,\n\t\"./it-ch\": 9367,\n\t\"./it-ch.js\": 9367,\n\t\"./it.js\": 4846,\n\t\"./ja\": 3770,\n\t\"./ja.js\": 3770,\n\t\"./jv\": 7762,\n\t\"./jv.js\": 7762,\n\t\"./ka\": 475,\n\t\"./ka.js\": 475,\n\t\"./kk\": 1970,\n\t\"./kk.js\": 1970,\n\t\"./km\": 3468,\n\t\"./km.js\": 3468,\n\t\"./kn\": 5845,\n\t\"./kn.js\": 5845,\n\t\"./ko\": 2883,\n\t\"./ko.js\": 2883,\n\t\"./ku\": 246,\n\t\"./ku.js\": 246,\n\t\"./ky\": 478,\n\t\"./ky.js\": 478,\n\t\"./lb\": 5381,\n\t\"./lb.js\": 5381,\n\t\"./lo\": 3943,\n\t\"./lo.js\": 3943,\n\t\"./lt\": 1743,\n\t\"./lt.js\": 1743,\n\t\"./lv\": 9758,\n\t\"./lv.js\": 9758,\n\t\"./me\": 6998,\n\t\"./me.js\": 6998,\n\t\"./mi\": 1559,\n\t\"./mi.js\": 1559,\n\t\"./mk\": 5780,\n\t\"./mk.js\": 5780,\n\t\"./ml\": 3690,\n\t\"./ml.js\": 3690,\n\t\"./mn\": 7795,\n\t\"./mn.js\": 7795,\n\t\"./mr\": 2443,\n\t\"./mr.js\": 2443,\n\t\"./ms\": 4642,\n\t\"./ms-my\": 9427,\n\t\"./ms-my.js\": 9427,\n\t\"./ms.js\": 4642,\n\t\"./mt\": 805,\n\t\"./mt.js\": 805,\n\t\"./my\": 6780,\n\t\"./my.js\": 6780,\n\t\"./nb\": 5039,\n\t\"./nb.js\": 5039,\n\t\"./ne\": 3047,\n\t\"./ne.js\": 3047,\n\t\"./nl\": 4299,\n\t\"./nl-be\": 5244,\n\t\"./nl-be.js\": 5244,\n\t\"./nl.js\": 4299,\n\t\"./nn\": 6195,\n\t\"./nn.js\": 6195,\n\t\"./oc-lnc\": 7920,\n\t\"./oc-lnc.js\": 7920,\n\t\"./pa-in\": 6341,\n\t\"./pa-in.js\": 6341,\n\t\"./pl\": 7446,\n\t\"./pl.js\": 7446,\n\t\"./pt\": 4848,\n\t\"./pt-br\": 5781,\n\t\"./pt-br.js\": 5781,\n\t\"./pt.js\": 4848,\n\t\"./ro\": 4311,\n\t\"./ro.js\": 4311,\n\t\"./ru\": 8652,\n\t\"./ru.js\": 8652,\n\t\"./sd\": 8100,\n\t\"./sd.js\": 8100,\n\t\"./se\": 4320,\n\t\"./se.js\": 4320,\n\t\"./si\": 899,\n\t\"./si.js\": 899,\n\t\"./sk\": 6257,\n\t\"./sk.js\": 6257,\n\t\"./sl\": 6301,\n\t\"./sl.js\": 6301,\n\t\"./sq\": 5752,\n\t\"./sq.js\": 5752,\n\t\"./sr\": 8419,\n\t\"./sr-cyrl\": 4422,\n\t\"./sr-cyrl.js\": 4422,\n\t\"./sr.js\": 8419,\n\t\"./ss\": 221,\n\t\"./ss.js\": 221,\n\t\"./sv\": 7095,\n\t\"./sv.js\": 7095,\n\t\"./sw\": 2469,\n\t\"./sw.js\": 2469,\n\t\"./ta\": 8821,\n\t\"./ta.js\": 8821,\n\t\"./te\": 6801,\n\t\"./te.js\": 6801,\n\t\"./tet\": 7859,\n\t\"./tet.js\": 7859,\n\t\"./tg\": 8638,\n\t\"./tg.js\": 8638,\n\t\"./th\": 8169,\n\t\"./th.js\": 8169,\n\t\"./tk\": 5142,\n\t\"./tk.js\": 5142,\n\t\"./tl-ph\": 6163,\n\t\"./tl-ph.js\": 6163,\n\t\"./tlh\": 7694,\n\t\"./tlh.js\": 7694,\n\t\"./tr\": 2085,\n\t\"./tr.js\": 2085,\n\t\"./tzl\": 7143,\n\t\"./tzl.js\": 7143,\n\t\"./tzm\": 3095,\n\t\"./tzm-latn\": 3196,\n\t\"./tzm-latn.js\": 3196,\n\t\"./tzm.js\": 3095,\n\t\"./ug-cn\": 7028,\n\t\"./ug-cn.js\": 7028,\n\t\"./uk\": 9164,\n\t\"./uk.js\": 9164,\n\t\"./ur\": 208,\n\t\"./ur.js\": 208,\n\t\"./uz\": 842,\n\t\"./uz-latn\": 7561,\n\t\"./uz-latn.js\": 7561,\n\t\"./uz.js\": 842,\n\t\"./vi\": 5303,\n\t\"./vi.js\": 5303,\n\t\"./x-pseudo\": 8578,\n\t\"./x-pseudo.js\": 8578,\n\t\"./yo\": 3537,\n\t\"./yo.js\": 3537,\n\t\"./zh-cn\": 3669,\n\t\"./zh-cn.js\": 3669,\n\t\"./zh-hk\": 6497,\n\t\"./zh-hk.js\": 6497,\n\t\"./zh-mo\": 8971,\n\t\"./zh-mo.js\": 8971,\n\t\"./zh-tw\": 6683,\n\t\"./zh-tw.js\": 6683\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;"],"x_google_ignoreList":[116]}