{"version":3,"sources":["../Common/validators/password/common.password_validator.directive.ts","../Common/services/bootstrap/bootstrap.service.ts","./src/remind/authentication.meetings.remind.component.ts","./src/remind/authentication.meetings.remind.component.pug","../Common/controls/textfield/textfield.component.ts","../Common/controls/textfield/textfield.component.pug","../Common/interceptors/xhr_header_interceptor.ts","../CaseDotStar.ServicePackages.Frontend.Locale/json/ru/ru.common.json5","../Common/services/core.service.ts","../Common/validators/minlength/minlength.directive.ts","../Common/validators/password/common.password_validator.module.ts","../Common/pipes/escape_bracket_replace.pipe.ts","../Common/validators/email/email.directive.ts","../Common/constants/common.constants.ts","../Common/validators/min/min.module.ts","./src/authentication/services/authentication.meetings.error.service.ts","./src/authentication/authentication.meetings.common.module.ts","../Common/controls/textfield/inputmasks_aliases_service.ts","../Common/directives/stop_propagation.directive.ts","../Common/controls/loader/loader.component.ts","../Common/controls/loader/loader.component.pug","./src/authentication/authentication.meetings.app_config.constant.ts","../Common/services/general_settings.service.ts","../Common/pipes/common_percent_formatter.pipe.ts","../Common/services/common_app_layout.service.ts","../Common/vendor/common_animate_progress.ts","../Common/controls/control/validation/validation.module.ts","../Common/directives/autofocus.directive.ts","../Common/pipes/passport_number_formatter.pipe.ts","./src/authentication/authentication.meetings.component.ts","./src/authentication/authentication.meetings.component.pug","../Common/validators/data_validation.constant.ts","./src/confirm/authentication.meetings.confirm.component.ts","./src/confirm/authentication.meetings.confirm.component.pug","../Common/vendor/ripples.ts","../Common/app/app.module.ts","../Common/validators/match/match.module.ts","../Common/pipes/pipes.module.ts","../Common/pipes/two_digits_number.pipe.ts","../Common/services/user_data.service.ts","../Common/pipes/na_formatter.pipe.ts","../Common/validators/group_required/group_required.module.ts","../Common/validators/required/required.module.ts","../Common/controls/control/autocomplete_props.constant.ts","../Common/validators/maxlength/maxlength.directive.ts","../CaseDotStar.ServicePackages.Frontend.Locale/json/ru/ru.meetings_auth.json5","../Common/controls/textfield/textfield.module.ts","../Common/services/notification.service.ts","../Common/validators/min/min.directive.ts","./src/login/authentication.meetings.login.component.ts","./src/login/authentication.meetings.login.component.pug","../Common/services/data.service.ts","../Common/pipes/extension_formatter.pipe.ts","../Common/services/app_data/local_app_data.token.ts","../Common/interceptors/error_interceptor.service.ts","../Common/services/locale/locale.service.ts","C:/BuildAgent1/work/3497d564b3f20f3d/node_modules/moment/locale sync ^\\.\\/.*$","../Common/validators/minlength/minlength.module.ts","../Common/validators/number_In_safe_range/number_In_safe_range.directive.ts","../Common/directives/prevent_default.directive.ts","../Common/validators/max/max.module.ts","./src/change_password/authentication.meetings.change_password.component.ts","./src/change_password/authentication.meetings.change_password.component.pug","../Common/controls/loader/loader_default_delay_timeout_constant.ts","../Common/components/base.component.ts","../Common/validators/choose_true/choose_true.module.ts","../Common/pipes/common_number_with_units_formatter.pipe.ts","../Common/validators/number_In_safe_range/number_In_safe_range.module.ts","../Common/services/locale/translation_compiler.service.ts","../Common/validators/choose_true/choose_true.directive.ts","C:/BuildAgent1/work/3497d564b3f20f3d/environments/environment.ts","../Common/controls/submit_button/submit_button.module.ts","C:/BuildAgent1/work/3497d564b3f20f3d/environments/config/config.js","./src/animation/animation.ts","../Common/validators/maxlength/maxlength.module.ts","../Common/controls/control/validation/validation.component.ts","../Common/controls/control/validation/validation.component.pug","../Common/controls/control/validation/default_error_messages.constant.ts","../Common/pipes/common_pretty_phone_number.pipe.ts","../Common/services/locale/locale.module.ts","../Common/validators/required/required.directive.ts","../Common/interceptors/statuses.constant.ts","../Common/pipes/na_blank_formatter.pipe.ts","../Common/controls/control/throttler_milliseconds.constant.ts","./src/interceptors/authentication.meetings.auth_redirect_interceptor.ts","../Common/components/hidden_autofill/hidden_autofill.component.ts","../Common/components/hidden_autofill/hidden_autofill.component.pug","../Common/pipes/capitalize_formatter.pipe.ts","../Common/controls/control/hot_keys.constant.ts","../Common/validators/group_required/group_required.directive.ts","../Common/directives/dotdotdot.directive.ts","../Common/validators/pattern/pattern.directive.ts","../Common/validators/email/email.module.ts","../Common/validators/max/max.directive.ts","../Common/directives/directives.module.ts","C:/BuildAgent1/work/3497d564b3f20f3d/conf/conf.js","../Common/controls/submit_button/submit_button.component.ts","../Common/controls/submit_button/submit_button.component.pug","../Common/services/modules_placeholders.service.ts","../Common/services/server_date.service.ts","./src/authentication/authtentication.meetings.locale.translations.ts","../Common/validators/match/match.directive.ts","./src/authentication/services/authentication.meetings.user.service.ts","./src/registration/authentication.meetings.registration.component.ts","./src/registration/authentication.meetings.registration.component.pug","../Common/services/locale/translate_params.pipe.ts","../Common/pipes/subdivision_code_formatter.pipe.ts","../Common/services/bootstrap/bootstrap_data.service.ts","./src/routes/routes.constant.ts","../Common/app/app.config.token.ts","../Common/services/app_data/app_data.service.ts","../Common/pipes/date_formatter.pipe.ts","../Common/controls/loader/loader.module.ts","../Common/services/locale/locale.translations.token.ts","./src/authentication/authentication.meetings.module.ts","../Common/interceptors/prefix_url_interceptor.service.ts","../Common/controls/checkbox/checkbox.component.ts","../Common/controls/checkbox/checkbox.component.pug","../Common/controls/control/control.component.ts","../Common/controls/checkbox/checkbox.module.ts","../Common/services/browser.service.ts","../Common/pipes/seconds_formatter.pipe.ts","../Common/pipes/pretty_number.pipe.ts","./src/authentication/authentication.meetings.local_app_data.getter.ts","../Common/directives/lower_case_input.ts","../Common/validators/pattern/pattern.module.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":["CommonPasswordValidatorDirective","validate","control","password","get","test","passwordError","context","special","provide","NG_VALIDATORS","useExisting","multi","CommonBootstrapService","init","data","this","bootstrap","getBootstrap","path","AuthenticationMeetingsRemindComponent","injector","authenticationMeetingsUserService","authenticationMeetingsErrorService","state","isLoading","isReminded","Email","resource","validationCustomErrors","custom","onChangeFieldHandler","remind","form","valid","resetPassword","pipe","finalize","subscribe","response","IsSuccess","handleSuccessResponse","controls","email","MeetingsAuthAnimation","CommonBaseComponent","CommonTextfieldComponent","modelChange","EventEmitter","onChange","isDisabled","isReadonly","inputMask","inputMaskParams","placeholder","floatLabel","autocomplete","COMMON_AUTOCOMPLETE_PROPS","AUTOCOMPLETE_OFF","autocapitalize","AUTOCAPITALIZE_OFF","autocorrect","AUTOCORRECT_OFF","spellcheck","name","type","iconClasses","hideCount","ctrlClasses","hasClearIcon","hasDebounce","isUrl","hasLoaderDelay","isUseHint","onFocus","onBlur","onEnter","onKeyDown","onKeyUp","onClick","onClickIcon","modelIsEmpty","value","inputValue","isHintOn","hintValue","charsLeft","idKey","isInputMaskInitialized","setModel$","ngOnInit","formattedModel","model","setInputValue","isEmpty","getCharsLeft","isNeedEnableHint","onHint","ngOnChanges","changes","updateModel","previousValue","currentValue","writeValue","isWithRightIcon","withRightIcon","isWithCount","maxLength","onFocusHandler","event","initInputMask","emit","disableHint","onBlurHandler","cancelSetModel","parseValue","setModel","timeout","enableHint","onKeyDownInput","which","COMMON_HOT_KEYS","ENTER","onKeyUpInput","onChangeInput","inputRef","nativeElement","onMouseUpInput","commonBrowserService","browser","ie","RIGHT_MOUSE","focus","onClickHandler","onClickIconHandler","oldValue","setValue","inputmask","option","debounceSetModel","onPaste","setTimeout","getInputEl","detectChanges","changeDetector","oldModel","newModel","commonUtilitiesCoreService","hasValue","unMaskValue","unmaskedvalue","newValue","Inputmask","mask","willUnbind","events","forEach","eventHandlers","eventName","indexOf","length","eventHandler","pop","removeEventListener","runOutsideAngular","remove","result","isString","isNumber","isFinite","toString","trim","limitTo","format","extend","alias","input","unmaskAsNumber","autoUnmask","val","limit","substr","parseUrlFunc","url","parseUrl","match","isTextfieldModel","emitOnChange","timer","COMMON_THROTTLE_MILLISECONDS","callback","unsubscribe","isFunction","clearModel","preventDefault","mouseDownPreventDefault","LEFT_MOUSE","onClickClearButton","isBoolean","NG_VALUE_ACCESSOR","forwardRef","onMouseEnterHandler","onMouseLeaveHandler","CommonControlComponent","CommonXHRHeaderInterceptor","intercept","req","next","xhrRequest","clone","setHeaders","handle","hiddenDiv","document","createElement","className","body","appendChild","isUndefined","isNull","isNaN","getDataFromCurrentRoute","$uiRouter","globals","$current","getQueryStringKeyValue","key","str","RegExp","exec","window","location","href","decodeURIComponent","isOuterClick","owner","$context","$","$eventTarget","target","find","is","closest","getTempId","uniqueId","Date","getTime","isTempId","id","paginate","array","pageNumber","pageSize","slice","getTextWidth","text","font","style","innerHTML","Math","ceil","getBoundingClientRect","width","addMicrotask","callBack","queueMicrotask","Promise","resolve","then","compareModelCollection","params","items","originalItems","cloneDeep","defaults","itemsField","addedItemsField","deletedItemsField","fieldId","isEqual","i","j","splice","customMerge","x","y","isArray","isObject","merge","customConcat","arr1","arr2","outputOptions","Array","prototype","push","apply","compact","GroupByKey","GroupItemsKey","arr2group","arr1group","arr1gr","Id","insertionSortWithIgnoreCase","field","temp","toLowerCase","pushWithKeyCheck","arr","item","el","updateTreeValidity","group","Object","keys","abstractControl","FormGroup","FormArray","updateValueAndValidity","onlySelf","CommonMinlengthValidatorDirective","commonMinLengthRequired","minLengths","parseLength","commonMinlength","hasError","minLength","some","current","index","prev","split","map","parseInt","CommonPasswordValidatorModule","BrowserModule","FormsModule","CommonEscapedBracketReplace","transform","replace","CommonEmailValidatorDirective","res","DATA_VALIDATION","commonConstants","downloadFilesAPIUrl","uploadFilesAPIUrl","USER_AVATAR_SIZE","standart","profile","animationDuration","defaultPageSize","defaultNumberDigitsAfterDecimal","defaultNumberDecimalSeparator","defaultNumberGroupSeparator","dataValidation","imageFormats","inn","intNum","cardExpire","cardExpireMonth","cardExpireYear","cardNumber","digits","throttle_milleseconds","fileUploadMaxSize","adaptiveScreenWidth","CommonMinValidatorModule","AuthenticationMeetingsErrorService","validationsErrorObject","Error","ErrorMessages","showCustomError","setErrors","CustomError","unset","AuthenticationMeetingsCommonModule","CommonTextfieldModule","CommonCheckboxModule","CommonSubmitButtonModule","CommonTextfieldInputMaskAliasesService","commonGeneralSettingsService","commonServerDateService","commonLocaleService","saveCharsRegExp","tagCharsRegExp","externalTagCharsRegExp","domainRegExp","scriptNameRegExp","onlyLettersRegExp","displayNameRegExp","numberFormat","getGeneralSettings","decimalSeparator","groupSeparator","numericParams","radixPoint","autoGroup","rightAlign","allowMinus","integerParams","integerPositiveParams","numericParamsNoMinus","Observable","extendAliases","repeat","greedy","showMaskOnHover","showMaskOnFocus","isComplete","buffer","join","definitions","b","validator","chr","onBeforeMask","onUnMask","maskedValue","unmaskedValue","c","d","e","f","g","casing","h","getCasemTimeMask","getCasemDateMask","getCasemCardExpireMask","getCasemCardExpireMonthMask","getCasemCardExpireYearhMask","getCasemParticipantIndividualInnMask","inputDateMask","leapday","separator","inputDatePlaceholder","yearrange","minyear","maxyear","inputTimeMask","inputTimePlaceholder","hourFormat","hasMeridiem","monthsSymbol","instant","yearsSymbol","toUpperCase","ru","locale","CommonStopPropagationDirective","addEventListener","bind","ngOnDestroy","stopImmediatePropagation","CommonLoaderComponent","hasDelay","label","ctrlLoaderClasses","ctrlLoaderTopAligned","ctrlLoaderWithOverlay","isShow","loadTimeout","stopLoading","COMMON_LOADER_DEFAULT_DELAY_TIMEOUT","startLoader","cancelTimer","authenticationMeetingsAppConfig","application","hasInitialLoader","shouldAuthorize","mainComponent","AuthenticationMeetingsComponent","shouldInitLayoutService","CommonGeneralSettingsService","commonBootstrapService","generalSettings","setGeneralSettings","assign","timeFormat","PmDesignator","AmDesignator","CommonPercentPipe","commonNumberWithUnitsFormatter","CommonAppLayoutService","transitionService","resizeSubheaderSubject$","Subject","transitionStateChanges$","ReplaySubject","contentLoader","title","setData","module","toState","stateNames","words","pageClasses","htmlClasses","layoutMode","print","newDesign","withRightPanel","withoutPanels","notScrollToTop","scrollTop","getData","getResizeSubheaderSubject","triggerResizeSubheader","setContentLoader","getContentLoader","initWatchTransitionChanges","onBefore","t","transition","onStart","onSuccess","subscribeOnBeforeTransition","to","subscribeOtherTransition","loaderTitle","$from","$to","promise","setAnimateProgress","PROGRESS_OVERLAY_CLASS","PROGRESS_BODY_OVERFLOW_CLASS","isIe","userAgent","ieVersion","regExp","9","10","11","hasOwnProperty","toNumber","ieDetector","navigator","animateProgressCounter","animateProgress","progressEl","progressElWidth","container","animate","css","left","isFixed","enable","hasBodyOverflowClass","hasClass","addClass","html","disable","removeClass","setLabel","CommonValidationModule","CommonMinlengthValidatorModule","CommonMaxlengthValidatorModule","CommonRequiredValidatorModule","CommonPatternValidatorModule","CommonEmailValidatorModule","CommonMatchValidatorModule","CommonGroupRequiredModule","CommonNumberInSafeRangeValidatorModule","CommonMaxValidatorModule","CommonAutofocusDirective","delay","needWaiting","trigger","firstChange","focusWithDelay","isNil","CommonPassportNumberFormatterPipe","AuthenticationMeetingsConfirmComponent","router","commonUserDataService","commonSecondsFormatterPipe","commonAppDataService","resendDelaySeconds","isSending","Code","formattedPhoneNumber","getDataByPath","initResendTimer","autofillConfirmationCode","stateService","go","clearInterval","stopResendTimer","confirm","dispose","authenticationReturnUrl","isAuthenticationReturnFrontUrl","reload","code","getResendDelaySeconds","setInterval","nextPhoneConfirmationAttemptTime","abs","getMoscowDateTime","diff","getWaitingTimerText","time","phone","cookieWithCode","findLast","cookie","includes","resendCode","sendCode","setDataByPath","Result","ExpiresAt","splittedFullUrl","origin","setRipples","element","options","$element","on","isTouch","append","$wrapper","children","relY","getRelY","relX","getRelX","rippleColor","getRipplesColor","$ripple","getComputedStyle","rippleOn","rippleEnd","rippleOut","getNewSize","max","outerWidth","outerHeight","wrapperOffset","offset","originalEvent","touches","pageX","pageY","top","color","hasTransitionSupport","thisStyle","documentElement","undefined","WebkitTransition","MozTransition","MsTransition","OTransition","off","size","fn","ripples","each","Ripples","appInitializerFactory","urlService","commonBootstrapDataService","commonAppLayoutService","FONT_LOADING_TIMEOUT","deferIntercept","promises","from","FontFaceObserver","weight","load","catchError","of","forkJoin","toPromise","listen","sync","CommonAppModule","app","ApplicationRef","CommonAppDataService","CommonLocaleService","commonTextfieldInputMaskAliasesService","CommonServerDateService","commonNotificationService","CommonNotificationService","appData","ngDoBootstrap","appModuleRun","setFormats","appStartNotification","show","Header","Message","Type","CommonBootstrapDataService","CommonUserDataService","useFactory","commonAppDataServiceFactory","deps","LOCAL_APP_DATA_GETTER","COMMON_APP_CONFIG","HTTP_INTERCEPTORS","useClass","CommonErrorInterceptor","APP_INITIALIZER","UrlService","CommonModule","HttpClientModule","CommonLocaleModule","CommonPipesModule","CommonDirectivesModule","TranslateModule","CommonSecondsFormatterPipe","CommonTwoDigitsNumberPipe","CommonDateFormatter","CommonNAFormatter","CommonNAToBlankFormatter","CommonCapitalizeFormatter","CommonPrettyNumberPipe","CommonNumberWithUnitsFormatterPipe","CommonExtensionFormatterPipe","CommonSubdivisionCodeFormatterPipe","CommonPrettyPhoneNumber","num","http","shouldLoadData","bootstrapPromise","requestOptions","withCredentials","headers","HttpHeaders","UserData","authData","post","mergeMap","user","wait","getUserAvatarUrl","mode","getUserForSuggest","Name","DisplayName","CommonDataServiceClass","CommonMaxlengthValidatorDirective","pathValue","commonMaxlength","CommonLoaderModule","domSanitizer","NOTIFICATION_HEIGHT","NOTIFICATION_TIMEOUT","notificationsQueue","_queue","add","noty","queued","animationStartEvents","cacheHeight","$body","isIE","innerLayout","getMessage","createNotification","invoke","icon","iconType","buttons","handleResponseError","errorHeader","errorText","errorType","createNotificationLayout","$buttons","createNotificationButtons","button","$button","getMaxVisible","floor","innerHeight","getContainer","$notificationsContainer","layout","showNext","startClosingTimer","close","endClosingTimer","clearTimeout","onAnimationEnd","animateAll","elementIndex","bottom","reduce","cacheItem","cacheIndex","height","showNotification","shown","truncate","animation","open","closeNotification","mergeWith","objValue","srcValue","concat","notificationId","minViewportWidth","min","innerWidth","screen","notificationNormalWidth","querySelector","bodyEl","has","sanitize","SecurityContext","HTML","CommonMinValidatorDirective","parseFloat","commonMin","AuthenticationMeetingsLoginComponent","PhoneNumber","Password","login","extension","substring","InjectionToken","commonModulesPlaceholders","warningConfig","warningText","warningHeader","warningType","warningTypeConfigs","getPlaceholder","warningTypes","noop","commonHttpErrorStatuses","errors","status","throwError","translateService","commonTranslateParamsPipe","translations","setTranslation","setDefaultLang","use","userTimeZone","dateFormat","updateLocale","longDateFormat","LT","Format","L","ShortFormat","LL","LLL","LLLL","LTS","meridiemParse","isPM","meridiem","hours","week","doy","dow","IndexNumber","tz","setDefault","IanaId","LOCALE_TRANSLATIONS","webpackContext","webpackContextResolve","__webpack_require__","o","exports","CommonNumberInSafeRangeValidatorDirective","lessCompareDigit","errorObject","commonNumberInSafeRange","Number","MAX_SAFE_INTEGER","CommonPreventDefaultDirective","AuthenticationMeetingsChangePasswordComponent","isSaving","ConfirmPassword","pageStateError","passwordsMatch","changePassword","confirmPassword","modifiers","localeService","ChangeDetectorRef","zone","NgZone","modifierSeparator","classesSeparator","needUnbind","ngDoCheck","ngAfterViewInit","getBaseClasses","cssBaseClass","classes","modifierClasses","modifier","getBaseClassesAsString","func","finallyFunc","withUnbind","runUpdate","markForCheck","observable","observerOrNext","error","complete","subscription","CommonChooseTrueValidatorModule","commonNAFormatter","prettyNumber","unit","CommonTranslationCompiler","messageFormat","compile","compileTranslations","resolveReferences","matches","CommonChooseTrueValidatorDirective","commonChooseTrue","CommonChooseTrueValidator","config","environment","isProductionMode","installedModules","devConf","conf","require","mergedConf","buildConfig","userData","devspecs","language","carrotQuest","isEnabled","enableCarrotQuest","token","carrotQuestToken","proxy","server","port","https","targets","proxyTargets","bankroAuth","meetingsAuth","IsGuest","GuestCookieName","GuestCookieValue","GuestCookieOptions","serverUrl","prependedUrl","cookieSuffix","nonStandartPort","getMeetingsAuthHelperParams","CommonValidationComponent","ngModelControl","update","statusChanges","formDirective","ngSubmit","submitted","errorName","message","DEFAULT_ERROR_MESSAGES","customErrors","pattern","incorrectDate","CommonTranslateParamsPipe","TranslateMessageFormatCompiler","forRoot","compiler","TranslateCompiler","CommonRequiredDirective","CommonRequiredValidator","commonRequired","AuthenticationMeetingsAuthRedirectInterceptor","localStorage","getItem","protocol","host","pathname","CommonHiddenAutofillComponent","charAt","MIDDLE_MOUSE","ARROW_UP","ARROW_DOWN","ARROW_RIGHT","ARROW_LEFT","ESC","TAB","END","HOME","BACKSPACE","DELETE","SPACE","ValidationMode","groups","CommonGroupRequiredDirective","any","notRequired","groupRequired","groupName","initGroup","fields","updateGroup","updateRelatedFields","root","isValid","relatedFields","omit","excluded","relatedControl","currentErrors","groupIsValid","every","CommonDotdotdotDirective","CommonPatternValidatorDirective","isRegExp","commonPattern","CommonPatternValidator","CommonMaxValidatorDirective","commonMax","sourcemaps","production","reloadless","isLocalServer","CommonSubmitButtonComponent","registerOnChange","registerOnTouched","CommonModulesPlaceholders","modulesPlaceholdersList","registerPlaceholder","placeholderObject","invokePlaceholder","Injector","create","providers","dependency","DAYS_SYMBOL","MONTHS_SYMBOL","YEARS_SYMBOL","DAYS_IN_WEEK","DEFAULT_SETTINGS","firstDay","daysSymbol","secondsInMinute","minutesInHour","hoursInDay","secondsInDay","daysInWeek","datetimeFormat","localDateTimeFormat","workingDays","nonWorkingDays","shortDateFormat","inputDateFormat","mediumDateFormat","displayTimeFormat","maskDelimiter","shortWithTime","mediumWithTime","timeWithMedium","inputFormatWithFirstZero","amDesignator","pmDesignator","inputTimeRegex","isoDateTestRegex","dateTestRegexByYear","inputDateTestRegexByYear","TIME_KEYS_FOR_DST_FIX","extendDateFormatsFromGeneralSettings","setInputSettings","workingDayIndexes","day","nonWorkingDaysRules","createNonWorkingRules","getMoment","dateString","invalidDateString","moment","isDateString","isISODateString","getMomentInstance","getDateFromTimeZone","timeZone","date","hasTime","isInputTimeString","timeString","getTimezoneOffset","isChangedDates","newValues","oldValues","isSame","getLastDaysDate","daysCount","isDayOff","isWorkingDayInWeek","rule","dayIndex","getDiffAsDays","startDate","endDate","unix","utcOffset","period","oldHour","newHour","getCountDiffHours","dateTestRegex","isInputDateString","inputDateTestRegex","toISOString","toLocalDateTimeFormatString","toDateString","toDisplayDateString","toDisplayTimeString","minutesSymbol","hoursSymbol","maskWithoutDelimiters","dateFormatSettings","timeFormatSettings","MediumFormat","LongFormat","afterOrEqual","firstYear","firstMonth","secondYear","secondMonth","secondDay","StartDate","startYear","year","startMonth","month","startDayInMonth","EndDate","testDate","dayInMonth","afterStart","beforeEnd","leftShift","rightShift","normalizeHour","hour","AuthenticationMeetingsLocaleTranslations","CommonMatchValidatorDirective","matchControl","commonMatch","valueChanges","CommonMatchValidator","AuthenticationMeetingsUserService","register","AuthenticationMeetingsRegistrationComponent","FirstName","MiddleName","LastName","IsConsentGiven","registrationTermsText","getRegistrationTermsText","privacyPolicyLink","AppBootstrap","authenticationMeetingsRoutes","component","localAppData","appConfig","isDevServer","AppData","localAppDataGetter","formats","Short","Medium","Long","Time","ShortWithTime","MediumWithTime","TimeWithMedium","formatType","upperFirst","useCommonNAToBlankFormatter","AuthenticationMeetingsModule","useValue","authenticationMeetingsLocalAppDataGetter","CommonPrefixUrlInterceptor","UIRouterModule","otherwise","states","useHash","BrowserAnimationsModule","serverPrefix","fixedReq","endsWith","CommonCheckboxComponent","domSanitize","getIndeterminate","indeterminate","onChangeCheckbox","getSanitizeLabel","isFocused","isHovered","onChangeForValueAccessor","onTouchedForValueAccessor","isOldContext","NgModel","validationMode","intersection","formSubmitAfterBlur","onSubmit","$html","browsers","chrome","safari","firefox","unknown","detectBrowserData","addClassesToHtml","isHiddenTab","hidden","getIsAdaptiveScreen","matchMedia","_","scrollSizes","getScrollSizes","getDeviceData","buildClasslist","deviceClass","child","tester","position","overflow","appendTo","television","device","macos","ios","iphone","ipod","ipad","windows","android","androidPhone","androidTablet","blackberry","blackberryPhone","blackberryTablet","windowsPhone","windowsTablet","fxos","fxosPhone","fxosTablet","meego","mobile","tablet","desktop","touchscreenused","needle","prefix","list","p","CommonBrowser","commonTwoDigitsNumberPipe","seconds","m","s","digit","fixAfterDecimal","DecimalSeparator","GroupSeparator","decimalIndex","appName","appFullLocationUrl","hash","appStartNotificationText","domainName","registrationErrorTitle","registrationErrorText","isRegistrationByLinkEnabled","authFlashMessage","CommonLowerCaseInputDirective","controlSubscription","emitEvent","enableProdMode","platformBrowser","bootstrapModule","catch","err","console","webpackEmptyAsyncContext"],"mappings":"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AAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OAC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","file":"main.js","sourcesContent":["import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidationErrors,\r\n\tValidator,\r\n} from '@angular/forms';\r\nimport { Directive } from '@angular/core';\r\nimport { get } from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonPasswordValidator]',\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: CommonPasswordValidatorDirective,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class CommonPasswordValidatorDirective implements Validator {\r\n\tvalidate (control: AbstractControl): ValidationErrors | null {\r\n\t\tconst password = get(control, 'value', null);\r\n\t\tconst length = get(password, 'length', 0);\r\n\t\tconst passwordMinLength = 6;\r\n\t\t// позитивные\r\n\t\tconst upperCasePattern = /[A-Z]+/g;\r\n\t\tconst lowerCasePattern = /[a-z]+/g;\r\n\t\tconst digitPattern = /\\d+/g;\r\n\t\tconst specialCharactersPattern = /[~!@#$%^&*_\\-+=`|\\\\(){}\\[\\]:;\"'<>,.?/]+/g;\r\n\t\t// негативные\r\n\t\tconst spacePattern = /\\s+/g;\r\n\t\tconst cyrillicPattern = /[\\u0400-\\u04FF]+/g;\r\n\r\n\t\tif (length < passwordMinLength || !upperCasePattern.test(password) || !lowerCasePattern.test(password) || !digitPattern.test(password) || !specialCharactersPattern.test(password) || spacePattern.test(password) || cyrillicPattern.test(password)) {\r\n\t\t\treturn {\r\n\t\t\t\tpasswordError: {\r\n\t\t\t\t\tcontext: {\r\n\t\t\t\t\t\t// спецсимволы передаются в сообщение отдельно, т.к. вызывают ошибку компиляции сообщения в MessageFormat в ng1\r\n\t\t\t\t\t\tspecial: '~!@#$%^&*_-+=`|\\\\(){}[]:;\\\"\\'<>,.?/',\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n}\r\n","// New version src/Common/bootstrap/bootstrap.service.ts CommonBootstrapService\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/common_bootstrap_service.ts CommonBootstrapService\r\n\r\nimport {get} from 'lodash';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ICommonKeyValues } from '../../@types/core';\r\n\r\nexport interface ICommonBootstrapService {\r\n\tgetBootstrap: (path?: string) => any,\r\n}\r\n\r\n@Injectable()\r\nexport class CommonBootstrapService implements ICommonBootstrapService {\r\n\tprivate bootstrap: ICommonKeyValues;\r\n\r\n\tinit (data: ICommonKeyValues): void {\r\n\t\tif (data['CaseMap.Modules.Main']) {\r\n\t\t\tthis.bootstrap = data['CaseMap.Modules.Main'];\r\n\t\t} else if (data['CaseDotStar.Shell']) {\r\n\t\t\tthis.bootstrap = data['CaseDotStar.Shell'];\r\n\t\t}\r\n\t}\r\n\r\n\tgetBootstrap (path?: string): T {\r\n\t\treturn path ? get(this.bootstrap, path) : this.bootstrap;\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tInjector,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tNgForm,\r\n\tFormControl,\r\n} from '@angular/forms';\r\n\r\nimport { finalize } from 'rxjs/operators';\r\n\r\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\r\n\r\nimport { AuthenticationMeetingsUserService, IAuthenticationMeetingsUserActionsResponse } from '../authentication/services/authentication.meetings.user.service';\r\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\r\nimport { MeetingsAuthAnimation } from '../animation/animation';\r\nimport { IAuthenticationMeetingsRemindUser } from '../authentication/authentication.interfaces';\r\n\r\n@Component({\r\n\tselector: 'authentication-meetings-remind',\r\n\ttemplateUrl: './authentication.meetings.remind.component.pug',\r\n\tanimations: [\r\n\t\tMeetingsAuthAnimation,\r\n\t],\r\n})\r\nexport class AuthenticationMeetingsRemindComponent extends CommonBaseComponent {\r\n\tstate = {\r\n\t\tisLoading: false,\r\n\t\tisReminded: false,\r\n\t};\r\n\r\n\tdata: IAuthenticationMeetingsRemindUser = {\r\n\t\tEmail: '',\r\n\t};\r\n\r\n\tresource = {\r\n\t\tvalidationCustomErrors: {\r\n\t\t\tcustom: '',\r\n\t\t},\r\n\t};\r\n\r\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\r\n\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\r\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\r\n\t) {\r\n\t\tsuper(injector);\r\n\t}\r\n\r\n\tremind (form: NgForm) {\r\n\t\tif (form.valid) {\r\n\t\t\tthis.state.isLoading = true;\r\n\r\n\t\t\tthis.authenticationMeetingsUserService\r\n\t\t\t\t.resetPassword(this.data)\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tfinalize(() => this.state.isLoading = false),\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\r\n\t\t\t\t\tif (response.IsSuccess) {\r\n\t\t\t\t\t\tthis.state.isReminded = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.email as FormControl);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\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
","// New version src/Common/controls/textfield/textfield.component.ts CommonTextfieldComponent\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/controls/common_controls_textfield_module/ctrl_textfield_component_service.jsx CtrlTextfieldComponent\r\n\r\nimport {\r\n\tChangeDetectionStrategy,\r\n\tComponent,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tforwardRef,\r\n\tInjector,\r\n\tInput,\r\n\tOutput,\r\n\tSimpleChanges,\r\n\tViewChild,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport {\r\n\textend,\r\n\tforEach,\r\n\tisBoolean,\r\n\tisFunction,\r\n\tisNumber,\r\n\tisString,\r\n} from 'lodash';\r\n\r\nimport {\r\n\tSubscription,\r\n\ttimer,\r\n} from 'rxjs';\r\n\r\nimport * as Inputmask from 'inputmask';\r\nimport { CommonControlComponent } from '../control/control.component';\r\nimport { commonUtilitiesCoreService } from '../../services/core.service';\r\nimport { COMMON_THROTTLE_MILLISECONDS } from '../control/throttler_milliseconds.constant';\r\nimport { THTMLInputType } from '../../@types/core';\r\nimport { COMMON_HOT_KEYS } from '../control/hot_keys.constant';\r\nimport { commonBrowserService } from '../../services/browser.service';\r\nimport { COMMON_AUTOCOMPLETE_PROPS } from '../control/autocomplete_props.constant';\r\n\r\nexport type TCommonTextfieldModel = string | number | null;\r\n\r\n@Component({\r\n\tselector: 'common-textfield',\r\n\ttemplateUrl: './textfield.component.pug',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstyleUrls: [\r\n\t\t'../control/control.component.sass',\r\n\t\t'./textfield.component.sass',\r\n\t],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => CommonTextfieldComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class CommonTextfieldComponent extends CommonControlComponent {\r\n\t@Input() model: TCommonTextfieldModel;\r\n\t@Output() modelChange = new EventEmitter();\r\n\t@Output() onChange = new EventEmitter();\r\n\r\n\t@Input() isDisabled: boolean = false;\r\n\t@Input() isReadonly: boolean = false;\r\n\t@Input() inputMask: string = '';\r\n\t@Input() inputMaskParams: any = null; // interface\r\n\t@Input() placeholder: string = '';\r\n\t@Input() floatLabel: string = '';\r\n\t@Input() autocomplete: string = COMMON_AUTOCOMPLETE_PROPS.AUTOCOMPLETE_OFF;\r\n\t@Input() autocapitalize: string = COMMON_AUTOCOMPLETE_PROPS.AUTOCAPITALIZE_OFF;\r\n\t@Input() autocorrect: string = COMMON_AUTOCOMPLETE_PROPS.AUTOCORRECT_OFF;\r\n\t@Input() spellcheck: string = 'true';\r\n\t@Input() name: string = '';\r\n\t@Input() type: THTMLInputType = 'text';\r\n\t@Input() iconClasses: string = '';\r\n\t@Input() withRightIcon: boolean;\r\n\t@Input() hideCount: boolean = false;\r\n\t@Input() ctrlClasses: string = '';\r\n\t@Input() hasClearIcon: boolean = false;\r\n\t@Input() hasDebounce: boolean = false;\r\n\t@Input() isUrl: boolean = false;\r\n\t@Input() parseUrl: (value: string) => string;\r\n\t@Input() isLoading: boolean = false;\r\n\t@Input() hasLoaderDelay: boolean = false;\r\n\t@Input() isUseHint: boolean = false;\r\n\t@Input() onHint: (model: TCommonTextfieldModel) => string;\r\n\t@Input() maxLength: number;\r\n\r\n\t@Output() onFocus = new EventEmitter();\r\n\t@Output() onBlur = new EventEmitter();\r\n\t@Output() onEnter = new EventEmitter();\r\n\t@Output() onKeyDown = new EventEmitter();\r\n\t@Output() onKeyUp = new EventEmitter();\r\n\t@Output() onClick = new EventEmitter();\r\n\t@Output() onClickIcon = new EventEmitter();\r\n\r\n\tmodelIsEmpty: boolean = false;\r\n\tvalue: string = '';\r\n\tinputValue: string = '';\r\n\tisHintOn: boolean = false;\r\n\thintValue: string = '';\r\n\tcharsLeft: number = 0;\r\n\r\n\t@ViewChild('input', {static: true}) inputRef: ElementRef;\r\n\tprotected idKey: string = 'textfield_';\r\n\tprotected isInputMaskInitialized: boolean = false;\r\n\tprotected setModel$: Subscription | null = null;\r\n\r\n\tconstructor (protected injector: Injector) {\r\n\t\tsuper(injector);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tsuper.ngOnInit();\r\n\r\n\t\tthis.value = this.formattedModel(this.model);\r\n\t\tthis.setInputValue(this.value);\r\n\t\tthis.modelIsEmpty = this.isEmpty(this.value);\r\n\t\tthis.charsLeft = this.getCharsLeft(this.value);\r\n\r\n\t\tif (this.isNeedEnableHint(this.model)) {\r\n\t\t\tthis.hintValue = this.onHint(this.model);\r\n\t\t\tthis.isHintOn = true;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnChanges (changes: SimpleChanges) {\r\n\t\tsuper.ngOnChanges(changes);\r\n\r\n\t\tif (changes.model) {\r\n\t\t\tthis.updateModel(changes.model.previousValue, changes.model.currentValue);\r\n\t\t}\r\n\t}\r\n\r\n\twriteValue (value: any): void {\r\n\t\tthis.updateModel(this.model, value);\r\n\t}\r\n\r\n\tisWithRightIcon (): boolean {\r\n\t\treturn this.withRightIcon || this.hasClearIcon || this.isUrl || this.isLoading;\r\n\t}\r\n\r\n\tisWithCount (): boolean {\r\n\t\treturn !!this.maxLength && !this.hideCount && !this.isDisabled;\r\n\t}\r\n\r\n\tonFocusHandler (event: Event): void {\r\n\t\tif (this.isDisabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.initInputMask();\r\n\t\tsuper.onFocusHandler(event);\r\n\t\tthis.onFocus.emit(event);\r\n\t\tthis.disableHint();\r\n\t}\r\n\r\n\tonBlurHandler (event: Event): void {\r\n\t\t// For input mask\r\n\t\t// this.onChangeInput(this.inputRef.nativeElement.value, event);\r\n\r\n\t\tif (this.isDisabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet model = this.model;\r\n\r\n\t\t// this._setSubmitted();\r\n\t\tsuper.onBlurHandler(event);\r\n\r\n\t\t// Cancel debounce and set model\r\n\t\tthis.cancelSetModel(() => {\r\n\t\t\tmodel = this.parseValue(this.value);\r\n\t\t\tthis.setModel(model);\r\n\t\t});\r\n\r\n\t\tthis.onBlur.emit(event);\r\n\r\n\t\tthis.timeout(() => {\r\n\t\t\tif (this.isNeedEnableHint(model)) {\r\n\t\t\t\tthis.enableHint();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tonKeyDownInput (event: KeyboardEvent): void {\r\n\t\tif (this.isDisabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (event.which === COMMON_HOT_KEYS.ENTER) {\r\n\t\t\tthis.onEnter.emit(event);\r\n\t\t}\r\n\r\n\t\tthis.onKeyDown.emit(event);\r\n\t}\r\n\r\n\tonKeyUpInput (event: KeyboardEvent): void {\r\n\t\t// For input mask\r\n\t\tthis.onChangeInput(this.inputRef.nativeElement.value);\r\n\r\n\t\tif (!this.isDisabled) {\r\n\t\t\tthis.onKeyUp.emit(event);\r\n\t\t}\r\n\t}\r\n\r\n\tonMouseUpInput (event: MouseEvent): void {\r\n\t\tif (commonBrowserService.browser.ie && event.which === COMMON_HOT_KEYS.RIGHT_MOUSE) {\r\n\t\t\tthis.focus();\r\n\t\t}\r\n\t}\r\n\r\n\tonClickHandler (event?: MouseEvent): void {\r\n\t\tif (!this.isDisabled) {\r\n\t\t\tthis.onClick.emit(event);\r\n\t\t}\r\n\t}\r\n\r\n\tonClickIconHandler (event?: MouseEvent): void {\r\n\t\tif (!this.isDisabled) {\r\n\t\t\tthis.onClickIcon.emit(event);\r\n\t\t}\r\n\t}\r\n\r\n\tonChangeInput (value: string) {\r\n\t\tif (this.isDisabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst oldValue = this.value;\r\n\r\n\t\tif (value === this.value) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Saves async access to variables of an event (react)\r\n\t\t// event.persist && event.persist();\r\n\r\n\t\tconst parseValue = this.parseValue(value);\r\n\r\n\t\tthis.setValue(value, parseValue);\r\n\r\n\t\tif (this.isInputMaskInitialized && this.inputMask) {\r\n\t\t\tconst inputmask = this.inputRef.nativeElement.inputmask;\r\n\t\t\tconst unmaskAsNumber = inputmask.option('unmaskAsNumber');\r\n\r\n\t\t\t// Save '-' when user writes the first character\r\n\t\t\tif (!(unmaskAsNumber && oldValue === '' && value === '-')) {\r\n\t\t\t\tthis.debounceSetModel(parseValue);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.debounceSetModel(parseValue);\r\n\t\t}\r\n\t}\r\n\r\n\tonPaste (): void {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.onChangeInput(this.getInputEl().value);\r\n\t\t});\r\n\t}\r\n\r\n\tgetInputEl (): HTMLInputElement {\r\n\t\treturn this.inputRef.nativeElement;\r\n\t}\r\n\r\n\tdetectChanges () {\r\n\t\tthis.changeDetector.detectChanges();\r\n\t}\r\n\r\n\tprotected updateModel (oldModel: TCommonTextfieldModel, newModel: TCommonTextfieldModel) {\r\n\t\tconst hasValueInModels = commonUtilitiesCoreService.hasValue(newModel) || commonUtilitiesCoreService.hasValue(oldModel);\r\n\r\n\t\tif (hasValueInModels && newModel !== oldModel) {\r\n\t\t\t// Filter the placeholder value for IE\r\n\t\t\tif (this.isInputMaskInitialized && this.inputMask) {\r\n\t\t\t\tconst inputmask = this.inputRef.nativeElement.inputmask;\r\n\t\t\t\tconst unMaskValue = inputmask.unmaskedvalue();\r\n\r\n\t\t\t\tif (unMaskValue !== newModel) {\r\n\t\t\t\t\tconst newValue = this.formattedModel(newModel);\r\n\t\t\t\t\tconst placeholder = inputmask.option('placeholder');\r\n\r\n\t\t\t\t\tif (!(placeholder && newValue === '' && unMaskValue === '' && this.value === placeholder)) {\r\n\t\t\t\t\t\tthis.setValue(newValue, newModel);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst newValue = this.formattedModel(newModel);\r\n\r\n\t\t\t\tthis.setValue(newValue, newModel);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isNeedEnableHint(newModel)) {\r\n\t\t\t\tthis.enableHint();\r\n\t\t\t} else {\r\n\t\t\t\tthis.disableHint();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected focus () {\r\n\t\tthis.inputRef.nativeElement.focus();\r\n\t}\r\n\r\n\tprotected initInputMask () {\r\n\t\tif (!this.isInputMaskInitialized && this.inputMask) {\r\n\t\t\tconst input = this.inputRef.nativeElement;\r\n\r\n\t\t\tInputmask(this.inputMask, this.inputMaskParams).mask(input);\r\n\r\n\t\t\tthis.willUnbind(() => {\r\n\t\t\t\t// When run \"inputmask.remove()\" \"input\" is not have \"form\" field,\r\n\t\t\t\t// so inputmask can't remove \"submit\" handler\r\n\t\t\t\t// https://jira.parcsis.org/browse/CASEM-26200\r\n\t\t\t\tconst events = input.inputmask.events;\r\n\t\t\t\tconst form = input.form;\r\n\r\n\t\t\t\tforEach(events, (eventHandlers, eventName) => {\r\n\t\t\t\t\tif (-1 < ['submit', 'reset'].indexOf(eventName) && input.form) {\r\n\t\t\t\t\t\twhile (0 < eventHandlers.length) {\r\n\t\t\t\t\t\t\tconst eventHandler = eventHandlers.pop();\r\n\t\t\t\t\t\t\tform.removeEventListener(eventName, eventHandler);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdelete events[eventName];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// timeout so that the events on submit do not break, then remove the mask\r\n\t\t\t\t// https://jira.parcsis.org/browse/CASEM-22727\r\n\t\t\t\tthis.runOutsideAngular(() => {\r\n\t\t\t\t\tthis.timeout(() => {\r\n\t\t\t\t\t\tif (input.inputmask) {\r\n\t\t\t\t\t\t\tinput.inputmask.remove();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\t// Input mask beak event change\r\n\t\t\t// in IE without incomplete the garbage gets to model\r\n\r\n\t\t\t// The 'blur' event is needed to update numbers in the model, if inputmask params has min, max values\r\n\t\t\t// https://jira.parcsis.org/browse/CASEM-23473\r\n\t\t\t// this.willUnbind(\r\n\t\t\t// \tthis.onEvent($input, 'keyup keydown paste cut incomplete blur', (event) => this._onInput(event))\r\n\t\t\t// );\r\n\t\t\tthis.isInputMaskInitialized = true;\r\n\t\t}\r\n\t}\r\n\r\n\t// Formats value of model till a line of an input\r\n\tprotected formattedModel (model: TCommonTextfieldModel): string {\r\n\t\tconst maxLength = this.maxLength;\r\n\t\tlet result: string = '';\r\n\r\n\t\tif (isString(model)) {\r\n\t\t\tresult = model;\r\n\t\t}\r\n\r\n\t\tif (isNumber(model) && isFinite(model)) {\r\n\t\t\tresult = model.toString();\r\n\t\t}\r\n\r\n\t\tresult = result.trim();\r\n\r\n\t\tif (maxLength && result.length > maxLength) {\r\n\t\t\tresult = this.limitTo(result, maxLength);\r\n\t\t}\r\n\r\n\t\t// In IE in case of an initialization doesn't fulfill input a mask\r\n\t\t// Blank lines not to lay down, behaves inadequately\r\n\t\tif (result && this.inputMask) {\r\n\t\t\tresult = Inputmask.format(result, extend({ alias: this.inputMask }, this.inputMaskParams));\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// input value -> model\r\n\tparseValue (inputValue: string): TCommonTextfieldModel {\r\n\t\tconst maxLength = this.maxLength;\r\n\t\tlet value: TCommonTextfieldModel = inputValue.trim();\r\n\r\n\t\tif (maxLength) {\r\n\t\t\tvalue = this.limitTo(value, maxLength);\r\n\t\t}\r\n\r\n\t\tif (this.isInputMaskInitialized && this.inputMask) {\r\n\t\t\tconst input = this.inputRef.nativeElement;\r\n\t\t\tconst inputmask = input.inputmask;\r\n\t\t\tconst unmaskAsNumber = inputmask.option('unmaskAsNumber');\r\n\t\t\tconst autoUnmask = inputmask.option('autoUnmask');\r\n\t\t\tconst unMaskValue = inputmask.unmaskedvalue();\r\n\t\t\tconst placeholder = inputmask.option('placeholder');\r\n\r\n\t\t\t// Filter the placeholder value for IE\r\n\t\t\tif (placeholder && unMaskValue === '' && value === placeholder) {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\tif (autoUnmask || unmaskAsNumber) {\r\n\t\t\t\tvalue = unMaskValue;\r\n\r\n\t\t\t\tif (isString(value)) {\r\n\t\t\t\t\tvalue = value.trim();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Because of check (unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts) || unmaskedValue)\r\n\t\t\t\t// for numerical masks method unmaskedvalue return 0 as string, it is necessary to put this crutch\r\n\t\t\t\t// https://github.com/RobinHerbots/jquery.inputmask/blob/3.x/js/inputmask.js#L1736\r\n\t\t\t\tif (unmaskAsNumber && value === '0') {\r\n\t\t\t\t\tvalue = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// In IE return '0' with empty sting in input\r\n\t\t\t\tif (!input.value) {\r\n\t\t\t\t\tvalue = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t}\r\n\r\n\tprotected limitTo (val: string, limit: number): string {\r\n\t\treturn val.substr(0, limit);\r\n\t}\r\n\r\n\tparseUrlFunc (url: string): string {\r\n\t\tif (this.parseUrl) {\r\n\t\t\turl = this.parseUrl(url);\r\n\t\t}\r\n\r\n\t\tif (!url.match(/^[a-zA-Z+]+:/)) {\r\n\t\t\turl = 'http://' + url;\r\n\t\t}\r\n\r\n\t\treturn url;\r\n\t}\r\n\r\n\t// Quantity of the remained free characters\r\n\tprotected getCharsLeft (value: string): number {\r\n\t\tconst maxLength = this.maxLength;\r\n\r\n\t\tif (maxLength && !this.hideCount) {\r\n\t\t\treturn maxLength - value.length;\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected isEmpty (value: string): boolean {\r\n\t\treturn !commonUtilitiesCoreService.hasValue(value);\r\n\t}\r\n\r\n\tprotected isNeedEnableHint (model: TCommonTextfieldModel): boolean {\r\n\t\treturn this.isUseHint && !!model;\r\n\t}\r\n\r\n\t// The single method which shall change value in state\r\n\tprotected setValue (value: string, model: TCommonTextfieldModel): void {\r\n\t\tif (this.isTextfieldModel(value) && this.isTextfieldModel(model)) {\r\n\t\t\tthis.value = value;\r\n\t\t\tthis.model = model;\r\n\t\t\tthis.modelIsEmpty = this.isEmpty(value);\r\n\t\t\tthis.charsLeft = this.getCharsLeft(value);\r\n\r\n\t\t\tthis.setInputValue(value);\r\n\t\t}\r\n\t}\r\n\r\n\t// Fix for inputmask\r\n\tprotected setInputValue (value: string): void {\r\n\t\tif (value !== this.inputRef.nativeElement.value) {\r\n\t\t\tthis.inputValue = value;\r\n\t\t\tthis.inputRef.nativeElement.value = value;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected setModel (model: TCommonTextfieldModel): void {\r\n\t\tif (this.isTextfieldModel(model)) {\r\n\t\t\tthis.modelChange.emit(model);\r\n\t\t\tthis.onChange.emit(model);\r\n\t\t\tthis.emitOnChange(model);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected debounceSetModel (model: TCommonTextfieldModel): void {\r\n\t\tif (this.isTextfieldModel(model)) {\r\n\t\t\tthis.model = model;\r\n\t\t}\r\n\r\n\t\tif (this.hasDebounce) {\r\n\t\t\tthis.cancelSetModel();\r\n\r\n\t\t\tthis.setModel$ = timer(COMMON_THROTTLE_MILLISECONDS)\r\n\t\t\t\t.subscribe(() => {\r\n\t\t\t\t\tthis.setModel(model);\r\n\t\t\t\t\tthis.setModel$ = null;\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.setModel(model);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected cancelSetModel(callback: CallableFunction | null = null) {\r\n\t\tif (this.setModel$) {\r\n\t\t\tthis.setModel$.unsubscribe();\r\n\r\n\t\t\tif (isFunction(callback)) {\r\n\t\t\t\tcallback();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tclearModel (event: MouseEvent): void {\r\n\t\tevent.preventDefault();\r\n\t\t// Don't forget about debounce\r\n\t\tthis.cancelSetModel();\r\n\r\n\t\tthis.setValue('', '');\r\n\t\tthis.setModel('');\r\n\t}\r\n\r\n\tprotected enableHint (): void {\r\n\t\tconst hintValue = this.onHint(this.model);\r\n\r\n\t\tthis.isHintOn = true;\r\n\t\tthis.hintValue = hintValue;\r\n\t}\r\n\r\n\tprotected disableHint (): void {\r\n\t\tif (this.isHintOn) {\r\n\t\t\tthis.isHintOn = false;\r\n\t\t\tthis.hintValue = '';\r\n\t\t}\r\n\t}\r\n\r\n\tprotected mouseDownPreventDefault (\r\n\t\tevent: MouseEvent,\r\n\t\tcallback: CallableFunction = (): void => void (0),\r\n\t): void {\r\n\t\tif (event.which === COMMON_HOT_KEYS.LEFT_MOUSE && !this.isDisabled) {\r\n\t\t\t// Save focus in input\r\n\t\t\tevent.preventDefault();\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n\r\n\tonClickClearButton (event: MouseEvent): void {\r\n\t\tif (this.isDisabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.mouseDownPreventDefault(event, () => this.clearModel(event));\r\n\t}\r\n\r\n\t// для случая когда commonTextfield используется в другом компоненте (например автокомплит)\r\n\t// в этом случае в текстфилд может попасть ngModel не того типа, напрмер объект\r\n\tprivate isTextfieldModel (model: TCommonTextfieldModel): boolean {\r\n\t\treturn isNumber(model) || isString(model) || isBoolean(model) || !model;\r\n\t}\r\n}\r\n","\n
\n
{{floatLabel}}
\n \n \n \n
\n
{{ charsLeft }}
\n
\n \n
\n \n
","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport {\r\n\tHttpEvent,\r\n\tHttpInterceptor,\r\n\tHttpHandler,\r\n\tHttpRequest,\r\n} from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class CommonXHRHeaderInterceptor implements HttpInterceptor {\r\n\tintercept (req: HttpRequest, next: HttpHandler): Observable> {\r\n\t\tconst headers = {\r\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\r\n\t\t};\r\n\r\n\t\tconst xhrRequest = req.clone({\r\n\t\t\tsetHeaders: headers,\r\n\t\t});\r\n\r\n\t\treturn next.handle(xhrRequest);\r\n\t}\r\n}\r\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.to':'По','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.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'}","// New version src/Common/utilities/core.service.ts CommonUtilitiesCore\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/utilities_service.js Utilities\r\n\r\nimport {\r\n\tFormArray,\r\n\tFormGroup,\r\n} from '@angular/forms';\r\nimport {\r\n\tcloneDeep,\r\n\tcompact,\r\n\tdefaults,\r\n\textend,\r\n\tfind,\r\n\tforEach,\r\n\tget,\r\n\tisArray,\r\n\tisEmpty,\r\n\tisEqual,\r\n\tisNaN,\r\n\tisNull,\r\n\tisObject,\r\n\tisUndefined,\r\n\tmerge,\r\n\tslice,\r\n\tuniqueId,\r\n} from 'lodash';\r\n\r\nimport { ICommonKeyValues } from '../@types/core';\r\n\r\ninterface ICommonServiceCompareModelParams {\r\n\toriginalItems?: T[],\r\n\titemsField: string,\r\n\tfieldId: string,\r\n\taddedItemsField: string,\r\n\tdeletedItemsField: string\r\n}\r\n\r\nclass CommonUtilitiesCore {\r\n\tprivate hiddenDiv: HTMLElement = document.createElement('div');\r\n\r\n\tconstructor () {\r\n\t\tthis.hiddenDiv.className = 'g-hidden-measure-text';\r\n\t\tdocument.body.appendChild(this.hiddenDiv);\r\n\t}\r\n\r\n\thasValue (value: any): boolean {\r\n\t\treturn !isUndefined(value) && !isNull(value) && !isNaN(value) && value !== '';\r\n\t}\r\n\r\n\tgetDataFromCurrentRoute ($uiRouter: any): ICommonKeyValues {\r\n\t\tconst path = $uiRouter.globals.$current.path;\r\n\t\tlet data = {};\r\n\r\n\t\tforEach(path, (state) => {\r\n\t\t\tif (state.data) {\r\n\t\t\t\tdata = extend(data, state.data);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tgetQueryStringKeyValue (key: string): string | null {\r\n\t\tconst reg = new RegExp('[?&]' + key + '=([^&#]*)', 'i');\r\n\t\tconst str = reg.exec(window.location.href);\r\n\r\n\t\treturn str ? decodeURIComponent(str[1]) : null;\r\n\t}\r\n\r\n\tisOuterClick (event: Event, owner: string | JQuery, context: string | JQuery = 'body'): boolean {\r\n\t\tconst $context = $(context);\r\n\r\n\t\tconst $eventTarget = $(event.target!);\r\n\t\tconst isElementExist = !!$context.find($eventTarget).length || $eventTarget.is($context);\r\n\r\n\t\treturn isElementExist && !$eventTarget.is(owner) && !$eventTarget.closest(owner).length;\r\n\t}\r\n\r\n\tgetTempId (): string {\r\n\t\treturn uniqueId('temp_') + '_' + (new Date()).getTime();\r\n\t}\r\n\r\n\tisTempId (id: string): boolean {\r\n\t\treturn /^temp_/.test(id);\r\n\t}\r\n\r\n\tpaginate (array: T[], pageNumber: number, pageSize: number): T[] {\r\n\t\t--pageNumber; // because pages logically start with 1, but technically with 0\r\n\t\treturn slice(array, pageNumber * pageSize, (pageNumber + 1) * pageSize);\r\n\t}\r\n\r\n\tgetTextWidth (text: string, font: string): number {\r\n\t\tif (!text) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tthis.hiddenDiv.style.font = font;\r\n\t\tthis.hiddenDiv.innerHTML = text;\r\n\r\n\t\treturn Math.ceil(this.hiddenDiv.getBoundingClientRect().width);\r\n\t}\r\n\r\n\taddMicrotask (callBack: CallableFunction): void {\r\n\t\tif (!!window.queueMicrotask) {\r\n\t\t\tqueueMicrotask(() => callBack());\r\n\t\t} else {\r\n\t\t\tPromise.resolve()\r\n\t\t\t\t.then(() => callBack());\r\n\t\t}\r\n\t}\r\n\r\n\tcompareModelCollection (model: T, params: ICommonServiceCompareModelParams): void {\r\n\t\tif (params.originalItems) {\r\n\t\t\tparams.originalItems = cloneDeep(params.originalItems);\r\n\t\t}\r\n\r\n\t\tlet items;\r\n\t\tconst defaultOptions: ICommonServiceCompareModelParams = {\r\n\t\t\titemsField: '', // The name of a field with the changed collection\r\n\t\t\taddedItemsField: '', // The name of a field with new elements\r\n\t\t\tdeletedItemsField: '', // The name of a field with deleted elements\r\n\t\t\toriginalItems: [], // Copy of an old array\r\n\t\t\tfieldId: 'Id', // Field of comparing of elements\r\n\t\t};\r\n\r\n\t\tdefaults(params, defaultOptions);\r\n\t\titems = cloneDeep(model[params.itemsField]);\r\n\r\n\t\tif (!isEqual(model[params.itemsField], params.originalItems)) {\r\n\t\t\tif (model[params.itemsField] && model[params.itemsField].length) {\r\n\t\t\t\tif (!isEmpty(params.originalItems)) {\r\n\t\t\t\t\tfor (let i = 0; i < model[params.itemsField].length; i++) {\r\n\t\t\t\t\t\tfor (let j = 0; j < params.originalItems!.length; j++) {\r\n\t\t\t\t\t\t\tif (params.originalItems![j][params.fieldId] === model[params.itemsField][i][params.fieldId]) {\r\n\t\t\t\t\t\t\t\tparams.originalItems!.splice(j, 1);\r\n\t\t\t\t\t\t\t\tj--;\r\n\t\t\t\t\t\t\t\tmodel[params.itemsField].splice(i, 1);\r\n\t\t\t\t\t\t\t\ti--;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodel[params.addedItemsField] = isEqual(model[params.addedItemsField], model[params.itemsField]) ?\r\n\t\t\t\t\t\t[] :\r\n\t\t\t\t\t\tmodel[params.itemsField];\r\n\t\t\t\t\tmodel[params.deletedItemsField] = params.originalItems;\r\n\t\t\t\t\tmodel[params.itemsField] = items;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmodel[params.addedItemsField] = isEqual(model[params.addedItemsField], model[params.itemsField]) ?\r\n\t\t\t\t\t\t[] :\r\n\t\t\t\t\t\tmodel[params.itemsField];\r\n\t\t\t\t}\r\n\t\t\t} else if (!isEmpty(params.originalItems)) {\r\n\t\t\t\tmodel[params.deletedItemsField] = params.originalItems;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcustomMerge (\r\n\t\tx: T[] | T,\r\n\t\ty: T[] | T,\r\n\t): T[] | T {\r\n\t\tif (isUndefined(x)) {\r\n\t\t\treturn y;\r\n\t\t}\r\n\r\n\t\tif (isUndefined(y) || isNull(y) || isNull(x)) {\r\n\t\t\treturn x;\r\n\t\t}\r\n\r\n\t\tif (isArray(x) && isArray(y)) {\r\n\t\t\treturn y;\r\n\t\t}\r\n\r\n\t\tif (isObject(x) && isObject(y)) {\r\n\t\t\treturn merge(x, y, this.customMerge);\r\n\t\t} else {\r\n\t\t\treturn y;\r\n\t\t}\r\n\t}\r\n\r\n\tcustomConcat (\r\n\t\tarr1: T[],\r\n\t\tarr2: T[],\r\n\t\toutputOptions?: { GroupByKey: string, GroupItemsKey: string },\r\n\t): T[] {\r\n\t\tif (!isEmpty(arr1) && !isEmpty(arr2) && outputOptions) {\r\n\t\t\tconst groupByKey = outputOptions.GroupByKey;\r\n\t\t\tconst groupItemsKey = outputOptions.GroupItemsKey;\r\n\r\n\t\t\tarr2.forEach((arr2group) => {\r\n\t\t\t\tconst arr1group = find(arr1, (arr1gr) => {\r\n\t\t\t\t\treturn arr1gr[groupByKey].Id === arr2group[groupByKey].Id;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (arr1group) {\r\n\t\t\t\t\tArray.prototype.push.apply(arr1group[groupItemsKey], arr2group[groupItemsKey]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tarr1.push(arr2group);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tArray.prototype.push.apply(arr1, compact(arr2));\r\n\t\t}\r\n\r\n\t\treturn arr1;\r\n\t}\r\n\r\n\tinsertionSortWithIgnoreCase (array: T[], field: string): T[] {\r\n\t\tfor (let i = 0; i < array.length; i++) {\r\n\t\t\tconst temp = array[i];\r\n\t\t\tlet j = i - 1;\r\n\r\n\t\t\twhile (j >= 0 && get(array[j], field) && (get(array[j], field).toLowerCase() > get(temp, field).toLowerCase())) {\r\n\t\t\t\tarray[j + 1] = array[j];\r\n\t\t\t\tj--;\r\n\t\t\t}\r\n\t\t\tarray[j + 1] = temp;\r\n\t\t}\r\n\r\n\t\treturn array;\r\n\t}\r\n\r\n\tpushWithKeyCheck (arr: T[], item: T, key: string): void {\r\n\t\tconst found = find(arr, (el) => {\r\n\t\t\treturn el[key] === item[key];\r\n\t\t});\r\n\r\n\t\tif (!found) {\r\n\t\t\tarr.push(item);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateTreeValidity (group: FormGroup | FormArray): void {\r\n\t\tObject.keys(group.controls).forEach((key: string) => {\r\n\t\t\tconst abstractControl = group.controls[key];\r\n\r\n\t\t\tif (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {\r\n\t\t\t\tthis.updateTreeValidity(abstractControl);\r\n\t\t\t} else {\r\n\t\t\t\tabstractControl.updateValueAndValidity({ onlySelf: true });\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport const commonUtilitiesCoreService = new CommonUtilitiesCore();\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidationErrors,\r\n\tValidator,\r\n} from '@angular/forms';\r\nimport {\r\n\tDirective,\r\n\tInput,\r\n} from '@angular/core';\r\nimport {\r\n\tget,\r\n\tisString,\r\n} from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonMinlength]',\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: CommonMinlengthValidatorDirective,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class CommonMinlengthValidatorDirective implements Validator {\r\n\t@Input() commonMinlength: number | string;\r\n\t@Input() commonMinLengthRequired: boolean = true;\r\n\r\n\tvalidate (control: AbstractControl): ValidationErrors | null {\r\n\t\tconst length = get(control, 'value.length', null);\r\n\t\tconst minLengths = this.parseLength(this.commonMinlength);\r\n\r\n\t\tif (!this.commonMinLengthRequired && (length === null || length === 0)) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn this.hasError(minLengths, length) ? { minLength: true } : null;\r\n\t}\r\n\r\n\thasError (minLengths: number[], length: number): boolean {\r\n\t\treturn minLengths.some((current, index) => {\r\n\t\t\tconst prev = minLengths[index - 1] || null;\r\n\t\t\tconst inPrevRange = prev ? length <= prev : false;\r\n\r\n\t\t\treturn !inPrevRange && length < current;\r\n\t\t});\r\n\t}\r\n\r\n\tparseLength (minLength: number | string): number[] {\r\n\t\tif (isString(minLength)) {\r\n\t\t\treturn minLength.split('|').map((item) => parseInt(item) || 0);\r\n\t\t}\r\n\t\treturn [minLength];\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonPasswordValidatorDirective } from './common.password_validator.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonPasswordValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonPasswordValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonPasswordValidatorModule {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'commonEscapedBracketReplace',\r\n})\r\nexport class CommonEscapedBracketReplace implements PipeTransform {\r\n\ttransform (str: string) {\r\n\t\treturn str ? str.replace(/</g, '<').replace(/>/g, '>') : str;\r\n\t}\r\n}\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidator,\r\n\tValidationErrors,\r\n} from '@angular/forms';\r\n\r\nimport { Directive } from '@angular/core';\r\nimport { isEmpty } from 'lodash';\r\n\r\nimport { DATA_VALIDATION } from '../data_validation.constant';\r\n\r\n@Directive({\r\n\tselector: '[commonEmail]',\r\n\tproviders: [{\r\n\t\tprovide: NG_VALIDATORS,\r\n\t\tuseExisting: CommonEmailValidatorDirective,\r\n\t\tmulti: true,\r\n\t}],\r\n})\r\nexport class CommonEmailValidatorDirective implements Validator {\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tlet res = null;\r\n\r\n\t\tif (!isEmpty(control.value)) {\r\n\t\t\tres = RegExp(DATA_VALIDATION.email).test(control.value) ? null : {\r\n\t\t\t\temail: true,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n}\r\n","// New version src/Common/constants/common.constants.ts commonConstants\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/infinite_scroll_module.js\r\n\r\nexport const commonConstants = {\r\n\tdownloadFilesAPIUrl: 'api/download',\r\n\tuploadFilesAPIUrl: 'api/upload',\r\n\tUSER_AVATAR_SIZE: {\r\n\t\tstandart: 96,\r\n\t\tprofile: 208, // TODO: @backend return error Access with size ≠ 208,\r\n\t},\r\n\tanimationDuration: 200,\r\n\tdefaultPageSize: 20,\r\n\tdefaultNumberDigitsAfterDecimal: 2,\r\n\tdefaultNumberDecimalSeparator: ',',\r\n\tdefaultNumberGroupSeparator: ' ',\r\n\tdataValidation: {\r\n\t\turl: /^(https?:\\/\\/)?([\\da-zа-яё\\.-]+)\\.([a-zа-яё\\.]{2,6})([\\/\\w \\.-]*)*\\/?$/,\r\n\t\timageFormats: '.png, .jpg, .jpeg, .gif, .bmp, .jpe',\r\n\t\tinn: /^[\\d-\\s]+$/,\r\n\t\tintNum: /^[0-9]+$/,\r\n\t\tcardExpire: /^(0[1-9]|1[0-2])\\/\\d{2}$/,\r\n\t\tcardExpireMonth: /^(0[1-9]|1[0-2])$/,\r\n\t\tcardExpireYear: /^(\\d{2}|\\d{4})$/,\r\n\t\tcardNumber: /^\\d+$/,\r\n\t\tdigits: /^\\d+$/,\r\n\t\temail: /^[^ @]+@[^ @]/,\r\n\t},\r\n\tthrottle_milleseconds: 200,\r\n\tfileUploadMaxSize: 100 * 1024 * 1024, // 100 MB\r\n\tadaptiveScreenWidth: 900,\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonMinValidatorDirective } from './min.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonMinValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonMinValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonMinValidatorModule {}\r\n","import { isEmpty, unset, get } from 'lodash';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { IAuthenticationMeetingsValidationErrors } from '../authentication.interfaces';\r\n\r\nimport { ICommonKeyValues, ICommonResponseError } from '../../../../Common/@types/core';\r\n\r\n@Injectable()\r\nexport class AuthenticationMeetingsErrorService {\r\n\thandleSuccessResponse (response: ICommonResponseError, validationsErrorObject: IAuthenticationMeetingsValidationErrors, control: AbstractControl): void {\r\n\t\tif (!isEmpty(response.Error) || !isEmpty(response.ErrorMessages)) {\r\n\t\t\tthis.showCustomError(response, validationsErrorObject, control);\r\n\t\t}\r\n\t}\r\n\r\n\tshowCustomError (response: ICommonKeyValues, validationsErrorObject: IAuthenticationMeetingsValidationErrors, control: AbstractControl) {\r\n\t\tvalidationsErrorObject.custom = get(response, 'ErrorMessages[0]') || response.Error;\r\n\t\tcontrol.setErrors({CustomError: true});\r\n\t}\r\n\r\n\tonChangeFieldHandler (control: AbstractControl, resource: {validationCustomErrors: IAuthenticationMeetingsValidationErrors}) {\r\n\t\tif (resource.validationCustomErrors.custom) {\r\n\t\t\tcontrol.setErrors(null);\r\n\t\t\tunset(resource, 'validationCustomErrors.custom');\r\n\t\t}\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CommonTextfieldModule } from '../../../Common/controls/textfield/textfield.module';\r\nimport { CommonCheckboxModule } from '../../../Common/controls/checkbox/checkbox.module';\r\nimport { CommonHiddenAutofillComponent } from '../../../Common/components/hidden_autofill/hidden_autofill.component';\r\nimport { CommonSubmitButtonModule } from '../../../Common/controls/submit_button/submit_button.module';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tCommonHiddenAutofillComponent,\r\n\t],\r\n\texports: [\r\n\t\tCommonTextfieldModule,\r\n\t\tCommonCheckboxModule,\r\n\t\tCommonHiddenAutofillComponent,\r\n\t\tCommonSubmitButtonModule,\r\n\t],\r\n})\r\nexport class AuthenticationMeetingsCommonModule {}\r\n","// New version src/Common/controls/textfield/inputmasks_aliases_service.ts\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/input_mask_aliases_run.js\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n\tObservable,\r\n\tSubscription,\r\n} from 'rxjs';\r\nimport {\r\n\tclone,\r\n\tget,\r\n\tmerge,\r\n} from 'lodash';\r\nimport * as Inputmask from 'inputmask';\r\n\r\nimport { commonConstants } from '../../constants/common.constants';\r\nimport { CommonLocaleService } from '../../services/locale/locale.service';\r\nimport { CommonServerDateService } from '../../services/server_date.service';\r\nimport { CommonGeneralSettingsService } from '../../services/general_settings.service';\r\n\r\ndeclare interface IMask {\r\n\tmask: string;\r\n\tplaceholder?: string;\r\n\tshowMaskOnHover?: boolean;\r\n\tshowMaskOnFocus?: boolean;\r\n\thourFormat?: string;\r\n\talias?: string;\r\n\tleapday?: string;\r\n\tseparator?: string;\r\n\tyearrange?: {}\r\n}\r\n\r\nconst { defaultNumberDecimalSeparator, defaultNumberGroupSeparator, defaultNumberDigitsAfterDecimal } = commonConstants;\r\n\r\n@Injectable()\r\nexport class CommonTextfieldInputMaskAliasesService {\r\n\tprivate saveCharsRegExp = new RegExp('[^\\\\\\\\:/*?\"<>|]');\r\n\tprivate tagCharsRegExp = new RegExp('^[0-9A-Za-z_]');\r\n\tprivate externalTagCharsRegExp = new RegExp('^[0-9A-Za-z_\\\\[\\\\]]');\r\n\tprivate domainRegExp = new RegExp('^[0-9a-zA-Z-]');\r\n\tprivate scriptNameRegExp = new RegExp('^[0-9a-zA-Z-_]');\r\n\tprivate onlyLettersRegExp = new RegExp(/(^$)|(^([^\\-!#$%&()*,./:;?@\\[\\\\\\]_{|}¨ˇ“”€+<=>§°\\d\\s¤®™©'\"^±~`№])+$)/); // all letters\r\n\tprivate displayNameRegExp = new RegExp(/(^$)|(^([^\\-!#$%&()*,./:;?@\\[\\\\\\]_{|}¨ˇ“”€+<=>§°\\d\\s¤®™©№^±~'\"]| )+$)/); // all letters, quotes and gaps\r\n\tprivate numberFormat = this.commonGeneralSettingsService.getGeneralSettings('NumberFormat');\r\n\tprivate decimalSeparator = get(this.numberFormat, 'DecimalSeparator') || defaultNumberDecimalSeparator;\r\n\tprivate groupSeparator = get(this.numberFormat, 'GroupSeparator') || defaultNumberGroupSeparator;\r\n\r\n\tprivate numericParams = {\r\n\t\talias: 'numeric',\r\n\t\tradixPoint: this.decimalSeparator,\r\n\t\tgroupSeparator: this.groupSeparator,\r\n\t\tautoGroup: true,\r\n\t\trightAlign: false,\r\n\t\tunmaskAsNumber: true,\r\n\t\tdigits: defaultNumberDigitsAfterDecimal.toString(),\r\n\t\tallowMinus: true,\r\n\t};\r\n\r\n\tprivate integerParams = clone(this.numericParams);\r\n\tprivate integerPositiveParams = clone(this.integerParams);\r\n\tprivate numericParamsNoMinus = clone(this.numericParams);\r\n\r\n\tconstructor (\r\n\t\tprivate commonGeneralSettingsService: CommonGeneralSettingsService,\r\n\t\tprivate commonServerDateService: CommonServerDateService,\r\n\t\tprivate commonLocaleService: CommonLocaleService,\r\n\t) {}\r\n\r\n\tinit (): Subscription {\r\n\t\treturn new Observable(() => {\r\n\t\t\tthis.numericParamsNoMinus.allowMinus = false;\r\n\t\t\tthis.integerParams.alias = 'integer';\r\n\t\t\tthis.integerParams.digits = '0';\r\n\t\t\tthis.integerPositiveParams.allowMinus = false;\r\n\r\n\t\t\tInputmask\r\n\t\t\t\t.extendAliases({\r\n\t\t\t\t\t// text mask with only digits (\"00001\")\r\n\t\t\t\t\t'casem-text-digits': {\r\n\t\t\t\t\t\tmask: 'b',\r\n\t\t\t\t\t\trepeat: '*',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\tautoUnmask: true,\r\n\t\t\t\t\t\tshowMaskOnHover: false,\r\n\t\t\t\t\t\tshowMaskOnFocus: false,\r\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean => {\r\n\t\t\t\t\t\t\treturn commonConstants.dataValidation.digits.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn commonConstants.dataValidation.digits.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-phone': {\r\n\t\t\t\t\t\tmask: '\\\\+9{*}',\r\n\t\t\t\t\t\tshowMaskOnHover: false,\r\n\t\t\t\t\t\tshowMaskOnFocus: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-phone-numb-format': {\r\n\t\t\t\t\t\tmask: '9 999 999 99 99',\r\n\t\t\t\t\t\tshowMaskOnHover: false,\r\n\t\t\t\t\t\tshowMaskOnFocus: true,\r\n\t\t\t\t\t\tautoUnmask: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-phone-numb-11': {\r\n\t\t\t\t\t\tmask: '\\\\+7 999 999-99-99',\r\n\t\t\t\t\t\tshowMaskOnHover: false,\r\n\t\t\t\t\t\tshowMaskOnFocus: true,\r\n\t\t\t\t\t\tautoUnmask: true,\r\n\t\t\t\t\t\tonBeforeMask: (value: string): string => {\r\n\t\t\t\t\t\t\tconst newValue = value.replace(/[+\\s_-]/g, '');\r\n\t\t\t\t\t\t\t// это необходимо если номер телефона уже существует, потому что inputmask добавляет 7 вначало строки и номер телефона обрезается\r\n\t\t\t\t\t\t\t// 7 999 999 99 99 => 7 799 999 99 99\r\n\t\t\t\t\t\t\tif (newValue.length === 11) {\r\n\t\t\t\t\t\t\t\treturn newValue.slice(1);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn newValue;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tonUnMask: (maskedValue: string, unmaskedValue: string): string => {\r\n\t\t\t\t\t\t\treturn !unmaskedValue ? unmaskedValue : maskedValue.replace(/[+\\s_-]/g, '');\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-safe-characters': {\r\n\t\t\t\t\t\tmask: 'c',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trepeat: '*', // http://git.io/vcguC - transmits value to model\r\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean => {\r\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\r\n\t\t\t\t\t\t\treturn this.saveCharsRegExp.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\tc: {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn this.saveCharsRegExp.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-tag': {\r\n\t\t\t\t\t\tmask: 'd',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trepeat: '*', // http://git.io/vcguC - transmits value to model\r\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean => {\r\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\r\n\t\t\t\t\t\t\treturn this.tagCharsRegExp.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\td: {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn this.tagCharsRegExp.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-external-tag': {\r\n\t\t\t\t\t\tmask: 'e',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trepeat: '+', // http://git.io/vcguC - transmits value to model\r\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean => {\r\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\r\n\t\t\t\t\t\t\treturn this.externalTagCharsRegExp.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\te: {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn this.externalTagCharsRegExp.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-domain': {\r\n\t\t\t\t\t\tmask: 'f',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trepeat: '*', // http://git.io/vcguC - transmits value to model\r\n\t\t\t\t\t\tisComplete: (buffer: string[]) => {\r\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\r\n\t\t\t\t\t\t\treturn this.domainRegExp.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\tf: {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn this.domainRegExp.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-script-name': {\r\n\t\t\t\t\t\tmask: '*',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trepeat: '*', // http://git.io/vcguC - transmits value to model\r\n\t\t\t\t\t\tisComplete: (buffer: string[]) => {\r\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\r\n\t\t\t\t\t\t\treturn this.scriptNameRegExp.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\t'*': {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn this.scriptNameRegExp.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-numeric': this.numericParams,\r\n\t\t\t\t\t'casem-numeric-no-minus': this.numericParamsNoMinus,\r\n\t\t\t\t\t'casem-integer': this.integerParams,\r\n\t\t\t\t\t'casem-integer-positive': this.integerPositiveParams,\r\n\t\t\t\t\t'casem-initials': {\r\n\t\t\t\t\t\tmask: 'g',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trepeat: '3', // http://git.io/vcguC - transmits value to model\r\n\t\t\t\t\t\tisComplete: (buffer: string[]) => {\r\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\r\n\t\t\t\t\t\t\treturn this.onlyLettersRegExp.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\tg: {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn this.onlyLettersRegExp.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tcasing: 'upper',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-letters': {\r\n\t\t\t\t\t\tmask: '*',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trepeat: '+',\r\n\t\t\t\t\t\tisComplete: (buffer: string[]) => {\r\n\t\t\t\t\t\t\treturn this.onlyLettersRegExp.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\t'*': {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn this.onlyLettersRegExp.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-displayname': {\r\n\t\t\t\t\t\tmask: 'h',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trepeat: '+', // http://git.io/vcguC - transmits value to model\r\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean => {\r\n\t\t\t\t\t\t\t// Logic broadcast 'isComplete' for model\r\n\t\t\t\t\t\t\treturn this.displayNameRegExp.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\th: {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn this.displayNameRegExp.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-cardnumber': {\r\n\t\t\t\t\t\tmask: 'i',\r\n\t\t\t\t\t\trepeat: '24',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\tautoUnmask: true,\r\n\t\t\t\t\t\tshowMaskOnHover: false,\r\n\t\t\t\t\t\tshowMaskOnFocus: false,\r\n\t\t\t\t\t\tisComplete: (buffer: string[]): boolean => {\r\n\t\t\t\t\t\t\treturn commonConstants.dataValidation.cardNumber.test(buffer.join(''));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdefinitions: {\r\n\t\t\t\t\t\t\ti: {\r\n\t\t\t\t\t\t\t\tvalidator: (chr: string): boolean => {\r\n\t\t\t\t\t\t\t\t\treturn commonConstants.dataValidation.cardNumber.test(chr);\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-invoice-time-rounding-minutes': {\r\n\t\t\t\t\t\talias: 'numeric',\r\n\t\t\t\t\t\trepeat: '3',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trightAlign: false,\r\n\t\t\t\t\t\tunmaskAsNumber: true,\r\n\t\t\t\t\t\tallowMinus: false,\r\n\t\t\t\t\t\tdigits: '0',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-invoice-time-rounding-hours': {\r\n\t\t\t\t\t\talias: 'numeric',\r\n\t\t\t\t\t\trepeat: '2',\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t\trightAlign: false,\r\n\t\t\t\t\t\tunmaskAsNumber: true,\r\n\t\t\t\t\t\tallowMinus: false,\r\n\t\t\t\t\t\tdigits: '2',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'casem-time': this.getCasemTimeMask(),\r\n\t\t\t\t\t'casem-date': this.getCasemDateMask(),\r\n\t\t\t\t\t'casem-cardexpire': this.getCasemCardExpireMask(),\r\n\t\t\t\t\t'casem-cardexpire-month': this.getCasemCardExpireMonthMask(),\r\n\t\t\t\t\t'casem-cardexpire-year': this.getCasemCardExpireYearhMask(),\r\n\t\t\t\t\t'casem-participant-individual-inn': this.getCasemParticipantIndividualInnMask(),\r\n\t\t\t\t\t'meetings-individual-ogrn': {\r\n\t\t\t\t\t\tmask: '9999999999999[99]',\r\n\t\t\t\t\t\tautoUnmask: true,\r\n\t\t\t\t\t\tgreedy: false,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'meetings-passport': {\r\n\t\t\t\t\t\tmask: '99 99 999999',\r\n\t\t\t\t\t\tshowMaskOnHover: false,\r\n\t\t\t\t\t\tshowMaskOnFocus: true,\r\n\t\t\t\t\t\tautoUnmask: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'meetings-subdivision-code': {\r\n\t\t\t\t\t\tmask: '999-999',\r\n\t\t\t\t\t\tshowMaskOnHover: false,\r\n\t\t\t\t\t\tshowMaskOnFocus: true,\r\n\t\t\t\t\t\tautoUnmask: true,\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t})\r\n\t\t\t.subscribe();\r\n\t}\r\n\r\n\tprivate getCasemDateMask (): IMask {\r\n\t\tconst inputDateMask = this.commonServerDateService.inputDateMask;\r\n\t\tconst mask = inputDateMask.replace(/dd|mm/, '1').replace(/dd|mm/, '2').replace('yyyy', 'y');\r\n\t\tconst alias = inputDateMask.replace(/\\W/g, '/');\r\n\t\tconst leapday = inputDateMask.replace('dd', '29').replace('mm', '02').replace('yyyy', '');\r\n\t\tconst separator = inputDateMask.match(/\\W/)![0];\r\n\r\n\t\treturn {\r\n\t\t\tmask,\r\n\t\t\tplaceholder: this.commonServerDateService.inputDatePlaceholder,\r\n\t\t\tleapday,\r\n\t\t\tseparator,\r\n\t\t\talias,\r\n\t\t\tyearrange: {\r\n\t\t\t\tminyear: 1900,\r\n\t\t\t\tmaxyear: 2999,\r\n\t\t\t},\r\n\t\t\tshowMaskOnHover: false,\r\n\t\t\tshowMaskOnFocus: true,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getCasemTimeMask (): IMask {\r\n\t\treturn {\r\n\t\t\tmask: this.commonServerDateService.inputTimeMask,\r\n\t\t\tplaceholder: this.commonServerDateService.inputTimePlaceholder,\r\n\t\t\talias: 'datetime',\r\n\t\t\thourFormat: this.commonGeneralSettingsService.hasMeridiem() ? '12' : '24',\r\n\t\t\tshowMaskOnHover: false,\r\n\t\t\tshowMaskOnFocus: true,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getCasemCardExpireMask (): IMask {\r\n\t\tconst monthsSymbol = this.commonLocaleService.instant('common.symbols.months');\r\n\t\tconst yearsSymbol = this.commonLocaleService.instant('common.symbols.years');\r\n\r\n\t\treturn {\r\n\t\t\tmask: '99/99',\r\n\t\t\tplaceholder: (monthsSymbol + monthsSymbol + '/' + yearsSymbol + yearsSymbol).toUpperCase(),\r\n\t\t\tshowMaskOnHover: false,\r\n\t\t\tshowMaskOnFocus: false,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getCasemCardExpireMonthMask (): IMask {\r\n\t\tconst monthsSymbol = this.commonLocaleService.instant('common.symbols.months');\r\n\r\n\t\treturn {\r\n\t\t\tmask: '99',\r\n\t\t\tplaceholder: (monthsSymbol + monthsSymbol).toUpperCase(),\r\n\t\t\tshowMaskOnHover: false,\r\n\t\t\tshowMaskOnFocus: false,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getCasemCardExpireYearhMask (): IMask {\r\n\t\tconst yearsSymbol = this.commonLocaleService.instant('common.symbols.years');\r\n\r\n\t\treturn {\r\n\t\t\tmask: '(99)|(9999)',\r\n\t\t\tplaceholder: (yearsSymbol + yearsSymbol).toUpperCase(),\r\n\t\t\tshowMaskOnHover: false,\r\n\t\t\tshowMaskOnFocus: false,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate getCasemParticipantIndividualInnMask (): IMask {\r\n\t\tconst locale = this.commonLocaleService.locale;\r\n\r\n\t\tconst masks = {\r\n\t\t\tru: {\r\n\t\t\t\tmask: '9999999999[99]',\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tconst maskParams = {\r\n\t\t\tautoUnmask: true,\r\n\t\t\tgreedy: false,\r\n\t\t};\r\n\r\n\t\treturn merge(masks[locale], maskParams);\r\n\t}\r\n}\r\n","// New version src/Common/directives/stop_propagation.directive.ts\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/directives/stop_propagation_directive.js\r\n\r\nimport {\r\n\tDirective,\r\n\tElementRef,\r\n\tInput,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[commonStopPropagation]',\r\n})\r\nexport class CommonStopPropagationDirective {\r\n\t@Input('commonStopPropagation') eventName: string = 'click';\r\n\tprivate target: Element = this.el.nativeElement;\r\n\r\n\tconstructor (\r\n\t\tprotected el: ElementRef,\r\n\t) {}\r\n\r\n\tngOnInit () {\r\n\t\tthis.target.addEventListener(this.eventName, this.callback.bind(this));\r\n\t}\r\n\r\n\tngOnDestroy () {\r\n\t\tthis.target.removeEventListener(this.eventName, this.callback.bind(this));\r\n\t}\r\n\r\n\tcallback(event: Event) {\r\n\t\tevent.stopImmediatePropagation();\r\n\t}\r\n}\r\n","// New version src/Common/controls/loader/loader.component.ts CommonLoaderComponent\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/controls/common_controls_loader_module/ctrl_loader_component_service.jsx CtrlLoaderComponent\r\n\r\nimport {\r\n\tInjector,\r\n\tComponent,\r\n\tInput,\r\n\tSimpleChanges,\r\n} from '@angular/core';\r\nimport {CommonBaseComponent} from '../../components/base.component';\r\nimport {COMMON_LOADER_DEFAULT_DELAY_TIMEOUT} from './loader_default_delay_timeout_constant';\r\n\r\n@Component({\r\n\tselector: 'common-loader',\r\n\ttemplateUrl: './loader.component.pug',\r\n\tstyleUrls: [\r\n\t\t'./loader.component.sass',\r\n\t],\r\n})\r\nexport class CommonLoaderComponent extends CommonBaseComponent {\r\n\t@Input() isLoading: boolean = false;\r\n\t@Input() hasDelay: boolean = false;\r\n\t@Input() label: string = '';\r\n\t@Input() ctrlLoaderClasses: string = '';\r\n\t@Input() className: string = '';\r\n\t@Input() ctrlLoaderTopAligned: boolean = false;\r\n\t@Input() ctrlLoaderWithOverlay: boolean = false;\r\n\r\n\tisShow: boolean = false;\r\n\tprotected loadTimeout: number = 0;\r\n\tprotected cancelTimer: any;\r\n\r\n\tconstructor (protected injector: Injector) {\r\n\t\tsuper(injector);\r\n\t}\r\n\tngOnInit(): void {\r\n\t\tsuper.ngOnInit();\r\n\r\n\t\tthis.willUnbind(() => {\r\n\t\t\tthis.stopLoading();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tsuper.ngOnChanges(changes);\r\n\r\n\t\tif (changes.hasDelay) {\r\n\t\t\tif (changes.hasDelay.currentValue) {\r\n\t\t\t\tthis.loadTimeout = COMMON_LOADER_DEFAULT_DELAY_TIMEOUT;\r\n\t\t\t} else {\r\n\t\t\t\tthis.loadTimeout = 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (changes.isLoading) {\r\n\t\t\tif (changes.isLoading.currentValue) {\r\n\t\t\t\tif (this.hasDelay) {\r\n\t\t\t\t\tthis.startLoader();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isShow = true;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (this.hasDelay) {\r\n\t\t\t\t\tthis.stopLoading();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isShow = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprotected startLoader(): void {\r\n\t\tthis.cancelTimer = this.timeout(\r\n\t\t\t() => this.isShow = true,\r\n\t\t\tthis.loadTimeout,\r\n\t\t\t(): null => this.cancelTimer = null,\r\n\t\t);\r\n\t}\r\n\r\n\tprotected stopLoading(): void {\r\n\t\tif (this.cancelTimer) {\r\n\t\t\tthis.cancelTimer();\r\n\t\t}\r\n\r\n\t\tthis.isShow = false;\r\n\t}\r\n}\r\n","\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{ label }}
\n
","import { ICommonAppConfig } from '../../../Common/app/app.config.token';\r\n\r\nimport { AuthenticationMeetingsComponent } from './authentication.meetings.component';\r\n\r\nexport const authenticationMeetingsAppConfig: ICommonAppConfig = {\r\n\tapplication: 'meetings_auth',\r\n\thasInitialLoader: false,\r\n\tshouldAuthorize: false,\r\n\tmainComponent: AuthenticationMeetingsComponent,\r\n\tshouldInitLayoutService: false,\r\n};\r\n","// New version src/Common/general_settings/general_settings.service.ts CommonGeneralSettingsService\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/common_general_settings_service_facroty.js CommonGeneralSettingsService\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport {\r\n\tassign,\r\n\tmerge,\r\n\tget,\r\n} from 'lodash';\r\n\r\nimport { CommonBootstrapService } from './bootstrap/bootstrap.service';\r\nimport { ICommonKeyValues } from '../@types/core';\r\n\r\n@Injectable()\r\nexport class CommonGeneralSettingsService {\r\n\tprivate generalSettings = {};\r\n\r\n\tconstructor (private commonBootstrapService: CommonBootstrapService) {}\r\n\r\n\tinit (): void {\r\n\t\tconst bootstrap = this.commonBootstrapService.getBootstrap('GeneralSettings');\r\n\r\n\t\tif (bootstrap) {\r\n\t\t\tthis.setGeneralSettings(bootstrap);\r\n\t\t}\r\n\t}\r\n\r\n\tsetGeneralSettings (data: {}): void {\r\n\t\tassign(this.generalSettings, data);\r\n\t}\r\n\r\n\tgetGeneralSettings (key?: string) {\r\n\t\treturn merge(key ? get(this.generalSettings, key) : this.generalSettings);\r\n\t}\r\n\r\n\thasMeridiem (): boolean {\r\n\t\tconst timeFormat = this.getGeneralSettings('TimeFormat');\r\n\r\n\t\treturn timeFormat ? !!timeFormat.PmDesignator || !!timeFormat.AmDesignator : false;\r\n\t}\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CommonNumberWithUnitsFormatterPipe } from './common_number_with_units_formatter.pipe';\r\n\r\n@Pipe({\r\n\tname: 'commonPercentFormatter',\r\n})\r\nexport class CommonPercentPipe implements PipeTransform {\r\n\tconstructor(\r\n\t\tprivate commonNumberWithUnitsFormatter: CommonNumberWithUnitsFormatterPipe,\r\n\t) {}\r\n\ttransform (data: any): string {\r\n\t\treturn this.commonNumberWithUnitsFormatter.transform(data, '%');\r\n\t}\r\n}\r\n","import {\r\n\tNg2StateDeclaration,\r\n\tTransition,\r\n\tTransitionService,\r\n} from '@uirouter/angular';\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport {\r\n\tforEach,\r\n\tget,\r\n\tisEmpty,\r\n\twords,\r\n} from 'lodash';\r\n\r\nimport {\r\n\tReplaySubject,\r\n\tSubject,\r\n} from 'rxjs';\r\n\r\nimport { CommonLocaleService } from './locale/locale.service';\r\n\r\ndeclare interface ICommonAppLayoutData {\r\n\tlayoutMode: string;\r\n\tpageClasses: string;\r\n\thtmlClasses: string;\r\n}\r\n\r\ndeclare interface ICommonAppLayouTransitionState {\r\n\tevent: string;\r\n\ttransition?: Transition;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class CommonAppLayoutService {\r\n\tprivate resizeSubheaderSubject$: Subject = new Subject();\r\n\tprivate data: ICommonAppLayoutData;\r\n\tprivate transitionStateChanges$ = new ReplaySubject(1);\r\n\r\n\tprivate contentLoader = {\r\n\t\tisLoading: false,\r\n\t\ttitle: '',\r\n\t};\r\n\r\n\tconstructor(\r\n\t\tprivate transitionService: TransitionService,\r\n\t\tprivate commonLocaleService: CommonLocaleService,\r\n\t) {}\r\n\r\n\tsetData (module: string, toState: Ng2StateDeclaration): void {\r\n\t\tconst stateNames = words(`${(get(toState, 'name', '')).toLowerCase()} ${(get(toState, 'parent', '') as string).toLowerCase()}`);\r\n\t\tconst pageClasses = [];\r\n\t\tconst htmlClasses = ['l-page'];\r\n\t\tconst layoutMode = get(toState, 'data.layoutMode') || module;\r\n\r\n\t\tif (layoutMode) {\r\n\t\t\tpageClasses.push('l-page--' + layoutMode);\r\n\t\t}\r\n\r\n\t\tif (!isEmpty(stateNames)) {\r\n\t\t\tforEach(stateNames, (item) => {\r\n\t\t\t\tpageClasses.push(`l-page--${item}`);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (toState.data) {\r\n\t\t\tif (toState.data.print) {\r\n\t\t\t\tpageClasses.push('l-page--print');\r\n\t\t\t\thtmlClasses.push(`${module}--print`);\r\n\t\t\t}\r\n\r\n\t\t\tif (toState.data.newDesign) {\r\n\t\t\t\tpageClasses.push('l-page--new_design');\r\n\t\t\t\thtmlClasses.push(`${module}--new_design`);\r\n\t\t\t}\r\n\r\n\t\t\tif (toState.data.withRightPanel) {\r\n\t\t\t\tpageClasses.push('l-page--with_right_panel');\r\n\t\t\t\thtmlClasses.push(`${module}--with_right_panel`);\r\n\t\t\t}\r\n\r\n\t\t\tif (toState.data.withoutPanels) {\r\n\t\t\t\tpageClasses.push('l-page--without_panels');\r\n\t\t\t\thtmlClasses.push(`${module}--without_panels`);\r\n\t\t\t}\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (!toState.data.notScrollToTop) {\r\n\t\t\t\t\t$(window).scrollTop(0);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.data = {\r\n\t\t\tlayoutMode,\r\n\t\t\tpageClasses: pageClasses.join(' '),\r\n\t\t\thtmlClasses: htmlClasses.join(' '),\r\n\t\t};\r\n\t}\r\n\r\n\tgetData (path?: string): string | ICommonAppLayoutData {\r\n\t\treturn path ? get(this.data, path) : this.data;\r\n\t}\r\n\r\n\tgetResizeSubheaderSubject (): Subject {\r\n\t\treturn this.resizeSubheaderSubject$;\r\n\t}\r\n\r\n\ttriggerResizeSubheader (): void {\r\n\t\tthis.resizeSubheaderSubject$.next();\r\n\t}\r\n\r\n\tsetContentLoader (isLoading: boolean, title?: string): void {\r\n\t\tthis.contentLoader.isLoading = isLoading;\r\n\t\tthis.contentLoader.title = title!;\r\n\t}\r\n\r\n\tgetContentLoader (key: string): boolean | string {\r\n\t\treturn get(this.contentLoader, key);\r\n\t}\r\n\r\n\tinitWatchTransitionChanges (): void {\r\n\t\tthis.transitionService.onBefore({}, (t: Transition) => {\r\n\t\t\tthis.transitionStateChanges$.next({\r\n\t\t\t\tevent: 'before',\r\n\t\t\t\ttransition: t,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.transitionService.onStart({}, (t: Transition) => {\r\n\t\t\tthis.transitionStateChanges$.next({\r\n\t\t\t\tevent: 'start',\r\n\t\t\t\ttransition: t,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.transitionService.onSuccess({}, (t: Transition) => {\r\n\t\t\tthis.transitionStateChanges$.next({\r\n\t\t\t\tevent: 'success',\r\n\t\t\t\ttransition: t,\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tsubscribeOnBeforeTransition (): void {\r\n\t\tthis.transitionStateChanges$\r\n\t\t\t\t.subscribe((response) => {\r\n\t\t\t\t\tif (response.event === 'before') {\r\n\t\t\t\t\t\tthis.setData('meetings', response.transition!.to());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tsubscribeOtherTransition (): void {\r\n\t\tthis.transitionStateChanges$.subscribe((response) => {\r\n\t\t\tconst loaderTitle = get(response.transition!.to(), 'data.appLoaderTitle');\r\n\r\n\t\t\tif (response.event === 'start' && !!loaderTitle) {\r\n\t\t\t\tthis.setContentLoader(true, this.commonLocaleService.instant(loaderTitle));\r\n\t\t\t}\r\n\r\n\t\t\t// затреггирим ресайз хэдера если был переход c перезагрузкой страницы\r\n\t\t\tif (response.transition!.$from().name === response.transition!.$to().name) {\r\n\t\t\t\tthis.triggerResizeSubheader();\r\n\t\t\t\tthis.setContentLoader(false);\r\n\t\t\t}\r\n\r\n\t\t\tif (response.event === 'success') {\r\n\t\t\t\t// затреггирим ресайз хэдера если был переход, но без перезагрузки страницы\r\n\t\t\t\tthis.triggerResizeSubheader();\r\n\t\t\t\tresponse.transition!.promise.then(() => {\r\n\t\t\t\t\tthis.setContentLoader(false);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import { toNumber } from 'lodash';\r\n\r\nexport const setAnimateProgress = ($: JQueryStatic) => {\r\n\tconst PROGRESS_OVERLAY_CLASS = 'b-progress-overlay';\r\n\tconst PROGRESS_BODY_OVERFLOW_CLASS = 'b-progress-body_overflow';\r\n\tconst ieDetector = (userAgent: string): number | boolean => {\r\n\t\tlet ieVersion: number | null = null;\r\n\r\n\t\tconst regExp: {[key: number]: RegExp} = {\r\n\t\t\t\t9: /Trident\\/5/i,\r\n\t\t\t\t10: /Trident\\/6/i,\r\n\t\t\t\t11: /Trident\\/7/i,\r\n\t\t\t};\r\n\r\n\t\tfor (const key in regExp) {\r\n\t\t\tif (regExp.hasOwnProperty(key)) {\r\n\t\t\t\tif (regExp[key].test(userAgent)) {\r\n\t\t\t\t\tieVersion = toNumber(key);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ieVersion || false;\r\n\t};\r\n\r\n\tconst isIe = ieDetector(window.navigator.userAgent);\r\n\tconst getTemplate = (label: string) => {\r\n\t\treturn '
' + label + '
';\r\n\t};\r\n\tlet animateProgressCounter = 0;\r\n\r\n\t$.animateProgress = (params: {container: string | JQuery, isFixed?: boolean, label?: string}) => {\r\n\t\t\tconst container = typeof params.container === 'string' ? $(params.container) : params.container;\r\n\t\t\tconst body = $('body');\r\n\t\t\tlet progressEl: JQuery;\r\n\t\t\tlet progressElWidth: number;\r\n\r\n\t\t\tparams.isFixed = params.isFixed !== false;\r\n\r\n\t\t\tfunction animate () {\r\n\t\t\t\tprogressEl\r\n\t\t\t\t\t.css('left', -progressElWidth)\r\n\t\t\t\t\t.animate({ left: '100%' }, 2000, 'easeInOutCirc', animate);\r\n\t\t\t}\r\n\r\n\t\t\tfunction enable () {\r\n\t\t\t\tconst hasBodyOverflowClass = body.hasClass(PROGRESS_BODY_OVERFLOW_CLASS);\r\n\r\n\t\t\t\tcontainer\r\n\t\t\t\t\t.addClass(PROGRESS_OVERLAY_CLASS + (params.isFixed ? '' : ' is-absolute'))\r\n\t\t\t\t\t.html(getTemplate(params.label as string));\r\n\r\n\t\t\t\tif (isIe && isIe < 11) {\r\n\t\t\t\t\tprogressEl = container.find('.b-progress-ie');\r\n\t\t\t\t\tprogressElWidth = progressEl.width()!;\r\n\r\n\t\t\t\t\tanimate();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (params.isFixed) {\r\n\t\t\t\t\tanimateProgressCounter++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!hasBodyOverflowClass && params.isFixed) {\r\n\t\t\t\t\tbody.addClass(PROGRESS_BODY_OVERFLOW_CLASS);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction disable () {\r\n\t\t\t\tcontainer.removeClass(PROGRESS_OVERLAY_CLASS + (params.isFixed ? '' : ' is-absolute'));\r\n\t\t\t\tcontainer\r\n\t\t\t\t\t.find('.b-progress-wrapper')\r\n\t\t\t\t\t.remove();\r\n\r\n\t\t\t\tif (params.isFixed && animateProgressCounter > 0) {\r\n\t\t\t\t\tanimateProgressCounter--;\r\n\t\t\t\t}\r\n\t\t\t\tif (body.hasClass(PROGRESS_BODY_OVERFLOW_CLASS) && animateProgressCounter < 1) {\r\n\t\t\t\t\tbody.removeClass(PROGRESS_BODY_OVERFLOW_CLASS);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction setLabel (label: string) {\r\n\t\t\t\tcontainer\r\n\t\t\t\t\t.find('.b-progress-label')\r\n\t\t\t\t\t.html(label);\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tenable,\r\n\t\t\t\tdisable,\r\n\t\t\t\tsetLabel,\r\n\t\t\t};\r\n\t\t};\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CommonValidationComponent } from './validation.component';\r\nimport { CommonMinlengthValidatorModule } from '../../../validators/minlength/minlength.module';\r\nimport { CommonMaxlengthValidatorModule } from '../../../validators/maxlength/maxlength.module';\r\nimport { CommonRequiredValidatorModule } from '../../../validators/required/required.module';\r\nimport { CommonPatternValidatorModule } from '../../../validators/pattern/pattern.module';\r\nimport { CommonEmailValidatorModule } from '../../../validators/email/email.module';\r\nimport { CommonMatchValidatorModule } from '../../../validators/match/match.module';\r\nimport { CommonGroupRequiredModule } from '../../../validators/group_required/group_required.module';\r\nimport { CommonNumberInSafeRangeValidatorModule } from '../../../validators/number_In_safe_range/number_In_safe_range.module';\r\nimport { CommonMinValidatorModule } from '../../../validators/min/min.module';\r\nimport { CommonMaxValidatorModule } from '../../../validators/max/max.module';\r\nimport { CommonPasswordValidatorModule } from '../../../validators/password/common.password_validator.module';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tCommonMinlengthValidatorModule,\r\n\t\tCommonMaxlengthValidatorModule,\r\n\t\tCommonRequiredValidatorModule,\r\n\t\tCommonPatternValidatorModule,\r\n\t\tCommonEmailValidatorModule,\r\n\t\tCommonMatchValidatorModule,\r\n\t\tCommonGroupRequiredModule,\r\n\t\tCommonNumberInSafeRangeValidatorModule,\r\n\t\tCommonMinValidatorModule,\r\n\t\tCommonMaxValidatorModule,\r\n\t\tCommonPasswordValidatorModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonValidationComponent,\r\n\t\tCommonMinlengthValidatorModule,\r\n\t\tCommonMaxlengthValidatorModule,\r\n\t\tCommonRequiredValidatorModule,\r\n\t\tCommonPatternValidatorModule,\r\n\t\tCommonEmailValidatorModule,\r\n\t\tCommonMatchValidatorModule,\r\n\t\tCommonGroupRequiredModule,\r\n\t\tCommonNumberInSafeRangeValidatorModule,\r\n\t\tCommonMinValidatorModule,\r\n\t\tCommonMaxValidatorModule,\r\n\t\tCommonPasswordValidatorModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonValidationComponent,\r\n\t],\r\n\tentryComponents: [\r\n\t\tCommonValidationComponent,\r\n\t],\r\n})\r\nexport class CommonValidationModule {}\r\n","// New version src/Common/directives/autofocus.directive.ts\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/directives/ng_autofocus_directive.js\r\n\r\nimport {\r\n\tDirective,\r\n\tElementRef,\r\n\tInput,\r\n\tSimpleChanges,\r\n} from '@angular/core';\r\nimport { isNil } from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonAutofocus]',\r\n})\r\nexport class CommonAutofocusDirective {\r\n\t@Input('commonAutofocus') target: ElementRef;\r\n\t@Input('commonAutofocusDelay') delay: number = 0;\r\n\t@Input('commonAutofocusTrigger') trigger?: any;\r\n\tprivate needWaiting: boolean = false;\r\n\r\n\tngOnChanges (changes: SimpleChanges): void {\r\n\t\tif (this.needWaiting && changes.trigger && !changes.trigger.firstChange && changes.trigger.currentValue) {\r\n\t\t\tthis.focusWithDelay();\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit (): void {\r\n\t\tthis.needWaiting = !isNil(this.trigger);\r\n\r\n\t\tif (!this.needWaiting) {\r\n\t\t\tthis.focusWithDelay();\r\n\t\t}\r\n\t}\r\n\r\n\tfocusWithDelay (): void {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.target.nativeElement.focus();\r\n\t\t}, this.delay);\r\n\t}\r\n}\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'commonPassportNumberFormatter',\r\n})\r\nexport class CommonPassportNumberFormatterPipe implements PipeTransform {\r\n\ttransform (data: string): string {\r\n\t\tconst clearRe = /[\\s_-]/g;\r\n\t\tconst formatRe = /(\\d{2})(\\d{2})(\\d{6})/;\r\n\r\n\t\tdata = data.replace(clearRe, '');\r\n\t\treturn data.replace(formatRe, '$1 $2 $3');\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tInjector,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\ttrigger,\r\n\ttransition,\r\n} from '@angular/animations';\r\n\r\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\r\n\r\n@Component({\r\n\ttemplateUrl: './authentication.meetings.component.pug',\r\n\tselector: 'authentication-meetings-app',\r\n\tanimations: [\r\n\t\ttrigger('parentAnimation', [\r\n\t\t\ttransition(':enter', []),\r\n\t\t]),\r\n\t],\r\n})\r\nexport class AuthenticationMeetingsComponent extends CommonBaseComponent {\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t) {\r\n\t\tsuper(injector);\r\n\t}\r\n}\r\n","\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
","// New version src/Common/validators/data_validation.constant.ts DATA_VALIDATION\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/infinite_scroll_module.js DATA_VALIDATION\r\n\r\nexport const DATA_VALIDATION = {\r\n\temail: /^[^ @]+@[^ @]/,\r\n};\r\n","import {\r\n\tComponent,\r\n\tInjector,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tNgForm,\r\n\tFormControl,\r\n} from '@angular/forms';\r\n\r\nimport * as Inputmask from 'inputmask';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { UIRouter } from '@uirouter/angular';\r\n\r\nimport {\r\n\tfindLast,\r\n\tincludes,\r\n} from 'lodash';\r\n\r\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\r\nimport { CommonSecondsFormatterPipe } from '../../../Common/pipes/seconds_formatter.pipe';\r\nimport { CommonAppDataService } from '../../../Common/services/app_data/app_data.service';\r\nimport { CommonUserDataService } from '../../../Common/services/user_data.service';\r\nimport { CommonServerDateService } from '../../../Common/services/server_date.service';\r\n\r\nimport { AuthenticationMeetingsUserService, IAuthenticationMeetingsUserActionsResponse } from '../authentication/services/authentication.meetings.user.service';\r\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\r\nimport { MeetingsAuthAnimation } from '../animation/animation';\r\nimport { IAuthenticationMeetingsConfirmUser } from '../authentication/authentication.interfaces';\r\n\r\n@Component({\r\n\tselector: 'authentication-meetings-confirm',\r\n\ttemplateUrl: './authentication.meetings.confirm.component.pug',\r\n\tanimations: [\r\n\t\tMeetingsAuthAnimation,\r\n\t],\r\n})\r\nexport class AuthenticationMeetingsConfirmComponent extends CommonBaseComponent {\r\n\tstate = {\r\n\t\tisLoading: false,\r\n\t\tresendDelaySeconds: 0,\r\n\t\tisSending: false,\r\n\t};\r\n\r\n\tdata: IAuthenticationMeetingsConfirmUser = {\r\n\t\tCode: '',\r\n\t};\r\n\r\n\tresource = {\r\n\t\tvalidationCustomErrors: {\r\n\t\t\tcustom: '',\r\n\t\t},\r\n\t\tformattedPhoneNumber: '',\r\n\t};\r\n\r\n\r\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\r\n\r\n\tprivate stopResendTimer: number;\r\n\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\r\n\t\tprivate router: UIRouter,\r\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\r\n\t\tprivate commonUserDataService: CommonUserDataService,\r\n\t\tprivate commonServerDateService: CommonServerDateService,\r\n\t\tprivate commonSecondsFormatterPipe: CommonSecondsFormatterPipe,\r\n\t\tprivate commonAppDataService: CommonAppDataService,\r\n\t) {\r\n\t\tsuper(injector);\r\n\t}\r\n\r\n\tngOnInit (): void {\r\n\t\tif (this.commonUserDataService.getDataByPath('nextPhoneConfirmationAttemptTime')) {\r\n\t\t\tthis.resource.formattedPhoneNumber = Inputmask.format(\r\n\t\t\t\tthis.commonUserDataService.getDataByPath('phoneNumber'), {\r\n\t\t\t\t\talias: 'casem-phone-numb-11',\r\n\t\t\t\t},\r\n\t\t\t);\r\n\r\n\t\t\tthis.initResendTimer();\r\n\t\t\tthis.autofillConfirmationCode();\r\n\t\t} else {\r\n\t\t\tthis.router.stateService.go('login');\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy (): void {\r\n\t\tclearInterval(this.stopResendTimer);\r\n\t}\r\n\r\n\tconfirm (form: NgForm): void {\r\n\t\tif (form.valid) {\r\n\t\t\tthis.state.isLoading = true;\r\n\r\n\t\t\tthis.authenticationMeetingsUserService\r\n\t\t\t\t.confirm(this.data)\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tfinalize(() => this.state.isLoading = false),\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\r\n\t\t\t\t\tif (response.IsSuccess) {\r\n\t\t\t\t\t\tthis.router.dispose();\r\n\t\t\t\t\t\tconst authenticationReturnUrl = this.commonAppDataService.getDataByPath('authenticationReturnUrl') || '/';\r\n\r\n\t\t\t\t\t\twindow.location.assign(authenticationReturnUrl);\r\n\r\n\t\t\t\t\t\tif (this.isAuthenticationReturnFrontUrl(authenticationReturnUrl)) {\r\n\t\t\t\t\t\t\t// перезагрузка страницы если это бековская ссылка приведет к потере редиректа.\r\n\t\t\t\t\t\t\t// если же ссылка фронтовая с содержанием хэша то нам нужна перезагрузка страницы чтобы загрузилось нужное ангуляр приложение. и включился роутер.\r\n\t\t\t\t\t\t\twindow.location.reload();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.code as FormControl);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinitResendTimer (): void {\r\n\t\tthis.state.resendDelaySeconds = this.getResendDelaySeconds();\r\n\r\n\t\tif (this.state.resendDelaySeconds) {\r\n\t\t\tthis.stopResendTimer = window.setInterval(() => {\r\n\t\t\t\tthis.state.resendDelaySeconds--;\r\n\r\n\t\t\t\tif (!this.state.resendDelaySeconds) {\r\n\t\t\t\t\tclearInterval(this.stopResendTimer);\r\n\t\t\t\t}\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\t}\r\n\r\n\tgetResendDelaySeconds (): number {\r\n\t\tconst nextPhoneConfirmationAttemptTime = this.commonUserDataService.getDataByPath('nextPhoneConfirmationAttemptTime');\r\n\r\n\t\treturn !nextPhoneConfirmationAttemptTime ? 0 :\r\n\t\t\tMath.abs(this.commonServerDateService.getMoscowDateTime().diff(this.commonServerDateService.getMoscowDateTime(nextPhoneConfirmationAttemptTime), 'seconds') || 0);\r\n\t}\r\n\r\n\tgetWaitingTimerText (): string {\r\n\t\treturn this.instant('meetings_auth.forms.confirm.controls.timer_text.title', {\r\n\t\t\ttime: this.commonSecondsFormatterPipe.transform(this.state.resendDelaySeconds),\r\n\t\t});\r\n\t}\r\n\r\n\tautofillConfirmationCode (): void {\r\n\t\tconst codeLength = 4;\r\n\t\tconst phone = this.commonUserDataService.getDataByPath('phoneNumber');\r\n\t\tconst cookieWithCode = findLast(document.cookie.split(';'), (cookie) => includes(cookie, `SendTo-${phone}`));\r\n\r\n\t\tif (cookieWithCode) {\r\n\t\t\tconst code = decodeURIComponent(cookieWithCode).slice(-codeLength);\r\n\r\n\t\t\tif (code) {\r\n\t\t\t\tthis.data.Code = code;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tresendCode (form: NgForm): void {\r\n\t\tif (!this.state.isSending) {\r\n\t\t\tthis.state.isSending = true;\r\n\r\n\t\t\tthis.authenticationMeetingsUserService.sendCode()\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tfinalize(() => this.state.isSending = false),\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\r\n\t\t\t\t\tif (response.IsSuccess) {\r\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(response.Result.ExpiresAt, 'nextPhoneConfirmationAttemptTime');\r\n\t\t\t\t\t\tthis.initResendTimer();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.code as FormControl);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate isAuthenticationReturnFrontUrl (authenticationReturnUrl: string): boolean {\r\n\t\tconst splittedFullUrl = (location.origin + authenticationReturnUrl).split('#');\r\n\t\tconst isMatchedUrls = splittedFullUrl[0] === this.commonAppDataService.getDataByPath('appFullLocationUrl');\r\n\t\tconst hasHash = !!splittedFullUrl[1];\r\n\t\treturn isMatchedUrls && hasHash;\r\n\t}\r\n}\r\n","\n
\n
{{'meetings_auth.forms.confirm.title' | translate}}
\n
\n

{{'meetings_auth.forms.confirm.description' | translate}}

\n

{{resource.formattedPhoneNumber}}

\n

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

\n
\n
\n
\n
\n \n
\n
\n
\n
{{'meetings_auth.forms.confirm.controls.back.title' | translate}}
\n {{'meetings_auth.forms.confirm.controls.confirm_btn_progress.title' | translate}}{{'meetings_auth.forms.confirm.controls.confirm_btn.title' | translate}}\n
\n
\n
","/* Copyright 2014+, Federico Zivolo, LICENSE at https://github.com/FezVrasta/bootstrap-material-design/blob/master/LICENSE.md */\r\n/* globals jQuery, navigator */\r\n\r\nimport { ICommonKeyValues } from '../@types/core';\r\n\r\n// tslint:disable:only-arrow-functions\r\nexport const setRipples = ($: JQueryStatic) => {\r\n\t/**\r\n\t * Define the name of the plugin\r\n\t */\r\n\tconst ripples = 'ripples';\r\n\r\n\t/**\r\n\t * Define the defaults of the plugin\r\n\t */\r\n\tconst defaults = {};\r\n\r\n\t/**\r\n\t\t* Create the main plugin function\r\n\t\t*/\r\n\tclass Ripples {\r\n\t\telement: JQuery;\r\n\t\toptions: ICommonKeyValues;\r\n\t\tdefaults: ICommonKeyValues;\r\n\t\tname: string;\r\n\r\n\t\tconstructor(element: JQuery, options: ICommonKeyValues) {\r\n\t\t\tthis.element = $(element);\r\n\r\n\t\t\tthis.options = $.extend({}, defaults, options);\r\n\r\n\t\t\tthis.defaults = defaults;\r\n\t\t\tthis.name = ripples;\r\n\r\n\t\t\tthis.init();\r\n\t\t}\r\n\r\n\t\tinit() {\r\n\t\t\tconst $element = this.element;\r\n\r\n\t\t\t$element.on('mousedown touchstart', (event: Event) => {\r\n\t\t\t\t/**\r\n\t\t\t\t * Verify if the user is just touching on a device and return if so\r\n\t\t\t\t */\r\n\t\t\t\tif (this.isTouch() && event.type === 'mousedown') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Verify if the current element already has a ripple wrapper element and\r\n\t\t\t\t * creates if it doesn't\r\n\t\t\t\t */\r\n\t\t\t\tif (!($element.find('.ripple-container').length)) {\r\n\t\t\t\t\t$element.append('
');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Find the ripple wrapper\r\n\t\t\t\t */\r\n\t\t\t\tconst $wrapper = $element.children('.ripple-container');\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Get relY and relX positions\r\n\t\t\t\t */\r\n\t\t\t\tconst relY = this.getRelY($wrapper, event);\r\n\t\t\t\tconst relX = this.getRelX($wrapper, event);\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * If relY and/or relX are false, return the event\r\n\t\t\t\t */\r\n\t\t\t\tif (!relY && !relX) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Get the ripple color\r\n\t\t\t\t */\r\n\t\t\t\tconst rippleColor = this.getRipplesColor($element);\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Create the ripple element\r\n\t\t\t\t */\r\n\t\t\t\tconst $ripple = $('
');\r\n\r\n\t\t\t\t$ripple\r\n\t\t\t\t.addClass('ripple')\r\n\t\t\t\t.css({\r\n\t\t\t\t\t'left': relX,\r\n\t\t\t\t\t'top': relY,\r\n\t\t\t\t\t'background-color': rippleColor\r\n\t\t\t\t});\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Append the ripple to the wrapper\r\n\t\t\t\t */\r\n\t\t\t\t$wrapper.append($ripple);\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Make sure the ripple has the styles applied (ugly hack but it works)\r\n\t\t\t\t */\r\n\t\t\t\t(function () { return window.getComputedStyle($ripple[0]).opacity; })();\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Turn on the ripple animation\r\n\t\t\t\t */\r\n\t\t\t\tthis.rippleOn($element, $ripple);\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Call the rippleEnd function when the transition 'on' ends\r\n\t\t\t\t */\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.rippleEnd($ripple);\r\n\t\t\t\t}, 500);\r\n\r\n\t\t\t\t/**\r\n\t\t\t\t * Detect when the user leaves the element\r\n\t\t\t\t */\r\n\t\t\t\t$element.on('mouseup mouseleave touchend', () => {\r\n\t\t\t\t\t$ripple.data('mousedown', 'off');\r\n\r\n\t\t\t\t\tif ($ripple.data('animating') === 'off') {\r\n\t\t\t\t\t\tthis.rippleOut($ripple);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tgetNewSize($element: JQuery, $ripple: JQuery) {\r\n\t\t\treturn (Math.max($element.outerWidth()!, $element.outerHeight()!) / $ripple.outerWidth()!) * 2.5;\r\n\t\t}\r\n\r\n\t\tgetRelX($wrapper: JQuery, event: any): number | string {\r\n\t\t\tconst wrapperOffset = $wrapper.offset()!;\r\n\r\n\t\t\tif (!this.isTouch()) {\r\n\t\t\t\t/**\r\n\t\t\t\t * Get the mouse position relative to the ripple wrapper\r\n\t\t\t\t */\r\n\t\t\t\treturn event.pageX - wrapperOffset.left;\r\n\t\t\t} else {\r\n\t\t\t\t/**\r\n\t\t\t\t * Make sure the user is using only one finger and then get the touch\r\n\t\t\t\t * position relative to the ripple wrapper\r\n\t\t\t\t */\r\n\t\t\t\tevent = event.originalEvent;\r\n\r\n\t\t\t\tif (event.touches.length === 1) {\r\n\t\t\t\t\treturn event.touches[0].pageX - wrapperOffset.left;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tgetRelY ($wrapper: JQuery, event: any): number | string {\r\n\t\t\tconst wrapperOffset = $wrapper.offset()!;\r\n\r\n\t\t\tif (!this.isTouch()) {\r\n\t\t\t\t/**\r\n\t\t\t\t * Get the mouse position relative to the ripple wrapper\r\n\t\t\t\t */\r\n\t\t\t\treturn event.pageY - wrapperOffset.top;\r\n\t\t\t} else {\r\n\t\t\t\t/**\r\n\t\t\t\t * Make sure the user is using only one finger and then get the touch\r\n\t\t\t\t * position relative to the ripple wrapper\r\n\t\t\t\t */\r\n\t\t\t\tevent = event.originalEvent;\r\n\r\n\t\t\t\tif (event.touches.length === 1) {\r\n\t\t\t\t\treturn event.touches[0].pageY - wrapperOffset.top;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Get the ripple color\r\n\t\t */\r\n\t\tgetRipplesColor ($element: JQuery) {\r\n\t\t\tconst color = $element.data('rippleColor') ? $element.data('rippleColor') : window.getComputedStyle($element[0]).color;\r\n\r\n\t\t\treturn color;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Verify if the client browser has transistion support\r\n\t\t */\r\n\t\thasTransitionSupport() {\r\n\t\t\tconst thisBody = document.body || document.documentElement;\r\n\t\t\tconst thisStyle = thisBody.style as ICommonKeyValues;\r\n\r\n\t\t\tconst support = (\r\n\t\t\t\tthisStyle.transition !== undefined ||\r\n\t\t\t\tthisStyle.WebkitTransition !== undefined ||\r\n\t\t\t\tthisStyle.MozTransition !== undefined ||\r\n\t\t\t\tthisStyle.MsTransition !== undefined ||\r\n\t\t\t\tthisStyle.OTransition !== undefined\r\n\t\t\t);\r\n\r\n\t\t\treturn support;\r\n\t\t}\r\n\r\n\r\n\t\t/**\r\n\t\t * Verify if the client is using a mobile device\r\n\t\t */\r\n\t\tisTouch () {\r\n\t\t\treturn /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * End the animation of the ripple\r\n\t\t */\r\n\t\trippleEnd ($ripple: JQuery) {\r\n\t\t\t$ripple.data('animating', 'off');\r\n\r\n\t\t\tif ($ripple.data('mousedown') === 'off') {\r\n\t\t\t\tthis.rippleOut($ripple);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Turn off the ripple effect\r\n\t\t */\r\n\t\trippleOut ($ripple: JQuery) {\r\n\t\t\t$ripple.off();\r\n\r\n\t\t\tif (this.hasTransitionSupport()) {\r\n\t\t\t\t$ripple.addClass('ripple-out');\r\n\t\t\t} else {\r\n\t\t\t\t$ripple.animate({'opacity': 0}, 100, () => {\r\n\t\t\t\t\t$ripple.trigger('transitionend');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t$ripple.on('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', () => {\r\n\t\t\t\t$ripple.remove();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Turn on the ripple effect\r\n\t\t */\r\n\t\trippleOn ($element: JQuery, $ripple: JQuery) {\r\n\t\t\tconst size = this.getNewSize($element, $ripple);\r\n\r\n\t\t\tif (this.hasTransitionSupport()) {\r\n\t\t\t\t$ripple\r\n\t\t\t\t.css({\r\n\t\t\t\t\t'-ms-transform': 'scale(' + size + ')',\r\n\t\t\t\t\t'-moz-transform': 'scale(' + size + ')',\r\n\t\t\t\t\t'-webkit-transform': 'scale(' + size + ')',\r\n\t\t\t\t\t'transform': 'scale(' + size + ')'\r\n\t\t\t\t})\r\n\t\t\t\t.addClass('ripple-on')\r\n\t\t\t\t.data('animating', 'on')\r\n\t\t\t\t.data('mousedown', 'on');\r\n\t\t\t} else {\r\n\t\t\t\t$ripple.animate({\r\n\t\t\t\t\t'width': Math.max($element.outerWidth()!, $element.outerHeight()!) * 2,\r\n\t\t\t\t\t'height': Math.max($element.outerWidth()!, $element.outerHeight()!) * 2,\r\n\t\t\t\t\t'margin-left': Math.max($element.outerWidth()!, $element.outerHeight()!) * (-1),\r\n\t\t\t\t\t'margin-top': Math.max($element.outerWidth()!, $element.outerHeight()!) * (-1),\r\n\t\t\t\t\t'opacity': 0.2\r\n\t\t\t\t}, 500, () => {\r\n\t\t\t\t\t$ripple.trigger('transitionend');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Create the jquery plugin function\r\n\t */\r\n\t$.fn.ripples = function (options: ICommonKeyValues) {\r\n\t\treturn this.each(() => {\r\n\t\t\tif (!$.data(this, 'plugin_' + ripples)) {\r\n\t\t\t\t$.data(this, 'plugin_' + ripples, (new Ripples(this, options)));\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n};\r\n// tslint:enable:only-arrow-functions\r\n","import {\r\n\tNgModule,\r\n\tApplicationRef,\r\n\tDoBootstrap,\r\n\tInjector,\r\n\tAPP_INITIALIZER,\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport {\r\n\tHttpClientModule,\r\n\tHTTP_INTERCEPTORS,\r\n} from '@angular/common/http';\r\nimport {\r\n\tforkJoin,\r\n\tof,\r\n\tfrom,\r\n} from 'rxjs';\r\nimport {\r\n\tcatchError,\r\n} from 'rxjs/operators';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { UrlService } from '@uirouter/core';\r\nimport * as FontFaceObserver from 'fontfaceobserver';\r\n\r\nimport { CommonLocaleService } from '../services/locale/locale.service';\r\nimport { CommonBootstrapDataService } from '../services/bootstrap/bootstrap_data.service';\r\nimport { CommonUserDataService } from '../services/user_data.service';\r\nimport {\r\n\tCommonAppDataService,\r\n\tcommonAppDataServiceFactory,\r\n} from '../services/app_data/app_data.service';\r\nimport { LOCAL_APP_DATA_GETTER } from '../services/app_data/local_app_data.token';\r\nimport { COMMON_APP_CONFIG } from './app.config.token';\r\nimport { CommonNotificationService } from '../services/notification.service';\r\nimport { CommonGeneralSettingsService } from '../services/general_settings.service';\r\nimport { CommonLocaleModule } from '../services/locale/locale.module';\r\nimport { CommonErrorInterceptor } from '../interceptors/error_interceptor.service';\r\nimport { CommonServerDateService } from '../services/server_date.service';\r\nimport { CommonPipesModule } from '../pipes/pipes.module';\r\nimport { CommonDirectivesModule } from '../directives/directives.module';\r\nimport { CommonBootstrapService } from '../services/bootstrap/bootstrap.service';\r\nimport { CommonTextfieldInputMaskAliasesService } from '../controls/textfield/inputmasks_aliases_service';\r\nimport { CommonAppLayoutService } from '../services/common_app_layout.service';\r\nimport { setAnimateProgress } from '../vendor/common_animate_progress';\r\nimport { setRipples } from '../vendor/ripples';\r\nimport { isFunction } from 'lodash';\r\n\r\nlet animate: IAnimateProgressActions;\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tHttpClientModule,\r\n\t\tCommonLocaleModule,\r\n\t\tCommonPipesModule,\r\n\t\tCommonDirectivesModule,\r\n\t],\r\n\texports: [\r\n\t\tBrowserModule,\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tHttpClientModule,\r\n\t\tTranslateModule,\r\n\t\tCommonLocaleModule,\r\n\t\tCommonPipesModule,\r\n\t\tCommonDirectivesModule,\r\n\t],\r\n\tproviders: [\r\n\t\tCommonBootstrapDataService,\r\n\t\tCommonUserDataService,\r\n\t\tCommonNotificationService,\r\n\t\t{\r\n\t\t\tprovide: CommonAppDataService,\r\n\t\t\tuseFactory: commonAppDataServiceFactory,\r\n\t\t\tdeps: [LOCAL_APP_DATA_GETTER, COMMON_APP_CONFIG],\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: HTTP_INTERCEPTORS,\r\n\t\t\tuseClass: CommonErrorInterceptor,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\tCommonGeneralSettingsService,\r\n\t\tCommonServerDateService,\r\n\t\tCommonBootstrapService,\r\n\t\t{\r\n\t\t\tprovide: APP_INITIALIZER,\r\n\t\t\tuseFactory: appInitializerFactory,\r\n\t\t\tdeps: [\r\n\t\t\t\tUrlService,\r\n\t\t\t\tCommonLocaleService,\r\n\t\t\t\tCommonAppDataService,\r\n\t\t\t\tCommonUserDataService,\r\n\t\t\t\tCommonBootstrapDataService,\r\n\t\t\t\tCommonAppLayoutService,\r\n\t\t\t],\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class CommonAppModule implements DoBootstrap {\r\n\tprivate app: ApplicationRef = this.injector.get(ApplicationRef);\r\n\tprivate commonAppDataService: CommonAppDataService = this.injector.get(CommonAppDataService);\r\n\tprivate commonLocaleService: CommonLocaleService = this.injector.get(CommonLocaleService);\r\n\tprivate commonTextfieldInputMaskAliasesService: CommonTextfieldInputMaskAliasesService = this.injector.get(CommonTextfieldInputMaskAliasesService);\r\n\tprivate commonServerDateService = this.injector.get(CommonServerDateService);\r\n\tprivate commonAppLayoutService = this.injector.get(CommonAppLayoutService);\r\n\tprivate commonNotificationService = this.injector.get(CommonNotificationService);\r\n\r\n\tprivate appData = this.commonAppDataService.getData();\r\n\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t) {\r\n\t\t// выполнять какие-либо действия нужно после инициализации приложения (когда уже инициализированы переводы и тд), но подписываться на изменения нужно в конструкторе\r\n\t\t// поэтому организовано через observable\r\n\t\tif (this.appData.shouldInitLayoutService) {\r\n\t\t\tthis.commonAppLayoutService.initWatchTransitionChanges();\r\n\t\t}\r\n\t}\r\n\r\n\tngDoBootstrap () {\r\n\t\tthis.appModuleRun(this.app);\r\n\t}\r\n\r\n\tappModuleRun (\r\n\t\tapp: ApplicationRef,\r\n\t) {\r\n\t\t/**\r\n\t\t * Выполняется после APP_INITIALIZER. Все данные в сервисах уже есть.\r\n\t\t */\r\n\t\tif (this.appData.shouldInitLayoutService) {\r\n\t\t\tthis.commonAppLayoutService.subscribeOtherTransition();\r\n\t\t}\r\n\r\n\t\tthis.commonServerDateService.init();\r\n\t\tthis.commonLocaleService.setFormats();\r\n\t\tthis.commonTextfieldInputMaskAliasesService.init();\r\n\r\n\t\tif (this.appData.mainComponent) {\r\n\t\t\tapp.bootstrap(this.appData.mainComponent);\r\n\t\t}\r\n\r\n\t\tif (isFunction(this.appData.callback)) {\r\n\t\t\tthis.appData.callback();\r\n\t\t}\r\n\t\tconst { appStartNotification } = this.commonAppDataService.getData();\r\n\t\tif (appStartNotification) {\r\n\t\t\tthis.commonNotificationService.show(appStartNotification.Header, appStartNotification.Message, appStartNotification.Type);\r\n\t\t}\r\n\r\n\t\tdisableLoader();\r\n\t}\r\n}\r\n\r\nexport function appInitializerFactory (\r\n\turlService: UrlService,\r\n\tcommonLocaleService: CommonLocaleService,\r\n\tcommonAppDataService: CommonAppDataService,\r\n\tcommonUserDataService: CommonUserDataService,\r\n\tcommonBootstrapDataService: CommonBootstrapDataService,\r\n\tcommonAppLayoutService: CommonAppLayoutService,\r\n) {\r\n\tconst FONT_LOADING_TIMEOUT = 60000;\r\n\tconst { hasInitialLoader, shouldAuthorize, shouldInitLayoutService } = commonAppDataService.getData();\r\n\r\n\t// останавливаем UiRouter до полной загрузки данных\r\n\turlService.deferIntercept();\r\n\r\n\treturn () => {\r\n\t\t/**\r\n\t\t * Выполняется до ngDoBootstrap. ngDoBootstrap ждет загрузки этих данных\r\n\t\t */\r\n\t\tsetAnimateProgress($);\r\n\t\tsetRipples($);\r\n\r\n\t\tif (hasInitialLoader) {\r\n\t\t\tenableLoader();\r\n\t\t}\r\n\r\n\t\tconst promises = [\r\n\t\t\tcommonLocaleService.init(),\r\n\t\t\tcommonUserDataService.init(shouldAuthorize),\r\n\t\t\tfrom(new FontFaceObserver('Roboto', { weight: 400 }).load('', FONT_LOADING_TIMEOUT))\r\n\t\t\t\t.pipe(catchError(() => of(undefined))),\r\n\t\t\tfrom(new FontFaceObserver('Roboto', { weight: 500 }).load('', FONT_LOADING_TIMEOUT))\r\n\t\t\t\t.pipe(catchError(() => of(undefined))),\r\n\t\t\tfrom(new FontFaceObserver('Roboto', { weight: 700 }).load('', FONT_LOADING_TIMEOUT))\r\n\t\t\t\t.pipe(catchError(() => of(undefined))),\r\n\t\t];\r\n\r\n\t\tif (!shouldAuthorize) {\r\n\t\t\tpromises.push(commonBootstrapDataService.init(false));\r\n\t\t}\r\n\r\n\t\tif (shouldInitLayoutService) {\r\n\t\t\tcommonAppLayoutService.subscribeOnBeforeTransition();\r\n\t\t}\r\n\r\n\t\t// !!! внутри toPromise уже вызывается subscribe\r\n\t\t// https://github.com/ReactiveX/rxjs/blob/master/src/internal/Observable.ts#L474\r\n\t\treturn forkJoin(promises)\r\n\t\t\t.toPromise()\r\n\t\t\t.then(() => {\r\n\t\t\t\t// стартуем UiRouter только когда все данные загружены\r\n\t\t\t\t// https://bankro.atlassian.net/browse/CTB-2038\r\n\t\t\t\turlService.listen();\r\n\t\t\t\turlService.sync();\r\n\t\t\t});\r\n\t};\r\n}\r\n\r\nfunction enableLoader () {\r\n\tanimate = $.animateProgress({\r\n\t\tlabel: 'Загрузка',\r\n\t\tcontainer: '.app-loading',\r\n\t});\r\n\tanimate.enable();\r\n}\r\n\r\nfunction disableLoader () {\r\n\tif (animate) {\r\n\t\tanimate.disable();\r\n\t}\r\n\r\n\t$('.app-loading').remove();\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonMatchValidatorDirective } from './match.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonMatchValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonMatchValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonMatchValidatorModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CommonSecondsFormatterPipe } from './seconds_formatter.pipe';\r\nimport { CommonTwoDigitsNumberPipe } from './two_digits_number.pipe';\r\nimport { CommonDateFormatter } from './date_formatter.pipe';\r\nimport { CommonNAFormatter } from './na_formatter.pipe';\r\nimport { CommonNAToBlankFormatter } from './na_blank_formatter.pipe';\r\nimport { CommonCapitalizeFormatter } from './capitalize_formatter.pipe';\r\nimport { CommonPrettyNumberPipe } from './pretty_number.pipe';\r\nimport { CommonPercentPipe } from './common_percent_formatter.pipe';\r\nimport { CommonNumberWithUnitsFormatterPipe } from './common_number_with_units_formatter.pipe';\r\nimport { CommonEscapedBracketReplace } from './escape_bracket_replace.pipe';\r\nimport { CommonExtensionFormatterPipe } from './extension_formatter.pipe';\r\nimport { CommonPassportNumberFormatterPipe } from './passport_number_formatter.pipe';\r\nimport { CommonSubdivisionCodeFormatterPipe } from './subdivision_code_formatter.pipe';\r\nimport { CommonPrettyPhoneNumber } from './common_pretty_phone_number.pipe';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tCommonSecondsFormatterPipe,\r\n\t\tCommonTwoDigitsNumberPipe,\r\n\t\tCommonEscapedBracketReplace,\r\n\t\tCommonDateFormatter,\r\n\t\tCommonNAFormatter,\r\n\t\tCommonNAToBlankFormatter,\r\n\t\tCommonCapitalizeFormatter,\r\n\t\tCommonPrettyNumberPipe,\r\n\t\tCommonPercentPipe,\r\n\t\tCommonNumberWithUnitsFormatterPipe,\r\n\t\tCommonExtensionFormatterPipe,\r\n\t\tCommonPassportNumberFormatterPipe,\r\n\t\tCommonSubdivisionCodeFormatterPipe,\r\n\t\tCommonPrettyPhoneNumber,\r\n\t],\r\n\texports: [\r\n\t\tCommonSecondsFormatterPipe,\r\n\t\tCommonTwoDigitsNumberPipe,\r\n\t\tCommonEscapedBracketReplace,\r\n\t\tCommonDateFormatter,\r\n\t\tCommonNAFormatter,\r\n\t\tCommonNAToBlankFormatter,\r\n\t\tCommonCapitalizeFormatter,\r\n\t\tCommonPrettyNumberPipe,\r\n\t\tCommonPercentPipe,\r\n\t\tCommonNumberWithUnitsFormatterPipe,\r\n\t\tCommonExtensionFormatterPipe,\r\n\t\tCommonPassportNumberFormatterPipe,\r\n\t\tCommonSubdivisionCodeFormatterPipe,\r\n\t\tCommonPrettyPhoneNumber,\r\n\t],\r\n\tproviders: [\r\n\t\tCommonSecondsFormatterPipe,\r\n\t\tCommonTwoDigitsNumberPipe,\r\n\t\tCommonEscapedBracketReplace,\r\n\t\tCommonDateFormatter,\r\n\t\tCommonNAFormatter,\r\n\t\tCommonNAToBlankFormatter,\r\n\t\tCommonCapitalizeFormatter,\r\n\t\tCommonPrettyNumberPipe,\r\n\t\tCommonPercentPipe,\r\n\t\tCommonNumberWithUnitsFormatterPipe,\r\n\t\tCommonExtensionFormatterPipe,\r\n\t\tCommonPassportNumberFormatterPipe,\r\n\t\tCommonSubdivisionCodeFormatterPipe,\r\n\t\tCommonPrettyPhoneNumber,\r\n\t],\r\n})\r\nexport class CommonPipesModule {}\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'commonTwoDigitsNumber',\r\n})\r\nexport class CommonTwoDigitsNumberPipe implements PipeTransform {\r\n\ttransform (num: number, placeholder: string = '0'): string {\r\n\t\tnum = num || 0;\r\n\r\n\t\tif (num < 10) {\r\n\t\t\treturn (placeholder + num).slice(-2);\r\n\t\t} else {\r\n\t\t\treturn num.toString(10);\r\n\t\t}\r\n\t}\r\n}\r\n","// New version src/Common/user/user_data.service.ts CommonUserDataService\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/user_data_service_factory.js UserDataService\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n\tHttpClient,\r\n\tHttpHeaders,\r\n} from '@angular/common/http';\r\nimport {\r\n\tforkJoin,\r\n\tObservable,\r\n\tof,\r\n} from 'rxjs';\r\nimport {\r\n\tmap,\r\n\tmergeMap,\r\n} from 'rxjs/operators';\r\nimport {\r\n\tget,\r\n\tisArray,\r\n\tisNull,\r\n} from 'lodash';\r\n\r\nimport {\r\n\tICommonAuthor,\r\n\tUUID,\r\n} from '../@types/core';\r\nimport { CommonDataServiceClass } from './data.service';\r\nimport { CommonBootstrapDataService } from './bootstrap/bootstrap_data.service';\r\nimport { commonConstants } from '../constants/common.constants';\r\n\r\nimport { CommonAppDataService } from './app_data/app_data.service';\r\n\r\nexport interface ICommonUserDataServiceData extends ICommonAuthor {\r\n\tEmail: string;\r\n\tFileAvatarId: UUID;\r\n\tRole?: string;\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class CommonUserDataService extends CommonDataServiceClass {\r\n\tprivate res: Observable;\r\n\r\n\tconstructor (\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate commonBootstrapDataService: CommonBootstrapDataService,\r\n\t\tprivate commonAppDataService: CommonAppDataService,\r\n\t) {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tinit (shouldLoadData = false, bootstrapPromise?: Observable): Observable {\r\n\t\tconst requestOptions = {\r\n\t\t\twithCredentials: true,\r\n\t\t\theaders: new HttpHeaders({\r\n\t\t\t\t'Content-Type': 'application/json;charset=UTF-8',\r\n\t\t\t}),\r\n\t\t};\r\n\r\n\t\tif (window.UserData || !shouldLoadData) {\r\n\t\t\tthis.res = of(window.UserData || {});\r\n\t\t} else if (shouldLoadData) {\r\n\t\t\tconst authData = this.commonAppDataService.getDataByPath('bankroAuth');\r\n\t\t\tthis.res = this.http.post(\r\n\t\t\t\t`${ window.location.origin }/authentication/account/login`,\r\n\t\t\t\tauthData,\r\n\t\t\t\trequestOptions,\r\n\t\t\t).pipe(\r\n\t\t\t\t// get user profile and bootstrap only after authorization\r\n\t\t\t\tmergeMap(() => forkJoin([\r\n\t\t\t\t\t\tthis.http.get(`${ window.location.origin }/api/UserProfiles/Get`, requestOptions),\r\n\t\t\t\t\t\tthis.commonBootstrapDataService.init(shouldLoadData),\r\n\t\t\t\t\t]),\r\n\t\t\t\t));\r\n\t\t}\r\n\r\n\t\treturn this.res = this.res\r\n\t\t\t.pipe(\r\n\t\t\t\tmap((result) => {\r\n\t\t\t\t\tconst user = isArray(result) ? get(result, '[0].Result') : result;\r\n\r\n\t\t\t\t\tthis.setData(user);\r\n\t\t\t\t\treturn user;\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\t}\r\n\r\n\twait (): Observable {\r\n\t\treturn this.res;\r\n\t}\r\n\r\n\tgetUserAvatarUrl (id: string | null, mode: string): string {\r\n\t\tconst size = commonConstants.USER_AVATAR_SIZE[mode] || commonConstants.USER_AVATAR_SIZE.standart;\r\n\r\n\t\treturn isNull(id) ?\r\n\t\t\t'' :\r\n\t\t\t`${ commonConstants.downloadFilesAPIUrl }?id=${ id || this.getDataByPath('FileAvatarId') }&width=${ size }&height=${ size }`;\r\n\t}\r\n\r\n\tgetUserForSuggest (): { Id: string, Name: string } {\r\n\t\tconst user = this.getData();\r\n\r\n\t\treturn {\r\n\t\t\tId: user.Id,\r\n\t\t\tName: user.DisplayName,\r\n\t\t};\r\n\t}\r\n}\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\n\r\nimport { commonUtilitiesCoreService } from '../services/core.service';\r\n\r\n@Pipe({\r\n\tname: 'commonNAFormatter',\r\n})\r\nexport class CommonNAFormatter implements PipeTransform {\r\n\ttransform (data: any): string {\r\n\t\treturn commonUtilitiesCoreService.hasValue(data) ? data : '—';\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonGroupRequiredDirective } from './group_required.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonGroupRequiredDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonGroupRequiredDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonGroupRequiredModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonRequiredDirective } from './required.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonRequiredDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonRequiredDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonRequiredValidatorModule {}\r\n","export const COMMON_AUTOCOMPLETE_PROPS = {\r\n\tAUTOCOMPLETE_OFF: 'off',\r\n\tAUTOCAPITALIZE_OFF: 'off',\r\n\tAUTOCORRECT_OFF: 'off',\r\n};\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidator,\r\n\tValidationErrors\r\n} from '@angular/forms';\r\nimport {\r\n\tDirective,\r\n\tInput\r\n} from '@angular/core';\r\nimport { get } from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonMaxlength]',\r\n\tproviders: [{\r\n\t\tprovide: NG_VALIDATORS,\r\n\t\tuseExisting: CommonMaxlengthValidatorDirective,\r\n\t\tmulti: true,\r\n\t}],\r\n})\r\nexport class CommonMaxlengthValidatorDirective implements Validator {\r\n\t@Input() commonMaxlength: number;\r\n\t@Input() pathValue: string;\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tif (this.pathValue) {\r\n\t\t\treturn get(control, `value.${this.pathValue}.length`, null) <= this.commonMaxlength ? null : {\r\n\t\t\t\tmaxLength: true,\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn get(control, 'value.length', null) <= this.commonMaxlength ? null : {\r\n\t\t\tmaxLength: true,\r\n\t\t};\r\n\t}\r\n}\r\n","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.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.text':'Я согласен с {privacyPolicyLink}.','meetings_auth.forms.registration.terms_links.privacy_policy_in_text':'Политикой конфиденциальности','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 { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { CommonTextfieldComponent } from './textfield.component';\r\nimport { CommonLoaderModule } from '../loader/loader.module';\r\nimport { CommonValidationModule } from '../control/validation/validation.module';\r\nimport { CommonTextfieldInputMaskAliasesService } from './inputmasks_aliases_service';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tCommonLoaderModule,\r\n\t\tFormsModule,\r\n\t\tCommonValidationModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonTextfieldComponent,\r\n\t\tFormsModule,\r\n\t\tCommonValidationModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonTextfieldComponent,\r\n\t],\r\n\tentryComponents: [\r\n\t\tCommonTextfieldComponent,\r\n\t],\r\n\tproviders: [\r\n\t\tCommonTextfieldInputMaskAliasesService,\r\n\t],\r\n})\r\nexport class CommonTextfieldModule {}\r\n\r\n","// New version src/Common/notification/notification.service.ts CommonNotificationService\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/notification_service.js NotificationService\r\n\r\nimport {\r\n\tInjectable,\r\n\tSecurityContext,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tfind,\r\n\tforEach,\r\n\tget,\r\n\thas,\r\n\tincludes,\r\n\tinvoke,\r\n\tisArray,\r\n\tisFunction,\r\n\tisObject,\r\n\tmap,\r\n\tmergeWith,\r\n\treduce,\r\n\tremove,\r\n\tuniqueId,\r\n} from 'lodash';\r\nimport Dotdotdot from 'dotdotdot-js';\r\n\r\nimport { commonConstants } from '../constants/common.constants';\r\nimport { commonBrowserService } from './browser.service';\r\nimport { CommonLocaleService } from './locale/locale.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ICommonResponseError } from '../@types/core';\r\n\r\ndeclare interface INoty {\r\n\tid: string\r\n\tshown: boolean,\r\n\tqueued: boolean,\r\n\ttimer: number | null,\r\n\t$element: JQuery,\r\n\t$body: JQuery,\r\n\t$buttons: JQuery,\r\n\tshow: () => void,\r\n\tclose: () => void,\r\n\ttruncate: () => void,\r\n}\r\n\r\ndeclare interface ICommonNotyOptionsAnimation {\r\n\topen: string,\r\n\tclose: string,\r\n}\r\n\r\ndeclare interface ICommonNotyOptionsButton {\r\n\tcallback: (noty: INoty) => void,\r\n\tclassName: string,\r\n\ttitle: string,\r\n}\r\n\r\ndeclare interface ICommonNotyOptions {\r\n\tanimation?: ICommonNotyOptionsAnimation,\r\n\tbuttons?: ICommonNotyOptionsButton[],\r\n\ticon?: string,\r\n\tlayout?: string,\r\n\ttext?: string,\r\n\ttimeout?: number,\r\n\ttype?: string,\r\n}\r\n\r\ndeclare interface ICommonNotyCacheHeight {\r\n\tid: string,\r\n\theight: number,\r\n}\r\n\r\ndeclare interface ICommonNotyShowParams {\r\n\ticonType?: string,\r\n\tbuttons?: ICommonNotyOptionsButton[],\r\n}\r\n\r\n@Injectable()\r\nexport class CommonNotificationService {\r\n\tprivate\tNOTIFICATION_HEIGHT = 208;\r\n\tprivate\tNOTIFICATION_TIMEOUT = 10000;\r\n\r\n\tprivate\tnotificationsQueue = {\r\n\t\t_queue: [] as INoty[],\r\n\t\tadd: (noty: INoty) => {\r\n\t\t\tif (!find(this.notificationsQueue._queue, noty)) {\r\n\t\t\t\tthis.notificationsQueue._queue.push(noty);\r\n\t\t\t\tnoty.queued = true;\r\n\t\t\t}\r\n\t\t\treturn this.notificationsQueue;\r\n\t\t},\r\n\t\tremove: (noty: INoty) => {\r\n\t\t\tnoty.queued = false;\r\n\t\t\tremove(this.notificationsQueue._queue, (item) => item === noty);\r\n\t\t\treturn this.notificationsQueue;\r\n\t\t},\r\n\t\tnext: () => {\r\n\t\t\treturn this.notificationsQueue._queue[0];\r\n\t\t},\r\n\t};\r\n\r\n\tprivate animationStartEvents = 'webkitAnimationStart animationstart';\r\n\tprivate cacheHeight: ICommonNotyCacheHeight[] = [];\r\n\tprivate $body = $('body');\r\n\tprivate isIE = commonBrowserService.browser.ie;\r\n\r\n\tconstructor (\r\n\t\tprivate commonLocaleService: CommonLocaleService,\r\n\t\tprivate domSanitizer: DomSanitizer\r\n\t) {}\r\n\r\n\tshow (title: string = '', body: string | {} = '', type: string, params: ICommonNotyShowParams = {}): void {\r\n\t\tconst innerLayout = this.getMessage(title, body);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.createNotification({\r\n\t\t\t\ttext: innerLayout,\r\n\t\t\t\ttype: invoke(type, 'toLowerCase'),\r\n\t\t\t\ticon: params.iconType ? 'icon_' + params.iconType : '',\r\n\t\t\t\tbuttons: params.buttons,\r\n\t\t\t});\r\n\t\t}, 0);\r\n\t}\r\n\r\n\thandleResponseError (response: ICommonResponseError): void {\r\n\t\tconst errorHeader = (get(response, 'data.ErrorHeader') || get(response, 'error.ErrorHeader')) || this.commonLocaleService.instant('common.noty.error.title');\r\n\t\tconst\terrorText = get(response, 'data.Error') || get(response, 'error.Error') || response.Error || '';\r\n\t\tconst\terrorTypes = ['General', 'Subscription', 'ConditionFailed'];\r\n\t\tlet\terrorType = get(response, 'data.ErrorType') || get(response, 'error.ErrorType');\r\n\r\n\t\tif (!includes(errorTypes, errorType)) {\r\n\t\t\terrorType = 'error';\r\n\t\t}\r\n\r\n\t\terrorType = errorType.toLowerCase();\r\n\t\tthis.show(errorHeader, errorText, errorType);\r\n\t}\r\n\r\n\tprivate createNotificationLayout (noty: INoty, options: ICommonNotyOptions): JQuery {\r\n\t\tnoty.$buttons.append(this.createNotificationButtons(noty, options.buttons!));\r\n\t\tnoty.$body.append(options.text!);\r\n\r\n\t\treturn noty.$element\r\n\t\t\t.addClass([\r\n\t\t\t\t'b-noty_bar',\r\n\t\t\t\t`b-noty_type__${options.type}`,\r\n\t\t\t\t`b-noty_theme__${options.icon}`,\r\n\t\t\t].join(' '))\r\n\t\t\t.append([noty.$body, noty.$buttons]);\r\n\t}\r\n\r\n\tprivate createNotificationButtons (noty: INoty, buttons: ICommonNotyOptionsButton[]): Array> {\r\n\t\treturn map(buttons, (button) => {\r\n\t\t\tlet $button: JQuery;\r\n\r\n\t\t\tbutton.className = button.className || '';\r\n\t\t\tbutton.title = button.title || '';\r\n\r\n\t\t\t$button = $(``);\r\n\r\n\t\t\tif (isFunction(button.callback)) {\r\n\t\t\t\t$button.on('click', () => {\r\n\t\t\t\t\tbutton.callback(noty);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn $button;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getMaxVisible (): number {\r\n\t\treturn Math.floor(window.innerHeight / this.NOTIFICATION_HEIGHT);\r\n\t}\r\n\r\n\tprivate getContainer (options: ICommonNotyOptions): JQuery {\r\n\t\tlet $notificationsContainer = this.$body.find('#common_noty_layout__' + options.layout);\r\n\r\n\t\tif ($notificationsContainer.length === 0) {\r\n\t\t\t$notificationsContainer = $(`
`);\r\n\t\t\tif (this.isIE) {\r\n\t\t\t\t$notificationsContainer.addClass('b-noty_no-animate');\r\n\t\t\t}\r\n\t\t\tthis.$body.append($notificationsContainer);\r\n\t\t}\r\n\r\n\t\treturn $notificationsContainer;\r\n\t}\r\n\r\n\tprivate showNext (): void {\r\n\t\tforEach(this.notificationsQueue._queue, (noty) => {\r\n\t\t\tinvoke(noty, 'show');\r\n\t\t});\r\n\t}\r\n\r\n\tprivate startClosingTimer (noty: INoty, options: ICommonNotyOptions): void {\r\n\t\tnoty.timer = window.setTimeout(noty.close, options.timeout);\r\n\t}\r\n\r\n\tprivate endClosingTimer (noty: INoty): void {\r\n\t\tif (noty.timer) {\r\n\t\t\tclearTimeout(noty.timer);\r\n\t\t\tnoty.timer = null;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onAnimationEnd (callback: () => void): () => void {\r\n\t\treturn () => {\r\n\t\t\tsetTimeout(callback, commonConstants.animationDuration);\r\n\t\t};\r\n\t}\r\n\r\n\tprivate animateAll (options: ICommonNotyOptions): void {\r\n\t\tconst $notificationsContainer = this.getContainer(options);\r\n\r\n\t\t$notificationsContainer.children().each((elementIndex, element) => {\r\n\t\t\tconst $element = $(element);\r\n\t\t\tconst bottom = reduce(this.cacheHeight, (result, cacheItem, cacheIndex) => {\r\n\t\t\t\tif (cacheIndex > elementIndex) {\r\n\t\t\t\t\treturn result + cacheItem.height!;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\r\n\t\t\t$element.css({\r\n\t\t\t\tbottom,\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate showNotification (noty: INoty, options: ICommonNotyOptions): INoty {\r\n\t\tlet $notificationsContainer: JQuery;\r\n\r\n\t\tif (!noty.shown) {\r\n\t\t\tif (!noty.queued) {\r\n\t\t\t\tthis.showNext();\r\n\t\t\t\tthis.notificationsQueue.add(noty);\r\n\t\t\t}\r\n\r\n\t\t\t$notificationsContainer = this.getContainer(options);\r\n\r\n\t\t\tif ($notificationsContainer.children().length < this.getMaxVisible()) {\r\n\t\t\t\t$notificationsContainer.append(this.createNotificationLayout(noty, options));\r\n\r\n\t\t\t\tthis.notificationsQueue.remove(noty);\r\n\t\t\t\tnoty.truncate();\r\n\t\t\t\tthis.cacheHeight.push({id: noty.id, height: noty.$element.outerHeight(true)!});\r\n\r\n\t\t\t\tthis.animateAll(options);\r\n\r\n\t\t\t\tnoty.shown = true;\r\n\r\n\t\t\t\tnoty.$element\r\n\t\t\t\t\t.addClass(options.animation!.open)\r\n\t\t\t\t\t.on('mouseenter', () => {\r\n\t\t\t\t\t\tthis.endClosingTimer(noty);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on('mouseleave', () => {\r\n\t\t\t\t\t\tthis.startClosingTimer(noty, options);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t// in IE animationend does not fire sometimes\r\n\t\t\t\t\t// emulated animationend from animationstart to ANIMATE_DURATION\r\n\t\t\t\t\t.on(this.animationStartEvents, this.onAnimationEnd(() => {\r\n\t\t\t\t\t\tthis.startClosingTimer(noty, options);\r\n\t\t\t\t\t\tnoty.$element.removeClass(options.animation!.open);\r\n\t\t\t\t\t\tnoty.$element.off(this.animationStartEvents);\r\n\t\t\t\t\t}));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn noty;\r\n\t}\r\n\r\n\tprivate closeNotification (noty: INoty, options: ICommonNotyOptions): INoty {\r\n\t\tif (noty.shown) {\r\n\t\t\tthis.endClosingTimer(noty);\r\n\r\n\t\t\tnoty.$element\r\n\t\t\t\t.removeClass(options.animation!.open)\r\n\t\t\t\t.addClass(options.animation!.close)\r\n\t\t\t\t// in IE animationend does not fire sometimes\r\n\t\t\t\t// emulated animationend from animationstart to ANIMATE_DURATION\r\n\t\t\t\t.on(this.animationStartEvents, this.onAnimationEnd(() => {\r\n\t\t\t\t\tnoty.shown = false;\r\n\t\t\t\t\tnoty.$element.remove();\r\n\t\t\t\t\tremove(this.cacheHeight, (item) => item.id === noty.id);\r\n\r\n\t\t\t\t\tif (this.notificationsQueue._queue.length === 0) {\r\n\t\t\t\t\t\tthis.animateAll(options);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.showNext();\r\n\t\t\t\t\t}\r\n\t\t\t\t}));\r\n\t\t}\r\n\r\n\t\treturn noty;\r\n\t}\r\n\r\n\tprivate createNotification (options: ICommonNotyOptions): void {\r\n\t\tconst id = uniqueId('common_noty_bar_');\r\n\r\n\t\tconst\tdefaults: ICommonNotyOptions = {\r\n\t\t\ttext: '',\r\n\t\t\ttype: 'success',\r\n\t\t\tlayout: 'bottomLeft',\r\n\t\t\ticon: '',\r\n\t\t\ttimeout: this.NOTIFICATION_TIMEOUT,\r\n\t\t\tanimation: {\r\n\t\t\t\topen: 'slideInUp',\r\n\t\t\t\tclose: 'slideOutLeftFade',\r\n\t\t\t},\r\n\t\t\tbuttons: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttitle: this.commonLocaleService.instant('common.dismiss'),\r\n\t\t\t\t\tclassName: 'b_noty_button_close',\r\n\t\t\t\t\tcallback: (button) => {\r\n\t\t\t\t\t\tbutton.close();\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t};\r\n\r\n\t\toptions = mergeWith({}, defaults, options, (objValue, srcValue) => {\r\n\t\t\tif (isArray(objValue) && isArray(srcValue)) {\r\n\t\t\t\treturn objValue.concat(srcValue);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst noty: INoty = {\r\n\t\t\tid,\r\n\t\t\tshown: false,\r\n\t\t\tqueued: false,\r\n\t\t\ttimer: null,\r\n\t\t\t$element: createNotificationElement(id),\r\n\t\t\t$body: $('
'),\r\n\t\t\t$buttons: $('
'),\r\n\t\t\tshow: () => {\r\n\t\t\t\treturn this.showNotification(noty, options);\r\n\t\t\t},\r\n\t\t\tclose: () => {\r\n\t\t\t\treturn this.closeNotification(noty, options);\r\n\t\t\t},\r\n\t\t\ttruncate: () => {\r\n\t\t\t\tconst element = document.querySelector('.b-noty-text-body--ellipsis');\r\n\t\t\t\tconst option = {\r\n\t\t\t\t\theight: 160, // 10 text lines\r\n\t\t\t\t};\r\n\t\t\t\t// tslint:disable-next-line: no-unused-expression\r\n\t\t\t\tnew Dotdotdot(element as HTMLElement, option);\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tnoty.show();\r\n\r\n\t\tfunction createNotificationElement (notificationId: string) {\r\n\t\t\tconst mobilePaddings = 32;\r\n\t\t\tconst notificationNormalWidth = 384;\r\n\t\t\tconst minViewportWidth = Math.min(window.innerWidth, window.screen.width);\r\n\t\t\tconst width = minViewportWidth > notificationNormalWidth + mobilePaddings\r\n\t\t\t\t? notificationNormalWidth\r\n\t\t\t\t: minViewportWidth - mobilePaddings;\r\n\r\n\t\t\treturn $(`
`);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getMessage (title: string = '', body: string | {} = ''): string {\r\n\t\tlet bodyEl = `
${body}
`;\r\n\r\n\t\tif (isObject(body) && has(body, 'template')) {\r\n\t\t\t// now use template as string instead of templateUrl\r\n\t\t\t// this using in administration\r\n\t\t\tbodyEl = `
${get(body, 'template')}
`;\r\n\t\t}\r\n\r\n\t\tconst template: string = `\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\t
${title}
\r\n\t\t\t\t\t\t${bodyEl}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t`;\r\n\t\t// @ts-ignore next-line\r\n\t\treturn this.domSanitizer.sanitize(SecurityContext.HTML, template);\r\n\t}\r\n}\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidationErrors,\r\n\tValidator,\r\n} from '@angular/forms';\r\nimport {\r\n\tDirective,\r\n\tInput,\r\n} from '@angular/core';\r\nimport {\r\n\tget,\r\n\tisNumber,\r\n} from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonMin]',\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: CommonMinValidatorDirective,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class CommonMinValidatorDirective implements Validator {\r\n\t@Input() commonMin: number;\r\n\r\n\tvalidate (control: AbstractControl): ValidationErrors | null {\r\n\t\tconst value = parseFloat(get(control, 'value', null));\r\n\r\n\t\tif (isNumber(value) && value >= this.commonMin) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tmin: {\r\n\t\t\t\tcontext: {\r\n\t\t\t\t\tvalue: this.commonMin,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tInjector,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tNgForm,\r\n} from '@angular/forms';\r\n\r\nimport { finalize } from 'rxjs/operators';\r\nimport { UIRouter } from '@uirouter/angular';\r\n\r\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\r\nimport { CommonAppDataService } from '../../../Common/services/app_data/app_data.service';\r\nimport { CommonUserDataService } from '../../../Common/services/user_data.service';\r\n\r\nimport { AuthenticationMeetingsUserService, IAuthenticationMeetingsUserActionsResponse } from '../authentication/services/authentication.meetings.user.service';\r\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\r\nimport { MeetingsAuthAnimation } from '../animation/animation';\r\nimport { IAuthenticationMeetingsLoginUser } from '../authentication/authentication.interfaces';\r\n\r\n@Component({\r\n\tselector: 'authentication-meetings-login',\r\n\ttemplateUrl: './authentication.meetings.login.component.pug',\r\n\tanimations: [\r\n\t\tMeetingsAuthAnimation,\r\n\t],\r\n})\r\nexport class AuthenticationMeetingsLoginComponent extends CommonBaseComponent {\r\n\tstate = {\r\n\t\tisLoading: false,\r\n\t};\r\n\r\n\tuser: IAuthenticationMeetingsLoginUser = {\r\n\t\tPhoneNumber: '',\r\n\t\tPassword: '',\r\n\t};\r\n\r\n\tresource = {\r\n\t\tvalidationCustomErrors: {\r\n\t\t\tcustom: '',\r\n\t\t\tminLength: this.instant('meetings_auth.forms.login.controls.password.messages.minlength'),\r\n\t\t},\r\n\t};\r\n\r\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\r\n\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\r\n\t\tprivate router: UIRouter,\r\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\r\n\t\tprivate commonAppDataService: CommonAppDataService,\r\n\t\tprivate commonUserDataService: CommonUserDataService,\r\n\t) {\r\n\t\tsuper(injector);\r\n\t}\r\n\r\n\tngOnInit (): void {\r\n\t\tif (this.commonAppDataService.getDataByPath('isAccountNotExists')) {\r\n\t\t\tthis.commonAppDataService.setDataByPath(false, 'isAccountNotExists');\r\n\t\t\tthis.router.stateService.go('registration');\r\n\t\t}\r\n\t}\r\n\r\n\tlogin (form: NgForm) {\r\n\t\tif (form.valid) {\r\n\t\t\tthis.state.isLoading = true;\r\n\r\n\t\t\tthis.authenticationMeetingsUserService\r\n\t\t\t\t.login(this.user)\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tfinalize(() => this.state.isLoading = false),\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\r\n\t\t\t\t\tif (response.IsSuccess) {\r\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(response.Result.ExpiresAt, 'nextPhoneConfirmationAttemptTime');\r\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(this.user.PhoneNumber, 'phoneNumber');\r\n\r\n\t\t\t\t\t\tthis.router.stateService.go('confirm');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.password);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","\n
\n
{{'meetings_auth.forms.login.title' | translate}}
\n
{{'meetings_auth.forms.login.description' | translate}} {{'meetings_auth.forms.login.description_link' | translate}}
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
{{'meetings_auth.forms.login.controls.remind.title' | translate}}
\n {{'meetings_auth.forms.login.controls.login_btn_progress.title' | translate}}{{'meetings_auth.forms.login.controls.login_btn.title' | translate}}\n
\n
\n
","import { Observable } from 'rxjs';\r\nimport { get, clone } from 'lodash';\r\n\r\ndeclare interface ICommonDataService {\r\n\tinit? (): Observable,\r\n\tsetData (data: T): void,\r\n\tgetData (): T,\r\n\tsetDataByPath (data: T, key: string): void,\r\n\tgetDataByPath (path: string): any,\r\n}\r\n\r\nexport abstract class CommonDataServiceClass implements ICommonDataService {\r\n\tprivate data: T;\r\n\r\n\tsetData (data: T): void {\r\n\t\tthis.data = clone(data);\r\n\t}\r\n\r\n\tgetData (): T {\r\n\t\treturn clone(this.data);\r\n\t}\r\n\r\n\tsetDataByPath (value: any, key: string): void {\r\n\t\tthis.data[key] = clone(value);\r\n\t}\r\n\r\n\tgetDataByPath (path: string): any {\r\n\t\treturn get(this.data, path);\r\n\t}\r\n}\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\nimport { commonUtilitiesCoreService } from '../services/core.service';\r\n\r\n@Pipe({\r\n\tname: 'commonExtensionFormatter',\r\n})\r\nexport class CommonExtensionFormatterPipe implements PipeTransform {\r\n\ttransform (extension: string): string {\r\n\t\tif (!commonUtilitiesCoreService.hasValue(extension)) {\r\n\t\t\treturn extension;\r\n\t\t}\r\n\r\n\t\treturn extension.substring(1).toLowerCase();\r\n\t}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ICommonKeyValues } from '../../@types/core';\r\n\r\nexport interface ICommonAppData extends ICommonKeyValues {\r\n\treadonly locale: string;\r\n\treadonly appName: string;\r\n\treadonly appFullLocationUrl: string;\r\n\treadonly appStartNotificationText: string;\r\n\treadonly domainName: string;\r\n}\r\nexport type TLocalAppDataGetter = (locale: string, location: Location) => ICommonAppData;\r\n\r\nexport const LOCAL_APP_DATA_GETTER = new InjectionToken('localAppDataGetter');\r\n","// New version src/Common/interceptors/error_interceptor.service.ts CommonErrorInterceptor\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/common_errors_interceptor_factory.js CommonErrorsInterceptor\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map as rxMap, catchError } from 'rxjs/operators';\r\nimport { get, includes, find, noop, map } from 'lodash';\r\n\r\nimport { commonHttpErrorStatuses } from './statuses.constant';\r\nimport { CommonNotificationService } from '../services/notification.service';\r\nimport { CommonModulesPlaceholders } from '../services/modules_placeholders.service';\r\nimport { CommonLocaleService } from '../services/locale/locale.service';\r\nimport { ICommonResponseError } from '../@types/core';\r\n\r\ninterface CommonErrorInterceptorResponse extends HttpResponse {\r\n\tWarningHeader: string,\r\n\tWarning: string,\r\n\tWarningType: string,\r\n}\r\n\r\n@Injectable()\r\nexport class CommonErrorInterceptor implements HttpInterceptor {\r\n\tprivate warningTypeConfigs: any;\r\n\tprivate warningTypes: any;\r\n\r\n\tconstructor(\r\n\t\tprivate commonNotificationService: CommonNotificationService,\r\n\t\tprivate commonModulesPlaceholders: CommonModulesPlaceholders,\r\n\t\tprivate commonLocaleService: CommonLocaleService,\r\n\t) {}\r\n\r\n\tintercept (req: HttpRequest, next: HttpHandler):\tObservable> {\r\n\t\treturn next.handle(req).pipe(\r\n\t\t\trxMap((response: HttpEvent) => {\r\n\t\t\t\tconst warningText = get(response, 'body.data.Warning') || get(response, 'body.Warning');\r\n\t\t\t\tlet warningHeader = get(response, 'body.data.WarningHeader') || get(response, 'body.WarningHeader');\r\n\t\t\t\tlet warningType = get(response, 'body.data.WarningType') || get(response, 'body.WarningType');\r\n\t\t\t\tlet warningConfig;\r\n\r\n\t\t\t\tif (warningHeader || warningText || warningType) {\r\n\t\t\t\t\tif (!this.warningTypeConfigs) {\r\n\t\t\t\t\t\tthis.warningTypeConfigs = this.commonModulesPlaceholders.getPlaceholder('common-warning-types');\r\n\t\t\t\t\t\tthis.warningTypes = map(this.warningTypeConfigs, 'type');\r\n\t\t\t\t\t\tthis.warningTypes.push('Success');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!includes(this.warningTypes, warningType)) {\r\n\t\t\t\t\t\twarningType = 'warning';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twarningConfig = (get(find(this.warningTypeConfigs, { type: 'TrustAccountInsufficientFunds'}), 'getConfig') || noop)();\r\n\r\n\t\t\t\t\twarningHeader = warningHeader || this.commonLocaleService.instant('common.noty.warning.title');\r\n\t\t\t\t\twarningType = warningType.toLowerCase();\r\n\t\t\t\t\tthis.commonNotificationService.show(warningHeader, warningText, warningType, warningConfig);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn response;\r\n\t\t\t}),\r\n\t\t\tcatchError((response: ICommonResponseError) => {\r\n\t\t\t\tif (includes(commonHttpErrorStatuses.errors, response.status)) {\r\n\t\t\t\t\tthis.commonNotificationService.handleResponseError(response);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn throwError(response);\r\n\t\t\t}),\r\n\t\t);\r\n }\r\n}\r\n","// New version src/Common/locale/locale.service.ts CommonLocaleService\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Locale/scripts/locale/locale_run.js LocaleRun\r\n\r\nimport {\r\n\tInjectable,\r\n\tInject,\r\n} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport {\r\n\tupdateLocale,\r\n\ttz,\r\n} from 'moment';\r\nimport 'moment-timezone';\r\nimport 'moment/locale/ru';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CommonAppDataService } from '../app_data/app_data.service';\r\nimport { CommonUserDataService } from '../user_data.service';\r\nimport { CommonGeneralSettingsService } from '../general_settings.service';\r\nimport { CommonTranslateParamsPipe } from './translate_params.pipe';\r\nimport {\r\n\tLOCALE_TRANSLATIONS,\r\n\tTCommonLocaleDictionary,\r\n} from './locale.translations.token';\r\nimport { ICommonKeyValues } from '../../@types/core';\r\n\r\nexport interface ICommonLocaleServiceData {\r\n\tlocaleKey: string,\r\n\tlocaleUrlPath: string,\r\n\tlocaleFileName: string,\r\n\ttranslations?: ICommonLocaleServiceTranslations,\r\n}\r\n\r\nexport interface ICommonLocaleServiceTranslations extends ICommonKeyValues {}\r\nexport type TCommonLocaleServiceCompilerResult = string | ((params: any) => string);\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class CommonLocaleService {\r\n\treadonly locale: string = this.commonAppDataService.getDataByPath('locale');\r\n\r\n\tconstructor (\r\n\t\tprivate translateService: TranslateService,\r\n\t\tprivate commonAppDataService: CommonAppDataService,\r\n\t\tprivate commonUserDataService: CommonUserDataService,\r\n\t\tprivate commonGeneralSettingsService: CommonGeneralSettingsService,\r\n\t\tprivate commonTranslateParamsPipe: CommonTranslateParamsPipe,\r\n\t\t@Inject(LOCALE_TRANSLATIONS) protected translations: TCommonLocaleDictionary,\r\n\t) {\r\n\t\tthis.translateService.setTranslation(this.locale, this.translations[this.locale]);\r\n\t}\r\n\r\n\tinit (): Observable {\r\n\t\tthis.translateService.setDefaultLang(this.locale);\r\n\r\n\t\treturn this.translateService.use(this.locale);\r\n\t}\r\n\r\n\tsetFormats (): void {\r\n\t\tconst userTimeZone = this.commonUserDataService.getDataByPath('TimeZone');\r\n\t\tconst timeFormat = this.commonGeneralSettingsService.getGeneralSettings('TimeFormat');\r\n\t\tconst dateFormat = this.commonGeneralSettingsService.getGeneralSettings('DateFormat');\r\n\r\n\t\tif (timeFormat) {\r\n\t\t\tupdateLocale(this.locale, {\r\n\t\t\t\tlongDateFormat: {\r\n\t\t\t\t\tLT: timeFormat.Format,\r\n\t\t\t\t\tL: dateFormat.ShortFormat,\r\n\t\t\t\t\tLL: '',\r\n\t\t\t\t\tLLL: '',\r\n\t\t\t\t\tLLLL: '',\r\n\t\t\t\t\tLTS: '',\r\n\t\t\t\t},\r\n\t\t\t\tmeridiemParse: new RegExp(timeFormat.PmDesignator + '|' + timeFormat.AmDesignator, 'gi'),\r\n\t\t\t\tisPM: (input) => {\r\n\t\t\t\t\treturn input === timeFormat.PmDesignator;\r\n\t\t\t\t},\r\n\t\t\t\tmeridiem: (hours) => {\r\n\t\t\t\t\treturn hours > 11 ? timeFormat.PmDesignator : timeFormat.AmDesignator;\r\n\t\t\t\t},\r\n\t\t\t\tweek: {\r\n\t\t\t\t\tdoy: 1,\r\n\t\t\t\t\tdow: (this.commonGeneralSettingsService.getGeneralSettings('DayOfWeek').IndexNumber || 0) + 1 ,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (userTimeZone) {\r\n\t\t\ttz.setDefault(userTimeZone.IanaId);\r\n\t\t}\r\n\t}\r\n\r\n\t// todo: remove CommonTranslateParamsPipe and this method later, instead use TranslateService#instant\r\n\t// Now this method used only for backward compatibility with ng1\r\n\tinstant (key: string, params?: {}): string {\r\n\t\tlet res = this.translateService.instant(key, params);\r\n\r\n\t\tif (params) {\r\n\t\t\tres = this.commonTranslateParamsPipe.transform(res, params);\r\n\t\t}\r\n\r\n\t\treturn res;\r\n\t}\r\n}\r\n","var map = {\n\t\"./af\": \"8GSH\",\n\t\"./af.js\": \"8GSH\",\n\t\"./ar\": \"NcOb\",\n\t\"./ar-dz\": \"1ors\",\n\t\"./ar-dz.js\": \"1ors\",\n\t\"./ar-kw\": \"Sc1Y\",\n\t\"./ar-kw.js\": \"Sc1Y\",\n\t\"./ar-ly\": \"GzvP\",\n\t\"./ar-ly.js\": \"GzvP\",\n\t\"./ar-ma\": \"hH25\",\n\t\"./ar-ma.js\": \"hH25\",\n\t\"./ar-sa\": \"u2jB\",\n\t\"./ar-sa.js\": \"u2jB\",\n\t\"./ar-tn\": \"5Mza\",\n\t\"./ar-tn.js\": \"5Mza\",\n\t\"./ar.js\": \"NcOb\",\n\t\"./az\": \"ZVVJ\",\n\t\"./az.js\": \"ZVVJ\",\n\t\"./be\": \"kQaN\",\n\t\"./be.js\": \"kQaN\",\n\t\"./bg\": \"+n5x\",\n\t\"./bg.js\": \"+n5x\",\n\t\"./bm\": \"TTiN\",\n\t\"./bm.js\": \"TTiN\",\n\t\"./bn\": \"aIF2\",\n\t\"./bn.js\": \"aIF2\",\n\t\"./bo\": \"QWb5\",\n\t\"./bo.js\": \"QWb5\",\n\t\"./br\": \"iQoZ\",\n\t\"./br.js\": \"iQoZ\",\n\t\"./bs\": \"EL7g\",\n\t\"./bs.js\": \"EL7g\",\n\t\"./ca\": \"vd/2\",\n\t\"./ca.js\": \"vd/2\",\n\t\"./cs\": \"K+3W\",\n\t\"./cs.js\": \"K+3W\",\n\t\"./cv\": \"Jt3X\",\n\t\"./cv.js\": \"Jt3X\",\n\t\"./cy\": \"sWi3\",\n\t\"./cy.js\": \"sWi3\",\n\t\"./da\": \"YcFX\",\n\t\"./da.js\": \"YcFX\",\n\t\"./de\": \"BKZ+\",\n\t\"./de-at\": \"Oq9h\",\n\t\"./de-at.js\": \"Oq9h\",\n\t\"./de-ch\": \"hHY4\",\n\t\"./de-ch.js\": \"hHY4\",\n\t\"./de.js\": \"BKZ+\",\n\t\"./dv\": \"w8Ej\",\n\t\"./dv.js\": \"w8Ej\",\n\t\"./el\": \"tSbB\",\n\t\"./el.js\": \"tSbB\",\n\t\"./en-SG\": \"cGzb\",\n\t\"./en-SG.js\": \"cGzb\",\n\t\"./en-au\": \"HgyJ\",\n\t\"./en-au.js\": \"HgyJ\",\n\t\"./en-ca\": \"ZyTy\",\n\t\"./en-ca.js\": \"ZyTy\",\n\t\"./en-gb\": \"exaB\",\n\t\"./en-gb.js\": \"exaB\",\n\t\"./en-ie\": \"yKzn\",\n\t\"./en-ie.js\": \"yKzn\",\n\t\"./en-il\": \"TB59\",\n\t\"./en-il.js\": \"TB59\",\n\t\"./en-nz\": \"iDxo\",\n\t\"./en-nz.js\": \"iDxo\",\n\t\"./eo\": \"4bvN\",\n\t\"./eo.js\": \"4bvN\",\n\t\"./es\": \"GNPT\",\n\t\"./es-do\": \"R7mU\",\n\t\"./es-do.js\": \"R7mU\",\n\t\"./es-us\": \"Nstw\",\n\t\"./es-us.js\": \"Nstw\",\n\t\"./es.js\": \"GNPT\",\n\t\"./et\": \"ZOjb\",\n\t\"./et.js\": \"ZOjb\",\n\t\"./eu\": \"kFC9\",\n\t\"./eu.js\": \"kFC9\",\n\t\"./fa\": \"8Cju\",\n\t\"./fa.js\": \"8Cju\",\n\t\"./fi\": \"vcN1\",\n\t\"./fi.js\": \"vcN1\",\n\t\"./fo\": \"8Ygf\",\n\t\"./fo.js\": \"8Ygf\",\n\t\"./fr\": \"Y8Ij\",\n\t\"./fr-ca\": \"t+Zl\",\n\t\"./fr-ca.js\": \"t+Zl\",\n\t\"./fr-ch\": \"SPXN\",\n\t\"./fr-ch.js\": \"SPXN\",\n\t\"./fr.js\": \"Y8Ij\",\n\t\"./fy\": \"T3MF\",\n\t\"./fy.js\": \"T3MF\",\n\t\"./ga\": \"NowM\",\n\t\"./ga.js\": \"NowM\",\n\t\"./gd\": \"GJYX\",\n\t\"./gd.js\": \"GJYX\",\n\t\"./gl\": \"MdC8\",\n\t\"./gl.js\": \"MdC8\",\n\t\"./gom-latn\": \"5j0y\",\n\t\"./gom-latn.js\": \"5j0y\",\n\t\"./gu\": \"fY0S\",\n\t\"./gu.js\": \"fY0S\",\n\t\"./he\": \"ACAV\",\n\t\"./he.js\": \"ACAV\",\n\t\"./hi\": \"3WqV\",\n\t\"./hi.js\": \"3WqV\",\n\t\"./hr\": \"OnNk\",\n\t\"./hr.js\": \"OnNk\",\n\t\"./hu\": \"EQmw\",\n\t\"./hu.js\": \"EQmw\",\n\t\"./hy-am\": \"MNf7\",\n\t\"./hy-am.js\": \"MNf7\",\n\t\"./id\": \"0yow\",\n\t\"./id.js\": \"0yow\",\n\t\"./is\": \"TmOJ\",\n\t\"./is.js\": \"TmOJ\",\n\t\"./it\": \"xD/0\",\n\t\"./it-ch\": \"foQf\",\n\t\"./it-ch.js\": \"foQf\",\n\t\"./it.js\": \"xD/0\",\n\t\"./ja\": \"jOnb\",\n\t\"./ja.js\": \"jOnb\",\n\t\"./jv\": \"lOtj\",\n\t\"./jv.js\": \"lOtj\",\n\t\"./ka\": \"BAN/\",\n\t\"./ka.js\": \"BAN/\",\n\t\"./kk\": \"iNiw\",\n\t\"./kk.js\": \"iNiw\",\n\t\"./km\": \"TUxt\",\n\t\"./km.js\": \"TUxt\",\n\t\"./kn\": \"hQzt\",\n\t\"./kn.js\": \"hQzt\",\n\t\"./ko\": \"ZNZT\",\n\t\"./ko.js\": \"ZNZT\",\n\t\"./ku\": \"S0Tg\",\n\t\"./ku.js\": \"S0Tg\",\n\t\"./ky\": \"JO+T\",\n\t\"./ky.js\": \"JO+T\",\n\t\"./lb\": \"vn/h\",\n\t\"./lb.js\": \"vn/h\",\n\t\"./lo\": \"gnIm\",\n\t\"./lo.js\": \"gnIm\",\n\t\"./lt\": \"6PD3\",\n\t\"./lt.js\": \"6PD3\",\n\t\"./lv\": \"YKe2\",\n\t\"./lv.js\": \"YKe2\",\n\t\"./me\": \"d3TR\",\n\t\"./me.js\": \"d3TR\",\n\t\"./mi\": \"hTlv\",\n\t\"./mi.js\": \"hTlv\",\n\t\"./mk\": \"ffVN\",\n\t\"./mk.js\": \"ffVN\",\n\t\"./ml\": \"ejL1\",\n\t\"./ml.js\": \"ejL1\",\n\t\"./mn\": \"RIsM\",\n\t\"./mn.js\": \"RIsM\",\n\t\"./mr\": \"CPJk\",\n\t\"./mr.js\": \"CPJk\",\n\t\"./ms\": \"d5Hy\",\n\t\"./ms-my\": \"t4T9\",\n\t\"./ms-my.js\": \"t4T9\",\n\t\"./ms.js\": \"d5Hy\",\n\t\"./mt\": \"1KVU\",\n\t\"./mt.js\": \"1KVU\",\n\t\"./my\": \"LsNb\",\n\t\"./my.js\": \"LsNb\",\n\t\"./nb\": \"h+U8\",\n\t\"./nb.js\": \"h+U8\",\n\t\"./ne\": \"2JSI\",\n\t\"./ne.js\": \"2JSI\",\n\t\"./nl\": \"jsZ8\",\n\t\"./nl-be\": \"+h6j\",\n\t\"./nl-be.js\": \"+h6j\",\n\t\"./nl.js\": \"jsZ8\",\n\t\"./nn\": \"mh29\",\n\t\"./nn.js\": \"mh29\",\n\t\"./pa-in\": \"O6bP\",\n\t\"./pa-in.js\": \"O6bP\",\n\t\"./pl\": \"8Bez\",\n\t\"./pl.js\": \"8Bez\",\n\t\"./pt\": \"DDip\",\n\t\"./pt-br\": \"uHm5\",\n\t\"./pt-br.js\": \"uHm5\",\n\t\"./pt.js\": \"DDip\",\n\t\"./ro\": \"baBi\",\n\t\"./ro.js\": \"baBi\",\n\t\"./ru\": \"ecsu\",\n\t\"./ru.js\": \"ecsu\",\n\t\"./sd\": \"e9KM\",\n\t\"./sd.js\": \"e9KM\",\n\t\"./se\": \"CZRU\",\n\t\"./se.js\": \"CZRU\",\n\t\"./si\": \"TO58\",\n\t\"./si.js\": \"TO58\",\n\t\"./sk\": \"K+Lk\",\n\t\"./sk.js\": \"K+Lk\",\n\t\"./sl\": \"QK6v\",\n\t\"./sl.js\": \"QK6v\",\n\t\"./sq\": \"v3Qg\",\n\t\"./sq.js\": \"v3Qg\",\n\t\"./sr\": \"Ndyf\",\n\t\"./sr-cyrl\": \"PGvg\",\n\t\"./sr-cyrl.js\": \"PGvg\",\n\t\"./sr.js\": \"Ndyf\",\n\t\"./ss\": \"2B8G\",\n\t\"./ss.js\": \"2B8G\",\n\t\"./sv\": \"WF5B\",\n\t\"./sv.js\": \"WF5B\",\n\t\"./sw\": \"4VvY\",\n\t\"./sw.js\": \"4VvY\",\n\t\"./ta\": \"dw3T\",\n\t\"./ta.js\": \"dw3T\",\n\t\"./te\": \"4MAb\",\n\t\"./te.js\": \"4MAb\",\n\t\"./tet\": \"/hi0\",\n\t\"./tet.js\": \"/hi0\",\n\t\"./tg\": \"PoVJ\",\n\t\"./tg.js\": \"PoVJ\",\n\t\"./th\": \"OY2w\",\n\t\"./th.js\": \"OY2w\",\n\t\"./tl-ph\": \"UC+K\",\n\t\"./tl-ph.js\": \"UC+K\",\n\t\"./tlh\": \"cWLW\",\n\t\"./tlh.js\": \"cWLW\",\n\t\"./tr\": \"EqYs\",\n\t\"./tr.js\": \"EqYs\",\n\t\"./tzl\": \"fN8o\",\n\t\"./tzl.js\": \"fN8o\",\n\t\"./tzm\": \"6cYq\",\n\t\"./tzm-latn\": \"pdAN\",\n\t\"./tzm-latn.js\": \"pdAN\",\n\t\"./tzm.js\": \"6cYq\",\n\t\"./ug-cn\": \"J+SV\",\n\t\"./ug-cn.js\": \"J+SV\",\n\t\"./uk\": \"6Olw\",\n\t\"./uk.js\": \"6Olw\",\n\t\"./ur\": \"QNGR\",\n\t\"./ur.js\": \"QNGR\",\n\t\"./uz\": \"hLzJ\",\n\t\"./uz-latn\": \"KqOT\",\n\t\"./uz-latn.js\": \"KqOT\",\n\t\"./uz.js\": \"hLzJ\",\n\t\"./vi\": \"EnIJ\",\n\t\"./vi.js\": \"EnIJ\",\n\t\"./x-pseudo\": \"W7dU\",\n\t\"./x-pseudo.js\": \"W7dU\",\n\t\"./yo\": \"QDhB\",\n\t\"./yo.js\": \"QDhB\",\n\t\"./zh-cn\": \"bjMe\",\n\t\"./zh-cn.js\": \"bjMe\",\n\t\"./zh-hk\": \"JFCg\",\n\t\"./zh-hk.js\": \"JFCg\",\n\t\"./zh-tw\": \"xBDH\",\n\t\"./zh-tw.js\": \"xBDH\"\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 = \"MROq\";","import {NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {CommonMinlengthValidatorDirective} from './minlength.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonMinlengthValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonMinlengthValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonMinlengthValidatorModule {}\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidator,\r\n\tValidationErrors\r\n} from '@angular/forms';\r\nimport {\r\n\tDirective,\r\n\tInput\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[commonNumberInSafeRange]',\r\n\tproviders: [{\r\n\t\tprovide: NG_VALIDATORS,\r\n\t\tuseExisting: CommonNumberInSafeRangeValidatorDirective,\r\n\t\tmulti: true,\r\n\t}],\r\n})\r\nexport class CommonNumberInSafeRangeValidatorDirective implements Validator {\r\n\t@Input() lessCompareDigit: number = 0;\r\n\r\n\tprivate errorObject = {\r\n\t\tcommonNumberInSafeRange: true,\r\n\t};\r\n\r\n\tvalidate (control: AbstractControl): ValidationErrors | null {\r\n\t\tconst value = parseFloat(control.value);\r\n\r\n\t\tif (value <= this.lessCompareDigit || value > Number.MAX_SAFE_INTEGER || isNaN(value)) {\r\n\t\t\treturn this.errorObject;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","// New version src/Common/directives/prevent_default.directive.ts\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/directives/prevent_default_directive.js\r\n\r\nimport {\r\n\tDirective,\r\n\tInput,\r\n\tElementRef,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[commonPreventDefault]',\r\n})\r\nexport class CommonPreventDefaultDirective {\r\n\t@Input('commonPreventDefault') eventName: string;\r\n\tprivate target: Element = this.el.nativeElement;\r\n\r\n\tconstructor (\r\n\t\tprotected el: ElementRef,\r\n\t) {\r\n\t}\r\n\r\n\tngOnInit () {\r\n\t\tthis.target.addEventListener(this.eventName, this.callback, true);\r\n\t}\r\n\r\n\tngOnDestroy () {\r\n\t\tthis.target.removeEventListener(this.eventName, this.callback, true);\r\n\t}\r\n\r\n\tcallback(event: Event) {\r\n\t\tevent.preventDefault();\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonMaxValidatorDirective } from './max.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonMaxValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonMaxValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonMaxValidatorModule {}\r\n","import {\r\n\tComponent,\r\n\tInjector,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tNgForm,\r\n\tFormControl,\r\n} from '@angular/forms';\r\n\r\nimport { finalize } from 'rxjs/operators';\r\nimport { UIRouter } from '@uirouter/angular';\r\n\r\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\r\nimport { CommonAppDataService } from '../../../Common/services/app_data/app_data.service';\r\nimport { CommonNotificationService } from '../../../Common/services/notification.service';\r\nimport { commonUtilitiesCoreService } from '../../../Common/services/core.service';\r\n\r\nimport { AuthenticationMeetingsUserService, IAuthenticationMeetingsUserActionsResponse } from '../authentication/services/authentication.meetings.user.service';\r\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\r\nimport { MeetingsAuthAnimation } from '../animation/animation';\r\nimport { IAuthenticationMeetingsChangePassword } from '../authentication/authentication.interfaces';\r\n\r\n@Component({\r\n\tselector: 'authentication-meetings-change-password',\r\n\ttemplateUrl: './authentication.meetings.change_password.component.pug',\r\n\tanimations: [\r\n\t\tMeetingsAuthAnimation,\r\n\t],\r\n})\r\nexport class AuthenticationMeetingsChangePasswordComponent extends CommonBaseComponent {\r\n\tstate = {\r\n\t\tisSaving: false,\r\n\t};\r\n\r\n\tdata: IAuthenticationMeetingsChangePassword = {\r\n\t\tCode: commonUtilitiesCoreService.getQueryStringKeyValue('code'),\r\n\t\tPassword: '',\r\n\t\tConfirmPassword: '',\r\n\t};\r\n\r\n\tpageStateError = this.commonAppDataService.getDataByPath('pageStateError');\r\n\r\n\tresource = {\r\n\t\tvalidationCustomErrors: {\r\n\t\t\tcustom: '',\r\n\t\t\tpasswordsMatch: this.instant('meetings_auth.forms.change_password.controls.new_password.messages.match'),\r\n\t\t\tminLength: this.instant('meetings_auth.forms.change_password.controls.password.messages.minlength'),\r\n\t\t},\r\n\t};\r\n\r\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\r\n\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\r\n\t\tprivate router: UIRouter,\r\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\r\n\t\tprivate commonAppDataService: CommonAppDataService,\r\n\t\tprivate commonNotificationService: CommonNotificationService,\r\n\t) {\r\n\t\tsuper(injector);\r\n\t}\r\n\r\n\tchangePassword (form: NgForm) {\r\n\t\tif (form.valid) {\r\n\t\t\tthis.state.isSaving = true;\r\n\r\n\t\t\tthis.authenticationMeetingsUserService\r\n\t\t\t\t.changePassword(this.data)\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tfinalize(() => this.state.isSaving = false),\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\r\n\t\t\t\t\tif (response.IsSuccess) {\r\n\t\t\t\t\t\tthis.router.stateService.go('login')\r\n\t\t\t\t\t\t\t.then(() => {\r\n\t\t\t\t\t\t\t\tthis.commonNotificationService.show(\r\n\t\t\t\t\t\t\t\t\tthis.instant('meetings_auth.forms.login.password_notification.title'),\r\n\t\t\t\t\t\t\t\t\tthis.instant('meetings_auth.forms.login.password_notification.description'),\r\n\t\t\t\t\t\t\t\t\t'info',\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(response, this.resource.validationCustomErrors, form.controls.confirmPassword as FormControl);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\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
","export const COMMON_LOADER_DEFAULT_DELAY_TIMEOUT = 300;\r\n","import {\r\n\tChangeDetectorRef,\r\n\tInjectable,\r\n\tInjector,\r\n\tInput,\r\n\tNgZone,\r\n\tOnChanges,\r\n\tOnDestroy,\r\n\tDoCheck,\r\n\tOnInit,\r\n\tSimpleChanges,\r\n\tAfterViewInit,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tforEach,\r\n\tmap,\r\n\tremove,\r\n} from 'lodash';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { CommonLocaleService } from '../services/locale/locale.service';\r\n\r\n@Injectable()\r\nexport class CommonBaseComponent implements OnInit, OnChanges, OnDestroy, DoCheck, AfterViewInit {\r\n\t@Input() modifiers: string = '';\r\n\r\n\tprotected localeService: CommonLocaleService = this.injector.get(CommonLocaleService);\r\n\tprotected changeDetector: ChangeDetectorRef = this.injector.get(ChangeDetectorRef);\r\n\tprotected zone: NgZone = this.injector.get(NgZone);\r\n\r\n\tprotected modifierSeparator: string = '--';\r\n\tprotected classesSeparator: string = ' ';\r\n\tprotected needUnbind: CallableFunction[] = [];\r\n\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t) {}\r\n\r\n\tngOnInit () {\r\n\t\t// Empty\r\n\t}\r\n\r\n\tngOnChanges (changes: SimpleChanges) {\r\n\t\t// Empty\r\n\t}\r\n\r\n\tngDoCheck () {\r\n\t\t// Empty\r\n\t}\r\n\r\n\tngAfterViewInit () {\r\n\t\t// Empty\r\n\t}\r\n\r\n\tngOnDestroy () {\r\n\t\tforEach(this.needUnbind, (callback) => {\r\n\t\t\tcallback();\r\n\t\t});\r\n\t}\r\n\r\n\tinstant (key: string, params?: object): string {\r\n\t\treturn this.localeService.instant(key, params);\r\n\t}\r\n\r\n\tprotected getBaseClasses (cssBaseClass: string): string[] {\r\n\t\tconst classes = [cssBaseClass];\r\n\r\n\t\tif (this.modifiers.length) {\r\n\t\t\tconst modifiers = this.modifiers.split(this.classesSeparator);\r\n\t\t\tconst modifierClasses = map(modifiers, (modifier) => {\r\n\t\t\t\treturn cssBaseClass + this.modifierSeparator + modifier;\r\n\t\t\t});\r\n\r\n\t\t\treturn classes.concat(modifierClasses);\r\n\r\n\t\t} else {\r\n\t\t\treturn classes;\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getBaseClassesAsString (cssBaseClass: string): string {\r\n\t\treturn this.getBaseClasses(cssBaseClass).join(this.classesSeparator);\r\n\t}\r\n\r\n\t// Timeout with additional functional\r\n\t// The third argument it is possible to transfer function which of all is performed in case of completion of the timer\r\n\t// Returns canceling function\r\n\tprotected timeout (\r\n\t\tfunc: CallableFunction = (): void => void (0),\r\n\t\ttime: number = 0,\r\n\t\tfinallyFunc: CallableFunction = (): void => void (0),\r\n\t): CallableFunction {\r\n\t\tconst timer = setTimeout(() => {\r\n\t\t\tfunc();\r\n\t\t\tfinallyFunc();\r\n\t\t}, time);\r\n\r\n\t\treturn () => {\r\n\t\t\tclearTimeout(timer);\r\n\t\t\tfinallyFunc();\r\n\t\t};\r\n\t}\r\n\r\n\tprotected willUnbind (callback: () => void): (withUnbind?: boolean) => void {\r\n\t\tthis.needUnbind.push(callback);\r\n\r\n\t\treturn (withUnbind: boolean = false): void => {\r\n\t\t\tremove(this.needUnbind, (f) => f === callback);\r\n\r\n\t\t\tif (withUnbind) {\r\n\t\t\t\tcallback();\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\tprotected runUpdate () {\r\n\t\tthis.changeDetector.markForCheck();\r\n\t}\r\n\r\n\tprotected runOutsideAngular (func: (...args: any[]) => T): T {\r\n\t\treturn this.zone.runOutsideAngular(func);\r\n\t}\r\n\r\n\tprotected subscribe (observable: Observable, observerOrNext: any): void;\r\n\tprotected subscribe (observable: Observable, observerOrNext: (value: T) => void, error?: (error: any) => void ): void;\r\n\tprotected subscribe (observable: Observable, observerOrNext: (value: T) => void, error?: (error: any) => void, complete?: () => void ): void {\r\n\t\tconst subscription = observable.subscribe(observerOrNext, error, complete);\r\n\r\n\t\tthis.willUnbind(() => {\r\n\t\t\tsubscription.unsubscribe();\r\n\t\t});\r\n\t}\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {CommonChooseTrueValidatorDirective} from './choose_true.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonChooseTrueValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonChooseTrueValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonChooseTrueValidatorModule {}\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\nimport { commonUtilitiesCoreService } from '../services/core.service';\r\n\r\nimport { CommonNAFormatter } from './na_formatter.pipe';\r\nimport { CommonPrettyNumberPipe } from './pretty_number.pipe';\r\n\r\n@Pipe({\r\n\tname: 'commonNumberWithUnitsFormatter',\r\n})\r\nexport class CommonNumberWithUnitsFormatterPipe implements PipeTransform {\r\n\tconstructor (\r\n\t\tprivate commonNAFormatter: CommonNAFormatter,\r\n\t\tprivate prettyNumber: CommonPrettyNumberPipe,\r\n\t) { }\r\n\ttransform (num: any, unit?: string) {\r\n\t\tif (!commonUtilitiesCoreService.hasValue(num)) {\r\n\t\t\treturn this.commonNAFormatter.transform(num);\r\n\t\t}\r\n\r\n\t\treturn this.prettyNumber.transform(num) + (unit ? unit : '');\r\n\t}\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {FormsModule} from '@angular/forms';\r\nimport { CommonNumberInSafeRangeValidatorDirective } from './number_In_safe_range.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonNumberInSafeRangeValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonNumberInSafeRangeValidatorDirective,\r\n\t],\r\n})\r\nexport class CommonNumberInSafeRangeValidatorModule {}\r\n","import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { CommonAppDataService } from '../app_data/app_data.service';\r\nimport {\r\n\tICommonLocaleServiceTranslations,\r\n\tTCommonLocaleServiceCompilerResult,\r\n} from './locale.service';\r\n\r\n@Injectable()\r\nexport class CommonTranslationCompiler {\r\n\treadonly locale: string = this.commonAppDataService.getDataByPath('locale');\r\n\r\n\tconstructor (\r\n\t\tprivate messageFormat: TranslateMessageFormatCompiler,\r\n\t\tprivate commonAppDataService: CommonAppDataService,\r\n\t) {}\r\n\r\n\tcompile (value: string): string {\r\n\t\treturn value;\r\n\t}\r\n\r\n\tcompileTranslations (translations: ICommonLocaleServiceTranslations): ICommonLocaleServiceTranslations {\r\n\t\tfor (const key in translations) {\r\n\t\t\tif (translations.hasOwnProperty(key)) {\r\n\t\t\t\ttranslations[key] = this.resolveReferences(translations[key], translations);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn translations;\r\n\t}\r\n\r\n\tprivate resolveReferences (\r\n\t\tvalue: TCommonLocaleServiceCompilerResult,\r\n\t\ttranslations: ICommonLocaleServiceTranslations,\r\n\t): TCommonLocaleServiceCompilerResult {\r\n\t\tif ((value as string).match('plural')) {\r\n\t\t\treturn this.messageFormat.compile(value as string, this.locale);\r\n\t\t}\r\n\r\n\t\treturn (value as string).replace(/@:(\\S+)/, (\r\n\t\t\tmatches,\r\n\t\t\tkey,\r\n\t\t) => this.resolveReferences(translations[key], translations) as string);\r\n\t}\r\n}\r\n","import { AbstractControl, NG_VALIDATORS, Validator, ValidationErrors } from '@angular/forms';\r\nimport { Directive, Input } from '@angular/core';\r\nimport { isBoolean } from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonChooseTrue]',\r\n\tproviders: [{\r\n\t\tprovide: NG_VALIDATORS,\r\n\t\tuseExisting: CommonChooseTrueValidatorDirective,\r\n\t\tmulti: true,\r\n\t}],\r\n})\r\nexport class CommonChooseTrueValidatorDirective implements Validator {\r\n\t@Input() commonChooseTrue: boolean;\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tif (isBoolean(this.commonChooseTrue) && !this.commonChooseTrue || control.value === true) {\r\n\t\t\treturn null;\r\n\t\t} else {\r\n\t\t\treturn {\r\n\t\t\t\tCommonChooseTrueValidator: true,\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n}\r\n","import { IBuildConfiguration } from './config/config.interface';\r\n\r\n// tslint:disable-next-line:no-var-requires\r\nconst config = require('./config/config');\r\n\r\n// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment: IBuildConfiguration = {\r\n\t...config,\r\n\tisProductionMode: true,\r\n\tinstalledModules: null,\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport { CommonSubmitButtonComponent } from './submit_button.component';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonSubmitButtonComponent,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonSubmitButtonComponent,\r\n\t],\r\n\tentryComponents: [\r\n\t\tCommonSubmitButtonComponent,\r\n\t],\r\n})\r\nexport class CommonSubmitButtonModule {}\r\n","// конфигурация сборки ngx\r\n// отдельная точка входа вместо gulp.conf.js\r\nconst conf = require('../../conf/conf');\r\nlet devConf;\r\n\r\ntry {\r\n\tdevConf = require('../../conf/dev.conf');\r\n} catch (e) {\r\n\tdevConf = {};\r\n}\r\n\r\nconst mergedConf = {\r\n\t...conf,\r\n\t...devConf,\r\n\tbuildConfig: {\r\n\t\t...(conf.buildConfig || {}),\r\n\t\t...(devConf.buildConfig || {}),\r\n\t},\r\n\tuserData: {\r\n\t\t...(conf.userData || {}),\r\n\t\t...(devConf.userData || {}),\r\n\t}\r\n};\r\n\r\n/**\r\n * @type IBuildConfiguration\r\n */\r\nmodule.exports = {\r\n\tisProductionMode: false,\r\n\tdevspecs: mergedConf.devspecs,\r\n\tlanguage: mergedConf.buildConfig.language,\r\n\tcarrotQuest: {\r\n\t\tisEnabled: mergedConf.buildConfig.enableCarrotQuest,\r\n\t\ttoken: mergedConf.buildConfig.carrotQuestToken,\r\n\t},\r\n\tproxy: {\r\n\t\tserver: mergedConf.buildConfig.server,\r\n\t\tport: mergedConf.buildConfig.port,\r\n\t\thttps: mergedConf.buildConfig.https,\r\n\t\ttargets: mergedConf.buildConfig.proxyTargets,\r\n\t},\r\n\tbankroAuth: {\r\n\t\tlogin: mergedConf.buildConfig.login,\r\n\t\tpassword: mergedConf.buildConfig.password,\r\n\t},\r\n\tmeetingsAuth: {\r\n\t\tPhoneNumber: mergedConf.userData.PhoneNumber,\r\n\t\tPassword: mergedConf.userData.Password,\r\n\t\tIsGuest: mergedConf.userData.IsGuest,\r\n\t\tGuestCookieName: mergedConf.userData.GuestCookieName,\r\n\t\tGuestCookieValue: mergedConf.userData.GuestCookieValue,\r\n\t\tGuestCookieOptions: mergedConf.userData.GuestCookieOptions,\r\n\t\t...getMeetingsAuthHelperParams(mergedConf.buildConfig.server)\r\n\t},\r\n\tinstalledModules: [], // todo: при переносе Банкро нужна будет реализация как в gulp.conf.js\r\n};\r\n\r\n/**\r\n * @param serverUrl: string\r\n * @returns {{prependedUrl: string, cookieSuffix: string}}\r\n */\r\nfunction getMeetingsAuthHelperParams (serverUrl) {\r\n\tconst prependUrlRegExp = /https?:\\/\\/[^\\/]*\\/([\\w\\d-]*)/;\r\n\tconst result = {\r\n\t\tprependedUrl: '',\r\n\t\tcookieSuffix: '',\r\n\t};\r\n\tconst prependedUrl = prependUrlRegExp.exec(serverUrl); // может быть null\r\n\r\n\tif (prependedUrl && prependedUrl[1]) {\r\n\t\tresult.prependedUrl = prependedUrl[1] + '/';\r\n\t\tresult.cookieSuffix = prependedUrl[1];\r\n\t} else {\r\n\t\tconst portRegExp = /https?:\\/\\/[^:]*:([\\w\\d]*)/;\r\n\t\tconst nonStandartPort = portRegExp.exec(serverUrl);\r\n\t\tif (nonStandartPort) {\r\n\t\t\tresult.cookieSuffix = nonStandartPort[1];\r\n\t\t}\r\n\t}\r\n\r\n\treturn result;\r\n}\r\n","import {\r\n\tstyle,\r\n\ttransition,\r\n\tanimate,\r\n\ttrigger,\r\n} from '@angular/animations';\r\n\r\nexport const MeetingsAuthAnimation = [\r\n\ttrigger('formAnimation', [\r\n\t\ttransition(':enter', [\r\n\t\t\tstyle({ transform: 'translateX(50px)' }),\r\n\t\t\tanimate('300ms ease-out'),\r\n\t\t]),\r\n\t]),\r\n];\r\n","import {NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {CommonMaxlengthValidatorDirective} from './maxlength.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonMaxlengthValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonMaxlengthValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonMaxlengthValidatorModule {}\r\n","// New version src/Common/controls/control/validation/validation.component.ts CommonValidationComponent\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/widgets/validation_component_service.jsx ValidationComponent\r\n\r\nimport {\r\n\tChangeDetectionStrategy,\r\n\tComponent,\r\n\tInput,\r\n\tInjector,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tNgModel,\r\n\tNgForm,\r\n} from '@angular/forms';\r\n\r\nimport {\r\n\tforEach,\r\n\tisBoolean,\r\n\tget,\r\n} from 'lodash';\r\nimport { ICommonKeyValues } from '../../../@types/core';\r\n\r\nimport { CommonBaseComponent } from '../../../components/base.component';\r\nimport { DEFAULT_ERROR_MESSAGES } from './default_error_messages.constant';\r\n\r\nexport interface ICommonValidationComponentCustomErrors {\r\n\t[errorName: string]: string,\r\n}\r\n\r\nexport interface ICommonValidationComponentError {\r\n\tmessage: string,\r\n\tcontext: ICommonKeyValues,\r\n}\r\n\r\nexport type TCommonValidationComponentError = ICommonValidationComponentError | boolean;\r\n\r\n@Component({\r\n\tselector: 'common-validation',\r\n\ttemplateUrl: './validation.component.pug',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstyleUrls: [\r\n\t\t'./validation.component.sass',\r\n\t],\r\n})\r\nexport class CommonValidationComponent extends CommonBaseComponent {\r\n\t@Input() customErrors: ICommonValidationComponentCustomErrors;\r\n\t@Input() ngModelControl: NgModel;\r\n\t@Input() isShow: boolean = true;\r\n\r\n\tconstructor (protected injector: Injector) {\r\n\t\tsuper(injector);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tif (this.ngModelControl) {\r\n\t\t\tthis.subscribe(this.ngModelControl.update, () => {\r\n\t\t\t\tthis.runUpdate();\r\n\t\t\t});\r\n\r\n\t\t\tthis.subscribe(this.ngModelControl.control.statusChanges, () => {\r\n\t\t\t\tthis.runUpdate();\r\n\t\t\t});\r\n\r\n\t\t\tif (this.ngModelControl.formDirective) {\r\n\t\t\t\tthis.subscribe(this.ngModelControl.formDirective.ngSubmit, () => {\r\n\t\t\t\t\tthis.runUpdate();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetMessage(): string {\r\n\t\tlet result = '';\r\n\r\n\t\tif (this.ngModelControl && this.isShow) {\r\n\t\t\tconst formDirective: NgForm = this.ngModelControl.formDirective;\r\n\r\n\t\t\tif (formDirective && formDirective.submitted && !this.ngModelControl.valid) {\r\n\t\t\t\tforEach(this.ngModelControl.errors, (val: TCommonValidationComponentError, errorName) => {\r\n\t\t\t\t\tif (!val) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet message = DEFAULT_ERROR_MESSAGES[errorName];\r\n\t\t\t\t\tlet context = {};\r\n\r\n\t\t\t\t\tif (!isBoolean(val)) {\r\n\t\t\t\t\t\tcontext = val.context || context;\r\n\t\t\t\t\t\tmessage = val.message || message;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t // условие необходимо для показа тултипов только при заполненных полях (false для booleanCheckbox, 0 для текстфилда)\r\n\t\t\t\t\tif (this.ngModelControl.model || [null, false, 0].indexOf(this.ngModelControl.model) >= 0) {\r\n\t\t\t\t\t\tmessage = get(this.customErrors, errorName) || message;\r\n\r\n\t\t\t\t\t\tif (message) {\r\n\t\t\t\t\t\t\tmessage = this.instant(message, context);\r\n\r\n\t\t\t\t\t\t\tresult = message || result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tmessage = null;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n}\r\n","\n
\n
\n
{{ getMessage() }}
\n
\n
","export const DEFAULT_ERROR_MESSAGES = {\r\n\tmin: 'common.validation.min',\r\n\tmax: 'common.validation.max',\r\n\tminLength: 'common.validation.minlength',\r\n\tmaxLength: 'common.validation.maxlength',\r\n\tpattern: 'common.validation.pattern',\r\n\tincorrectDate: 'common.validation.incorrectDate',\r\n\temail: 'common.validation.email',\r\n\tpasswordError: 'common.validation.password.error',\r\n};\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'commonPrettyPhoneNumber',\r\n})\r\nexport class CommonPrettyPhoneNumber implements PipeTransform {\r\n\ttransform (value: string): string {\r\n\t\tif (value.indexOf('7') === 0 && value.length === 11) {\r\n\t\t\treturn value.replace(/(\\d{1})(\\d{3})(\\d{3})(\\d{2})(\\d{2})/, '+$1-$2-$3-$4-$5');\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { TranslateModule, TranslateCompiler } from '@ngx-translate/core';\r\nimport { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';\r\n\r\nimport { CommonLocaleService } from './locale.service';\r\nimport { CommonTranslationCompiler } from './translation_compiler.service';\r\nimport { CommonTranslateParamsPipe } from './translate_params.pipe';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tCommonTranslateParamsPipe,\r\n\t],\r\n\timports: [\r\n\t\tTranslateModule.forRoot({\r\n\t\t\tcompiler: {\r\n\t\t\t\tprovide: TranslateCompiler,\r\n\t\t\t\tuseClass: CommonTranslationCompiler,\r\n\t\t\t},\r\n\t\t}),\r\n\t],\r\n\texports: [\r\n\t\tCommonTranslateParamsPipe,\r\n\t],\r\n\tproviders: [\r\n\t\tCommonLocaleService,\r\n\t\tCommonTranslateParamsPipe,\r\n\t\tTranslateMessageFormatCompiler,\r\n\t],\r\n})\r\nexport class CommonLocaleModule {}\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidationErrors,\r\n\tValidator,\r\n} from '@angular/forms';\r\nimport {\r\n\tDirective,\r\n\tInput,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tisBoolean,\r\n\tisEmpty,\r\n\tisObject,\r\n} from 'lodash';\r\nimport { commonUtilitiesCoreService } from '../../services/core.service';\r\n\r\n@Directive({\r\n\tselector: '[commonRequired]',\r\n\tproviders: [{\r\n\t\tprovide: NG_VALIDATORS,\r\n\t\tuseExisting: CommonRequiredDirective,\r\n\t\tmulti: true,\r\n\t}],\r\n})\r\nexport class CommonRequiredDirective implements Validator {\r\n\t@Input() commonRequired: boolean;\r\n\r\n\tprivate errorObject = {\r\n\t\tCommonRequiredValidator: true,\r\n\t};\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\t// валидация отключена по флагу\r\n\t\tif (this.commonRequired === false) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\t// особые случаи валидации\r\n\t\tif (isBoolean(control.value)) {\r\n\t\t\treturn control.value ? null : this.errorObject;\r\n\t\t} else if (isObject(control.value)) {\r\n\t\t\treturn !isEmpty(control.value) ? null : this.errorObject;\r\n\t\t}\r\n\r\n\t\treturn commonUtilitiesCoreService.hasValue(control.value) ? null : this.errorObject;\r\n\t}\r\n}\r\n","export const commonHttpErrorStatuses = {\r\n\terrors: [\r\n\t\t500,\r\n\t\t400,\r\n\t\t403,\r\n\t\t405,\r\n\t\t422,\r\n\t],\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { commonUtilitiesCoreService } from '../services/core.service';\r\n\r\n@Pipe({\r\n\tname: 'commonNAToBlankFormatter',\r\n})\r\nexport class CommonNAToBlankFormatter implements PipeTransform {\r\n\ttransform (data: any): string {\r\n\t\treturn !commonUtilitiesCoreService.hasValue(data) ? '' : data;\r\n\t}\r\n}\r\n","export const COMMON_THROTTLE_MILLISECONDS: number = 200;\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n\tHttpEvent,\r\n\tHttpHandler,\r\n\tHttpInterceptor,\r\n\tHttpRequest,\r\n} from '@angular/common/http';\r\nimport {\r\n\tObservable,\r\n\tthrowError,\r\n} from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { ICommonResponseError } from '../../../Common/@types/core';\r\n\r\n@Injectable()\r\nexport class AuthenticationMeetingsAuthRedirectInterceptor implements HttpInterceptor {\r\n\r\n\tintercept (req: HttpRequest, next: HttpHandler): Observable> {\r\n\t\treturn next.handle(req).pipe(\r\n\t\t\tcatchError((response: ICommonResponseError) => {\r\n\t\t\t\tif (response.status === 401 && !localStorage.getItem('isBeingAuthorizedLocally')) {\r\n\t\t\t\t\twindow.location.assign(`${ window.location.protocol }//${ window.location.host }${ window.location.pathname }`);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn throwError(response);\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n}\r\n","// New src/Common/components/hidden_autofill/hidden_autofill.component.ts CommonHiddenAutofillComponent\r\n// Old src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/directives/common_hidden_autofill_directive.js commonHiddenAutofillDirective\r\n\r\nimport {\r\n\tComponent,\r\n\tInput,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'common-hidden-autofill',\r\n\ttemplateUrl: './hidden_autofill.component.pug',\r\n\tstyleUrls: [\r\n\t\t'./hidden_autofill.component.sass',\r\n\t],\r\n})\r\nexport class CommonHiddenAutofillComponent {\r\n\t@Input() type: string;\r\n}\r\n","\n","// New version src/Common/pipes/capitalize_formatter.pipe.ts\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/filters/common_capitalize_filter.ts\r\n\r\nimport {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'commonCapitalizeFormatter',\r\n})\r\nexport class CommonCapitalizeFormatter implements PipeTransform {\r\n\ttransform (data: string): string {\r\n\t\treturn (!!data && 0 < data.length) ? data.charAt(0).toUpperCase() + data.substr(1) : '';\r\n\t}\r\n}\r\n","export const COMMON_HOT_KEYS = {\r\n\tLEFT_MOUSE: 1,\r\n\tMIDDLE_MOUSE: 2,\r\n\tRIGHT_MOUSE: 3,\r\n\tARROW_UP: 38,\r\n\tARROW_DOWN: 40,\r\n\tARROW_RIGHT: 39,\r\n\tARROW_LEFT: 37,\r\n\tENTER: 13,\r\n\tESC: 27,\r\n\tTAB: 9,\r\n\tEND: 35,\r\n\tHOME: 36,\r\n\tBACKSPACE: 8,\r\n\tDELETE: 46,\r\n\tSPACE: 32,\r\n};\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidator,\r\n\tValidationErrors,\r\n} from '@angular/forms';\r\nimport {\r\n\tDirective,\r\n\tInput,\r\n} from '@angular/core';\r\nimport {\r\n\tisEmpty,\r\n\tisObject,\r\n\tomit,\r\n\tevery,\r\n\tsome,\r\n\tforEach,\r\n\tkeys,\r\n} from 'lodash';\r\nimport { commonUtilitiesCoreService } from '../../services/core.service';\r\n\r\nenum ValidationMode {\r\n\tany = 'any', // обязательно как минимум одно заполненное поле в группе\r\n\tevery = 'every', // обязательны все поля в группе если одно из них заполнено\r\n}\r\n\r\ninterface IGroup {\r\n\tmode?: ValidationMode;\r\n\tisValid?: boolean; // группа валидна\r\n\tfields?: {\r\n\t\t[fieldName: string]: boolean; // поле заполнено\r\n\t},\r\n\texcluded?: string[]; // поля исключенные из валидации группы (отмечены флагом groupRequiredNotRequired)\r\n}\r\n\r\ninterface IGroups {\r\n\t[groupName: string]: IGroup;\r\n}\r\n\r\nconst groups: IGroups = {};\r\n\r\n@Directive({\r\n\tselector: '[groupRequired]', // requiredGroup\r\n\tproviders: [{\r\n\t\tprovide: NG_VALIDATORS,\r\n\t\tuseExisting: CommonGroupRequiredDirective,\r\n\t\tmulti: true,\r\n\t}],\r\n})\r\nexport class CommonGroupRequiredDirective implements Validator {\r\n\t@Input() name: string;\r\n\t@Input('groupRequired') groupName: string; // requiredGroup\r\n\t@Input('groupRequiredMode') mode: ValidationMode = ValidationMode.any; // requiredGroupMode\r\n\t// groupRequiredNotRequired - при изменении остальных полей группы это поле не обязательно,\r\n\t// но при заполнении этого поля остальные поля группы обязательны\r\n\t// работает в режимах:\r\n\t// any - любое из остальных полей группы обязательно\r\n\t// every - все остальные поля группы обязательны (используется в банкро)\r\n\t@Input('groupRequiredNotRequired') notRequired: boolean = false; // requiredGroupMode = \"notRequired\"\r\n\tgroup: IGroup = {};\r\n\terrorObject: ValidationErrors | null = null;\r\n\r\n\tngOnInit () {\r\n\t\tthis.errorObject = { groupRequired: this.groupName };\r\n\t\tthis.initGroup();\r\n\t}\r\n\r\n\tngOnDestroy () {\r\n\t\tdelete this.group.fields![this.name];\r\n\t\tgroups[this.groupName] = this.group;\r\n\r\n\t\tif (isEmpty(this.group.fields)) {\r\n\t\t\tdelete groups[this.groupName];\r\n\t\t}\r\n\t}\r\n\r\n\tvalidate (control: AbstractControl): ValidationErrors | null {\r\n\t\tthis.initGroup();\r\n\t\tthis.updateGroup(control.value);\r\n\t\tthis.updateRelatedFields(control.root);\r\n\r\n\t\t// в режиме every нужно убирать подсветку c поля которое заполнили, поэтому проверяем и само поле\r\n\t\treturn this.group.isValid || this.group.fields![this.name] ? null : this.errorObject;\r\n\t}\r\n\r\n\tprivate updateRelatedFields (form: AbstractControl): void {\r\n\t\tconst relatedFields = omit(this.group.fields, [...this.group.excluded!, this.name]);\r\n\r\n\t\tforEach(relatedFields, (hasValue, name) => {\r\n\t\t\tconst relatedControl = form.get(name);\r\n\r\n\t\t\tif (relatedControl) {\r\n\t\t\t\tlet errors;\r\n\r\n\t\t\t\t// в режиме every нужно убирать подсветку с поля которое заполнили, поэтому проверяем и само поле\r\n\t\t\t\tif (this.group.isValid || this.group.fields![name]) {\r\n\t\t\t\t\tconst currentErrors = omit(relatedControl.errors, keys(this.errorObject));\r\n\t\t\t\t\terrors = isEmpty(currentErrors) ? null : currentErrors;\r\n\t\t\t\t} else {\r\n\t\t\t\t\terrors = {\r\n\t\t\t\t\t\t...relatedControl.errors,\r\n\t\t\t\t\t\t...this.errorObject\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\trelatedControl.setErrors(errors);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate initGroup (): void {\r\n\t\tconst newGroup: IGroup = {\r\n\t\t\tisValid: true,\r\n\t\t\tmode: this.mode,\r\n\t\t\tfields: {},\r\n\t\t\texcluded: [],\r\n\t\t};\r\n\r\n\t\tif (this.groupName) {\r\n\t\t\tthis.group = groups[this.groupName] || newGroup;\r\n\t\t\tgroups[this.groupName] = this.group;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateGroup (value: any): void {\r\n\t\tconst hasValue = isObject(value) ? !isEmpty(value) : commonUtilitiesCoreService.hasValue(value);\r\n\t\tthis.group.fields![this.name] = hasValue || this.notRequired;\r\n\r\n\t\tif (this.notRequired && this.group.excluded!.indexOf(this.name) === -1) {\r\n\t\t\tthis.group.excluded!.push(this.name);\r\n\t\t}\r\n\r\n\t\tthis.group.isValid = this.groupIsValid();\r\n\t}\r\n\r\n\tprivate groupIsValid (): boolean {\r\n\t\tconst fields = omit(this.group.fields, this.group.excluded!);\r\n\r\n\t\tswitch (this.group.mode) {\r\n\t\t\tcase ValidationMode.any:\r\n\t\t\t\treturn some(fields);\r\n\t\t\tcase ValidationMode.every:\r\n\t\t\t\treturn every(fields);\r\n\t\t\tdefault:\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n}\r\n","import { Directive, ElementRef, Input } from '@angular/core';\r\nimport Dotdotdot from 'dotdotdot-js';\r\n\r\n@Directive({\r\n\tselector: '[commonDotdotdot]',\r\n})\r\nexport class CommonDotdotdotDirective {\r\n\t@Input() options = {};\r\n\r\n\tconstructor(private el: ElementRef) {\r\n\t}\r\n\r\n\tngAfterViewInit () {\r\n\t\tconst dotdot = new Dotdotdot(this.el.nativeElement, this.options);\r\n\t}\r\n}\r\n","import { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\r\nimport { Directive, Input } from '@angular/core';\r\nimport { isRegExp } from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonPattern]',\r\n\tproviders: [{\r\n\t\tprovide: NG_VALIDATORS,\r\n\t\tuseExisting: CommonPatternValidatorDirective,\r\n\t\tmulti: true,\r\n\t}],\r\n})\r\nexport class CommonPatternValidatorDirective implements Validator {\r\n\t@Input() commonPattern: RegExp | string;\r\n\r\n\tvalidate(control: AbstractControl): {[key: string]: any} | null {\r\n\t\tconst pattern = isRegExp(this.commonPattern) ? this.commonPattern : RegExp(this.commonPattern);\r\n\r\n\t\treturn pattern.test(control.value) ? null : {\r\n\t\t\tCommonPatternValidator: true,\r\n\t\t};\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonEmailValidatorDirective } from './email.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonEmailValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonEmailValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonEmailValidatorModule {}\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidationErrors,\r\n\tValidator,\r\n} from '@angular/forms';\r\nimport {\r\n\tDirective,\r\n\tInput,\r\n} from '@angular/core';\r\nimport {\r\n\tget,\r\n\tisNumber,\r\n} from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonMax]',\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseExisting: CommonMaxValidatorDirective,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class CommonMaxValidatorDirective implements Validator {\r\n\t@Input() commonMax: number;\r\n\r\n\tvalidate (control: AbstractControl): ValidationErrors | null {\r\n\t\tconst value = parseFloat(get(control, 'value', null));\r\n\r\n\t\tif (isNumber(value) && value <= this.commonMax) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tmax: {\r\n\t\t\t\tcontext: {\r\n\t\t\t\t\tvalue: this.commonMax,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\t}\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonStopPropagationDirective } from './stop_propagation.directive';\r\nimport { CommonPreventDefaultDirective } from './prevent_default.directive';\r\nimport { CommonAutofocusDirective } from './autofocus.directive';\r\nimport { CommonDotdotdotDirective } from './dotdotdot.directive';\r\nimport { CommonLowerCaseInputDirective } from './lower_case_input';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tCommonPreventDefaultDirective,\r\n\t\tCommonStopPropagationDirective,\r\n\t\tCommonAutofocusDirective,\r\n\t\tCommonDotdotdotDirective,\r\n\t\tCommonLowerCaseInputDirective,\r\n\t],\r\n\texports: [\r\n\t\tCommonPreventDefaultDirective,\r\n\t\tCommonStopPropagationDirective,\r\n\t\tCommonAutofocusDirective,\r\n\t\tCommonDotdotdotDirective,\r\n\t\tCommonLowerCaseInputDirective,\r\n\t],\r\n})\r\nexport class CommonDirectivesModule {}\r\n","module.exports = {\r\n\tsourcemaps: true,\r\n\tdevspecs: false,\r\n\tproduction: true,\r\n\treloadless: false,\r\n\tbuildConfig: {\r\n\t\tlanguage: 'ru',\r\n\t\tserver: 'https://test.case.one',\r\n\t\tlogin: 'user1@user.ru',\r\n\t\tpassword: '123123',\r\n\t\tport: 9000,\r\n\t\thttps: true,\r\n\t\tproxyTargets: ['/api', '/authentication', '/signalr', '/account'],\r\n\t\tisLocalServer: true\r\n\t},\r\n\tuserData: {\r\n\t\tIsGuest: false,\r\n\t\t// актуальные гостевые куки для СК/КК нужно скопировать из браузера (DevTools/Application/Cookies), пройдя по сгенерированной гостевой ссылке\r\n\t\tGuestCookieName: '.AspNetCore.Cookies.meetings',\r\n\t\tGuestCookieValue: '',\r\n\t\t// не нужно менять, одинаковы для всех гостевых кук\r\n\t\tGuestCookieOptions: 'domain=localhost; path=/; max-age=1209600; secure; samesite=lax;'\r\n\t}\r\n};\r\n","/***\r\n * !!! В попапах используется CommonEditFormSubmitWidgetComponent\r\n * Является простой оберткой над кнопкой submit и регистрируется в форме\r\n * Нужен в формах с валидацией в режиме submit\r\n */\r\nimport {\r\n\tComponent,\r\n\tInput,\r\n\tChangeDetectionStrategy,\r\n\tforwardRef,\r\n} from '@angular/core';\r\nimport {\r\n\tNG_VALUE_ACCESSOR,\r\n\tControlValueAccessor,\r\n} from '@angular/forms';\r\n\r\n@Component({\r\n\tselector: 'common-submit-button',\r\n\ttemplateUrl: './submit_button.component.pug',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [{\r\n\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\tmulti: true,\r\n\t\tuseExisting: forwardRef(() => CommonSubmitButtonComponent),\r\n\t}],\r\n})\r\n// компонент зарегистрирован как контрол для того чтобы можно было понять в каком режиме включать валидацию формы\r\nexport class CommonSubmitButtonComponent implements ControlValueAccessor {\r\n\t@Input() isDisabled: boolean = false;\r\n\t@Input() ctrlClasses: string = '';\r\n\t@Input() withoutBtnClasses: boolean;\r\n\r\n\tmodel: any = null;\r\n\r\n\twriteValue (value: any): void {\r\n\t\tthis.model = value;\r\n\t}\r\n\r\n\tregisterOnChange(): void {\r\n\t\t//\r\n\t}\r\n\r\n\tregisterOnTouched(): void {\r\n\t\t//\r\n\t}\r\n}\r\n","\n","// New version src/Common/modules_placeholders/modules_placeholders.service.ts CommonModulesPlaceholders\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/providers/modules_placeholders_provider.ts ModulesPlaceholders\r\n\r\n// Provider registration and storages info about module placeholder\r\nimport { map, isFunction, get} from 'lodash';\r\nimport { Injector, Provider, Injectable } from '@angular/core';\r\nimport { ICommonKeyValues } from '../@types/core';\r\n\r\nexport interface ICommonModulesPlaceholdersProvider {\r\n\tregisterPlaceholder(placeholder: ICommonModulesPlaceholderType): ICommonModulesPlaceholdersProvider\r\n}\r\n\r\nexport interface ICommonModulesPlaceholderType {\r\n\tname: string;\r\n\tdeps?: [Provider];\r\n\tplaceholder: T;\r\n}\r\n\r\ninterface IPlaceholdersList extends ICommonKeyValues>> {}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class CommonModulesPlaceholders {\r\n\tprivate modulesPlaceholdersList: IPlaceholdersList = {};\r\n\r\n\tpublic registerPlaceholder(placeholderObject: ICommonModulesPlaceholderType): ICommonModulesPlaceholdersProvider {\r\n\t\tthis.modulesPlaceholdersList[placeholderObject.name] = this.modulesPlaceholdersList[placeholderObject.name] || [];\r\n\t\tthis.modulesPlaceholdersList[placeholderObject.name].push(placeholderObject);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tpublic getPlaceholder(name: string): T[] {\r\n\t\treturn map(this.modulesPlaceholdersList[name], this.invokePlaceholder.bind(this));\r\n\t}\r\n\r\n\tprivate invokePlaceholder(placeholderObject: ICommonModulesPlaceholderType): T {\r\n\t\tlet placeholder = placeholderObject.placeholder;\r\n\r\n\t\tif (isFunction(placeholder)) {\r\n\t\t\tlet deps = [];\r\n\r\n\t\t\t// not in constructor for downgrading support\r\n\t\t\tconst injector = Injector.create({providers: []});\r\n\r\n\t\t\tif (get(placeholderObject, 'deps.length')) {\r\n\t\t\t\tdeps = map(placeholderObject.deps, (dependency) => injector.get(dependency));\r\n\t\t\t}\r\n\r\n\t\t\tplaceholder = placeholder(...deps);\r\n\t\t}\r\n\r\n\t\treturn placeholder;\r\n\t}\r\n}\r\n","// New version src/Common/server_date/server_date.service.ts CommonServerDateService\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/server_date_service_factory.ts ServerDateService\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { isNull, isArray, some, find, isString, map, isEmpty, extend } from 'lodash';\r\nimport * as moment from 'moment';\r\n\r\nimport { Int, UUID } from '../@types/core';\r\nimport { CommonLocaleService } from './locale/locale.service';\r\nimport { CommonGeneralSettingsService } from './general_settings.service';\r\n\r\n// Helper for generating Opaque types.\r\ntype Opaque = T & { __opaque__: K };\r\ntype TCommonServerDateFormatString = Opaque; // 'YYYY-MM-DD'\r\ntype TCommonServerNonWorkingRule = (day: moment.Moment) => boolean;\r\n\r\ntype TCommonServerDateMomentPeriod = (\r\n\t'year' | 'years' | 'y' |\r\n\t'month' | 'months' | 'M' |\r\n\t'week' | 'weeks' | 'w' |\r\n\t'day' | 'days' | 'd' |\r\n\t'hour' | 'hours' | 'h' |\r\n\t'minute' | 'minutes' | 'm' |\r\n\t'second' | 'seconds' | 's' |\r\n\t'millisecond' | 'milliseconds' | 'ms'\r\n);\r\n\r\ntype TCommonServerDateMomentPeriodQuarter = 'quarter' | 'quarters' | 'Q';\r\n\r\ninterface ICommonServerDateWeekDay {\r\n\tId: UUID,\r\n\tName: string,\r\n\tOrder: Int,\r\n\tIndexNumber: Int,\r\n\tSysName: string,\r\n}\r\n\r\ninterface ICommonServerDateNonWorkingDay {\r\n\tName?: string;\r\n\tStartDate: TCommonServerDateFormatString;\r\n\tEndDate: TCommonServerDateFormatString;\r\n}\r\n\r\nexport const DAYS_SYMBOL = 'dd';\r\nexport const MONTHS_SYMBOL = 'mm';\r\nexport const YEARS_SYMBOL = 'yyyy';\r\nexport const DAYS_IN_WEEK = 7;\r\n\r\nconst DEFAULT_SETTINGS = {\r\n\tfirstDay: 0,\r\n};\r\n\r\n@Injectable()\r\nexport class CommonServerDateService {\r\n\tdaysSymbol = 'dd';\r\n\tmonthsSymbol = 'mm';\r\n\tyearsSymbol = 'yyyy';\r\n\tsecondsInMinute = 60;\r\n\tminutesInHour = 60;\r\n\thoursInDay = 24;\r\n\tsecondsInDay = 24 * 60 * 60;\r\n\tdaysInWeek = 7;\r\n\tdatetimeFormat = 'YYYY-MM-DD[T]HH:mm:ss.SSSZ';\r\n\tlocalDateTimeFormat = 'YYYY-MM-DD[T]HH:mm:ss';\r\n\tdateFormat = 'YYYY-MM-DD';\r\n\tworkingDays: ICommonServerDateWeekDay[] = [];\r\n\tnonWorkingDays: ICommonServerDateNonWorkingDay[] = [];\r\n\tshortDateFormat = 'DD.MM.Y';\r\n\tinputDateFormat = this.shortDateFormat;\r\n\tmediumDateFormat = 'D MMM Y';\r\n\tlongDateFormat = 'D MMMM Y';\r\n\tdisplayTimeFormat = 'HH:mm';\r\n\tmaskDelimiter = '.';\r\n\tshortWithTime = `${this.shortDateFormat}, ${this.displayTimeFormat}`;\r\n\tmediumWithTime = `${this.mediumDateFormat}, ${this.displayTimeFormat}`;\r\n\ttimeWithMedium = `${this.displayTimeFormat}, ${this.mediumDateFormat}`;\r\n\tdateTestRegex: RegExp;\r\n\tinputDateTestRegex: RegExp;\r\n\tinputDateMask = '';\r\n\tinputDatePlaceholder = '';\r\n\tinputTimeMask = '';\r\n\tinputTimePlaceholder = '';\r\n\tinputFormatWithFirstZero = -1 < this.inputDateFormat.indexOf('DD');\r\n\tamDesignator = '';\r\n\tpmDesignator = '';\r\n\tfirstDay = '';\r\n\r\n\tprivate inputTimeRegex = /\\d{2}:\\d{2}/;\r\n\tprivate isoDateTestRegex = /\\d{4}\\-\\d{2}\\-\\d{2}/;\r\n\r\n\t/* tslint:disable: object-literal-key-quotes */\r\n\tprivate dateTestRegexByYear = {\r\n\t\t'yyyymmdd': /\\d{4}[\\/\\-.]\\d{1,2}[\\/\\-.]\\d{1,2}/,\r\n\t\t'mmddyyyy': /\\d{1,2}[\\/\\-.]\\d{1,2}[\\/\\-.]\\d{4}/,\r\n\t\t'ddmmyyyy': /\\d{1,2}[\\/\\-.]\\d{1,2}[\\/\\-.]\\d{4}/,\r\n\t};\r\n\r\n\tprivate inputDateTestRegexByYear = {\r\n\t\t'yyyymmdd': /\\d{4}[\\/\\-.]\\d{2}[\\/\\-.]\\d{2}/,\r\n\t\t'mmddyyyy': /\\d{2}[\\/\\-.]\\d{2}[\\/\\-.]\\d{4}/,\r\n\t\t'ddmmyyyy': /\\d{2}[\\/\\-.]\\d{2}[\\/\\-.]\\d{4}/,\r\n\t};\r\n\t/* tslint:enable: object-literal-key-quotes */\r\n\r\n\tprivate TIME_KEYS_FOR_DST_FIX = ['days', 'day', 'weeks', 'week', 'months', 'month', 'quarters', 'quarter', 'years', 'year', 'd', 'w', 'M', 'Q', 'y'];\r\n\tprivate workingDayIndexes: Int[];\r\n\tprivate nonWorkingDaysRules: TCommonServerNonWorkingRule[];\r\n\r\n\tconstructor (\r\n\t\tprivate commonLocaleService: CommonLocaleService,\r\n\t\tprivate commonGeneralSettingsService: CommonGeneralSettingsService,\r\n\t) {}\r\n\r\n\tinit () {\r\n\t\tthis.workingDays = this.commonGeneralSettingsService.getGeneralSettings('WorkingDays');\r\n\t\tthis.nonWorkingDays = this.commonGeneralSettingsService.getGeneralSettings('NonWorkingDays');\r\n\t\tthis.extendDateFormatsFromGeneralSettings();\r\n\r\n\t\tthis.setInputSettings();\r\n\r\n\t\tthis.workingDayIndexes = map(this.workingDays, (day) => {\r\n\t\t\tconst index = day.IndexNumber + 1;\r\n\r\n\t\t\tif (index === DAYS_IN_WEEK) {\r\n\t\t\t\treturn 0;\r\n\t\t\t} else {\r\n\t\t\t\treturn index;\r\n\t\t\t}\r\n\t\t}) as Int[];\r\n\r\n\t\tthis.nonWorkingDaysRules = this.createNonWorkingRules(this.nonWorkingDays);\r\n\t}\r\n\r\n\tgetMoment (dateString?: string | moment.Moment | object | number): moment.Moment {\r\n\t\tconst invalidDateString = dateString === 'current' || isNull(dateString) || dateString === '' || dateString === undefined;\r\n\t\treturn moment( invalidDateString ? undefined : dateString, (this.isDateString(dateString as string) && !this.isISODateString(dateString as string) ? this.shortDateFormat : null)!);\r\n\t}\r\n\r\n\tgetMomentInstance (): typeof moment {\r\n\t\treturn moment;\r\n\t}\r\n\r\n\tgetDateFromTimeZone (timeZone: string, date?: string, ): moment.Moment {\r\n\t\treturn date ? moment.tz(date, timeZone) : moment.tz(timeZone);\r\n\t}\r\n\r\n\tgetMoscowDateTime (date?: string): moment.Moment {\r\n\t\treturn this.getDateFromTimeZone('Europe/Moscow', date);\r\n\t}\r\n\r\n\thasTime (dateString: string): boolean {\r\n\t\treturn !!dateString && dateString.indexOf && dateString.indexOf('T') !== -1;\r\n\t}\r\n\r\n\tisInputTimeString (timeString: string | null): boolean {\r\n\t\treturn isString(timeString) && this.inputTimeRegex.test(timeString);\r\n\t}\r\n\r\n\tgetTimezoneOffset (): string {\r\n\t\treturn moment().format('Z');\r\n\t}\r\n\r\n\tisChangedDates (newValues: moment.Moment | string | [], oldValues: moment.Moment | string | []): boolean {\r\n\t\tlet isChanged;\r\n\r\n\t\tif (isArray(newValues)) {\r\n\t\t\tisChanged = some(newValues, (value, index) => {\r\n\r\n\t\t\t\treturn !this.getMoment(value).isSame(this.getMoment(oldValues[index]));\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tisChanged = !this.getMoment(newValues as string).isSame(this.getMoment(oldValues as string));\r\n\t\t}\r\n\r\n\t\treturn isChanged;\r\n\t}\r\n\r\n\tgetLastDaysDate (daysCount: number): moment.Moment {\r\n\t\treturn moment().add(-daysCount, 'days');\r\n\t}\r\n\r\n\tisDayOff (date: moment.Moment): boolean {\r\n\t\tif (this.isWorkingDayInWeek(date)) {\r\n\t\t\treturn !!find(this.nonWorkingDaysRules, (rule) => {\r\n\t\t\t\treturn rule(date);\r\n\t\t\t});\r\n\r\n\t\t} else {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tisWorkingDayInWeek (date: moment.Moment): boolean {\r\n\t\tconst dayIndex = date.day() as Int;\r\n\t\treturn -1 < this.workingDayIndexes.indexOf(dayIndex);\r\n\t}\r\n\r\n\tgetDiffAsDays (startDate: moment.Moment, endDate: moment.Moment): number {\r\n\t\tconst minutesDiff = (endDate.unix() - startDate.unix()) / this.secondsInMinute;\r\n\t\tconst offsetDiff = endDate.utcOffset() - startDate.utcOffset();\r\n\r\n\t\treturn (minutesDiff + offsetDiff) / (this.minutesInHour * this.hoursInDay);\r\n\t}\r\n\r\n\tadd (date: moment.Moment, value: number, period: TCommonServerDateMomentPeriod | TCommonServerDateMomentPeriodQuarter): moment.Moment {\r\n\t\tconst isFixPeriod = -1 < this.TIME_KEYS_FOR_DST_FIX.indexOf(period);\r\n\r\n\t\tlet oldHour;\r\n\t\tlet newHour;\r\n\t\tlet diff;\r\n\r\n\t\tif (isFixPeriod) {\r\n\t\t\toldHour = date.hours();\r\n\t\t\tdate.add(value, period);\r\n\t\t\tnewHour = date.hours();\r\n\r\n\t\t\tif (oldHour !== newHour) {\r\n\t\t\t\tdiff = this.getCountDiffHours(newHour, oldHour);\r\n\r\n\t\t\t\tif (0 < diff) {\r\n\t\t\t\t\tdate.add(diff, 'hours');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn date;\r\n\t\t} else {\r\n\t\t\treturn date.add(value, period);\r\n\t\t}\r\n\t}\r\n\r\n\tisDateString (dateString: string): boolean {\r\n\t\treturn isString(dateString) && (this.dateTestRegex.test(dateString) || this.isISODateString(dateString));\r\n\t}\r\n\r\n\tisInputDateString (dateString: string): boolean {\r\n\t\treturn isString(dateString) && (this.inputDateTestRegex.test(dateString) || this.isISODateString(dateString));\r\n\t}\r\n\r\n\tisISODateString (dateString: string): boolean {\r\n\t\treturn isString(dateString) && this.isoDateTestRegex.test(dateString);\r\n\t}\r\n\r\n\t// convert date (or array of dates) to UTC ISO 8601 formatted string\r\n\ttoISOString (date: string | moment.Moment): string {\r\n\t\treturn date ? this.getMoment(date).clone().toISOString() : '';\r\n\t}\r\n\r\n\ttoLocalDateTimeFormatString (date: string | moment.Moment): string {\r\n\t\treturn date ? this.getMoment(date).clone().format(this.localDateTimeFormat) : '';\r\n\t}\r\n\r\n\ttoDateString (date: string | moment.Moment): TCommonServerDateFormatString | string {\r\n\t\treturn date ? this.getMoment(date).clone().format(this.dateFormat) : '';\r\n\t}\r\n\r\n\ttoDisplayDateString (date: moment.Moment | string): string {\r\n\t\treturn date ? this.getMoment(date).clone().format(this.shortDateFormat) : '';\r\n\t}\r\n\r\n\ttoDisplayTimeString (date: moment.Moment | string): string {\r\n\t\treturn date ? this.getMoment(date).clone().format(this.displayTimeFormat) : '';\r\n\t}\r\n\r\n\tsetInputSettings (): void {\r\n\t\tconst monthsSymbol = this.commonLocaleService.instant('common.symbols.months');\r\n\t\tconst yearsSymbol = this.commonLocaleService.instant('common.symbols.years');\r\n\t\tconst daysSymbol = this.commonLocaleService.instant('common.symbols.days');\r\n\t\tconst minutesSymbol = this.commonLocaleService.instant('common.symbols.minutes');\r\n\t\tconst hoursSymbol = this.commonLocaleService.instant('common.symbols.hours');\r\n\r\n\t\tconst mask = this.inputDateFormat\r\n\t\t\t.toLowerCase()\r\n\t\t\t.replace(/d{1,2}/i, DAYS_SYMBOL)\r\n\t\t\t.replace(/m{1,2}/i, MONTHS_SYMBOL)\r\n\t\t\t.replace(/y{1,4}/i, YEARS_SYMBOL);\r\n\r\n\t\tconst placeholder = mask\r\n\t\t\t.replace(/d/g, daysSymbol)\r\n\t\t\t.replace(/m/g, monthsSymbol)\r\n\t\t\t.replace(/y/g, yearsSymbol);\r\n\r\n\t\tconst maskWithoutDelimiters = mask.replace(/\\W/g, '');\r\n\t\tthis.maskDelimiter = this.inputDateFormat.replace(/\\w/g, '')[0];\r\n\r\n\t\tthis.dateTestRegex = this.dateTestRegexByYear[maskWithoutDelimiters];\r\n\t\tthis.inputDateTestRegex = this.inputDateTestRegexByYear[maskWithoutDelimiters];\r\n\t\tthis.inputDateMask = mask;\r\n\t\tthis.inputDatePlaceholder = placeholder;\r\n\t\tthis.inputTimeMask = 'h:s';\r\n\t\tthis.inputTimePlaceholder = this.inputTimeMask.replace(/h/g, hoursSymbol + hoursSymbol).replace(/s/g, minutesSymbol + minutesSymbol);\r\n\t\tthis.maskDelimiter = this.maskDelimiter;\r\n\t}\r\n\r\n\tprivate extendDateFormatsFromGeneralSettings (): void {\r\n\t\tconst dateFormatSettings = this.commonGeneralSettingsService.getGeneralSettings('DateFormat');\r\n\r\n\t\tif (!isEmpty(dateFormatSettings)) {\r\n\t\t\tconst timeFormatSettings = this.commonGeneralSettingsService.getGeneralSettings('TimeFormat');\r\n\r\n\t\t\tthis.displayTimeFormat = timeFormatSettings.Format;\r\n\t\t\tthis.shortDateFormat = dateFormatSettings.ShortFormat;\r\n\t\t\tthis.mediumDateFormat = dateFormatSettings.MediumFormat;\r\n\t\t\tthis.longDateFormat = dateFormatSettings.LongFormat;\r\n\t\t\tthis.inputDateFormat = this.shortDateFormat;\r\n\t\t\tthis.maskDelimiter = this.inputDateFormat.replace(/\\w/g, '')[0];\r\n\t\t\tthis.shortWithTime = `${this.shortDateFormat}, ${this.displayTimeFormat}`;\r\n\t\t\tthis.mediumWithTime = `${this.mediumDateFormat}, ${this.displayTimeFormat}`;\r\n\t\t\tthis.timeWithMedium = `${this.displayTimeFormat}, ${this.mediumDateFormat}`;\r\n\t\t\tthis.amDesignator = timeFormatSettings.AmDesignator;\r\n\t\t\tthis.pmDesignator = timeFormatSettings.PmDesignator;\r\n\t\t\tthis.firstDay = this.commonGeneralSettingsService.getGeneralSettings('DayOfWeek').IndexNumber + 1;\r\n\t\t\tthis.inputFormatWithFirstZero = -1 < this.inputDateFormat.indexOf('DD');\r\n\t\t} else {\r\n\t\t\textend(this, DEFAULT_SETTINGS);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate afterOrEqual (\r\n\t\tfirstYear: number,\r\n\t\tfirstMonth: number,\r\n\t\tfirstDay: number,\r\n\t\tsecondYear: number,\r\n\t\tsecondMonth: number,\r\n\t\tsecondDay: number,\r\n\t): boolean {\r\n\t\treturn firstYear < secondYear || (firstYear === secondYear && (\r\n\t\t\tfirstMonth < secondMonth || (firstMonth === secondMonth && (\r\n\t\t\t\tfirstDay < secondDay || firstDay === secondDay)\r\n\t\t\t))\r\n\t\t);\r\n\t}\r\n\r\n\tprivate createNonWorkingRules (nonWorkingDays: ICommonServerDateNonWorkingDay[]): TCommonServerNonWorkingRule[] {\r\n\t\treturn map(nonWorkingDays, (day) => {\r\n\t\t\tconst startDate = this.getMoment(day.StartDate);\r\n\t\t\tconst startYear = startDate.year();\r\n\t\t\tconst startMonth = startDate.month();\r\n\t\t\tconst startDayInMonth = startDate.date();\r\n\r\n\t\t\tif (day.EndDate) {\r\n\t\t\t\tconst endDate = this.getMoment(day.EndDate);\r\n\t\t\t\tconst endYear = endDate.year();\r\n\t\t\t\tconst endMonth = endDate.month();\r\n\t\t\t\tconst endDayInMonth = endDate.date();\r\n\r\n\t\t\t\treturn (testDate: moment.Moment): boolean => {\r\n\t\t\t\t\tconst year = testDate.year();\r\n\t\t\t\t\tconst month = testDate.month();\r\n\t\t\t\t\tconst dayInMonth = testDate.date();\r\n\t\t\t\t\tconst afterStart = this.afterOrEqual(startYear, startMonth, startDayInMonth, year, month, dayInMonth);\r\n\t\t\t\t\tconst beforeEnd = this.afterOrEqual(year, month, dayInMonth, endYear, endMonth, endDayInMonth);\r\n\r\n\t\t\t\t\treturn afterStart && beforeEnd;\r\n\t\t\t\t};\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn (testDate: moment.Moment): boolean => {\r\n\t\t\t\t\tconst year = testDate.year();\r\n\t\t\t\t\tconst month = testDate.month();\r\n\t\t\t\t\tconst dayInMonth = testDate.date();\r\n\r\n\t\t\t\t\treturn startYear === year && startMonth === month && startDayInMonth === dayInMonth;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getCountDiffHours (newHour: number, oldHour: number): number {\r\n\t\tconst newHourInRange = 0 <= newHour && newHour < this.hoursInDay;\r\n\t\tconst oldHourInRange = 0 <= oldHour && oldHour < this.hoursInDay;\r\n\r\n\t\tlet leftShift;\r\n\t\tlet rightShift;\r\n\r\n\t\tif (newHourInRange && oldHourInRange) {\r\n\t\t\tleftShift = 0;\r\n\t\t\trightShift = 0;\r\n\r\n\t\t\twhile (true) {\r\n\t\t\t\tif (this.normalizeHour(newHour + leftShift) === oldHour) {\r\n\t\t\t\t\treturn leftShift;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tleftShift -= 1;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.normalizeHour(newHour + rightShift) === oldHour) {\r\n\t\t\t\t\treturn rightShift;\r\n\t\t\t\t} else {\r\n\t\t\t\t\trightShift += 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate normalizeHour (hour: number): number {\r\n\t\tif (this.hoursInDay <= hour) {\r\n\t\t\treturn this.normalizeHour(hour - this.hoursInDay);\r\n\t\t} else if (hour < 0) {\r\n\t\t\treturn this.normalizeHour(hour + this.hoursInDay);\r\n\t\t} else {\r\n\t\t\treturn hour;\r\n\t\t}\r\n\t}\r\n}\r\n","import commonRUTranslations from '../../../CaseDotStar.ServicePackages.Frontend.Locale/json/ru/ru.common.json5';\r\nimport authenticationMeetingsRUTranslations from '../../../CaseDotStar.ServicePackages.Frontend.Locale/json/ru/ru.meetings_auth.json5';\r\nimport { TCommonLocaleDictionary } from '../../../Common/services/locale/locale.translations.token';\r\n\r\nexport const AuthenticationMeetingsLocaleTranslations: TCommonLocaleDictionary = {\r\n\tru: {\r\n\t\t...commonRUTranslations,\r\n\t\t...authenticationMeetingsRUTranslations,\r\n\t}\r\n};\r\n","import {\r\n\tAbstractControl,\r\n\tNG_VALIDATORS,\r\n\tValidationErrors,\r\n\tValidator\r\n} from '@angular/forms';\r\nimport {\r\n\tDirective,\r\n\tInput\r\n} from '@angular/core';\r\nimport { get } from 'lodash';\r\n\r\n@Directive({\r\n\tselector: '[commonMatch]',\r\n\tproviders: [{\r\n\t\tprovide: NG_VALIDATORS,\r\n\t\tuseExisting: CommonMatchValidatorDirective,\r\n\t\tmulti: true,\r\n\t}],\r\n})\r\nexport class CommonMatchValidatorDirective implements Validator {\r\n\t@Input() commonMatch: string;\r\n\r\n\tvalidate(control: AbstractControl): ValidationErrors | null {\r\n\t\tconst matchControl = control.root.get(this.commonMatch);\r\n\t\tlet res;\r\n\r\n\t\tif (matchControl) {\r\n\t\t\tconst changeSubscription = matchControl.valueChanges.subscribe(() => {\r\n\t\t\t\tcontrol.updateValueAndValidity();\r\n\t\t\t\tchangeSubscription.unsubscribe();\r\n\t\t\t});\r\n\r\n\t\t\tres = get(matchControl, 'value') !== control.value;\r\n\t\t\tcontrol.setErrors(res ? {CommonMatchValidator: true} : null);\r\n\t\t}\r\n\r\n\t\treturn res ? {\r\n\t\t\tmatch: true,\r\n\t\t} : null;\r\n\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport {\r\n\tIAuthenticationMeetingsChangePassword,\r\n\tIAuthenticationMeetingsConfirmUser,\r\n\tIAuthenticationMeetingsLoginUser,\r\n\tIAuthenticationMeetingsRegistration,\r\n\tIAuthenticationMeetingsRemindUser\r\n} from '../authentication.interfaces';\r\n\r\nimport { ICommonResponseError } from '../../../../Common/@types/core';\r\n\r\nconst urls = {\r\n\tlogin: 'account/login',\r\n\tconfirm: 'account/verifyCode',\r\n\tregistration: 'account/register',\r\n\tresetPassword: 'account/resetPassword',\r\n\tcode: 'account/sendCode',\r\n\tchangePassword: 'account/applyPassword',\r\n};\r\n\r\nexport interface IAuthenticationMeetingsUserActionsResponse extends ICommonResponseError {\r\n\tIsSuccess: boolean,\r\n\tResult: {\r\n\t\tExpiresAt: string,\r\n\t}\r\n}\r\n\r\n@Injectable()\r\nexport class AuthenticationMeetingsUserService {\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t) {}\r\n\r\n\tlogin (data: IAuthenticationMeetingsLoginUser): Observable {\r\n\t\treturn this.http.post(urls.login, data);\r\n\t}\r\n\r\n\tconfirm (data: IAuthenticationMeetingsConfirmUser): Observable {\r\n\t\treturn this.http.post(urls.confirm, data);\r\n\t}\r\n\r\n\tresetPassword (data: IAuthenticationMeetingsRemindUser): Observable {\r\n\t\treturn this.http.post(urls.resetPassword, data);\r\n\t}\r\n\r\n\tchangePassword (data: IAuthenticationMeetingsChangePassword): Observable {\r\n\t\treturn this.http.post(urls.changePassword, data);\r\n\t}\r\n\r\n\tregister (data: IAuthenticationMeetingsRegistration): Observable {\r\n\t\treturn this.http.post(urls.registration, data);\r\n\t}\r\n\r\n\tsendCode (): Observable {\r\n\t\treturn this.http.post(urls.code, null);\r\n\t}\r\n}\r\n","import {\r\n\tComponent,\r\n\tInjector,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tNgForm,\r\n\tFormControl,\r\n} from '@angular/forms';\r\n\r\nimport { UIRouter } from '@uirouter/angular';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\nimport { CommonBaseComponent } from '../../../Common/components/base.component';\r\nimport { CommonUserDataService } from '../../../Common/services/user_data.service';\r\n\r\nimport { AuthenticationMeetingsErrorService } from '../authentication/services/authentication.meetings.error.service';\r\nimport { AuthenticationMeetingsUserService, IAuthenticationMeetingsUserActionsResponse } from '../authentication/services/authentication.meetings.user.service';\r\nimport { MeetingsAuthAnimation } from '../animation/animation';\r\nimport { IAuthenticationMeetingsRegistration } from '../authentication/authentication.interfaces';\r\n\r\n@Component({\r\n\tselector: 'authentication-meetings-registration',\r\n\ttemplateUrl: './authentication.meetings.registration.component.pug',\r\n\tanimations: [\r\n\t\tMeetingsAuthAnimation,\r\n\t],\r\n})\r\nexport class AuthenticationMeetingsRegistrationComponent extends CommonBaseComponent {\r\n\tstate = {\r\n\t\tisLoading: false,\r\n\t};\r\n\r\n\tdata: IAuthenticationMeetingsRegistration = {\r\n\t\tFirstName: '',\r\n\t\tMiddleName: '',\r\n\t\tLastName: '',\r\n\t\tPhoneNumber: '',\r\n\t\tEmail: '',\r\n\t\tIsConsentGiven: false,\r\n\t\tPassword: '',\r\n\t};\r\n\r\n\tregistrationTermsText: string;\r\n\r\n\tresource = {\r\n\t\tvalidationCustomErrors: {\r\n\t\t\tcustom: '',\r\n\t\t\tminLength: this.instant('meetings_auth.forms.registration.controls.password.messages.minlength'),\r\n\t\t},\r\n\t};\r\n\r\n\tonChangeFieldHandler = this.authenticationMeetingsErrorService.onChangeFieldHandler;\r\n\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t\tprivate authenticationMeetingsErrorService: AuthenticationMeetingsErrorService,\r\n\t\tprivate authenticationMeetingsUserService: AuthenticationMeetingsUserService,\r\n\t\tprivate commonUserDataService: CommonUserDataService,\r\n\t\tprivate router: UIRouter,\r\n\t) {\r\n\t\tsuper(injector);\r\n\r\n\t\tthis.registrationTermsText = this.getRegistrationTermsText();\r\n\t}\r\n\r\n\tregister (form: NgForm) {\r\n\t\tif (form.valid) {\r\n\t\t\tthis.state.isLoading = true;\r\n\r\n\t\t\tthis.authenticationMeetingsUserService\r\n\t\t\t\t.register(this.data)\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tfinalize(() => this.state.isLoading = false),\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe((response: IAuthenticationMeetingsUserActionsResponse) => {\r\n\t\t\t\t\tif (response.IsSuccess) {\r\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(response.Result.ExpiresAt, 'nextPhoneConfirmationAttemptTime');\r\n\t\t\t\t\t\tthis.commonUserDataService.setDataByPath(this.data.PhoneNumber, 'phoneNumber');\r\n\r\n\t\t\t\t\t\tthis.router.stateService.go('confirm');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.authenticationMeetingsErrorService.handleSuccessResponse(\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t...response,\r\n\t\t\t\t\t\t\t\t// CTB-1803\r\n\t\t\t\t\t\t\t\tErrorMessages: [response.ErrorMessages!.join('\\n\\n')],\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tthis.resource.validationCustomErrors,\r\n\t\t\t\t\t\t\tform.controls.password as FormControl,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tgetRegistrationTermsText (): string {\r\n\t\tconst href = 'docs/Политика конфиденциальности.pdf';\r\n\t\tconst label = this.instant('meetings_auth.forms.registration.terms_links.privacy_policy_in_text');\r\n\t\tconst privacyPolicyLink = `${label}`;\r\n\r\n\t\treturn this.instant('meetings_auth.forms.registration.terms_links.text', { privacyPolicyLink });\r\n\t}\r\n}\r\n","\n
\n \n
{{\"meetings_auth.forms.registration.title\" | translate}}
\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
{{'meetings_auth.forms.registration.controls.back.title' | translate}}
\n {{ 'meetings_auth.forms.registration.controls.create_btn_progress.title' | translate}}\n {{ 'meetings_auth.forms.registration.controls.create_btn.title' | translate}}\n \n
\n
\n
","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { forEach, keys } from 'lodash';\r\n\r\n@Pipe({\r\n\tname: 'translateParams',\r\n})\r\nexport class CommonTranslateParamsPipe implements PipeTransform {\r\n\ttransform (value: string, params: {}): string {\r\n\t\tforEach(keys(params), (key) => {\r\n\t\t\tvalue = value.replace('{' + key + '}', params[key]);\r\n\t\t});\r\n\r\n\t\treturn value;\r\n\t}\r\n}\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\n\r\n@Pipe({\r\n\tname: 'commonSubdivisionCodeFormatter',\r\n})\r\nexport class CommonSubdivisionCodeFormatterPipe implements PipeTransform {\r\n\ttransform (data: string): string {\r\n\t\tconst clearRe = /[\\s_-]/g;\r\n\t\tconst formatRe = /(\\d{3})(\\d{3})/;\r\n\r\n\t\tdata = data.replace(clearRe, '');\r\n\t\treturn data.replace(formatRe, '$1-$2');\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { of, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { CommonDataServiceClass } from '../data.service';\r\nimport { CommonBootstrapService } from './bootstrap.service';\r\nimport { CommonGeneralSettingsService } from '../general_settings.service';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root',\r\n})\r\nexport class CommonBootstrapDataService extends CommonDataServiceClass {\r\n\tconstructor (\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate commonBootstrapService: CommonBootstrapService,\r\n\t\tprivate commonGeneralSettingsService: CommonGeneralSettingsService,\r\n\t) {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tinit (shouldLoadData = false): Observable {\r\n\t\tlet res: Observable;\r\n\r\n\t\tif (window.AppBootstrap || !shouldLoadData) {\r\n\t\t\tres = of(window.AppBootstrap || {});\r\n\t\t} else if (shouldLoadData) {\r\n\t\t\tres = this.http.get(`${window.location.origin}/api/bootstrap/GetBootstrap`);\r\n\t\t}\r\n\r\n\t\treturn res!\r\n\t\t\t.pipe(\r\n\t\t\t\tmap((result) => {\r\n\t\t\t\t\tthis.setData(result);\r\n\t\t\t\t\tthis.commonBootstrapService.init(result);\r\n\t\t\t\t\tthis.commonGeneralSettingsService.init();\r\n\r\n\t\t\t\t\treturn result;\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\t}\r\n}\r\n","import { AuthenticationMeetingsRemindComponent } from '../remind/authentication.meetings.remind.component';\r\nimport { Ng2StateDeclaration } from '@uirouter/angular';\r\n\r\nimport { AuthenticationMeetingsLoginComponent } from '../login/authentication.meetings.login.component';\r\nimport { AuthenticationMeetingsRegistrationComponent } from '../registration/authentication.meetings.registration.component';\r\nimport { AuthenticationMeetingsConfirmComponent } from '../confirm/authentication.meetings.confirm.component';\r\nimport { AuthenticationMeetingsChangePasswordComponent } from '../change_password/authentication.meetings.change_password.component';\r\n\r\nexport const authenticationMeetingsRoutes: Ng2StateDeclaration[] = [\r\n\t{\r\n\t\tname: 'login',\r\n\t\turl: '/login',\r\n\t\tcomponent: AuthenticationMeetingsLoginComponent,\r\n\t},\r\n\t{\r\n\t\tname: 'confirm',\r\n\t\turl: '/confirm',\r\n\t\tcomponent: AuthenticationMeetingsConfirmComponent,\r\n\t},\r\n\t{\r\n\t\tname: 'registration',\r\n\t\turl: '/registration',\r\n\t\tcomponent: AuthenticationMeetingsRegistrationComponent,\r\n\t},\r\n\t{\r\n\t\tname: 'remind',\r\n\t\turl: '/remind',\r\n\t\tcomponent: AuthenticationMeetingsRemindComponent,\r\n\t},\r\n\t{\r\n\t\tname: 'new_password',\r\n\t\turl: '/applypassword',\r\n\t\tcomponent: AuthenticationMeetingsChangePasswordComponent,\r\n\t},\r\n];\r\n","import { InjectionToken, Type } from '@angular/core';\r\n\r\nexport interface ICommonAppConfig {\r\n\treadonly application: string,\r\n\treadonly hasInitialLoader: boolean,\r\n\treadonly shouldAuthorize: boolean,\r\n\treadonly shouldInitLayoutService: boolean,\r\n\treadonly mainComponent: Type,\r\n}\r\n\r\nexport const COMMON_APP_CONFIG = new InjectionToken('appConfig');\r\n","import {\r\n\tisEmpty,\r\n\tget,\r\n\tomit,\r\n} from 'lodash';\r\n\r\nimport { environment } from '../../../../environments/environment';\r\nimport { IBuildConfiguration } from '../../../../environments/config/config.interface';\r\nimport { ICommonAppConfig } from '../../app/app.config.token';\r\nimport { CommonDataServiceClass } from '../data.service';\r\nimport {\r\n\tICommonAppData,\r\n\tTLocalAppDataGetter,\r\n} from './local_app_data.token';\r\n\r\nexport interface ICommonAppDataServiceData extends ICommonAppData, ICommonAppConfig, Omit {\r\n\treadonly isDevServer: boolean;\r\n}\r\n\r\nexport class CommonAppDataService extends CommonDataServiceClass {\r\n\tconstructor (\r\n\t\tprivate localAppData: ICommonAppData,\r\n\t\tprotected appConfig: ICommonAppConfig,\r\n\t) {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tinit (): any {\r\n\t\tconst isDevServer = isEmpty(window.AppData);\r\n\t\tconst appData: ICommonAppData = isDevServer ? this.localAppData : window.AppData;\r\n\r\n\t\tthis.setData({\r\n\t\t\t...omit(environment, [ 'proxy', 'language', 'devspecs']),\r\n\t\t\t...this.appConfig,\r\n\t\t\t...appData,\r\n\t\t\tisDevServer,\r\n\t\t});\r\n\r\n\t\treturn super.getData();\r\n\t}\r\n\r\n\tgetData (): ICommonAppDataServiceData {\r\n\t\tconst data = super.getData();\r\n\r\n\t\t// если данных нет - будет полная инициализация\r\n\t\tif (isEmpty(data)) {\r\n\t\t\treturn this.init();\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tgetDataByPath (path: string): any {\r\n\t\t// вызов перегруженного метода, чтобы прошла инициализация, если ее не было\r\n\t\treturn get(this.getData(), path);\r\n\t}\r\n}\r\n\r\n\r\nexport const commonAppDataServiceFactory = (\r\n\tlocalAppDataGetter: TLocalAppDataGetter,\r\n\tappConfig: ICommonAppConfig,\r\n): CommonAppDataService => {\r\n\treturn new CommonAppDataService(localAppDataGetter(environment.language, window.location), appConfig);\r\n};\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\n\r\nimport { upperFirst } from 'lodash';\r\n\r\nimport { CommonNAFormatter } from './na_formatter.pipe';\r\nimport { CommonNAToBlankFormatter } from './na_blank_formatter.pipe';\r\nimport { commonUtilitiesCoreService } from '../services/core.service';\r\nimport { CommonServerDateService } from '../services/server_date.service';\r\n\r\nexport interface ICommonDateFormats {\r\n\tShort: string,\r\n\tMedium: string,\r\n\tLong: string,\r\n\tTime: string,\r\n\tShortWithTime: string,\r\n\tMediumWithTime: string,\r\n\tTimeWithMedium: string,\r\n}\r\n\r\n@Pipe({\r\n\tname: 'commonDateFormatter',\r\n})\r\nexport class CommonDateFormatter implements PipeTransform {\r\n\tprivate formats: ICommonDateFormats = {\r\n\t\tShort: this.commonServerDateService.shortDateFormat,\r\n\t\tMedium: this.commonServerDateService.mediumDateFormat,\r\n\t\tLong: this.commonServerDateService.longDateFormat,\r\n\t\tTime: this.commonServerDateService.displayTimeFormat,\r\n\t\tShortWithTime: this.commonServerDateService.shortWithTime,\r\n\t\tMediumWithTime: this.commonServerDateService.mediumWithTime,\r\n\t\tTimeWithMedium: this.commonServerDateService.timeWithMedium,\r\n\t};\r\n\r\n\tconstructor(\r\n\t\tprivate commonServerDateService: CommonServerDateService,\r\n\t) {}\r\n\r\n\ttransform (date: string, options = {} as any) {\r\n\t\tif (!commonUtilitiesCoreService.hasValue(date)) {\r\n\t\t\tif (options.useCommonNAToBlankFormatter) {\r\n\t\t\t\treturn new CommonNAToBlankFormatter().transform(null);\r\n\t\t\t} else {\r\n\t\t\t\treturn new CommonNAFormatter().transform(null);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toptions.formatType = options.formatType || 'Medium';\r\n\r\n\t\treturn upperFirst(this.commonServerDateService.getMomentInstance()(date).format(this.formats[options.formatType]));\r\n\t}\r\n}\r\n","import {CommonLoaderComponent} from './loader.component';\r\nimport {NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonLoaderComponent,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonLoaderComponent,\r\n\t],\r\n\tentryComponents: [\r\n\t\tCommonLoaderComponent,\r\n\t],\r\n})\r\nexport class CommonLoaderModule {}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ICommonKeyValues } from '../../@types/core';\r\n\r\nexport type TCommonLocaleDictionary = {\r\n\t[language in 'ru']: ICommonKeyValues;\r\n};\r\n\r\nexport const LOCALE_TRANSLATIONS = new InjectionToken('localeTranslations');\r\n","import {\r\n\tNgModule,\r\n\tInjector,\r\n} from '@angular/core';\r\n\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { UIRouterModule } from '@uirouter/angular';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { COMMON_APP_CONFIG } from '../../../Common/app/app.config.token';\r\nimport { LOCALE_TRANSLATIONS } from '../../../Common/services/locale/locale.translations.token';\r\nimport { LOCAL_APP_DATA_GETTER } from '../../../Common/services/app_data/local_app_data.token';\r\nimport { CommonAppModule } from '../../../Common/app/app.module';\r\nimport { CommonPrefixUrlInterceptor } from '../../../Common/interceptors/prefix_url_interceptor.service';\r\nimport { CommonXHRHeaderInterceptor } from '../../../Common/interceptors/xhr_header_interceptor';\r\n\r\nimport { AuthenticationMeetingsCommonModule } from './authentication.meetings.common.module';\r\nimport { AuthenticationMeetingsComponent } from './authentication.meetings.component';\r\nimport { authenticationMeetingsLocalAppDataGetter } from './authentication.meetings.local_app_data.getter';\r\nimport { authenticationMeetingsAppConfig } from './authentication.meetings.app_config.constant';\r\nimport { AuthenticationMeetingsLoginComponent } from '../login/authentication.meetings.login.component';\r\nimport { authenticationMeetingsRoutes } from '../routes/routes.constant';\r\nimport { AuthenticationMeetingsUserService } from './services/authentication.meetings.user.service';\r\nimport { AuthenticationMeetingsErrorService } from './services/authentication.meetings.error.service';\r\nimport { AuthenticationMeetingsConfirmComponent } from '../confirm/authentication.meetings.confirm.component';\r\nimport { AuthenticationMeetingsRemindComponent } from '../remind/authentication.meetings.remind.component';\r\nimport { AuthenticationMeetingsChangePasswordComponent } from '../change_password/authentication.meetings.change_password.component';\r\nimport { AuthenticationMeetingsRegistrationComponent } from '../registration/authentication.meetings.registration.component';\r\nimport { AuthenticationMeetingsAuthRedirectInterceptor } from '../interceptors/authentication.meetings.auth_redirect_interceptor';\r\nimport { AuthenticationMeetingsLocaleTranslations } from './authtentication.meetings.locale.translations';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tAuthenticationMeetingsComponent,\r\n\t\tAuthenticationMeetingsLoginComponent,\r\n\t\tAuthenticationMeetingsConfirmComponent,\r\n\t\tAuthenticationMeetingsRegistrationComponent,\r\n\t\tAuthenticationMeetingsRemindComponent,\r\n\t\tAuthenticationMeetingsChangePasswordComponent,\r\n\t],\r\n\timports: [\r\n\t\tCommonAppModule,\r\n\t\tUIRouterModule.forRoot({\r\n\t\t\totherwise: '/login',\r\n\t\t\tstates: authenticationMeetingsRoutes,\r\n\t\t\tuseHash: true,\r\n\t\t}),\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t\tBrowserAnimationsModule,\r\n\t\tAuthenticationMeetingsCommonModule,\r\n\t],\r\n\tentryComponents: [\r\n\t\tAuthenticationMeetingsComponent,\r\n\t],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: COMMON_APP_CONFIG,\r\n\t\t\tuseValue: authenticationMeetingsAppConfig,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: LOCAL_APP_DATA_GETTER,\r\n\t\t\tuseValue: authenticationMeetingsLocalAppDataGetter,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: LOCALE_TRANSLATIONS,\r\n\t\t\tuseValue: AuthenticationMeetingsLocaleTranslations,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: HTTP_INTERCEPTORS,\r\n\t\t\tuseClass: CommonPrefixUrlInterceptor,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: HTTP_INTERCEPTORS,\r\n\t\t\tuseClass: CommonXHRHeaderInterceptor,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: HTTP_INTERCEPTORS,\r\n\t\t\tuseClass: AuthenticationMeetingsAuthRedirectInterceptor,\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\tAuthenticationMeetingsUserService,\r\n\t\tAuthenticationMeetingsErrorService,\r\n\t],\r\n})\r\nexport class AuthenticationMeetingsModule extends CommonAppModule {\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t) {\r\n\t\tsuper(\r\n\t\t\tinjector,\r\n\t\t);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n\tHttpEvent,\r\n\tHttpInterceptor,\r\n\tHttpHandler,\r\n\tHttpRequest,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport {\r\n\tendsWith,\r\n} from 'lodash';\r\nimport { CommonAppDataService } from '../services/app_data/app_data.service';\r\n\r\n@Injectable()\r\nexport class CommonPrefixUrlInterceptor implements HttpInterceptor {\r\n\tprivate serverPrefix: string;\r\n\tprivate isDevServer: boolean;\r\n\r\n\tconstructor (\r\n\t\tprivate commonAppDataService: CommonAppDataService,\r\n\t) {\r\n\t\tconst { meetingsAuth: { prependedUrl = '' }, isDevServer } = this.commonAppDataService.getData();\r\n\t\tthis.serverPrefix = prependedUrl;\r\n\t\tthis.isDevServer = isDevServer;\r\n\t}\r\n\r\n\tintercept (req: HttpRequest, next: HttpHandler): Observable> {\r\n\t\tlet fixedReq = req;\r\n\r\n\t\tif (this.isDevServer && this.serverPrefix && !endsWith(req.url, '.html') && !endsWith(req.url, '.json')) {\r\n\t\t\tfixedReq = req.clone({\r\n\t\t\t\turl: this.serverPrefix + req.url,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn next.handle(fixedReq);\r\n\t}\r\n}\r\n","// New version src/Common/controls/checkbox/checkbox.component.ts CommonCheckboxComponent\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/controls/ctrl_checkbox_directive.js CtrlCheckbox\r\n\r\nimport {\r\n\tComponent,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOutput,\r\n\tforwardRef,\r\n\tChangeDetectionStrategy,\r\n\tInjector,\r\n\tSecurityContext\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { CommonControlComponent } from '../control/control.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n\tselector: 'common-checkbox',\r\n\ttemplateUrl: './checkbox.component.pug',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstyleUrls: [\r\n\t\t'../control/control.component.sass',\r\n\t\t'./checkbox.component.sass',\r\n\t],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => CommonCheckboxComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t],\r\n})\r\nexport class CommonCheckboxComponent extends CommonControlComponent {\r\n\t@Input() model: boolean;\r\n\t@Output() modelChange = new EventEmitter();\r\n\r\n\t@Input() label: string;\r\n\t@Input() labelClasses: string;\r\n\t@Input() checkboxId: string;\r\n\t@Input() indeterminate: boolean;\r\n\t@Input() isDescriptionShow: boolean;\r\n\t@Input() descriptionValue: string;\r\n\r\n\t@Output() onChange = new EventEmitter();\r\n\r\n\tidKey = 'checkbox_';\r\n\r\n\tconstructor (\r\n\t\tprotected injector: Injector,\r\n\t\tprivate domSanitize: DomSanitizer\r\n\t\t) {\r\n\t\tsuper(injector);\r\n\t}\r\n\r\n\tgetIndeterminate(): boolean {\r\n\t\treturn !this.model && this.indeterminate;\r\n\t}\r\n\r\n\tonChangeCheckbox(value: boolean) {\r\n\t\tconst oldValue = this.model;\r\n\t\tthis.model = value;\r\n\r\n\t\tif (oldValue !== value) {\r\n\t\t\tthis.modelChange.emit(value);\r\n\t\t\tthis.emitOnChange(value);\r\n\t\t}\r\n\t}\r\n\r\n\tgetSanitizeLabel (): string {\r\n\t\treturn this.domSanitize.sanitize(SecurityContext.HTML, this.label) ?? '';\r\n\t}\r\n\r\n}\r\n","\n \n \n ","import {\r\n\tDirective,\r\n\tEventEmitter,\r\n\tInjector,\r\n\tInput,\r\n\tOutput,\r\n} from '@angular/core';\r\n\r\nimport {\r\n\tget,\r\n\tintersection,\r\n\tinvoke,\r\n\tkeys,\r\n\tuniqueId,\r\n} from 'lodash';\r\n\r\nimport {\r\n\tControlValueAccessor,\r\n\tNgModel,\r\n} from '@angular/forms';\r\n\r\nimport { CommonBaseComponent } from '../../components/base.component';\r\nimport { ICommonValidationComponentCustomErrors } from './validation/validation.component';\r\n\r\ndeclare type TCommonControlValidationMode = 'blur' | 'submit';\r\n\r\n@Directive()\r\nexport class CommonControlComponent extends CommonBaseComponent implements ControlValueAccessor {\r\n\t@Input() model: any;\r\n\t@Output() modelChange = new EventEmitter();\r\n\r\n\t@Input() isDisabled: boolean;\r\n\t@Input() isReadonly: boolean;\r\n\t@Input() isOldContext: boolean;\r\n\t@Input() ctrlClasses: string;\r\n\t@Input() name: string;\r\n\t@Input() customErrors: ICommonValidationComponentCustomErrors;\r\n\r\n\t@Output() onChange = new EventEmitter();\r\n\r\n\tngModelControl: NgModel;\r\n\tid: string = '';\r\n\tisFocused: boolean = false;\r\n\tisHovered: boolean = false;\r\n\r\n\tprotected idKey: string = 'control_';\r\n\r\n\tprivate validationMode: TCommonControlValidationMode;\r\n\r\n\tconstructor (protected injector: Injector) {\r\n\t\tsuper(injector);\r\n\t}\r\n\r\n\twriteValue (value: any): void {\r\n\t\tthis.model = value;\r\n\t\tthis.runUpdate();\r\n\t}\r\n\r\n\tregisterOnChange (fn: any): void {\r\n\t\tthis.onChangeForValueAccessor = fn;\r\n\t}\r\n\r\n\tregisterOnTouched (fn: any): void {\r\n\t\tthis.onTouchedForValueAccessor = fn;\r\n\t}\r\n\r\n\tngOnInit () {\r\n\t\tsuper.ngOnInit();\r\n\r\n\t\t// Branching to work surrounded by the old Angular\r\n\t\tif (this.isOldContext) {\r\n\t\t\t// Attempt to find control model\r\n\t\t\ttry {\r\n\t\t\t\tthis.ngModelControl = this.injector.get(NgModel);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// Empty\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.ngModelControl = this.injector.get(NgModel);\r\n\t\t}\r\n\r\n\t\tthis.id = uniqueId(this.idKey);\r\n\r\n\t\tif (get(this.ngModelControl, 'formDirective')) {\r\n\t\t\tif (this.ngModelControl.formDirective) {\r\n\t\t\t\tthis.subscribe(this.ngModelControl.formDirective.ngSubmit, () => {\r\n\t\t\t\t\tthis.changeDetector.detectChanges();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.subscribe(this.ngModelControl.control.statusChanges, () => {\r\n\t\t\t\tthis.changeDetector.detectChanges();\r\n\t\t\t});\r\n\r\n\t\t\t// Если на форме есть editFormSubmitWidget то подсветка ошибок будет происходить после первого сабмита формы\r\n\t\t\t// Если editFormSubmitWidget нет — после blur любого элемета формы\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tconst controls = keys(this.ngModelControl.formDirective.controls);\r\n\t\t\t\tconst submitControls = ['editFormSubmitWidget', 'submitButton'];\r\n\r\n\t\t\t\tthis.validationMode = intersection(controls, submitControls).length > 0 ? 'submit' : 'blur';\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tisValid () {\r\n\t\tconst submitted = get(this, 'ngModelControl.formDirective.submitted');\r\n\r\n\t\tif (submitted && !this.isDisabled) {\r\n\t\t\treturn this.ngModelControl.valid;\r\n\t\t} else {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tonMouseEnterHandler (event?: Event): void {\r\n\t\tthis.isHovered = true;\r\n\t}\r\n\r\n\tonMouseLeaveHandler (event?: Event): void {\r\n\t\tthis.isHovered = false;\r\n\t}\r\n\r\n\tonFocusHandler (event?: Event): void {\r\n\t\tthis.isFocused = true;\r\n\t}\r\n\r\n\tonBlurHandler (event?: Event): void {\r\n\t\tthis.isFocused = false;\r\n\r\n\t\tif (this.onTouchedForValueAccessor) {\r\n\t\t\tthis.onTouchedForValueAccessor();\r\n\t\t}\r\n\r\n\t\tthis.formSubmitAfterBlur();\r\n\t}\r\n\r\n\tupdateValueAndValidity (): void {\r\n\t\tinvoke(this, 'ngModelControl.control.updateValueAndValidity');\r\n\t}\r\n\r\n\tprotected formSubmitAfterBlur (): void {\r\n\t\tif (this.validationMode === 'blur' && !this.ngModelControl.formDirective.submitted && !this.ngModelControl.formDirective.valid) {\r\n\t\t\tthis.ngModelControl.formDirective.onSubmit(null);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected onChangeForValueAccessor (value: any) { /**/ }\r\n\r\n\tprotected onTouchedForValueAccessor () { /**/ }\r\n\r\n\tprotected emitOnChange (value: any) {\r\n\t\tthis.onChangeForValueAccessor(value);\r\n\t\tthis.onChange.emit(value);\r\n\t}\r\n}\r\n","import {CommonCheckboxComponent} from './checkbox.component';\r\nimport {NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {CommonChooseTrueValidatorModule} from '../../validators/choose_true/choose_true.module';\r\nimport {CommonValidationModule} from '../control/validation/validation.module';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tCommonChooseTrueValidatorModule,\r\n\t\tCommonValidationModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonCheckboxComponent,\r\n\t\tCommonChooseTrueValidatorModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonCheckboxComponent,\r\n\t],\r\n\tentryComponents: [\r\n\t\tCommonCheckboxComponent,\r\n\t],\r\n})\r\nexport class CommonCheckboxModule {}\r\n","import { commonConstants } from '../constants/common.constants';\r\n// New version src/Common/browser/browser.service.ts CommonBrowser\r\n// Old version src/CaseDotStar.ServicePackages.Frontend.Common/scripts/common/services/common_browser_service.js CommonBrowser\r\n\r\nimport * as _ from 'lodash';\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport interface ICommonBrowserScrollSizes {\r\n\twidth: number,\r\n\theight: number,\r\n}\r\n\r\nexport interface ICommmonBrowserInfo {\r\n\tie: boolean | null;\r\n\tunknown: boolean | null;\r\n\tchrome?: boolean | null;\r\n\tsafari?: boolean | null;\r\n\tfirefox?: boolean | null;\r\n}\r\n\r\nexport interface ICommonBrowserDeviceData {\r\n\tdevice: {\r\n\t\t[key: string]: CallableFunction\r\n\t};\r\n\tbuildClasslist: () => string[];\r\n}\r\n\r\nconst $html = $('html');\r\nconst userAgent = window.navigator.userAgent.toLowerCase();\r\nconst browsers = {\r\n\tie: /Trident\\/7/i,\r\n\tchrome: /chrome/i,\r\n\tsafari: /safari/i,\r\n\tfirefox: /firefox/i,\r\n};\r\n\r\n@Injectable()\r\nexport class CommonBrowser {\r\n\tbrowser: ICommmonBrowserInfo = {\r\n\t\tie: null,\r\n\t\tunknown: null,\r\n\t};\r\n\tisHiddenTab: boolean;\r\n\tscrollSizes: ICommonBrowserScrollSizes;\r\n\r\n\tconstructor() {\r\n\t\tthis.detectBrowserData();\r\n\t\tthis.addClassesToHtml();\r\n\r\n\t\tdocument.addEventListener('visibilitychange', () => {\r\n\t\t\tthis.isHiddenTab = window.document.hidden;\r\n\t\t});\r\n\t}\r\n\r\n\tgetIsAdaptiveScreen (): boolean {\r\n\t\treturn window.matchMedia(`(max-width: ${commonConstants.adaptiveScreenWidth}px)`).matches;\r\n\t}\r\n\r\n\tprotected detectBrowserData (): void {\r\n\t\t_.each(browsers, (value, key) => {\r\n\t\t\tthis.browser[key] = browsers[key].test(userAgent);\r\n\r\n\t\t\tif (this.browser[key]) {\r\n\t\t\t\t$html.addClass(key);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.browser.unknown = !_.keys(this.browser).length;\r\n\t\tthis.scrollSizes = this.getScrollSizes();\r\n\t\tthis.isHiddenTab = window.document.hidden;\r\n\t}\r\n\r\n\tprotected addClassesToHtml (): void {\r\n\t\tconst deviceData = this.getDeviceData();\r\n\r\n\t\tdeviceData.buildClasslist().forEach((deviceClass) => {\r\n\t\t\t$html.addClass(deviceClass);\r\n\t\t});\r\n\r\n\t\t_.each(browsers, (value, key) => {\r\n\t\t\tif (this.browser[key]) {\r\n\t\t\t\t$html.addClass(key);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprotected getScrollSizes(): ICommonBrowserScrollSizes {\r\n\t\tconst size = 100;\r\n\t\tconst child = $('
')\r\n\t\t\t.css({\r\n\t\t\t\theight: '100%',\r\n\t\t\t});\r\n\r\n\t\tconst tester = $('
')\r\n\t\t\t.css({\r\n\t\t\t\tposition: 'absolute',\r\n\t\t\t\ttop: '-9999px',\r\n\t\t\t\tleft: '-9999px',\r\n\t\t\t\toverflow: 'scroll',\r\n\t\t\t\theight: size + 'px',\r\n\t\t\t\twidth: size + 'px',\r\n\t\t\t});\r\n\r\n\t\tchild.appendTo(tester);\r\n\t\ttester.appendTo('body');\r\n\r\n\t\tconst result = {\r\n\t\t\twidth: size - child.width()!,\r\n\t\t\theight: size - child.height()!,\r\n\t\t};\r\n\r\n\t\ttester.remove();\r\n\t\treturn result;\r\n\t}\r\n\r\n\tgetDeviceData (): ICommonBrowserDeviceData {\r\n\t\tconst television = [\r\n\t\t\t'googletv',\r\n\t\t\t'viera',\r\n\t\t\t'smarttv',\r\n\t\t\t'internet.tv',\r\n\t\t\t'netcast',\r\n\t\t\t'nettv',\r\n\t\t\t'appletv',\r\n\t\t\t'boxee',\r\n\t\t\t'kylo',\r\n\t\t\t'roku',\r\n\t\t\t'dlnadoc',\r\n\t\t\t'pov_tv',\r\n\t\t\t'hbbtv',\r\n\t\t\t'ce-html',\r\n\t\t];\r\n\t\tconst device = {\r\n\t\t\tmacos () {\r\n\t\t\t\treturn find('mac');\r\n\t\t\t},\r\n\t\t\tios () {\r\n\t\t\t\treturn device.iphone() || device.ipod() || device.ipad();\r\n\t\t\t},\r\n\t\t\tiphone () {\r\n\t\t\t\treturn !device.windows() && find('iphone');\r\n\t\t\t},\r\n\t\t\tipod () {\r\n\t\t\t\treturn find('ipod');\r\n\t\t\t},\r\n\t\t\tipad () {\r\n\t\t\t\treturn find('ipad');\r\n\t\t\t},\r\n\t\t\tandroid () {\r\n\t\t\t\treturn !this.windows() && find('android');\r\n\t\t\t},\r\n\t\t\tandroidPhone () {\r\n\t\t\t\treturn this.android() && find('mobile');\r\n\t\t\t},\r\n\t\t\tandroidTablet () {\r\n\t\t\t\treturn this.android() && !find('mobile');\r\n\t\t\t},\r\n\t\t\tblackberry () {\r\n\t\t\t\treturn find('blackberry') || find('bb10') || find('rim');\r\n\t\t\t},\r\n\t\t\tblackberryPhone () {\r\n\t\t\t\treturn this.blackberry() && !find('tablet');\r\n\t\t\t},\r\n\t\t\tblackberryTablet () {\r\n\t\t\t\treturn this.blackberry() && find('tablet');\r\n\t\t\t},\r\n\t\t\twindows () {\r\n\t\t\t\treturn find('windows');\r\n\t\t\t},\r\n\t\t\twindowsPhone () {\r\n\t\t\t\treturn this.windows() && find('phone');\r\n\t\t\t},\r\n\t\t\twindowsTablet () {\r\n\t\t\t\treturn this.windows() && (find('touch') && !this.windowsPhone());\r\n\t\t\t},\r\n\t\t\tfxos () {\r\n\t\t\t\treturn (find('(mobile') || find('(tablet')) && find(' rv:');\r\n\t\t\t},\r\n\t\t\tfxosPhone () {\r\n\t\t\t\treturn this.fxos() && find('mobile');\r\n\t\t\t},\r\n\t\t\tfxosTablet () {\r\n\t\t\t\treturn this.fxos() && find('tablet');\r\n\t\t\t},\r\n\t\t\tmeego () {\r\n\t\t\t\treturn find('meego');\r\n\t\t\t},\r\n\t\t\tmobile () {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tthis.androidPhone() ||\r\n\t\t\t\t\tthis.iphone() ||\r\n\t\t\t\t\tthis.ipod() ||\r\n\t\t\t\t\tthis.windowsPhone() ||\r\n\t\t\t\t\tthis.blackberryPhone() ||\r\n\t\t\t\t\tthis.fxosPhone() ||\r\n\t\t\t\t\tthis.meego()\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\ttablet () {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tthis.ipad() ||\r\n\t\t\t\t\tthis.androidTablet() ||\r\n\t\t\t\t\tthis.blackberryTablet() ||\r\n\t\t\t\t\tthis.windowsTablet() ||\r\n\t\t\t\t\tthis.fxosTablet()\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\tdesktop () {\r\n\t\t\t\treturn !this.tablet() && !this.mobile();\r\n\t\t\t},\r\n\t\t\ttouchscreenused () {\r\n\t\t\t\t// Fine-tune if needed (user may use touchscreen or mouse on the same device). Keep it simple for now\r\n\t\t\t\treturn this.tablet() || this.mobile();\r\n\t\t\t},\r\n\t\t\ttelevision () {\r\n\t\t\t\tlet i = 0;\r\n\t\t\t\twhile (i < television.length) {\r\n\t\t\t\t\tif (find(television[i])) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti++;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tfunction find (needle: string) {\r\n\t\t\treturn userAgent.indexOf(needle) !== -1;\r\n\t\t}\r\n\r\n\t\tfunction buildClasslist (prefix = '') {\r\n\t\t\tconst list = [];\r\n\r\n\t\t\tfor (const p in device) {\r\n\t\t\t\tif (device[p]()) {\r\n\t\t\t\t\tlist.push(prefix + p);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn list;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tdevice,\r\n\t\t\tbuildClasslist,\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport const commonBrowserService = new CommonBrowser();\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { CommonTwoDigitsNumberPipe } from './two_digits_number.pipe';\r\n\r\n@Pipe({\r\n\tname: 'commonSecondsFormatter',\r\n})\r\nexport class CommonSecondsFormatterPipe implements PipeTransform {\r\n\tconstructor(private commonTwoDigitsNumberPipe: CommonTwoDigitsNumberPipe) {}\r\n\r\n\ttransform (seconds: number) {\r\n\t\tconst m = Math.floor(seconds / 60);\r\n\t\tconst s = Math.floor(seconds % 60);\r\n\r\n\t\tif (!seconds) {\r\n\t\t\treturn seconds;\r\n\t\t}\r\n\r\n\t\treturn [this.commonTwoDigitsNumberPipe.transform(m), this.commonTwoDigitsNumberPipe.transform(s)].join(':');\r\n\t}\r\n}\r\n","import {\r\n\tPipe,\r\n\tPipeTransform,\r\n} from '@angular/core';\r\n\r\nimport { CommonGeneralSettingsService } from '../services/general_settings.service';\r\nimport { commonConstants } from '../constants/common.constants';\r\n\r\n@Pipe({\r\n\tname: 'prettyNumber',\r\n})\r\nexport class CommonPrettyNumberPipe implements PipeTransform {\r\n\tconstructor (private generalSettings: CommonGeneralSettingsService) {}\r\n\r\n\ttransform (digit: string | number, options: { fixAfterDecimal?: boolean } = {}) {\r\n\t\tif (!digit) {\r\n\t\t\treturn digit;\r\n\t\t}\r\n\r\n\t\toptions.fixAfterDecimal = options.fixAfterDecimal !== false; // cut off to true by default is necessary numbers of signs after a comma\r\n\t\tconst numberFormat = this.generalSettings.getGeneralSettings('NumberFormat') || {};\r\n\t\tconst decimalSeparator = numberFormat.DecimalSeparator || commonConstants.defaultNumberDecimalSeparator;\r\n\t\tconst groupSeparator = numberFormat.GroupSeparator || commonConstants.defaultNumberGroupSeparator;\r\n\t\tlet result = digit.toString()\r\n\t\t\t.replace(/[' ]/g, '')\r\n\t\t\t.replace('.', decimalSeparator)\r\n\t\t\t.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\r\n\r\n\t\tif (options.fixAfterDecimal) {\r\n\t\t\tconst decimalIndex = result.indexOf(decimalSeparator);\r\n\r\n\t\t\tif (decimalIndex !== -1) {\r\n\t\t\t\tresult = result.slice(0, decimalIndex + commonConstants.defaultNumberDigitsAfterDecimal + 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t}\r\n}\r\n","import { TLocalAppDataGetter } from '../../../Common/services/app_data/local_app_data.token';\r\n\r\nexport const authenticationMeetingsLocalAppDataGetter: TLocalAppDataGetter = (locale: string, location: Location) => {\r\n\treturn {\r\n\t\tlocale,\r\n\t\tappName: 'Bankro.tech',\r\n\t\tappFullLocationUrl: `${ location.protocol }//${ location.host }${ location.pathname.toLowerCase().replace(/\\/admin(\\/)?$/g, '/') }`,\r\n\t\tauthenticationReturnUrl: `${ location.origin || '/' }${ location.hash }`,\r\n\t\tappStartNotificationText: '', // For test notifications 'Access denied' before redirect\r\n\t\tdomainName: location.host,\r\n\t\tregistrationErrorTitle: '', // If registration by link is disabled - this field used as title for block of blocking reason\r\n\t\tregistrationErrorText: '', // If registration by link is disabled - this field used as description for block of blocking reason\r\n\t\tisRegistrationByLinkEnabled: true, // Flag indicating is registration by link are enabled in service\r\n\t\tauthFlashMessage: false, // Field used to show user some notification under login block\r\n\t};\r\n};\r\n","import { Directive } from '@angular/core';\r\nimport { NgModel } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n\tselector: '[commonLowerCaseInput]',\r\n})\r\nexport class CommonLowerCaseInputDirective {\r\n\tprivate controlSubscription: Subscription;\r\n\r\n\tconstructor (\r\n\t\tprivate ngModelControl: NgModel,\r\n\t) {}\r\n\r\n\tngOnInit (): void {\r\n\t\tconst { control } = this.ngModelControl;\r\n\r\n\t\tthis.controlSubscription = control.valueChanges\r\n\t\t\t.subscribe((value: string) => {\r\n\t\t\t\tconst newValue = (value || '').toLowerCase();\r\n\r\n\t\t\t\tif (value && newValue && newValue !== value) {\r\n\t\t\t\t\tcontrol.setValue(newValue, { emitEvent: false });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tngOnDestroy (): void {\r\n\t\tif (this.controlSubscription) {\r\n\t\t\tthis.controlSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {CommonPatternValidatorDirective} from './pattern.directive';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tBrowserModule,\r\n\t\tFormsModule,\r\n\t],\r\n\texports: [\r\n\t\tCommonPatternValidatorDirective,\r\n\t],\r\n\tdeclarations: [\r\n\t\tCommonPatternValidatorDirective,\r\n\t],\r\n\tentryComponents: [],\r\n})\r\nexport class CommonPatternValidatorModule {}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AuthenticationMeetingsModule } from './authentication/authentication.meetings.module';\r\nimport { environment } from '../../../environments/environment';\r\n\r\nif (environment.isProductionMode) {\r\n\tenableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AuthenticationMeetingsModule)\r\n\t.catch((err) => console.error(err));\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}