@kuzntsv/uikit 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/assets/_navbar-theme.scss +25 -0
- package/auth/auth.types.d.ts +1 -0
- package/auth/directives/disable-if-role.directive.d.ts +12 -0
- package/auth/directives/disable-if-unauthorized.directive.d.ts +13 -0
- package/auth/directives/hide-if-role-not.directive.d.ts +12 -0
- package/auth/directives/hide-if-unauthorized.directive.d.ts +13 -0
- package/auth/directives/index.d.ts +4 -0
- package/auth/index.d.ts +4 -0
- package/auth/login-form.component.d.ts +16 -0
- package/auth/login-page.component.d.ts +29 -0
- package/auth/models/user.d.ts +7 -0
- package/auth/permit-form.component.d.ts +18 -0
- package/auth/services/auth-guard.service.d.ts +2 -0
- package/auth/services/auth-role.service.d.ts +10 -0
- package/auth/services/auth-user.service.d.ts +35 -0
- package/auth/services/auth.service.d.ts +44 -0
- package/auth/services/index.d.ts +5 -0
- package/auth/services/role-guard.service.d.ts +2 -0
- package/base/base-classes/base-class.d.ts +3 -0
- package/base/base-classes/base-edit-class.d.ts +17 -0
- package/base/base-classes/base-edit-dialog-data.d.ts +9 -0
- package/base/base-classes/base-entity-action.d.ts +10 -0
- package/base/base-classes/base-filter-class.d.ts +7 -0
- package/base/base-classes/base-nav-bar-menu-class.d.ts +11 -0
- package/base/base-classes/base-page-class.d.ts +117 -0
- package/base/base-classes/base-service-class.d.ts +23 -0
- package/base/base-classes/index.d.ts +8 -0
- package/base/base-toolbar/base-toolbar.service.d.ts +7 -0
- package/base/base-toolbar/components/base-toolbar.component.d.ts +67 -0
- package/base/index.d.ts +2 -0
- package/base/interfaces/alert-service.interface.d.ts +44 -0
- package/base/interfaces/index.d.ts +1 -0
- package/core/animations/animations.service.d.ts +10 -0
- package/core/animations/index.d.ts +2 -0
- package/core/animations/route.animations.d.ts +6 -0
- package/core/index.d.ts +1 -0
- package/fesm2022/kuzntsv-uikit.mjs +2540 -0
- package/fesm2022/kuzntsv-uikit.mjs.map +1 -0
- package/guards/index.d.ts +1 -0
- package/guards/redirect-guard.d.ts +8 -0
- package/index.d.ts +5 -0
- package/loader/index.d.ts +2 -0
- package/loader/loader.service.d.ts +11 -0
- package/loader/progress-spinner.component.d.ts +9 -0
- package/models/deserializable.model.d.ts +3 -0
- package/models/environment.model.d.ts +12 -0
- package/models/index.d.ts +3 -0
- package/models/sec-user-view.model.d.ts +16 -0
- package/models/sec-user.model.d.ts +12 -0
- package/package.json +23 -0
- package/pipes/index.d.ts +3 -0
- package/pipes/safe.pipe.d.ts +10 -0
- package/pipes/time.pipe.d.ts +7 -0
- package/pipes/truncate.pipe.d.ts +7 -0
- package/public-api.d.ts +10 -0
- package/services/alert.service.d.ts +16 -0
- package/services/avatar.service.d.ts +11 -0
- package/services/export.service.d.ts +9 -0
- package/services/index.d.ts +4 -0
- package/services/local-storage-service.d.ts +10 -0
- package/services/log.service.d.ts +10 -0
- package/shared/chip-input-autocomplete/chip-input-autocomplete.component.d.ts +28 -0
- package/shared/chip-input-autocomplete/index.d.ts +2 -0
- package/shared/chip-input-autocomplete/models/chip-item.d.ts +4 -0
- package/shared/chip-input-autocomplete/models/index.d.ts +1 -0
- package/shared/date-range-filter/date-range-filter.component.d.ts +22 -0
- package/shared/date-range-filter/index.d.ts +2 -0
- package/shared/date-range-filter/models/date-formats.d.ts +11 -0
- package/shared/date-range-filter/models/date-range.d.ts +5 -0
- package/shared/date-range-filter/models/index.d.ts +2 -0
- package/shared/dialog/dialog.component.d.ts +11 -0
- package/shared/dialog/index.d.ts +2 -0
- package/shared/dialog/models/dialog-action.d.ts +6 -0
- package/shared/dialog/models/dialog-data.d.ts +7 -0
- package/shared/dialog/models/index.d.ts +2 -0
- package/shared/index.d.ts +9 -0
- package/shared/logo/imz-logo.component.d.ts +5 -0
- package/shared/logo/index.d.ts +1 -0
- package/shared/navbar/index.d.ts +1 -0
- package/shared/navbar/navbar.d.ts +24 -0
- package/shared/not-found/index.d.ts +1 -0
- package/shared/not-found/not-found.component.d.ts +6 -0
- package/shared/select-autocomplete-with-virtual-scroll/index.d.ts +1 -0
- package/shared/select-autocomplete-with-virtual-scroll/models/index.d.ts +1 -0
- package/shared/select-autocomplete-with-virtual-scroll/models/select-item.d.ts +4 -0
- package/shared/select-autocomplete-with-virtual-scroll/select-autocomplete-with-virtual-scroll.component.d.ts +27 -0
- package/shared/select-with-group/index.d.ts +2 -0
- package/shared/select-with-group/models/index.d.ts +2 -0
- package/shared/select-with-group/models/select-group.d.ts +5 -0
- package/shared/select-with-group/models/select-item.d.ts +4 -0
- package/shared/select-with-group/select-with-group.component.d.ts +21 -0
- package/shared/table/index.d.ts +3 -0
- package/shared/table/models/column-options.interface.d.ts +26 -0
- package/shared/table/models/context-menu-options.interface.d.ts +22 -0
- package/shared/table/models/index.d.ts +2 -0
- package/shared/table/table.component.d.ts +75 -0
- package/shared/table/table.state.d.ts +11 -0
- package/types/index.d.ts +1 -0
- package/types/types.d.ts +6 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kuzntsv-uikit.mjs","sources":["../../../projects/uikit/src/auth/permit-form.component.ts","../../../projects/uikit/src/auth/login-form.component.ts","../../../projects/uikit/src/auth/login-form.component.html","../../../projects/uikit/src/models/environment.model.ts","../../../projects/uikit/src/services/log.service.ts","../../../projects/uikit/src/services/alert.service.ts","../../../projects/uikit/src/auth/services/auth-user.service.ts","../../../projects/uikit/src/auth/services/auth.service.ts","../../../projects/uikit/src/loader/progress-spinner.component.ts","../../../projects/uikit/src/loader/loader.service.ts","../../../projects/uikit/src/auth/login-page.component.ts","../../../projects/uikit/src/auth/directives/disable-if-unauthorized.directive.ts","../../../projects/uikit/src/auth/directives/hide-if-unauthorized.directive.ts","../../../projects/uikit/src/auth/directives/disable-if-role.directive.ts","../../../projects/uikit/src/auth/directives/hide-if-role-not.directive.ts","../../../projects/uikit/src/auth/services/auth-guard.service.ts","../../../projects/uikit/src/auth/services/role-guard.service.ts","../../../projects/uikit/src/auth/services/auth-role.service.ts","../../../projects/uikit/src/base/base-toolbar/base-toolbar.service.ts","../../../projects/uikit/src/base/base-toolbar/components/base-toolbar.component.ts","../../../projects/uikit/src/base/base-toolbar/components/base-toolbar.component.html","../../../projects/uikit/src/base/base-classes/base-edit-dialog-data.ts","../../../projects/uikit/src/base/base-classes/base-edit-class.ts","../../../projects/uikit/src/base/base-classes/base-entity-action.ts","../../../projects/uikit/src/base/base-classes/base-filter-class.ts","../../../projects/uikit/src/base/base-classes/base-nav-bar-menu-class.ts","../../../projects/uikit/src/core/animations/animations.service.ts","../../../projects/uikit/src/core/animations/route.animations.ts","../../../projects/uikit/src/services/local-storage-service.ts","../../../projects/uikit/src/shared/dialog/dialog.component.ts","../../../projects/uikit/src/shared/dialog/dialog.component.html","../../../projects/uikit/src/base/base-classes/base-page-class.ts","../../../projects/uikit/src/base/base-classes/base-service-class.ts","../../../projects/uikit/src/guards/redirect-guard.ts","../../../projects/uikit/src/models/sec-user.model.ts","../../../projects/uikit/src/pipes/safe.pipe.ts","../../../projects/uikit/src/pipes/time.pipe.ts","../../../projects/uikit/src/pipes/truncate.pipe.ts","../../../projects/uikit/src/services/avatar.service.ts","../../../projects/uikit/src/services/export.service.ts","../../../projects/uikit/src/shared/chip-input-autocomplete/chip-input-autocomplete.component.ts","../../../projects/uikit/src/shared/chip-input-autocomplete/chip-input-autocomplete.component.html","../../../projects/uikit/src/shared/date-range-filter/models/date-range.ts","../../../projects/uikit/src/shared/date-range-filter/models/date-formats.ts","../../../projects/uikit/src/shared/date-range-filter/date-range-filter.component.ts","../../../projects/uikit/src/shared/date-range-filter/date-range-filter.component.html","../../../projects/uikit/src/shared/dialog/models/dialog-action.ts","../../../projects/uikit/src/shared/logo/imz-logo.component.ts","../../../projects/uikit/src/shared/navbar/navbar.ts","../../../projects/uikit/src/shared/navbar/navbar.html","../../../projects/uikit/src/shared/not-found/not-found.component.ts","../../../projects/uikit/src/shared/not-found/not-found.component.html","../../../projects/uikit/src/shared/select-autocomplete-with-virtual-scroll/select-autocomplete-with-virtual-scroll.component.ts","../../../projects/uikit/src/shared/select-autocomplete-with-virtual-scroll/select-autocomplete-with-virtual-scroll.component.html","../../../projects/uikit/src/shared/select-with-group/select-with-group.component.ts","../../../projects/uikit/src/shared/select-with-group/select-with-group.component.html","../../../projects/uikit/src/shared/table/table.component.ts","../../../projects/uikit/src/shared/table/table.component.html","../../../projects/uikit/src/public-api.ts","../../../projects/uikit/src/kuzntsv-uikit.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, HostListener, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';\r\n\r\n@Component({\r\n selector: 'lib-permit-form',\r\n template: `\r\n <mat-card appearance=\"outlined\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n Приложите пропуск\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <div class=\"permit\"></div>\r\n </mat-card-content>\r\n </mat-card>\r\n <input #hidy class=\"hidy\" type=\"text\" (keydown)=\"onKeydown($event)\"/>\r\n `,\r\n styleUrls: ['permit-form.component.scss'],\r\n imports: [MatCard, MatCardHeader, MatCardTitle, MatCardContent]\r\n})\r\nexport class PermitFormComponent implements OnInit {\r\n @ViewChild('hidy') hidy: ElementRef | undefined;\r\n\r\n @Output() submitted = new EventEmitter<string>();\r\n\r\n private mouseEvent = MouseEvent;\r\n\r\n constructor() {\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n mouseHandling() {\r\n this.hidy?.nativeElement.focus();\r\n }\r\n\r\n ngOnInit() {\r\n // Обнуляем значение Input\r\n if (this.hidy) {\r\n this.hidy.nativeElement.value = null;\r\n this.hidy.nativeElement.focus();\r\n }\r\n }\r\n\r\n /**\r\n * Поле ввода\r\n *\r\n * @param событие нажатия на клавишу\r\n */\r\n onKeydown(event: any): void {\r\n if (event.key === 'Enter') {\r\n const permit = this.hidy?.nativeElement.value;\r\n if (permit) {\r\n this.submitted.emit(permit);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';\r\nimport { MatError, MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatInput } from '@angular/material/input';\r\n\r\nimport { Authenticate } from './models/user';\r\n\r\n@Component({\r\n selector: 'lib-login-form',\r\n templateUrl: 'login-form.component.html',\r\n styleUrls: ['login-form.component.scss'],\r\n imports: [MatCard, MatCardHeader, MatCardTitle, MatCardContent, FormsModule, ReactiveFormsModule, MatFormField, MatLabel, MatInput, MatError, MatIcon, MatSuffix, MatButton]\r\n})\r\nexport class LoginFormComponent {\r\n @Input() errorMessage: string = '';\r\n\r\n @Output() submitted = new EventEmitter<Authenticate>();\r\n hide = true;\r\n\r\n form: FormGroup = new FormGroup({\r\n username: new FormControl('', [Validators.required]),\r\n password: new FormControl('', [Validators.required]),\r\n });\r\n\r\n isDisabled = false;\r\n\r\n constructor() { }\r\n\r\n @Input()\r\n set pending(isPending: boolean) {\r\n this.isDisabled = isPending;\r\n if (isPending) {\r\n this.form.disable();\r\n } else {\r\n this.form.enable();\r\n }\r\n }\r\n\r\n submit() {\r\n if (this.form.valid) {\r\n this.submitted.emit(this.form.value);\r\n }\r\n }\r\n}\r\n","<mat-card appearance=\"outlined\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n Авторизация\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <form [formGroup]=\"form\" (ngSubmit)=\"submit()\">\r\n <p>\r\n <mat-form-field>\r\n <mat-label>Имя пользователя</mat-label>\r\n <input type=\"text\" pattern=\"[A-Za-z]{1,}.[A-Za-z]{1,}.[A-Za-z]*\"\r\n matInput\r\n autocomplete=\"on\"\r\n name=\"login-form-username\"\r\n placeholder=\"Имя пользователя\"\r\n formControlName=\"username\">\r\n @if (form.controls['username'].hasError('pattern')) {\r\n <mat-error>\r\n Пожалуйста, используйте требуемый формат (Пример: a.p.petrov)\r\n </mat-error>\r\n }\r\n @if (form.controls['username'].hasError('required')) {\r\n <mat-error>\r\n Пожалуйста, заполните это поле\r\n </mat-error>\r\n }\r\n </mat-form-field>\r\n </p>\r\n\r\n <p>\r\n <mat-form-field>\r\n <mat-label>Пароль</mat-label>\r\n <input [type]=\"hide ? 'password' : 'text'\" matInput placeholder=\"Пароль\" formControlName=\"password\">\r\n <mat-icon class=\"watcher\" matSuffix (mousedown)=\"hide=false\" (mouseup)=\"hide=true\"\r\n >{{ hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n @if (form.controls['password'].hasError('required')) {\r\n <mat-error>\r\n Пожалуйста, заполните это поле\r\n </mat-error>\r\n }\r\n </mat-form-field>\r\n </p>\r\n\r\n @if (errorMessage) {\r\n <p class=\"loginError\">\r\n {{ errorMessage }}\r\n </p>\r\n }\r\n\r\n <p class=\"loginButtons\">\r\n <button type=\"submit\" mat-button mat-stroked-button color=\"primary\" [disabled]=\"isDisabled\">Войти</button>\r\n </p>\r\n\r\n </form>\r\n </mat-card-content>\r\n </mat-card>\r\n","export abstract class Environment {\r\n abstract readonly appVersion: string;\r\n abstract readonly production: boolean;\r\n abstract readonly endpoints: {\r\n readonly common: string;\r\n readonly integration: string;\r\n readonly integration1c: string;\r\n readonly main: string;\r\n readonly scheduler: string;\r\n readonly elasticSearch: string;\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Environment } from '../models/environment.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogService {\r\n public logPrefix: string = '';\r\n\r\n constructor(private env: Environment\r\n ) {\r\n }\r\n log(...args: any) {\r\n if (!this.env.production) {\r\n // Prepend log prefix log string\r\n args.unshift(this.logPrefix + ' ');\r\n // Pass along arguments to console.log\r\n console.log(args.join(' '));\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { IAlertService } from '../base/interfaces';\r\n\r\n// Сервис для вывода сообщений(ошибки, успеха)\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertService implements IAlertService{\r\n // eslint-disable-next-line no-magic-numbers\r\n private readonly duration = 5000;\r\n\r\n constructor(private _snackBar: MatSnackBar) {\r\n }\r\n\r\n openSnackBar(message: string, action: string, duration: number = this.duration) {\r\n this._snackBar.open(message, action, {\r\n duration,\r\n panelClass: ['red-snackbar'],\r\n });\r\n }\r\n\r\n success(message: string, duration: number = this.duration) {\r\n this.openSnackBar(message, 'Закрыть', duration);\r\n }\r\n\r\n info(message: string, duration: number = this.duration) {\r\n this.openSnackBar(message, 'Закрыть', duration);\r\n }\r\n\r\n helper(message: string, duration: number = this.duration) {\r\n this.openSnackBar(message, 'Закрыть', duration);\r\n }\r\n\r\n warning(message: string, duration: number = this.duration) {\r\n this.openSnackBar(message, 'Закрыть', duration);\r\n }\r\n\r\n error(message: string, duration: number = this.duration) {\r\n this.openSnackBar(message, 'Закрыть', duration);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n/**\r\n * Сущность пользователя из API\r\n */\r\nexport class User {\r\n id: number = 0;\r\n username: string = '';\r\n firstName: string = '';\r\n lastName: string = '';\r\n prof: string = '';\r\n depart: number = 0;\r\n area: string = '';\r\n tabnum: string = '';\r\n mail: string = '';\r\n phone: string = '';\r\n roles: string = '';\r\n rolesArray: string[] = [];\r\n roleList: string[] = [];\r\n idHuman: string = '';\r\n token: string = '';\r\n // Время действия токена\r\n expires_in: number = 0;\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n/**\r\n * Сервис для работы с объектом в local Storage\r\n */\r\nexport class UserService {\r\n private user: User;\r\n constructor() {\r\n if (localStorage.getItem('sed_currentUser')) {\r\n this.user = JSON.parse(localStorage.getItem('sed_currentUser') || '');\r\n } else {\r\n this.user = new User();\r\n }\r\n }\r\n\r\n get dept(): number {\r\n return this.user?.depart;\r\n }\r\n\r\n /** Получить данные о пользователе */\r\n get userData(): User {\r\n return this.user;\r\n }\r\n\r\n /** Изменить данные пользователя в localStorage */\r\n set userData(user: User) {\r\n localStorage.setItem('sed_currentUser', JSON.stringify(user));\r\n this.user = JSON.parse(localStorage.getItem('sed_currentUser') || '');\r\n }\r\n\r\n /** Удаляет данные о пользователе из localStorage. */\r\n removeUser() {\r\n localStorage.removeItem('sed_currentUser');\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { DefaultUrlSerializer, Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { AlertService } from '../../services/alert.service';\r\nimport { LogService } from '../../services/log.service';\r\nimport { AuthPermission } from '../auth.types';\r\nimport { UserService } from './auth-user.service';\r\n\r\n// Сервис авторизации\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n // Указываем какой сервер использовать\r\n baseRoute = 'mainApi/';\r\n // Хранит доступные пользователю действия\r\n permissions: string[] = ['VIEW'];\r\n readonly defaultRoles = [];\r\n // Хранит роли пользователя\r\n roles$: BehaviorSubject<string[]>;\r\n loggedIn$: BehaviorSubject<boolean>;\r\n\r\n // Роль для скрытия элементов.\r\n private readonly hideRole = 'HIDE';\r\n\r\n // Объект, хранящий статус авторизации\r\n private readonly defaultHeader = {\r\n headers: new HttpHeaders().set('content-type', 'application/x-www-form-urlencoded')\r\n };\r\n\r\n private idHuman: string | null;\r\n\r\n constructor(private http: HttpClient,\r\n private router: Router,\r\n private console: LogService,\r\n private alertService: AlertService,\r\n private user: UserService,\r\n ) {\r\n this.console.logPrefix = 'Auth Service';\r\n this.idHuman = localStorage.getItem('id_human');\r\n if (this.user?.userData?.roleList) {\r\n this.roles$ = new BehaviorSubject<string[]>(this.user?.userData?.roleList);\r\n } else {\r\n this.roles$ = new BehaviorSubject<string[]>(this.defaultRoles);\r\n }\r\n this.loggedIn$ = new BehaviorSubject<boolean>((!!this.user.userData && !!this.user.userData.token));\r\n }\r\n\r\n /** Проверка разрешений */\r\n hasPermission(authPermission: AuthPermission) {\r\n return !!(this.permissions &&\r\n this.permissions.find(permission => permission === authPermission));\r\n }\r\n\r\n /** Проверка ролей */\r\n public hasRole(roles: string[], checkRole: string): boolean {\r\n if (roles) {\r\n return !!roles.find(role => (role === checkRole || role === 'ADMIN'));\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /** Проверка массива ролей */\r\n public hasRoles(roles: string[], checkRoles: string[]): boolean {\r\n if (roles) {\r\n for (const checkRole of checkRoles) {\r\n if (roles.find(role => (role === checkRole || role === 'ADMIN'))) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** Элемент скрывается, если у пользователя нет ни одной роли из перереданных в \"roles\"\r\n или в списке \"roles\" есть роль \"hideRole\". */\r\n public isHideElement(roles: string[], checkRoles: string[]): boolean {\r\n if (!roles)\r\n return false;\r\n if (roles.indexOf(this.hideRole) !== -1)\r\n return true;\r\n for (const role of roles) {\r\n if (role && (role.length !== 0) && this.hasRole(checkRoles, role)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n // /** Сменить роль без side эффекта */\r\n // public changeRole(role: string) {\r\n // this.roles$.next([role]);\r\n // }\r\n\r\n // /** Сменить роли без side эффекта */\r\n // public changeRoles(roles: string[]) {\r\n // this.roles$.next(roles);\r\n // }\r\n\r\n /** Запрос авторизации */\r\n login(username: string, password: string, idCas: number, returnUrl: string = '', onErrorFn: () => void) {\r\n const passwordEncoded = encodeURIComponent(password);\r\n let body = `username=${username}&password=${passwordEncoded}`;\r\n\r\n if (idCas) {\r\n body += `&idcas=${idCas}`;\r\n }\r\n\r\n if (this.idHuman) {\r\n body += `&idhuman=${this.idHuman}`;\r\n }\r\n\r\n this.http.post(this.baseRoute + 'jwt', body, this.defaultHeader)\r\n .subscribe({\r\n next: data => {\r\n this.successLoginAction(data, returnUrl);\r\n this.alertService.success('Успешная авторизация');\r\n },\r\n error: (error: any) => {\r\n this.console.log(error);\r\n this.alertService.error('Ошибка при авторизации: ' + error, 0);\r\n if (onErrorFn) {\r\n onErrorFn();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /** Aвторизация по пропуску */\r\n loginByPermit(permit: string, idCas: number, returnUrl: string = '') {\r\n let body = `permit=${permit}`;\r\n\r\n if (idCas) {\r\n body += `&idcas=${idCas}`;\r\n }\r\n\r\n if (this.idHuman) {\r\n body += `&idhuman=${this.idHuman}`;\r\n }\r\n\r\n return this.http.post(this.baseRoute + 'jwt', body, this.defaultHeader)\r\n .subscribe({\r\n next: (data) => {\r\n this.successLoginAction(data, returnUrl);\r\n this.alertService.success('Успешная авторизация');\r\n },\r\n error: (error: any) => {\r\n this.console.log(error);\r\n this.alertService.error('Ошибка при авторизации: ' + error, 0);\r\n }\r\n });\r\n }\r\n\r\n /** Разлогиниться */\r\n logout(returnUrl: string = '') {\r\n // Убирает(удаляет) пользователя из локального хранилища когда он разлогинивается\r\n this.user.removeUser();\r\n // localStorage.removeItem('sed_currentUser');\r\n // Отправляем подписчикам события что человек вышел\r\n this.loggedIn$.next(false);\r\n // Переход на страницу авторизации\r\n if (returnUrl) {\r\n // указываем целевой маршрут в параметре\r\n this.router.navigate(['/login'], { queryParams: { returnUrl } }).then();\r\n } else {\r\n this.router.navigate(['/login']).then();\r\n }\r\n }\r\n\r\n // Получить роли пользователя\r\n private getRoles(): Observable<string[]> {\r\n return this.http.get<string[]>(this.baseRoute + 'jwt/webroles');\r\n }\r\n\r\n // /** Инициализация ролей */\r\n // private initRole() {\r\n // if (this.hasRole(this.roles$.getValue(), this.defaultRole)) {\r\n // this.roleService.getRoles().subscribe({\r\n // next: (data: string[]) => {\r\n // this.roles$.next(data['Roles']);\r\n // },\r\n // error: (error: any) => {\r\n // this.console.log(error);\r\n // this.alert.error('Ошибка при получении списка ролей пользователя: ' + error);\r\n // }\r\n // });\r\n // }\r\n // }\r\n\r\n\r\n /** При успешной авторизации */\r\n private successLoginAction(user: any, returnUrl: string = '') {\r\n this.user.userData = user;\r\n this.loggedIn$.next(true);\r\n // init roles\r\n this.roles$.next(this.user.userData.roleList);\r\n\r\n if (returnUrl) {\r\n const decodeUrl = decodeURIComponent(returnUrl);\r\n // указан целевой маршрут\r\n if (decodeUrl.includes('?')) {\r\n // есть параметры строки запроса\r\n const serializer = new DefaultUrlSerializer();\r\n // параметры строки запроса\r\n const params = serializer.parse(decodeUrl).queryParams;\r\n //console.log('successLoginAction params = ', params);\r\n // выделение маршрута\r\n const url = decodeUrl.slice(0, decodeUrl.indexOf('?'));\r\n this.router.navigate([url], { queryParams: params });\r\n } else {\r\n this.router.navigate([decodeUrl]);\r\n }\r\n } else {\r\n // не указан целевой маршрут, переход на главную\r\n this.router.navigate(['']);\r\n }\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, AfterViewInit } from '@angular/core';\r\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\r\n\r\n@Component({\n selector: 'lib-loader',\n template: `\r\n <div class=\"loading-indicator\" mat-dialog-content>\r\n <mat-progress-spinner mode=\"indeterminate\">\r\n </mat-progress-spinner>\r\n </div>\r\n `,\n styles: [`\r\n /* Разместить по центру */\r\n .loading-indicator {\r\n position: fixed;\r\n z-index: 999;\r\n height: 2em;\r\n width: 2em;\r\n overflow: initial;\r\n margin: auto;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n }\r\n\r\n /* Заблокировать оверлей */\r\n .loading-indicator:before {\r\n content: '';\r\n display: block;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0,0,0,0.3);\r\n }\r\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatProgressSpinner]\n})\r\n\r\nexport class ProgressSpinnerComponent implements AfterViewInit {\r\n constructor(private cdRef: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit() {\r\n this.cdRef.detectChanges();\r\n }\r\n}\r\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ProgressSpinnerComponent } from './progress-spinner.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class LoaderService {\r\n private overlayRef: OverlayRef | null = null;\r\n\r\n constructor(private overlay: Overlay) { }\r\n\r\n public show() {\r\n if (!this.overlayRef) {\r\n this.overlayRef = this.overlay.create();\r\n }\r\n const spinnerOverlayPortal = new ComponentPortal(ProgressSpinnerComponent);\r\n // Иправление ошибки Expression has changed after it was checked\r\n setTimeout(() => {\r\n if (!this.overlayRef?.hasAttached()) {\r\n this.overlayRef?.attach(spinnerOverlayPortal);\r\n }\r\n });\r\n }\r\n\r\n public hide() {\r\n if (this.overlayRef) {\r\n this.overlayRef.detach();\r\n }\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { LoaderService } from '../loader';\r\nimport { Authenticate } from './models/user';\r\nimport { AuthService } from './services/auth.service';\r\nimport { PermitFormComponent } from './permit-form.component';\r\nimport { LoginFormComponent } from './login-form.component';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'lib-login-page',\r\n template: `\r\n @if (!isKiosk) {\r\n <lib-login-form\r\n (submitted)=\"onSubmit($event)\"\r\n [pending]=\"pending\"\r\n [errorMessage]=\"error\">\r\n </lib-login-form>\r\n }\r\n @if (isKiosk) {\r\n <lib-permit-form\r\n (submitted)=\"onSubmitPermit($event)\"\r\n >\r\n </lib-permit-form>\r\n }\r\n `,\r\n styles: [],\r\n imports: [LoginFormComponent, PermitFormComponent]\r\n})\r\nexport class LoginPageComponent implements OnInit, OnDestroy {\r\n pending: boolean = false;\r\n error: string = '';\r\n isKiosk: boolean = false;\r\n /** Идентификатор АС */\r\n idCas: number = 0;\r\n /** Подписка на Идентификатор АС */\r\n sub: Subscription;\r\n /** Url страницы, с которой был переход (после входа вернет на неё) */\r\n returnUrl: string = '';\r\n\r\n constructor(private authService: AuthService,\r\n private route: ActivatedRoute,\r\n private loaderService: LoaderService\r\n ) {\r\n this.sub = this.route.data.subscribe(data => {\r\n this.idCas = data['idCas'];\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (localStorage.getItem('id_human') || localStorage.getItem('kiosk-keyboard-layout')) {\r\n // this.isKiosk = true;\r\n }\r\n this.route.queryParams.subscribe(params => {\r\n this.returnUrl = params['returnUrl'];\r\n //console.log('constructor this.returnUrl = ', this.returnUrl);\r\n //this.returnUrl = this.returnUrl.slice(this.returnUrl.lastIndexOf('returnUrl=') + 'returnUrl='.length);\r\n //console.log('constructor NEW this.returnUrl = ', this.returnUrl);\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmitError() {\r\n return () => {\r\n this.pending = false;\r\n this.loaderService.hide();\r\n };\r\n }\r\n\r\n onSubmit($event: Authenticate) {\r\n this.loaderService.show();\r\n this.pending = true;\r\n this.authService.login($event.username, $event.password, this.idCas, this.returnUrl, this.onSubmitError());\r\n }\r\n\r\n onSubmitPermit($event: string) {\r\n const permit = $event;\r\n this.authService.loginByPermit(permit, this.idCas, this.returnUrl);\r\n }\r\n}\r\n","import { Directive, Input, OnInit, ElementRef } from '@angular/core';\r\nimport { AuthPermission } from '../auth.types';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Directive({\r\n selector: '[libDisableIfUnauthorized]',\r\n standalone: true\r\n})\r\nexport class DisableIfUnauthorizedDirective implements OnInit {\r\n @Input('libDisableIfUnauthorized') permission: AuthPermission | undefined;\r\n\r\n constructor(private el: ElementRef, private authservice: AuthService) { }\r\n\r\n ngOnInit() {\r\n if (this.permission && !this.authservice.hasPermission(this.permission)) {\r\n this.el.nativeElement.disabled = true;\r\n }\r\n }\r\n}\r\n","import { Directive, OnInit, ElementRef, Input } from '@angular/core';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { AuthPermission } from '../auth.types';\r\n\r\n@Directive({\r\n selector: '[libHideIfUnauthorized]',\r\n standalone: true\r\n})\r\nexport class HideIfUnauthorizedDirective implements OnInit {\r\n @Input('libHideIfUnauthorized') permission: AuthPermission | undefined;\r\n\r\n constructor(private el: ElementRef, private authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n if (this.permission && !this.authService.hasPermission(this.permission)) {\r\n this.el.nativeElement.style.display = 'none';\r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnInit, ElementRef } from '@angular/core';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Directive({\r\n selector: '[libDisableIfRole]',\r\n standalone: true\r\n})\r\nexport class DisableIfRoleDirective implements OnInit {\r\n @Input('libDisableIfRole') role: string = '';\r\n\r\n constructor(private el: ElementRef, private authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.authService.roles$.subscribe((userRoles) => {\r\n if (this.role) {\r\n if (!this.authService.hasRole(userRoles, this.role)) {\r\n this.el.nativeElement.disabled = true;\r\n } else {\r\n this.el.nativeElement.disabled = false;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, OnInit, ElementRef, Input } from '@angular/core';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Directive({\r\n selector: '[libHideIfRoleNot]',\r\n standalone: true\r\n})\r\nexport class HideIfRoleNotDirective implements OnInit {\r\n @Input('libHideIfRoleNot') roles: string[] = [];\r\n\r\n constructor(private el: ElementRef, private authService: AuthService) { }\r\n\r\n // Элемент скрывается, если у пользователя нет ни одной роли из перереданных в \"roles\"\r\n // или в списке \"roles\" есть роль \"hideRole\".\r\n ngOnInit() {\r\n if (this.roles) {\r\n this.authService.roles$.subscribe((userRoles) => {\r\n const isHide = this.authService.isHideElement(this.roles, userRoles);\r\n\r\n if (isHide) {\r\n this.el.nativeElement.style.display = 'none';\r\n } else {\r\n this.el.nativeElement.style.display = 'inherit';\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivateFn, Router, RouterStateSnapshot } from '@angular/router';\r\n\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nclass AuthGuardService {\r\n\r\n constructor(private auth: AuthService,\r\n private router: Router) {\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ) {\r\n const isLogin = this.auth.loggedIn$.value;\r\n if (!isLogin) {\r\n console.log('state.url =', state.url);\r\n\r\n // Если не зарегистрирован вернуть в форму авторизации\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n }\r\n\r\n return isLogin;\r\n }\r\n}\r\n\r\nexport const authGuard: CanActivateFn = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n) => inject(AuthGuardService).canActivate(route, state);\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivateFn, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nclass RoleGuardService {\r\n public roles: string[] = [];\r\n\r\n constructor(private router: Router, private authService: AuthService) {\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\r\n this.roles = route.data['roles'] as string[];\r\n return this.authService.roles$.pipe(map((userRoles: string[]) => this.authService.hasRoles(userRoles, this.roles)));\r\n }\r\n}\r\n\r\nexport const roleGuard: CanActivateFn = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n) => inject(RoleGuardService).canActivate(route, state);\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n// Вычисление разрешений на модули по ролям\r\nexport class RoleService {\r\n // Указываем какой сервер использовать\r\n baseRoute = 'mainApi/';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n // Получить роли пользователя\r\n getRoles() {\r\n return this.http.get(this.baseRoute + 'jwt/webroles');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class BaseToolbarService {\r\n baseRoute = 'BaseToolbar';\r\n\r\n constructor() {}\r\n\r\n}\r\n","import { Component, EventEmitter, inject, Input, OnDestroy, Output } from '@angular/core';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatToolbar } from '@angular/material/toolbar';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { IContextMenuOptions } from '../../../shared/table/models/context-menu-options.interface';\r\n\r\nimport { AuthService } from '../../../auth';\r\nimport { BaseToolbarService } from '../base-toolbar.service';\r\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\r\nimport { MatDivider } from '@angular/material/divider';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-base-toolbar',\r\n templateUrl: 'base-toolbar.component.html',\r\n styleUrls: ['base-toolbar.component.scss'],\r\n imports: [MatToolbar, MatIconButton, MatTooltip, MatIcon, MatMenu, MatDivider, MatMenuTrigger, MatMenuItem],\r\n providers: [\r\n BaseToolbarService\r\n ]\r\n})\r\nexport class BaseToolbarComponent implements OnDestroy {\r\n @Input() rolesNewBtn: string[] = [];\r\n @Input() rolesEditBtn: string[] = [];\r\n @Input() rolesRemoveBtn: string[] = [];\r\n @Input() rolesCopyBtn: string[] = [];\r\n @Input() rolesExcelBtn: string[] = [];\r\n @Input() rolesCsvBtn: string[] = [];\r\n @Input() rolesPdfBtn: string[] = [];\r\n @Input() rolesPrintBtn: string[] = [];\r\n @Input() rolesRefreshBtn: string[] = [];\r\n @Input() rolesClearBtn: string[] = [];\r\n\r\n @Input() newBtnDisabled: boolean = false;\r\n @Input() editBtnDisabled: boolean = false;\r\n @Input() removeBtnDisabled: boolean = false;\r\n @Input() copyBtnDisabled: boolean = false;\r\n @Input() excelBtnDisabled: boolean = false;\r\n @Input() csvBtnDisabled: boolean = false;\r\n @Input() pdfBtnDisabled: boolean = false;\r\n @Input() printBtnDisabled: boolean = false;\r\n @Input() refreshBtnDisabled: boolean = false;\r\n @Input() clearBtnDisabled: boolean = false;\r\n\r\n @Input() newBtnTooltip = 'Добавить';\r\n @Input() editBtnTooltip = 'Изменить';\r\n @Input() removeBtnTooltip = 'Удалить';\r\n @Input() copyBtnTooltip = 'Скопировать';\r\n @Input() excelBtnTooltip = 'Экспортировать в Excel';\r\n @Input() csvBtnTooltip = 'Экспортировать в Csv';\r\n @Input() pdfBtnTooltip = 'Экспортировать в Pdf';\r\n @Input() printBtnTooltip = 'Печатать';\r\n @Input() refreshBtnTooltip = 'Обновить данные';\r\n @Input() clearBtnTooltip = 'Очистить фильтр';\r\n\r\n /** Список элементов контекстного меню. */\r\n @Input() newBtnOpt: IContextMenuOptions<string>[] = [];\r\n\r\n @Output() clickedNewBtn = new EventEmitter();\r\n @Output() clickedEditBtn = new EventEmitter();\r\n @Output() clickedRemoveBtn = new EventEmitter();\r\n @Output() clickedCopyBtn = new EventEmitter();\r\n @Output() clickedExcelBtn = new EventEmitter();\r\n @Output() clickedCsvBtn = new EventEmitter();\r\n @Output() clickedPdfBtn = new EventEmitter();\r\n @Output() clickedPrintBtn = new EventEmitter();\r\n @Output() clickedRefreshBtn = new EventEmitter();\r\n @Output() clickedClearBtn = new EventEmitter();\r\n\r\n // DI\r\n protected authService = inject(AuthService);\r\n\r\n userRoles: string[] = [];\r\n subscription: Subscription | undefined;\r\n\r\n constructor() {\r\n // получить права пользователя\r\n this.subscription = this.authService.roles$.subscribe((userRoles) => {\r\n this.userRoles = userRoles;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n isShow(roles: string[]) {\r\n return !this.authService.isHideElement(roles, this.userRoles);\r\n }\r\n\r\n onNewClick() {\r\n this.clickedNewBtn.emit();\r\n }\r\n\r\n onEditClick() {\r\n this.clickedEditBtn.emit();\r\n }\r\n\r\n onRemoveClick() {\r\n this.clickedRemoveBtn.emit();\r\n }\r\n\r\n onCopyClick() {\r\n this.clickedCopyBtn.emit();\r\n }\r\n\r\n onExcelClick() {\r\n this.clickedExcelBtn.emit();\r\n }\r\n\r\n onCsvClick() {\r\n this.clickedCsvBtn.emit();\r\n }\r\n\r\n onPdfClick() {\r\n this.clickedPdfBtn.emit();\r\n }\r\n\r\n onPrintClick() {\r\n this.clickedPrintBtn.emit();\r\n }\r\n\r\n onRefreshGridClick() {\r\n this.clickedRefreshBtn.emit();\r\n }\r\n\r\n onClearClick() {\r\n this.clickedClearBtn.emit();\r\n }\r\n}\r\n\r\n","<mat-toolbar>\r\n @if (isShow(rolesNewBtn)) {\r\n @if (newBtnOpt && newBtnOpt.length > 0) {\r\n <button [disabled]=\"newBtnDisabled\" [matMenuTriggerFor]=\"menuNewBtn\"\r\n mat-icon-button [matTooltip]=\"newBtnTooltip\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n <mat-menu #menuNewBtn=\"matMenu\">\r\n\r\n @for (menuItem of newBtnOpt; track menuItem) {\r\n @if (menuItem.title === '-' && !(menuItem.hideFn ? menuItem.hideFn(\"\") : menuItem.hide)) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (menuItem.title !== '-' && !(menuItem.hideFn ? menuItem.hideFn(\"\") : menuItem.hide)) {\r\n <button mat-menu-item\r\n (click)=\"menuItem.onClickFn ? menuItem.onClickFn('') : ''\"\r\n [disabled]=\"menuItem.disabledFn ? menuItem.disabledFn('') : menuItem.disabled\">\r\n @if (menuItem.icon) {\r\n <mat-icon>{{menuItem.icon}}</mat-icon>\r\n }\r\n {{ menuItem.title }}\r\n </button>\r\n }\r\n }\r\n\r\n </mat-menu>\r\n } \r\n @else {\r\n <button [disabled]=\"newBtnDisabled\" (click)=\"onNewClick()\"\r\n mat-icon-button routerLink=\"new\" routerLinkActive=\"active\" [matTooltip]=\"newBtnTooltip\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n }\r\n }\r\n\r\n @if (isShow(rolesEditBtn)) {\r\n <button [disabled]=\"editBtnDisabled\" (click)=\"onEditClick()\"\r\n mat-icon-button routerLink=\"edit\" color=\"primary\" routerLinkActive=\"active\" [matTooltip]=\"editBtnTooltip\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n }\r\n @if (isShow(rolesRemoveBtn)) {\r\n <button [disabled]=\"removeBtnDisabled\" (click)=\"onRemoveClick()\"\r\n mat-icon-button routerLink=\"delete\" color=\"warn\" routerLinkActive=\"active\" [matTooltip]=\"removeBtnTooltip\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n }\r\n @if (isShow(rolesCopyBtn)) {\r\n <button [disabled]=\"copyBtnDisabled\" (click)=\"onCopyClick()\"\r\n mat-icon-button routerLink=\"delete\" routerLinkActive=\"active\" [matTooltip]=\"copyBtnTooltip\">\r\n <mat-icon>content_copy</mat-icon>\r\n </button>\r\n }\r\n @if (isShow(rolesExcelBtn)) {\r\n <button [disabled]=\"excelBtnDisabled\" (click)=\"onExcelClick()\"\r\n mat-icon-button routerLink=\"excel\" routerLinkActive=\"active\" [matTooltip]=\"excelBtnTooltip\">\r\n <mat-icon class=\"material-icons-outlined\">explicit</mat-icon>\r\n </button>\r\n }\r\n @if (isShow(rolesCsvBtn)) {\r\n <button [disabled]=\"csvBtnDisabled\" (click)=\"onCsvClick()\"\r\n mat-icon-button routerLink=\"csv\" routerLinkActive=\"active\" [matTooltip]=\"csvBtnTooltip\">\r\n <mat-icon class=\"material-icons-outlined\">download</mat-icon>\r\n </button>\r\n }\r\n @if (isShow(rolesPdfBtn)) {\r\n <button [disabled]=\"pdfBtnDisabled\" (click)=\"onPdfClick()\"\r\n mat-icon-button routerLink=\"pdf\" routerLinkActive=\"active\" [matTooltip]=\"pdfBtnTooltip\">\r\n <mat-icon class=\"material-icons-outlined\">picture_as_pdf</mat-icon>\r\n </button>\r\n }\r\n @if (isShow(rolesPrintBtn)) {\r\n <button [disabled]=\"printBtnDisabled\" (click)=\"onPrintClick()\"\r\n mat-icon-button routerLink=\"print\" routerLinkActive=\"active\" [matTooltip]=\"printBtnTooltip\">\r\n <mat-icon class=\"material-icons-outlined\">print_outline</mat-icon>\r\n </button>\r\n }\r\n @if (isShow(rolesRefreshBtn)) {\r\n <button [disabled]=\"refreshBtnDisabled\" (click)=\"onRefreshGridClick()\"\r\n mat-icon-button routerLink=\"refresh\" routerLinkActive=\"active\" [matTooltip]=\"refreshBtnTooltip\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n }\r\n @if (isShow(rolesClearBtn)) {\r\n <button [disabled]=\"clearBtnDisabled\" (click)=\"onClearClick()\"\r\n mat-icon-button routerLink=\"clear\" routerLinkActive=\"active\" [matTooltip]=\"clearBtnTooltip\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n }\r\n</mat-toolbar>\r\n","export interface IEditDialogData<T, K = any> {\r\n action: Action;\r\n entity: T;\r\n extraData?: K;\r\n}\r\n\r\nexport enum Action {\r\n Add = 'Добавление',\r\n Edit = 'Изменение'\r\n}\r\n","import { Directive } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { MatDialogRef } from \"@angular/material/dialog\";\r\n\r\nimport { Action, IEditDialogData } from \"./base-edit-dialog-data\";\r\n\r\n@Directive()\r\nexport class BaseEditClass<T> {\r\n title: string = '';\r\n dialogData: IEditDialogData<T> | undefined;\r\n form: FormGroup | undefined;\r\n dialogRef: MatDialogRef<any, IEditDialogData<T> | null> | undefined;\r\n\r\n constructor() {\r\n }\r\n\r\n onNoClick(event: PointerEvent): void {\r\n this.dialogRef?.close(null);\r\n event.preventDefault(); // иначе сработает onSubmit\r\n }\r\n\r\n onSubmit(): void {\r\n if (this.form) {\r\n if (this.form.valid) {\r\n if (this.dialogData)\r\n Object.keys(this.form.controls).forEach(controlName => this.dialogData!.entity[controlName as keyof T] = this.form?.controls[controlName].value);\r\n this.dialogRef?.close(this.dialogData);\r\n } else {\r\n Object.keys(this.form.controls).forEach(controlName => this.form?.controls[controlName].markAsTouched());\r\n }\r\n }\r\n }\r\n\r\n formActionIsAdd(): boolean {\r\n return this.dialogData?.action === Action.Add;\r\n }\r\n\r\n formActionIsEdit(): boolean {\r\n return this.dialogData?.action === Action.Edit;\r\n }\r\n}","export interface IEntityAction<T> {\r\n action: EntityAction;\r\n entity: T;\r\n}\r\n\r\nexport enum EntityAction {\r\n Init = 'Инициализация',\r\n Add = 'Добавление',\r\n Edit = 'Изменение',\r\n Delete = 'Удаление'\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive()\r\nexport class BaseFilterClass {\r\n\r\n // eslint-disable-next-line no-magic-numbers\r\n defaultDebounceTime = 500;\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import { Directive, inject } from \"@angular/core\";\r\nimport { MatMenuTrigger } from \"@angular/material/menu\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Directive()\r\nexport class BaseNavBarMenuClass {\r\n\r\n // DI\r\n router = inject(Router);\r\n\r\n constructor() {\r\n }\r\n \r\n /** Нажата средняя кнопка (открыть ссылку в новой вкладке). */ \r\n onMiddleClick(event: PointerEvent, baseUrl: string, menu: MatMenuTrigger) {\r\n // 1 -\tAuxiliary button pressed (usually the middle button)\r\n if (event.button === 1) {\r\n // event.preventDefault();\r\n menu.closeMenu();\r\n const urlTree = this.router.serializeUrl(\r\n this.router.createUrlTree([baseUrl]\r\n )\r\n );\r\n window.open(urlTree, '_blank');\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnimationsService {\r\n private static routeAnimationType: RouteAnimationType = 'ALL';\r\n\r\n constructor() {\r\n AnimationsService.routeAnimationType = 'ALL';\r\n }\r\n\r\n static isRouteAnimationsType(type: RouteAnimationType) {\r\n // console.log('isRouteAnimationsType ', AnimationsService.routeAnimationType, type, AnimationsService.routeAnimationType === type);\r\n return AnimationsService.routeAnimationType === type;\r\n }\r\n\r\n updateRouteAnimationType(\r\n pageAnimations: boolean,\r\n elementsAnimations: boolean\r\n ) {\r\n AnimationsService.routeAnimationType =\r\n pageAnimations && elementsAnimations\r\n ? 'ALL'\r\n : pageAnimations\r\n ? 'PAGE'\r\n : elementsAnimations\r\n ? 'ELEMENTS'\r\n : 'NONE';\r\n }\r\n}\r\n\r\nexport type RouteAnimationType = 'ALL' | 'PAGE' | 'ELEMENTS' | 'NONE';\r\n","import {\r\n animate,\r\n query,\r\n style,\r\n transition,\r\n trigger,\r\n stagger,\r\n sequence\r\n} from '@angular/animations';\r\nimport { AnimationsService } from './animations.service';\r\n\r\nexport const ROUTE_ANIMATIONS_ELEMENTS = 'route-animations-elements';\r\n\r\nconst STEPS_ALL: any[] = [\r\n // PAGE\r\n query(':enter > *', style({ opacity: 0, position: 'fixed' }), {\r\n optional: true\r\n }),\r\n // ELEMENTS\r\n query(':enter .' + ROUTE_ANIMATIONS_ELEMENTS, style({ opacity: 0 }), {\r\n optional: true\r\n }),\r\n // PAGE\r\n sequence([\r\n query(\r\n ':leave > *',\r\n [\r\n style({ transform: 'translateY(0%)', opacity: 1 }),\r\n animate(\r\n '0.2s ease-in-out',\r\n style({ transform: 'translateY(-3%)', opacity: 0 })\r\n ),\r\n style({ position: 'fixed' })\r\n ],\r\n { optional: true }\r\n ),\r\n query(\r\n ':enter > *',\r\n [\r\n style({\r\n transform: 'translateY(-3%)',\r\n opacity: 0,\r\n position: 'static'\r\n }),\r\n animate(\r\n '0.5s ease-in-out',\r\n style({ transform: 'translateY(0%)', opacity: 1 })\r\n )\r\n ],\r\n { optional: true }\r\n )\r\n ]),\r\n // ELEMENTS\r\n query(\r\n ':enter .' + ROUTE_ANIMATIONS_ELEMENTS,\r\n // eslint-disable-next-line no-magic-numbers\r\n stagger(75, [\r\n style({ transform: 'translateY(10%)', opacity: 0 }),\r\n animate(\r\n '0.5s ease-in-out',\r\n style({ transform: 'translateY(0%)', opacity: 1 })\r\n )\r\n ]),\r\n { optional: true }\r\n )\r\n];\r\nconst STEPS_NONE: any[] = [];\r\nconst STEPS_PAGE = [STEPS_ALL[0], STEPS_ALL[2]];\r\nconst STEPS_ELEMENTS = [STEPS_ALL[1], STEPS_ALL[3]];\r\n\r\nexport const isRouteAnimationsAll = () => AnimationsService.isRouteAnimationsType('ALL');\r\nexport const isRouteAnimationsNone = () => AnimationsService.isRouteAnimationsType('NONE');\r\nexport const isRouteAnimationsPage = () => AnimationsService.isRouteAnimationsType('PAGE');\r\nexport const isRouteAnimationsElements = () => AnimationsService.isRouteAnimationsType('ELEMENTS');\r\n\r\nexport const routeAnimations = trigger('routeAnimations', [\r\n transition(isRouteAnimationsAll, STEPS_ALL),\r\n transition(isRouteAnimationsNone, STEPS_NONE),\r\n transition(isRouteAnimationsPage, STEPS_PAGE),\r\n transition(isRouteAnimationsElements, STEPS_ELEMENTS)\r\n]);\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n\r\n constructor() { }\r\n\r\n public saveData(key: string, value: string) {\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n public getData(key: string) {\r\n return localStorage.getItem(key)\r\n }\r\n public removeData(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n public clearData() {\r\n localStorage.clear();\r\n }\r\n\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { MatDialogActions, MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { DialogData } from '.';\r\n\r\n@Component({\n selector: 'lib-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.css'],\n imports: [MatDialogTitle, MatDialogContent, MatDialogActions, MatButton, MatDialogClose]\n})\r\nexport class DialogComponent {\r\n\r\n constructor(public dialogRef: MatDialogRef<DialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData\r\n ) {\r\n if (!data.title) {\r\n data.title = 'Подтверждение';\r\n }\r\n if (!data.btnNoTitle) {\r\n data.btnNoTitle = 'Нет';\r\n }\r\n if (!data.btnYesTitle) {\r\n data.btnYesTitle = 'Да';\r\n }\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","<h1 mat-dialog-title>{{ data.title }}</h1>\n<div mat-dialog-content>\n <div style=\"white-space: pre-line\">{{ data.message }}</div>\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-raised-button (click)=\"onNoClick()\" cdkFocusInitial>{{ data.btnNoTitle }}</button>\n <button mat-raised-button color=\"warn\" [mat-dialog-close]=\"data.id\">{{ data.btnYesTitle }}</button>\n</div>\n\n","import { Directive, OnDestroy, inject } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject, forkJoin, ObservableInput, Subject, Subscription } from 'rxjs';\r\n\r\nimport { ROUTE_ANIMATIONS_ELEMENTS } from '../../core';\r\nimport { LocalStorageService } from '../../services/local-storage-service';\r\nimport { DialogComponent } from '../../shared/dialog/dialog.component';\r\nimport { IContextMenuOptions, IPageState, ISortState, ITableState } from '../../shared/table';\r\nimport { IAlertService } from '../interfaces';\r\nimport { Action, IEditDialogData } from './base-edit-dialog-data';\r\nimport { ObjectKeys, SortDirection, fnCbType, fnType } from '../../types/types';\r\n\r\n@Directive()\r\nexport class BasePageClass<T> implements OnDestroy {\r\n\r\n routeAnimationsElements = ROUTE_ANIMATIONS_ELEMENTS;\r\n\r\n /** Данные для табличного компонента. */\r\n data$: BehaviorSubject<T[]> = new BehaviorSubject<T[]>([]);\r\n /** Количество записей по фильтру. */\r\n length$: BehaviorSubject<number> = new BehaviorSubject<number>(0);\r\n\r\n entityService: any;\r\n entityType: any;\r\n entityEditComponent: any;\r\n extraData?: any;\r\n\r\n // eslint-disable-next-line no-magic-numbers\r\n defaultPageIndex = 0;\r\n // eslint-disable-next-line no-magic-numbers\r\n defaultPageSize = 10;\r\n\r\n dialog: MatDialog | undefined;\r\n dialogEditWidth = 'auto';\r\n dialogRemoveWidth = '400px';\r\n\r\n alertService: IAlertService | undefined;\r\n\r\n routeAddress: string = '';\r\n\r\n /** Сообщение при удалении записе(й). */\r\n removalMessage: string = '';\r\n /** Заголовок страницы. */\r\n pageTitle: string = '';\r\n\r\n\r\n /**\r\n * Создание записи: вызывается перед окрытием диалога.\r\n */\r\n beforeOpenDialogOnNewEvent: fnType<T>;\r\n /**\r\n * Редактирование записи: вызывается перед окрытием диалога.\r\n */\r\n beforeOpenDialogOnEditEvent: fnType<T>;\r\n /**\r\n * Создание записи: вызывается перед сохранением объекта.\r\n */\r\n beforeSaveOnNewEvent: fnType<T>;\r\n /**\r\n * Редактирование записи: вызывается перед сохранением объекта.\r\n */\r\n beforeSaveOnEditEvent: fnType<T>;\r\n /**\r\n * Создание записи: вызывается после сохранения объекта.\r\n */\r\n afterSaveOnNewEvent: fnCbType<T>;\r\n /**\r\n * Редактирование записи: вызывается после сохранения объекта.\r\n */\r\n afterSaveOnEditEvent: fnCbType<T>;\r\n\r\n editorRoles: string[] = [];\r\n executeRoles: string[] = [];\r\n /** Список ролей, для которых скрыть элемент. */\r\n hideRoles: string[] = ['HIDE'];\r\n\r\n /** Загрузка данных. */\r\n loadData$: Subject<null> = new Subject<null>();\r\n /** Загрузка количества записей. */\r\n loadLength$: Subject<null> = new Subject<null>();\r\n /** Очистка фильтра. */\r\n clearFilter$: Subject<null> = new Subject<null>();\r\n\r\n /** Разрешен выбор нескольких строк. */\r\n allowMultiSelect = false;\r\n /** Выбранные строки в таблице. */\r\n selected: T[] = [];\r\n\r\n /** Состояние сортировки, пагинации. */\r\n tableState: ITableState;\r\n\r\n /** Доступность кнопки \"Изменить\". */\r\n editBtnDisabled = true;\r\n /** Доступность кнопки \"Удалить\". */\r\n removeBtnDisabled = true;\r\n\r\n /** Разрешено ли отправлять событие rowDoubleClicked при двойном щелчке мышью. */\r\n dblClickedEventEnable = true;\r\n\r\n // Список элементов контекстного меню.\r\n opt: IContextMenuOptions<T>[] = [];\r\n\r\n // DI\r\n protected router = inject(Router);\r\n protected localStorage = inject(LocalStorageService);\r\n\r\n subscription: Subscription | undefined = new Subscription();\r\n\r\n constructor() {\r\n this.tableState = {\r\n sortActive: this.localStorage.getData(this.constructor.name + 'SortActive') || '',\r\n sortDirection: (this.localStorage.getData(this.constructor.name + 'SortDirection') || '') as SortDirection,\r\n pageIndex: Number(this.localStorage.getData(this.constructor.name + 'PageIndex')) || this.defaultPageIndex,\r\n pageSize: Number(this.localStorage.getData(this.constructor.name + 'PageSize')) || this.defaultPageSize\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n onPageChange(pageState: IPageState) {\r\n this.localStorage.saveData(this.constructor.name + 'PageIndex', pageState.pageIndex.toString());\r\n this.localStorage.saveData(this.constructor.name + 'PageSize', pageState.pageSize.toString());\r\n\r\n this.loadData$.next(null);\r\n this.loadLength$.next(null);\r\n }\r\n\r\n onSortChange(sortState: ISortState) {\r\n this.localStorage.saveData(this.constructor.name + 'SortActive', sortState.sortActive);\r\n this.localStorage.saveData(this.constructor.name + 'SortDirection', sortState.sortDirection);\r\n\r\n this.loadData$.next(null);\r\n this.loadLength$.next(null);\r\n }\r\n\r\n entityFactory(type: new () => T): T {\r\n return new type();\r\n }\r\n\r\n /** Cобытие изменение выбранных записей. */\r\n onSelectionChange(selected: T[]) {\r\n this.selected = selected;\r\n this.editBtnDisabledUpdate(this.selected);\r\n this.removeBtnDisabledUpdate(this.selected);\r\n }\r\n\r\n /** Обновление доступности кнопки \"Изменить\" - вызывается при изменении выбранных записей. */\r\n editBtnDisabledUpdate(selected: T[]) {\r\n this.editBtnDisabled = !(selected && selected.length === 1);\r\n }\r\n\r\n /** Обновление доступности кнопки \"Удалить\" - вызывается при изменении выбранных записей. */\r\n removeBtnDisabledUpdate(selected: T[]) {\r\n this.removeBtnDisabled = !(selected && selected.length > 0);\r\n }\r\n\r\n /** Cобытие двойной клик. */\r\n onRowDoubleClicked() {\r\n this.editEvent();\r\n }\r\n\r\n /** Cобытие создание. */\r\n newEvent() {\r\n if (this.entityEditComponent) {\r\n const data: IEditDialogData<T> = { action: Action.Add, entity: new this.entityType(null) };\r\n\r\n // Назначить значения полей объекта перед окрытием диалога.\r\n if (this.beforeOpenDialogOnNewEvent) {\r\n this.beforeOpenDialogOnNewEvent(data.entity, data.extraData);\r\n }\r\n\r\n // Открытие окна\r\n const dialogRef = this.openDialog(this.entityEditComponent, data, this.dialog);\r\n\r\n // Обработка закрытия окна\r\n const subs = dialogRef.afterClosed().subscribe((result: IEditDialogData<T>) => {\r\n // Проверка результата\r\n if (result && result.entity && (Object.keys(result.entity).length !== 0)) {\r\n // Дополнительные действия перед сохранением объекта.\r\n if (this.beforeSaveOnNewEvent)\r\n this.beforeSaveOnNewEvent(result.entity, result.extraData);\r\n\r\n const subs = this.entityService.newObject(result.entity)\r\n .subscribe({\r\n next: (obj: any) => {\r\n // Дополнительные действия после сохранения объекта.\r\n if (this.afterSaveOnNewEvent) {\r\n const callback = () => {\r\n this.refreshEvent();\r\n this.alertService?.success('Запись добавлена.');\r\n }\r\n this.afterSaveOnNewEvent(callback.bind(this), obj, result.extraData);\r\n } else {\r\n this.refreshEvent();\r\n this.alertService?.success('Запись добавлена.');\r\n }\r\n },\r\n error: (error: any) => {\r\n console.log('error', error);\r\n this.alertService?.error('Произошла ошибка при добавлении записи: ' + error, 0);\r\n }\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n });\r\n this.subscription?.add(subs);\r\n\r\n // Закрытие окна по нажатию Escape\r\n const subs2 = dialogRef.keydownEvents().subscribe((event: any) => {\r\n if (event.key === 'Escape') {\r\n dialogRef.close(null);\r\n }\r\n });\r\n this.subscription?.add(subs2);\r\n } else {\r\n this.alertService?.warning('Действие не доступно.');\r\n }\r\n }\r\n\r\n /** Cобытие редактирование. */\r\n editEvent() {\r\n if (this.selected && this.selected.length === 1) {\r\n if (this.entityEditComponent) {\r\n const data: IEditDialogData<T> = { action: Action.Edit, entity: this.selected[0] };\r\n\r\n // Назначить значения полей объекта перед окрытием диалога.\r\n if (this.beforeOpenDialogOnEditEvent) {\r\n this.beforeOpenDialogOnEditEvent(data.entity, data.extraData);\r\n }\r\n\r\n // Открытие окна\r\n const dialogRef = this.openDialog(this.entityEditComponent, data, this.dialog);\r\n\r\n // Обработка закрытия окна\r\n const subs = dialogRef.afterClosed().subscribe((result: IEditDialogData<T>) => {\r\n // Проверка результата\r\n if (result && result.entity && (Object.keys(result.entity).length !== 0)) {\r\n // Дополнительные действия перед сохранением объекта.\r\n if (this.beforeSaveOnEditEvent)\r\n this.beforeSaveOnEditEvent(result.entity, result.extraData);\r\n\r\n const subs = this.entityService.editObject(result.entity)\r\n .subscribe({\r\n next: () => {\r\n // Дополнительные действия после сохранения объекта.\r\n if (this.afterSaveOnEditEvent) {\r\n const callback = () => {\r\n this.refreshEvent();\r\n this.alertService?.success('Запись изменена.');\r\n }\r\n this.afterSaveOnEditEvent(callback.bind(this), result.entity, result.extraData);\r\n } else {\r\n this.refreshEvent();\r\n this.alertService?.success('Запись изменена.');\r\n }\r\n },\r\n error: (error: any) => {\r\n console.log('error', error);\r\n this.alertService?.error('Произошла ошибка при изменении записи: ' + error, 0);\r\n }\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n });\r\n this.subscription?.add(subs);\r\n\r\n // Закрытие окна по нажатию Escape\r\n const subs2 = dialogRef.keydownEvents().subscribe((event: any) => {\r\n if (event.key === 'Escape') {\r\n dialogRef.close(null);\r\n }\r\n });\r\n this.subscription?.add(subs2);\r\n } else {\r\n this.alertService?.warning('Действие не доступно.');\r\n }\r\n }\r\n }\r\n\r\n\r\n /** Cобытие удаление. */\r\n removeEvent() {\r\n // если вырбана запись(и)\r\n if (this.selected && this.selected.length > 0) {\r\n const dialogRef = this.openDialogRemoveConfirm(this.removalMessage);\r\n if (dialogRef) {\r\n const subs = dialogRef.afterClosed().subscribe((result: any) => {\r\n // при подтверждении возвращается 'delete'\r\n if (result === 'delete') {\r\n // готовим объект с запросами на удаление\r\n type tplotOptions = {\r\n [key: string]: ObservableInput<T>\r\n }\r\n const sourcesObject: ObjectKeys = {};\r\n this.selected.forEach((item, index) => sourcesObject['obj' + index] = this.entityService.deleteObject(item));\r\n // ждем, когда выполнятся все запросы\r\n const subs = forkJoin(sourcesObject)\r\n .subscribe({\r\n next: () => {\r\n this.refreshEvent();\r\n this.alertService?.success('Выбранные записи удалены.');\r\n },\r\n error: (error: any) => {\r\n console.log('error', error);\r\n this.alertService?.error('Произошла ошибка при удалении записи: ' + error, 0);\r\n }\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n });\r\n this.subscription?.add(subs);\r\n\r\n // Закрытие окна по нажатию Escape\r\n const subs2 = dialogRef.keydownEvents().subscribe((event: any) => {\r\n if (event.key === 'Escape') {\r\n dialogRef.close(null);\r\n }\r\n });\r\n this.subscription?.add(subs2);\r\n }\r\n }\r\n }\r\n\r\n /** Событие обновления данных. */\r\n refreshEvent() {\r\n this.loadData$.next(null);\r\n this.loadLength$.next(null);\r\n }\r\n\r\n /** Cобытие очистки фильтра. */\r\n clearEvent() {\r\n this.clearFilter$.next(null);\r\n }\r\n\r\n /** Изменение сообщения об удалении. */\r\n onRemovalMessageChange(message: string) {\r\n this.removalMessage = message;\r\n }\r\n\r\n /** Изменение заголовка страницы. */\r\n onPageTitleChange(title: string) {\r\n this.pageTitle = title;\r\n }\r\n\r\n openDialog(entityComponent: any, data: IEditDialogData<T>, dialog: any) {\r\n // create dialog config\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = true;\r\n dialogConfig.width = this.dialogEditWidth;\r\n dialogConfig.data = data;\r\n dialogConfig.panelClass = this.entityType.name + '-edit-dialog';\r\n // return dialog\r\n return dialog.open(entityComponent, dialogConfig);\r\n }\r\n\r\n openDialogRemoveConfirm(removalMessage: string): MatDialogRef<DialogComponent> | undefined {\r\n let message = 'Вы хотите удалить ';\r\n message += removalMessage ?\r\n removalMessage :\r\n this.allowMultiSelect ? `выбранные записи (${this.selected.length})?` : 'выбранную запись?';\r\n return this.dialog?.open(DialogComponent, {\r\n width: this.dialogRemoveWidth,\r\n data: {\r\n id: 'delete',\r\n title: 'Подтверждение',\r\n message: message,\r\n btnNoTitle: 'Отмена',\r\n btnYesTitle: 'Удалить'\r\n }\r\n });\r\n }\r\n\r\n // contextMenu: Документы потока (в новой вкладке).\r\n protected onMiddleButton(baseUrl: string, queryParamName?: string, queryParamValue?: string) {\r\n return ($event: MouseEvent, item: T, contextMenu: MatMenuTrigger) => {\r\n // Нажата средняя кнопка (в новой вкладке).\r\n // 1 -\tAuxiliary button pressed (usually the middle button)\r\n if ($event.button === 1) {\r\n //$event.preventDefault();\r\n contextMenu.closeMenu();\r\n // Converts the route into a string that can be used\r\n // with the window.open() function\r\n const url = this.router.serializeUrl(\r\n queryParamName && queryParamValue ?\r\n this.router.createUrlTree([baseUrl], { queryParams: { [queryParamName]: item[queryParamValue as keyof T] } })\r\n : this.router.createUrlTree([baseUrl])\r\n );\r\n window.open(url, '_blank');\r\n }\r\n };\r\n }\r\n\r\n protected dateToString(date: string | number | Date) {\r\n return date ? (new Date(date)).toLocaleString('ru-RU', { timeZone: 'Europe/Samara' }) : null; // MSK+01\r\n }\r\n\r\n}\r\n\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { BaseClass } from './base-class';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServiceClass<T extends BaseClass> {\r\n baseRoute: string = '';\r\n entityType: any;\r\n\r\n countRoute = 'count';\r\n basePageRoute = 'page';\r\n basePageSizeRoute = 'pageSize';\r\n\r\n protected http = inject(HttpClient);\r\n\r\n constructor() { }\r\n\r\n getObjects(): Observable<T[]> {\r\n return this.http.get<T[]>(this.baseRoute)\r\n .pipe(map(data => data.map(item => new this.entityType(item).deserialize(item))));\r\n }\r\n\r\n getObject(id: number): any {\r\n return this.http.get<T>(this.baseRoute + id)\r\n .pipe(map(data => new this.entityType(data).deserialize(data)));\r\n }\r\n\r\n getCount(): Observable<number> {\r\n return this.http.get<number>(this.baseRoute + this.countRoute);\r\n }\r\n\r\n getObjectsByPaging(pageIndex: number, pageSize: number, sortColumn: string, direction: string): Observable<T[]> {\r\n const params = this.getParams(pageIndex, pageSize, sortColumn, direction);\r\n return this.http.get<T[]>(this.baseRoute, { params })\r\n .pipe(map(data => data.map(item => new this.entityType(item).deserialize(item))));\r\n }\r\n\r\n newObject(entity: T): any {\r\n return this.http.post(this.baseRoute, entity);\r\n }\r\n\r\n editObject(entity: T): any {\r\n return this.http.put(this.baseRoute + entity.id, entity);\r\n }\r\n\r\n deleteObject(entity: T): any {\r\n return this.http.delete(this.baseRoute + entity.id);\r\n }\r\n\r\n protected getParams(pageIndex: number, pageSize: number, sortColumn: string, direction: string): HttpParams {\r\n let params = new HttpParams();\r\n if (pageIndex)\r\n params = params.append('page', pageIndex);\r\n if (pageSize)\r\n params = params.append('limit', pageSize);\r\n if (sortColumn)\r\n params = params.append('column', sortColumn);\r\n if (direction)\r\n params = params.append('direction', direction);\r\n return params;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RedirectGuard {\r\n\r\n constructor() { }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n console.log(route.data['externalUrl']);\r\n\r\n window.location.href = route.data['externalUrl'];\r\n return true;\r\n }\r\n}\r\n","import { Deserializable } from './deserializable.model';\r\nimport { SecUserView } from './sec-user-view.model';\r\n\r\nexport class SecUser implements Deserializable {\r\n id: number = 0;\r\n login: string = '';\r\n fio: string = '';\r\n dept: number = 0;\r\n tabnum: number = 0;\r\n userView: SecUserView | undefined;\r\n\r\n public constructor(init: SecUser) {\r\n if (init) {\r\n Object.assign(this, init);\r\n } else {\r\n this.id = 0;\r\n this.login = '';\r\n this.dept = 0;\r\n this.tabnum = 0;\r\n this.fio = '';\r\n }\r\n }\r\n\r\n deserialize(input: any): this {\r\n Object.assign(this, input);\r\n return this;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(url: string) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'time'\n})\nexport class TimePipe implements PipeTransform {\n\n transform(value: number): string {\n // const hour = Math.abs(value) >= 60 ? Math.round(value / 60) + 'ч.' : '';\n // const minute = ' ' + Math.abs(value % 60) + 'м.';\n // return value === 0 ? '0' : hour + ' ' + minute;\n\n const hour = Math.abs(value) >= 60 ? Math.floor(Math.abs(value) / 60).toString().padStart(2,'0') : '00';\n const minute = Math.abs(value % 60).toString().padStart(2,'0');\n const time = hour + ':' + minute;\n return value < 0 ? '-' + time : time;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'truncate'\n})\nexport class TruncatePipe implements PipeTransform {\n // Usage:\n // {{ str | truncate:[20] }} // or\n // {{ str | truncate:[20, '...'] }} // or|\n transform(value: string, args: any[]): string {\n const limit = args.length > 0 ? parseInt(args[0], 10) : 20;\n const trail = args.length > 1 ? args[1] : '...';\n return value.length > limit ? value.substring(0, limit) + trail : value;\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AvatarService {\r\n baseRoute = 'common/human/';\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n getAvatarById(idHuman: number): Observable<ArrayBuffer> {\r\n return this.http.get(this.baseRoute + idHuman + '/avatar', { responseType: 'arraybuffer' });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as XLSX from 'xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService {\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n // Экспорт в CSV\r\n exportCSV(data: any, filename = 'data', arrHeader: any, newHeaders: any) {\r\n const csvData = this.convertToCSV(data, arrHeader, newHeaders);\r\n console.log(csvData);\r\n const blob = new Blob(['\\ufeff' + csvData], { type: 'text/csv;charset=utf-8;' });\r\n const dwldLink = document.createElement('a');\r\n const url = URL.createObjectURL(blob);\r\n const isSafariBrowser = navigator.userAgent.indexOf('Safari') !== -1 && navigator.userAgent.indexOf('Chrome') === -1;\r\n if (isSafariBrowser) { //if Safari open in new window to save file with random filename.\r\n dwldLink.setAttribute('target', '_blank');\r\n }\r\n dwldLink.setAttribute('href', url);\r\n dwldLink.setAttribute('download', filename + '.csv');\r\n dwldLink.style.visibility = 'hidden';\r\n document.body.appendChild(dwldLink);\r\n dwldLink.click();\r\n document.body.removeChild(dwldLink);\r\n }\r\n\r\n convertToCSV(objArray: any, headerList: any, newHeaders: any) {\r\n const array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;\r\n let str = '';\r\n let row = 'S.No,';\r\n for (const index in newHeaders) {\r\n if (Object.prototype.hasOwnProperty.call(newHeaders, index)) {\r\n row += newHeaders[index] + ',';\r\n }\r\n }\r\n row = row.slice(0, -1);\r\n str += row + '\\r\\n';\r\n for (let i = 0; i < array.length; i++) {\r\n let line = (i + 1) + '';\r\n for (const index in headerList) {\r\n if (Object.prototype.hasOwnProperty.call(newHeaders, index)) {\r\n const head = headerList[index];\r\n line += ',' + array[i][head];\r\n }\r\n }\r\n str += line + '\\r\\n';\r\n }\r\n return str;\r\n }\r\n\r\n // Экспорт в Excel\r\n exportExcel(data: any, heading: any, sheetName = 'sheet1', filename = 'data') {\r\n const wb = XLSX.utils.book_new();\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet([]);\r\n XLSX.utils.sheet_add_aoa(ws, heading);\r\n XLSX.utils.sheet_add_json(ws, data, { origin: 'A2', skipHeader: true });\r\n XLSX.utils.book_append_sheet(wb, ws, sheetName);\r\n XLSX.writeFile(wb, filename + '.xlsx');\r\n }\r\n\r\n}\r\n","import { COMMA, ENTER } from \"@angular/cdk/keycodes\";\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatAutocompleteModule, MatAutocompleteSelectedEvent, MatOption } from \"@angular/material/autocomplete\";\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { BehaviorSubject, Observable, Subscription, startWith } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\nimport { ChipItem } from './models';\r\n\r\n@Component({\r\n selector: 'lib-chip-input-autocomplete',\r\n templateUrl: './chip-input-autocomplete.component.html',\r\n styleUrl: './chip-input-autocomplete.component.css',\r\n imports: [MatFormField, AsyncPipe, FormsModule, ReactiveFormsModule, MatAutocompleteModule, MatIcon, MatOption, MatChipsModule, MatLabel]\r\n})\r\nexport class BaseMatChipComponent implements OnInit, OnDestroy {\r\n\r\n // Все элементы\r\n @Input() items$: BehaviorSubject<ChipItem[]> = new BehaviorSubject<ChipItem[]>([]);\r\n // Выбранные элементы, ключи (ChipItem.value)\r\n @Input() selectedItems$: Observable<string[]> = new Observable<string[]>();\r\n // Заголовок\r\n @Input() title: string = '';\r\n // Событие изменения выбранных элементов\r\n @Output() selectedItemsChange = new EventEmitter<string[]>();\r\n\r\n @ViewChild('input') input: ElementRef<HTMLInputElement> | undefined;\r\n\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n inputCtrl = new FormControl();\r\n filteredItems$: Observable<ChipItem[]> | undefined;\r\n selectedItems: ChipItem[] = [];\r\n // Все элементы\r\n items: ChipItem[] = [];\r\n\r\n subscription: Subscription | undefined;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.items$.subscribe(data => {\r\n // console.log('ITEMS$ data', data);\r\n this.items = data;\r\n\r\n if (this.items.length > 0) {\r\n this.filteredItems$ = this.inputCtrl.valueChanges.pipe(\r\n startWith(null),\r\n map(item => (item ? this._filter(item) : this.items.slice())),\r\n );\r\n\r\n const subs = this.selectedItems$.subscribe(items => {\r\n // console.log('ITEMS', items);\r\n if (items)\r\n this.selectedItems = this.items.filter(s => items.includes(s.value));\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n remove(value: string): void {\r\n this.selectedItems = [...this.selectedItems];\r\n const index = this.selectedItems.map(i => i.value).indexOf(value);\r\n if (index >= 0) {\r\n this.selectedItems.splice(index, 1);\r\n this.selectedItemsChange.emit(this.selectedItems.map(i => i.value));\r\n }\r\n }\r\n\r\n selected(event: MatAutocompleteSelectedEvent): void {\r\n this.selectedItems = [...this.selectedItems];\r\n const item = this.items.find(s => s.value == event.option.value)\r\n if (item) {\r\n this.selectedItems.push(item);\r\n }\r\n this.selectedItemsChange.emit(this.selectedItems.map(i => i.value));\r\n if (this.input)\r\n this.input.nativeElement.value = '';\r\n this.inputCtrl.setValue(null);\r\n }\r\n\r\n private _filter(value: string): ChipItem[] {\r\n const filterValue = value.toLowerCase();\r\n return this.items.filter(item => item.viewValue.toLowerCase().includes(filterValue));\r\n }\r\n\r\n onCloseClick($event: MouseEvent) {\r\n $event.stopPropagation();\r\n this.selectedItemsChange.emit([]);\r\n }\r\n}\r\n","<mat-form-field class=\"chip-list\" appearance=\"fill\">\r\n <mat-label>{{ title }}</mat-label>\r\n <mat-chip-grid #chipList aria-label=\"'Выбор '+title\">\r\n @for (item of selectedItems; track item) {\r\n <mat-chip-row color=\"primary\"\r\n (removed)=\"remove(item.value)\">\r\n {{ item.viewValue }}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input\r\n #input\r\n [placeholder]=\"'Введите '+title+'...'\"\r\n [formControl]=\"inputCtrl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n >\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of filteredItems$ | async; track item) {\r\n <mat-option [value]=\"item.value\"\r\n [disabled]=\"(selectedItems$ | async)?.includes(item.value)\">\r\n {{ item.viewValue }}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (selectedItems.length>0) {\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"onCloseClick($event)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>\r\n","import moment from \"moment\";\r\n\r\nexport interface DateRange {\r\n begin: string;\r\n end: string;\r\n}\r\n\r\nexport function dateFormat(date: Date): string {\r\n if (date)\r\n return moment(date).format(\"YYYY-MM-DD\")\r\n else\r\n return '';\r\n}\r\n","// See the Moment.js docs for the meaning of these formats:\r\n// https://momentjs.com/docs/#/displaying/format/\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'DD.MM.YYYY',\r\n },\r\n display: {\r\n dateInput: 'DD.MM.YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n };","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatDatepickerToggle, MatDateRangeInput, MatDateRangePicker, MatEndDate, MatStartDate } from '@angular/material/datepicker';\r\nimport { MatError, MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\r\nimport 'moment/locale/ru';\r\nimport { Subject, BehaviorSubject, Subscription } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nimport { dateFormat, DateRange, MY_FORMATS } from './models';\r\n\r\n@Component({\r\n selector: 'lib-date-range-filter',\r\n templateUrl: './date-range-filter.component.html',\r\n styleUrls: ['./date-range-filter.component.scss'],\r\n imports: [MatFormField, MatLabel, MatDateRangeInput, FormsModule, ReactiveFormsModule, MatStartDate, MatEndDate,\r\n MatDatepickerToggle, MatSuffix, MatDateRangePicker, MatError],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'ru' },\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\r\n ]\r\n})\r\nexport class DateRangeFilterComponent implements OnInit, OnDestroy {\r\n @Input() label: string = '';\r\n @Input() dateRange$: BehaviorSubject<DateRange> = new BehaviorSubject<DateRange>(<DateRange>{ begin: '', end: '' });\r\n // eslint-disable-next-line no-magic-numbers\r\n @Input() minDate: Date = new Date(2020, 0, 1);\r\n @Input() clearFilter$: Subject<boolean> = new Subject<boolean>();\r\n @Input() required: boolean = false;\r\n @Output() dateRangeChange: EventEmitter<DateRange> = new EventEmitter<DateRange>();\r\n\r\n form: FormGroup;\r\n subscription: Subscription | undefined;\r\n\r\n constructor() {\r\n this.form = new FormGroup({\r\n begin: new FormControl(),\r\n end: new FormControl(),\r\n });\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.subscription = this.dateRange$.subscribe((value: DateRange) => {\r\n console.log(value);\r\n if (this.form) {\r\n this.form.controls['begin'].setValue(value.begin ? new Date(value.begin) : null);\r\n this.form.controls['end'].setValue(value.end ? new Date(value.begin) : null);\r\n }\r\n this.dateRangeChange.emit(this.rangeToDateDateRange(this.form.value));\r\n });\r\n\r\n if (this.required) {\r\n this.form.controls['begin'].addValidators(Validators.required);\r\n this.form.controls['end'].addValidators(Validators.required);\r\n }\r\n\r\n // подписка на изменение периода\r\n this.form.valueChanges\r\n .pipe(\r\n // eslint-disable-next-line no-magic-numbers\r\n debounceTime(500),\r\n distinctUntilChanged()\r\n )\r\n .subscribe({\r\n next: range => {\r\n if (this.required) {\r\n if (range.begin && range.end) {\r\n this.dateRangeChange.emit(this.rangeToDateDateRange(range));\r\n }\r\n } else {\r\n this.dateRangeChange.emit(this.rangeToDateDateRange(range));\r\n }\r\n }\r\n });\r\n\r\n const subs = this.clearFilter$.subscribe(() => {\r\n this.form.reset();\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n private rangeToDateDateRange(range: Partial<{ begin: Date; end: Date }>): DateRange {\r\n return {\r\n begin: range.begin ? dateFormat(range.begin) : '',\r\n end: range.end ? dateFormat(range.end) : ''\r\n };\r\n }\r\n\r\n}\r\n","<mat-form-field appearance=\"fill\">\n <mat-label>{{label}}</mat-label>\n <mat-date-range-input\n [rangePicker]=\"picker\"\n [formGroup]=\"form\"\n [min]=\"minDate\">\n <input matStartDate formControlName=\"begin\" placeholder=\"Дата начала\">\n <input matEndDate formControlName=\"end\" placeholder=\"Дата окончания\">\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-error>Укажите период</mat-error>\n</mat-form-field>\n\n","export enum DialogAction {\r\n Add = 'Добавить',\r\n Edit = 'Изменить',\r\n Delete = 'Удалить',\r\n None = ''\r\n }","import { Component } from '@angular/core';\r\n\r\n/* eslint-disable max-len */\r\n@Component({\r\n selector: 'lib-imz-logo',\r\n template: `\r\n <svg id=\"logo_mechan\" viewBox=\"0 0 116 32\" width=\"100%\" height=\"100%\" fill=\"white\">\r\n <path d=\"M53.080 19c0.002 0.037 0.004 0.081 0.004 0.125s-0.001 0.088-0.004 0.131l0-0.006c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c-0.015 0.037-0.039 0.067-0.069 0.090l-0.001 0c-0.013 0.005-0.029 0.007-0.045 0.007s-0.032-0.003-0.046-0.008l0.001 0h-3.44c-0.004 0-0.009 0-0.014 0-0.105 0-0.202-0.038-0.277-0.101l0.001 0.001c-0.075-0.076-0.121-0.18-0.121-0.295 0-0.012 0.001-0.024 0.002-0.036l-0 0.002v-5.87c-0.001-0.010-0.001-0.022-0.001-0.035 0-0.115 0.046-0.22 0.121-0.295l-0 0c0.074-0.062 0.171-0.1 0.276-0.1 0.005 0 0.010 0 0.015 0l-0.001-0h3.46c0.027 0.024 0.047 0.054 0.060 0.088l0 0.002c0.003 0.025 0.004 0.055 0.004 0.085s-0.002 0.059-0.005 0.089l0-0.004c0.002 0.039 0.004 0.084 0.004 0.13s-0.001 0.091-0.004 0.136l0-0.006c0.002 0.037 0.004 0.081 0.004 0.125s-0.001 0.088-0.004 0.131l0-0.006c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c-0.014 0.035-0.034 0.066-0.060 0.090l-0 0c-0.012 0.004-0.026 0.006-0.040 0.006s-0.028-0.002-0.041-0.007l0.001 0h-2.41v1.71h2c0.013-0.005 0.029-0.008 0.045-0.008s0.032 0.003 0.046 0.008l-0.001-0c0.031 0.023 0.055 0.053 0.070 0.089l0 0.001c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.006 0.083l0-0.003c0.008 0.075 0.012 0.162 0.012 0.25s-0.005 0.175-0.013 0.261l0.001-0.011c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.006 0.083l0-0.003c-0.013 0.038-0.038 0.068-0.069 0.090l-0.001 0c-0.013 0.004-0.029 0.007-0.045 0.007s-0.032-0.003-0.046-0.007l0.001 0h-2v1.9h2.43c0.013-0.005 0.029-0.008 0.045-0.008s0.032 0.003 0.046 0.008l-0.001-0c0.031 0.023 0.055 0.053 0.069 0.089l0.001 0.001c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c0.003 0.039 0.004 0.084 0.004 0.13s-0.001 0.091-0.004 0.136l0-0.006zM47.53 19.26c0.004 0.013 0.006 0.029 0.006 0.045s-0.002 0.032-0.007 0.046l0-0.001c-0.028 0.033-0.066 0.058-0.108 0.070l-0.002 0h-1.040c-0.040-0.014-0.074-0.038-0.1-0.070l-0-0c-0.004-0.013-0.006-0.029-0.006-0.045s0.002-0.032 0.007-0.046l-0 0.001v-5.5l-2 5.5c-0.014 0.044-0.038 0.081-0.070 0.11l-0 0c-0.036 0.032-0.080 0.056-0.128 0.069l-0.002 0.001h-1.080c-0.028-0.027-0.049-0.060-0.060-0.098l-0-0.002-1.94-5.5v5.5c0.004 0.013 0.006 0.029 0.006 0.045s-0.002 0.032-0.007 0.046l0-0.001c-0.028 0.033-0.066 0.058-0.108 0.070l-0.002 0h-1.040c-0.044-0.012-0.082-0.037-0.11-0.070l-0-0c-0.004-0.013-0.006-0.029-0.006-0.045s0.002-0.032 0.007-0.046l-0 0.001v-6c-0.001-0.012-0.002-0.027-0.002-0.042 0-0.142 0.054-0.271 0.142-0.369l-0 0c0.091-0.087 0.215-0.141 0.352-0.141 0.010 0 0.020 0 0.030 0.001l-0.001-0h0.9c0.062-0.007 0.133-0.012 0.205-0.012s0.143 0.004 0.214 0.012l-0.009-0.001c0.114 0.024 0.215 0.069 0.303 0.132l-0.003-0.002c0.086 0.064 0.156 0.144 0.208 0.236l0.002 0.004c0.059 0.106 0.11 0.229 0.147 0.358l0.003 0.012 1.46 4 1.51-4c0.043-0.143 0.094-0.265 0.156-0.382l-0.006 0.012c0.051-0.093 0.115-0.172 0.189-0.239l0.001-0.001c0.070-0.059 0.154-0.104 0.246-0.129l0.004-0.001c0.051-0.007 0.11-0.011 0.17-0.011s0.119 0.004 0.177 0.012l-0.007-0.001h0.87c0.036-0.007 0.078-0.010 0.12-0.010s0.084 0.004 0.124 0.011l-0.004-0.001c0.068 0.022 0.125 0.060 0.17 0.11l0 0c0.044 0.047 0.078 0.104 0.099 0.167l0.001 0.003c0.006 0.035 0.009 0.074 0.009 0.115s-0.003 0.080-0.010 0.119l0.001-0.004zM90.39 0.27c-0 0.198-0.037 0.387-0.104 0.561l0.004-0.011c-0.070 0.186-0.18 0.344-0.319 0.469l-0.001 0.001c-0.165 0.142-0.362 0.252-0.579 0.317l-0.011 0.003c-0.246 0.077-0.529 0.121-0.822 0.121-0.024 0-0.047-0-0.071-0.001l0.004 0c-0.019 0-0.041 0.001-0.063 0.001-0.287 0-0.565-0.040-0.828-0.116l0.021 0.005c-0.226-0.064-0.423-0.167-0.593-0.303l0.003 0.003c-0.145-0.121-0.258-0.276-0.327-0.452l-0.003-0.008c-0.069-0.175-0.11-0.378-0.11-0.59v-0c-0.005-0.020-0.009-0.042-0.009-0.065s0.003-0.045 0.009-0.067l-0 0.002c0.024-0.036 0.058-0.064 0.099-0.080l0.001-0.001c0.029-0.004 0.061-0.007 0.095-0.007s0.066 0.002 0.099 0.007l-0.004-0h0.75c0.034 0.018 0.062 0.046 0.079 0.079l0.001 0.001c0.004 0.018 0.007 0.039 0.007 0.060s-0.002 0.042-0.007 0.062l0-0.002c-0.008 0.036-0.013 0.078-0.013 0.12s0.005 0.084 0.013 0.124l-0.001-0.004c0.036 0.076 0.087 0.139 0.149 0.189l0.001 0.001c0.068 0.058 0.148 0.105 0.234 0.138l0.006 0.002c0.089 0.032 0.192 0.050 0.299 0.050 0.004 0 0.007-0 0.011-0h-0.001c0.026 0.003 0.056 0.004 0.087 0.004 0.109 0 0.213-0.020 0.309-0.056l-0.006 0.002c0.077-0.035 0.143-0.079 0.201-0.131l-0.001 0.001c0.076-0.050 0.137-0.118 0.179-0.197l0.001-0.003c0.032-0.071 0.050-0.153 0.050-0.24 0-0.004-0-0.007-0-0.011v0.001c-0.004-0.017-0.006-0.036-0.006-0.055s0.002-0.038 0.006-0.057l-0 0.002c0.017-0.035 0.045-0.063 0.079-0.080l0.001-0h0.92c0.042 0.016 0.076 0.044 0.1 0.079l0 0.001c0.031 0.035 0.053 0.080 0.060 0.129l0 0.001zM91.18 8.67c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.029 0.032-0.066 0.056-0.108 0.069l-0.002 0.001h-1.080c-0.044-0.012-0.082-0.037-0.11-0.070l-0-0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-3.56c0-0.14 0-0.27 0-0.4s0-0.25 0-0.35v0l-0.1 0.17-0.12 0.2-0.2 0.27-0.15 0.22-2.31 3.46-0.090 0.1c-0.033 0.031-0.073 0.056-0.118 0.069l-0.002 0.001h-0.99c-0.041-0.011-0.076-0.036-0.1-0.069l-0-0.001c-0.004-0.015-0.007-0.032-0.007-0.050s0.002-0.035 0.007-0.051l-0 0.001v-6.42c-0.005-0.013-0.008-0.029-0.008-0.045s0.003-0.032 0.008-0.046l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.070l0.002-0.001h1.080c0.044 0.012 0.082 0.037 0.11 0.070l0 0c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001v3.59c0 0.11 0 0.23 0 0.35s0 0.25 0 0.37v0l0.23-0.38 0.28-0.43 2.39-3.5 0.1-0.090c0.031-0.029 0.067-0.053 0.108-0.069l0.002-0.001h0.96c0.041 0.014 0.075 0.038 0.1 0.070l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001zM84.18 8.67c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.029 0.032-0.066 0.056-0.108 0.069l-0.002 0.001h-1.080c-0.044-0.012-0.082-0.037-0.11-0.070l-0-0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-3.56c0-0.14 0-0.27 0-0.4s0-0.25 0-0.35v0l-0.1 0.17-0.12 0.2-0.21 0.27-0.15 0.22-2.3 3.46-0.090 0.1c-0.033 0.031-0.073 0.055-0.118 0.069l-0.002 0.001h-0.99c-0.041-0.011-0.076-0.036-0.1-0.069l-0-0.001c-0.004-0.015-0.007-0.032-0.007-0.050s0.002-0.035 0.007-0.051l-0 0.001v-6.42c-0.005-0.013-0.008-0.029-0.008-0.045s0.003-0.032 0.008-0.046l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.070l0.002-0.001h1.080c0.044 0.012 0.082 0.037 0.11 0.070l0 0c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001v3.59c0 0.11 0 0.23 0 0.35s0 0.25 0 0.37v0l0.23-0.38 0.28-0.43 2.35-3.51 0.14-0.080c0.031-0.029 0.067-0.053 0.108-0.069l0.002-0.001h0.96c0.041 0.014 0.075 0.038 0.1 0.070l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001zM77.63 8.67c0.005 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.009 0.051l0-0.001c-0.028 0.033-0.066 0.058-0.108 0.070l-0.002 0h-1.15c-0.052-0.015-0.096-0.043-0.13-0.080l-0-0c-0.027-0.034-0.047-0.074-0.059-0.118l-0.001-0.002-0.54-1.51c-0.072-0.213-0.153-0.395-0.249-0.567l0.009 0.017c-0.077-0.139-0.17-0.257-0.279-0.359l-0.001-0.001c-0.094-0.088-0.208-0.157-0.334-0.198l-0.006-0.002c-0.128-0.038-0.276-0.060-0.428-0.060-0.001 0-0.001 0-0.002 0h-0.35v2.7c0.005 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.009 0.051l0-0.001c-0.029 0.033-0.066 0.057-0.108 0.070l-0.002 0h-1.1c-0.043-0.015-0.080-0.039-0.11-0.070l-0-0c-0.006-0.015-0.009-0.032-0.009-0.050s0.003-0.035 0.010-0.051l-0 0.001v-6.39c-0.006-0.015-0.009-0.032-0.009-0.050s0.003-0.035 0.010-0.051l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.069l0.002-0.001h1.080c0.044 0.012 0.082 0.037 0.11 0.070l0 0c0.006 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.010 0.051l0-0.001v2.53h0.31c0.007 0 0.016 0 0.025 0 0.138 0 0.27-0.022 0.394-0.063l-0.009 0.003c0.124-0.047 0.231-0.115 0.32-0.2l-0 0c0.102-0.1 0.188-0.216 0.256-0.342l0.004-0.008c0.081-0.15 0.158-0.329 0.222-0.513l0.008-0.027 0.49-1.34c-0.003-0.018-0.004-0.039-0.004-0.060s0.001-0.042 0.004-0.062l-0 0.002c0.030-0.038 0.071-0.066 0.118-0.080l0.002-0h1.11c0.041 0.008 0.075 0.030 0.1 0.060l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001c0.003 0.026 0.005 0.055 0.005 0.085s-0.002 0.059-0.005 0.088l0-0.003c-0.026 0.106-0.054 0.193-0.086 0.277l0.006-0.017-0.45 1.2c-0.082 0.226-0.166 0.414-0.262 0.595l0.012-0.025c-0.078 0.152-0.165 0.283-0.263 0.404l0.003-0.004c-0.084 0.103-0.179 0.192-0.286 0.267l-0.004 0.003c-0.098 0.066-0.21 0.123-0.329 0.167l-0.011 0.003c0.147 0.062 0.272 0.129 0.389 0.206l-0.009-0.006c0.121 0.085 0.226 0.18 0.318 0.288l0.002 0.002c0.102 0.123 0.195 0.26 0.273 0.407l0.007 0.013c0.091 0.167 0.185 0.371 0.267 0.581l0.013 0.039 0.55 1.4c0.037 0.083 0.071 0.183 0.097 0.287l0.003 0.013c0.019 0.037 0.036 0.080 0.049 0.125l0.001 0.005zM71.63 7.83c0 0.090 0 0.16 0 0.22 0.002 0.024 0.003 0.052 0.003 0.080s-0.001 0.056-0.003 0.084l0-0.004c0.003 0.017 0.004 0.036 0.004 0.055s-0.001 0.038-0.004 0.057l0-0.002c-0.023 0.042-0.050 0.078-0.080 0.11l0-0c-0.064 0.057-0.136 0.107-0.214 0.147l-0.006 0.003c-0.111 0.063-0.243 0.123-0.38 0.174l-0.020 0.006c-0.353 0.127-0.76 0.2-1.185 0.2-0.005 0-0.011 0-0.016-0h0.001c-0.017 0-0.038 0.001-0.058 0.001-0.428 0-0.837-0.077-1.216-0.218l0.024 0.008c-0.394-0.136-0.73-0.356-0.999-0.639l-0.001-0.001c-0.301-0.304-0.535-0.675-0.674-1.090l-0.006-0.020c-0.134-0.419-0.211-0.902-0.211-1.402 0-0.027 0-0.055 0.001-0.082l-0 0.004c-0-0.020-0.001-0.044-0.001-0.068 0-0.519 0.084-1.019 0.24-1.485l-0.010 0.033c0.144-0.433 0.363-0.806 0.643-1.123l-0.003 0.003c0.271-0.297 0.605-0.532 0.982-0.684l0.018-0.006c0.333-0.122 0.717-0.193 1.117-0.193 0.050 0 0.1 0.001 0.15 0.003l-0.007-0c0.081-0.008 0.175-0.012 0.27-0.012s0.189 0.004 0.282 0.013l-0.012-0.001c0.184 0.031 0.345 0.072 0.501 0.126l-0.021-0.006c0.155 0.050 0.287 0.108 0.412 0.176l-0.012-0.006c0.095 0.050 0.177 0.106 0.252 0.171l-0.002-0.001 0.1 0.12c0.003 0.018 0.005 0.039 0.005 0.060s-0.002 0.042-0.005 0.062l0-0.002c0.002 0.025 0.003 0.055 0.003 0.085s-0.001 0.060-0.003 0.089l0-0.004c0 0.070 0 0.15 0 0.24s0 0.19 0 0.27c0.004 0.027 0.006 0.058 0.006 0.090s-0.002 0.063-0.006 0.094l0-0.004c-0.013 0.039-0.033 0.073-0.060 0.1l0-0c-0.012 0.004-0.026 0.006-0.040 0.006s-0.028-0.002-0.041-0.007l0.001 0c-0.078-0.009-0.146-0.042-0.2-0.090l0 0-0.31-0.2c-0.128-0.075-0.277-0.142-0.433-0.195l-0.017-0.005c-0.174-0.057-0.375-0.091-0.583-0.091-0.017 0-0.033 0-0.050 0.001l0.002-0c-0.011-0-0.025-0.001-0.038-0.001-0.499 0-0.941 0.247-1.209 0.626l-0.003 0.005c-0.151 0.211-0.268 0.458-0.337 0.725l-0.003 0.015c-0.071 0.273-0.111 0.587-0.111 0.911 0 0.031 0 0.063 0.001 0.094l-0-0.005c-0 0.014-0 0.031-0 0.048 0 0.338 0.044 0.667 0.126 0.979l-0.006-0.027c0.072 0.276 0.193 0.516 0.353 0.725l-0.003-0.005c0.144 0.181 0.329 0.324 0.541 0.417l0.009 0.003c0.206 0.089 0.445 0.14 0.696 0.14 0.008 0 0.017-0 0.025-0h-0.001c0.007 0 0.016 0 0.024 0 0.216 0 0.424-0.033 0.62-0.094l-0.015 0.004c0.174-0.056 0.323-0.121 0.465-0.197l-0.015 0.007 0.31-0.19c0.053-0.042 0.117-0.070 0.188-0.080l0.002-0h0.080c0.024 0.021 0.041 0.048 0.050 0.079l0 0.001c0.002 0.025 0.004 0.055 0.004 0.085s-0.001 0.060-0.004 0.089l0-0.004c0.070 0.17 0.070 0.27 0.070 0.4zM64.41 6.83c0-0.003 0-0.006 0-0.010 0-0.148-0.029-0.289-0.083-0.417l0.003 0.007c-0.052-0.124-0.13-0.228-0.229-0.309l-0.001-0.001c-0.107-0.085-0.234-0.15-0.373-0.188l-0.007-0.002c-0.169-0.045-0.363-0.070-0.564-0.070-0.016 0-0.032 0-0.049 0l0.002-0h-0.81v1.96h1c0.012 0 0.025 0 0.039 0 0.157 0 0.309-0.022 0.453-0.063l-0.012 0.003c0.131-0.040 0.244-0.102 0.342-0.181l-0.002 0.001c0.092-0.079 0.167-0.175 0.218-0.285l0.002-0.005c0.025-0.080 0.039-0.173 0.039-0.269 0-0.046-0.003-0.092-0.010-0.136l0.001 0.005zM64 4c0.013-0.060 0.020-0.129 0.020-0.2s-0.007-0.14-0.021-0.207l0.001 0.006c-0.041-0.108-0.106-0.199-0.189-0.269l-0.001-0.001c-0.090-0.072-0.197-0.127-0.314-0.159l-0.006-0.001c-0.141-0.038-0.302-0.060-0.469-0.060-0.014 0-0.029 0-0.043 0.001l0.002-0h-0.69v1.76h0.71c0.014 0.001 0.031 0.001 0.048 0.001 0.151 0 0.296-0.026 0.431-0.074l-0.009 0.003c0.113-0.044 0.21-0.109 0.29-0.19l0-0c0.101-0.076 0.182-0.173 0.238-0.285l0.002-0.005c0.008-0.048 0.012-0.104 0.012-0.16s-0.004-0.112-0.013-0.166l0.001 0.006zM65.78 6.85c0 0.007 0 0.016 0 0.025 0 0.223-0.037 0.438-0.104 0.639l0.004-0.014c-0.065 0.199-0.157 0.371-0.273 0.524l0.003-0.004c-0.119 0.151-0.258 0.28-0.414 0.386l-0.006 0.004c-0.153 0.104-0.327 0.195-0.513 0.264l-0.017 0.006c-0.177 0.065-0.387 0.117-0.603 0.148l-0.017 0.002c-0.21 0.032-0.452 0.050-0.698 0.050-0.015 0-0.029-0-0.044-0l0.002 0h-1.8c-0.004 0-0.009 0-0.014 0-0.105 0-0.202-0.038-0.277-0.101l0.001 0.001c-0.075-0.076-0.121-0.18-0.121-0.295 0-0.012 0.001-0.024 0.002-0.036l-0 0.002v-5.93c-0.001-0.013-0.002-0.029-0.002-0.044 0-0.111 0.043-0.211 0.113-0.286l-0 0c0.073-0.062 0.168-0.1 0.272-0.1 0.006 0 0.012 0 0.018 0l-0.001-0h1.71c0.017-0 0.038-0 0.058-0 0.352 0 0.694 0.040 1.022 0.116l-0.030-0.006c0.274 0.064 0.515 0.175 0.726 0.324l-0.006-0.004c0.192 0.135 0.345 0.314 0.446 0.522l0.004 0.008c0.101 0.213 0.16 0.462 0.16 0.725 0 0.012-0 0.024-0 0.037l0-0.002c0 0.004 0 0.010 0 0.015 0 0.158-0.022 0.312-0.063 0.457l0.003-0.012c-0.043 0.148-0.105 0.278-0.183 0.395l0.003-0.005c-0.084 0.12-0.184 0.222-0.297 0.308l-0.003 0.003c-0.115 0.090-0.247 0.164-0.39 0.217l-0.010 0.003c0.199 0.036 0.377 0.098 0.54 0.185l-0.010-0.005c0.164 0.090 0.303 0.204 0.418 0.338l0.002 0.002c0.121 0.136 0.219 0.295 0.286 0.469l0.004 0.011c0.070 0.182 0.11 0.393 0.11 0.613 0 0.006-0 0.012-0 0.018v-0.001zM59.65 8.31c0.002 0.037 0.004 0.081 0.004 0.125s-0.001 0.088-0.004 0.131l0-0.006c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c-0.015 0.037-0.039 0.067-0.069 0.090l-0.001 0c-0.013 0.005-0.029 0.007-0.045 0.007s-0.032-0.003-0.046-0.008l0.001 0h-3.44c-0.004 0-0.009 0-0.014 0-0.105 0-0.202-0.038-0.277-0.101l0.001 0.001c-0.075-0.076-0.121-0.18-0.121-0.295 0-0.012 0.001-0.024 0.002-0.036l-0 0.002v-5.86c-0.001-0.010-0.001-0.022-0.001-0.035 0-0.115 0.046-0.22 0.121-0.295l-0 0c0.074-0.062 0.171-0.1 0.276-0.1 0.005 0 0.010 0 0.015 0l-0.001-0h3.46c0.027 0.024 0.047 0.054 0.060 0.088l0 0.002c0.003 0.026 0.004 0.055 0.004 0.085s-0.002 0.059-0.005 0.089l0-0.004c0.002 0.039 0.004 0.084 0.004 0.13s-0.001 0.091-0.004 0.136l0-0.006c0.002 0.037 0.004 0.081 0.004 0.125s-0.001 0.088-0.004 0.131l0-0.006c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c-0.014 0.035-0.034 0.066-0.060 0.090l-0 0c-0.012 0.004-0.026 0.006-0.040 0.006s-0.028-0.002-0.041-0.007l0.001 0h-2.43v1.7h2c0.013-0.005 0.029-0.008 0.045-0.008s0.032 0.003 0.046 0.008l-0.001-0c0.031 0.023 0.055 0.053 0.069 0.089l0.001 0.001c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.006 0.083l0-0.003c0.008 0.075 0.012 0.162 0.012 0.25s-0.004 0.175-0.013 0.261l0.001-0.011c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.006 0.083l0-0.003c-0.013 0.038-0.038 0.068-0.069 0.090l-0.001 0c-0.013 0.004-0.029 0.007-0.045 0.007s-0.032-0.003-0.046-0.007l0.001 0h-2v1.9h2.43c0.013-0.005 0.029-0.008 0.045-0.008s0.032 0.003 0.046 0.008l-0.001-0c0.031 0.023 0.055 0.053 0.069 0.089l0.001 0.001c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c0.027 0.1 0.048 0.22 0.059 0.342l0.001 0.008zM54.57 8.67c0.005 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.009 0.051l0-0.001c-0.028 0.033-0.066 0.058-0.108 0.070l-0.002 0h-1.16c-0.048-0.015-0.089-0.043-0.12-0.080l-0-0c-0.029-0.034-0.053-0.074-0.069-0.117l-0.001-0.003-0.48-1.53c-0.063-0.208-0.137-0.387-0.228-0.556l0.008 0.016c-0.073-0.135-0.163-0.251-0.269-0.349l-0.001-0.001c-0.097-0.1-0.218-0.176-0.354-0.218l-0.006-0.002c-0.124-0.038-0.266-0.060-0.413-0.060-0.002 0-0.005 0-0.008 0h-0.27v2.72c0.005 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.009 0.051l0-0.001c-0.029 0.033-0.066 0.057-0.108 0.070l-0.002 0h-1.070c-0.040-0.014-0.074-0.038-0.1-0.070l-0-0c-0.005-0.015-0.008-0.032-0.008-0.050s0.003-0.035 0.008-0.051l-0 0.001v-2.71h-0.27c-0.044-0.005-0.095-0.008-0.147-0.008-0.14 0-0.275 0.021-0.403 0.061l0.010-0.003c-0.132 0.043-0.246 0.112-0.34 0.2l0-0c-0.1 0.099-0.183 0.215-0.247 0.342l-0.003 0.008c-0.073 0.145-0.141 0.318-0.194 0.496l-0.006 0.024-0.48 1.53c-0.017 0.046-0.041 0.086-0.070 0.121l0-0.001c-0.030 0.038-0.071 0.066-0.118 0.080l-0.002 0h-1.15c-0.044-0.012-0.082-0.037-0.11-0.070l-0-0c-0.005-0.015-0.009-0.032-0.009-0.050s0.003-0.035 0.009-0.051l-0 0.001s0 0 0-0.060c-0.001-0.014-0.002-0.029-0.002-0.045s0.001-0.031 0.002-0.047l-0 0.002v-0.12l0.060-0.16 0.47-1.35c0.085-0.255 0.173-0.466 0.274-0.67l-0.014 0.030c0.083-0.164 0.176-0.305 0.283-0.434l-0.003 0.004c0.092-0.112 0.197-0.207 0.315-0.287l0.005-0.003c0.112-0.075 0.241-0.142 0.376-0.195l0.014-0.005c-0.13-0.041-0.242-0.096-0.345-0.163l0.005 0.003c-0.112-0.073-0.208-0.159-0.288-0.258l-0.002-0.002c-0.096-0.119-0.182-0.254-0.254-0.397l-0.006-0.013c-0.058-0.148-0.116-0.335-0.163-0.526l-0.007-0.034-0.4-1.21c-0.028-0.070-0.056-0.157-0.077-0.246l-0.003-0.014c-0.003-0.024-0.004-0.052-0.004-0.080s0.001-0.056 0.004-0.083l-0 0.003c-0.005-0.015-0.008-0.032-0.008-0.050s0.003-0.035 0.008-0.051l-0 0.001c0.028-0.031 0.066-0.053 0.109-0.060l0.001-0h1.12c0.045 0.015 0.083 0.043 0.11 0.079l0 0.001c0.025 0.034 0.046 0.074 0.059 0.117l0.001 0.003 0.43 1.43c0.056 0.194 0.121 0.36 0.198 0.518l-0.008-0.019c0.062 0.128 0.143 0.237 0.239 0.33l0.001 0c0.086 0.080 0.189 0.142 0.304 0.178l0.006 0.002c0.121 0.038 0.261 0.060 0.406 0.060 0.005 0 0.010-0 0.015-0h0.269v-2.54c-0.005-0.015-0.009-0.032-0.009-0.050s0.003-0.035 0.009-0.051l-0 0.001c0.025-0.032 0.059-0.056 0.099-0.070l0.001-0h1.070c0.044 0.012 0.082 0.036 0.11 0.070l0 0c0.006 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.010 0.051l0-0.001v2.53h0.27c0.006 0 0.013 0 0.021 0 0.139 0 0.273-0.022 0.398-0.063l-0.009 0.003c0.125-0.041 0.232-0.106 0.32-0.19l-0 0c0.096-0.094 0.176-0.203 0.237-0.323l0.003-0.007c0.072-0.139 0.137-0.302 0.185-0.471l0.005-0.019 0.43-1.42c0.020-0.046 0.047-0.086 0.080-0.12l-0 0c0.027-0.037 0.065-0.065 0.108-0.080l0.002-0h1.1c0.044 0.008 0.081 0.030 0.11 0.060l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001c0.003 0.026 0.005 0.055 0.005 0.085s-0.002 0.059-0.005 0.089l0-0.004c0 0.070 0 0.15-0.080 0.26l-0.4 1.19c-0.075 0.227-0.153 0.415-0.242 0.597l0.012-0.027c-0.073 0.152-0.156 0.284-0.253 0.404l0.003-0.004c-0.084 0.103-0.18 0.192-0.285 0.267l-0.005 0.003c-0.101 0.069-0.216 0.129-0.338 0.176l-0.012 0.004c0.15 0.065 0.278 0.135 0.399 0.216l-0.009-0.006c0.122 0.087 0.227 0.186 0.318 0.297l0.002 0.003c0.101 0.128 0.191 0.272 0.264 0.426l0.006 0.014c0.081 0.165 0.169 0.377 0.246 0.593l0.014 0.047 0.46 1.35 0.060 0.16v0.21c0.031 0.015 0.057 0.032 0.081 0.051l-0.001-0.001zM45.19 8.67c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.029 0.032-0.066 0.056-0.108 0.069l-0.002 0.001h-1.080c-0.044-0.012-0.082-0.037-0.11-0.070l-0-0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-3.56c0-0.14 0-0.27 0-0.4s0-0.25 0-0.35v0l-0.1 0.17-0.12 0.2-0.2 0.27-0.15 0.22-2.32 3.46-0.090 0.1c-0.033 0.031-0.073 0.056-0.118 0.069l-0.002 0.001h-0.99c-0.041-0.011-0.076-0.036-0.1-0.069l-0-0.001c-0.004-0.015-0.007-0.032-0.007-0.050s0.002-0.035 0.007-0.051l-0 0.001v-6.42c-0.005-0.013-0.008-0.029-0.008-0.045s0.003-0.032 0.008-0.046l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.070l0.002-0.001h1.080c0.044 0.012 0.082 0.037 0.11 0.070l0 0c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001v3.59c0 0.11 0 0.23 0 0.35s0 0.25 0 0.37v0l0.23-0.38 0.28-0.43 2.35-3.51 0.14-0.080c0.031-0.029 0.067-0.053 0.108-0.069l0.002-0.001h0.96c0.041 0.014 0.075 0.038 0.1 0.070l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001zM43.73 28.25c0 0.014 0.001 0.031 0.001 0.048 0 0.309-0.070 0.603-0.196 0.864l0.005-0.012c-0.132 0.263-0.318 0.481-0.545 0.646l-0.005 0.003c-0.245 0.179-0.532 0.317-0.843 0.396l-0.017 0.004c-0.316 0.083-0.68 0.13-1.054 0.13-0.016 0-0.032-0-0.048-0l0.002 0c-0.091 0.008-0.198 0.012-0.305 0.012s-0.214-0.004-0.319-0.013l0.014 0.001c-0.189-0.032-0.354-0.073-0.514-0.127l0.023 0.007-0.33-0.21-0.18-0.11c-0.031-0.025-0.058-0.055-0.079-0.089l-0.001-0.001c-0.003-0.020-0.005-0.042-0.005-0.065s0.002-0.045 0.006-0.067l-0 0.002c-0.002-0.033-0.003-0.071-0.003-0.11s0.001-0.077 0.004-0.115l-0 0.005c0-0.090 0-0.19 0-0.32-0.010-0.045-0.016-0.097-0.016-0.15s0.006-0.105 0.016-0.155l-0.001 0.005c0.020-0.047 0.066-0.080 0.12-0.080v0c0.067 0.006 0.129 0.028 0.182 0.061l-0.002-0.001 0.29 0.15c0.12 0.055 0.263 0.107 0.411 0.146l0.019 0.004c0.168 0.045 0.361 0.070 0.56 0.070 0.011 0 0.021-0 0.031-0l-0.002 0c0.003 0 0.007 0 0.010 0 0.178 0 0.35-0.026 0.513-0.073l-0.013 0.003c0.149-0.040 0.279-0.106 0.393-0.192l-0.003 0.002c0.104-0.080 0.188-0.18 0.248-0.295l0.002-0.005c0.057-0.11 0.090-0.24 0.090-0.378 0-0.004-0-0.008-0-0.012v0.001c0-0.005 0-0.010 0-0.016 0-0.146-0.029-0.285-0.083-0.411l0.003 0.007c-0.056-0.13-0.141-0.237-0.248-0.319l-0.002-0.001c-0.125-0.090-0.272-0.159-0.431-0.198l-0.009-0.002c-0.177-0.045-0.38-0.070-0.589-0.070-0.014 0-0.029 0-0.043 0l0.002-0h-0.92c-0.036-0.016-0.064-0.044-0.080-0.079l-0-0.001c-0.005-0.024-0.008-0.052-0.008-0.080s0.003-0.056 0.008-0.083l-0 0.003c0-0.070 0-0.16 0-0.27-0.002-0.037-0.003-0.081-0.003-0.125s0.001-0.088 0.003-0.131l-0 0.006c-0.004-0.023-0.006-0.049-0.006-0.075s0.002-0.052 0.007-0.078l-0 0.003c0.015-0.034 0.039-0.061 0.069-0.080l0.001-0h0.84c0.012 0 0.027 0 0.042 0 0.187 0 0.369-0.022 0.544-0.064l-0.016 0.003c0.156-0.038 0.294-0.104 0.413-0.192l-0.003 0.002c0.105-0.079 0.189-0.18 0.248-0.295l0.002-0.005c0.057-0.114 0.090-0.248 0.090-0.39 0-0.003-0-0.007-0-0.010v0.001c0-0.004 0-0.008 0-0.013 0-0.118-0.022-0.23-0.062-0.333l0.002 0.006c-0.042-0.104-0.107-0.192-0.189-0.259l-0.001-0.001c-0.090-0.075-0.197-0.133-0.314-0.168l-0.006-0.002c-0.128-0.038-0.275-0.060-0.427-0.060-0.012 0-0.023 0-0.035 0l0.002-0c-0.005-0-0.012-0-0.018-0-0.196 0-0.386 0.026-0.568 0.074l0.015-0.003c-0.171 0.044-0.314 0.091-0.453 0.148l0.023-0.008-0.31 0.15c-0.054 0.035-0.118 0.060-0.188 0.070l-0.002 0h-0.060c-0.002-0.011-0.004-0.023-0.004-0.035s0.001-0.024 0.004-0.036l-0 0.001c-0.003-0.023-0.005-0.049-0.005-0.075s0.002-0.052 0.005-0.078l-0 0.003c0-0.060 0-0.14 0-0.25s0-0.13 0-0.19c-0.002-0.024-0.003-0.052-0.003-0.080s0.001-0.056 0.003-0.084l-0 0.004c-0.002-0.020-0.003-0.042-0.003-0.065s0.001-0.046 0.004-0.068l-0 0.003c0.022-0.042 0.048-0.079 0.080-0.11v0c0.064-0.049 0.136-0.092 0.213-0.127l0.007-0.003c0.118-0.056 0.257-0.107 0.402-0.146l0.018-0.004c0.15-0.046 0.336-0.088 0.526-0.117l0.024-0.003c0.097-0.008 0.211-0.012 0.325-0.012s0.228 0.004 0.34 0.013l-0.015-0.001c0.023-0.001 0.051-0.001 0.079-0.001 0.31 0 0.61 0.040 0.896 0.116l-0.024-0.006c0.26 0.068 0.488 0.182 0.684 0.333l-0.004-0.003c0.176 0.139 0.316 0.317 0.407 0.521l0.003 0.009c0.089 0.206 0.14 0.445 0.14 0.696 0 0.008-0 0.017-0 0.025v-0.001c0 0.005 0 0.010 0 0.015 0 0.205-0.033 0.403-0.094 0.588l0.004-0.013c-0.115 0.346-0.345 0.628-0.643 0.806l-0.007 0.004c-0.144 0.089-0.311 0.158-0.489 0.198l-0.011 0.002c0.215 0.022 0.412 0.083 0.589 0.174l-0.009-0.004c0.341 0.181 0.602 0.474 0.736 0.829l0.004 0.011c0.070 0.175 0.11 0.377 0.11 0.589 0 0 0 0.001 0 0.001v-0zM115.19 11.010c-0 0.198-0.037 0.387-0.104 0.561l0.004-0.011c-0.070 0.186-0.18 0.344-0.319 0.469l-0.001 0.001c-0.165 0.142-0.362 0.252-0.579 0.317l-0.011 0.003c-0.246 0.077-0.529 0.121-0.822 0.121-0.024 0-0.047-0-0.071-0.001l0.004 0c-0.019 0-0.041 0.001-0.063 0.001-0.287 0-0.565-0.040-0.828-0.116l0.021 0.005c-0.226-0.064-0.423-0.167-0.593-0.303l0.003 0.003c-0.145-0.121-0.258-0.276-0.327-0.452l-0.003-0.008c-0.070-0.175-0.11-0.378-0.11-0.59v-0c-0.005-0.020-0.009-0.042-0.009-0.065s0.003-0.046 0.009-0.067l-0 0.002c0.024-0.036 0.058-0.064 0.099-0.079l0.001-0.001c0.029-0.004 0.061-0.007 0.095-0.007s0.066 0.002 0.099 0.007l-0.004-0h0.75c0.034 0.018 0.062 0.046 0.079 0.079l0.001 0.001c0.004 0.018 0.007 0.039 0.007 0.060s-0.002 0.042-0.007 0.062l0-0.002c-0.008 0.036-0.013 0.078-0.013 0.12s0.005 0.084 0.013 0.124l-0.001-0.004c0.036 0.076 0.087 0.139 0.149 0.189l0.001 0.001c0.068 0.058 0.148 0.105 0.234 0.138l0.006 0.002c0.089 0.032 0.192 0.050 0.299 0.050 0.004 0 0.007-0 0.011-0h-0.001c0.006 0 0.012 0 0.019 0 0.104 0 0.205-0.018 0.297-0.052l-0.006 0.002c0.092-0.031 0.172-0.075 0.242-0.131l-0.002 0.001c0.063-0.051 0.114-0.114 0.149-0.187l0.001-0.003c0.032-0.071 0.050-0.153 0.050-0.24 0-0.004-0-0.007-0-0.011v0.001c-0.004-0.017-0.006-0.036-0.006-0.055s0.002-0.038 0.006-0.057l-0 0.002c0.017-0.035 0.045-0.063 0.079-0.080l0.001-0h0.92c0.042 0.016 0.076 0.044 0.1 0.079l0 0.001c0.058 0.003 0.11 0.025 0.15 0.060l-0-0zM115.98 19.41c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.029 0.032-0.066 0.056-0.108 0.069l-0.002 0.001h-1.080c-0.044-0.012-0.082-0.037-0.11-0.070l-0-0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-3.62c0-0.14 0-0.27 0-0.4s0-0.25 0-0.35v0l-0.1 0.17-0.12 0.2-0.14 0.22-0.15 0.22-2.35 3.51-0.090 0.1c-0.033 0.031-0.073 0.055-0.118 0.069l-0.002 0.001h-0.96c-0.041-0.012-0.076-0.036-0.1-0.069l-0-0.001c-0.004-0.015-0.007-0.032-0.007-0.050s0.002-0.035 0.007-0.051l-0 0.001v-6.4c-0.005-0.013-0.008-0.029-0.008-0.045s0.003-0.032 0.008-0.046l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.069l0.002-0.001h1.080c0.044 0.012 0.082 0.037 0.11 0.070l0 0c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001v3.59c0 0.11 0 0.23 0 0.35s0 0.25 0 0.37v0l0.23-0.38 0.28-0.43 2.35-3.51 0.080-0.090c0.031-0.030 0.067-0.053 0.108-0.069l0.002-0.001h0.96c0.041 0.014 0.075 0.038 0.1 0.070l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001zM108.98 19.41c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.029 0.032-0.066 0.056-0.108 0.069l-0.002 0.001h-1.080c-0.044-0.012-0.082-0.037-0.11-0.070l-0-0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-3.62c0-0.14 0-0.27 0-0.4s0-0.25 0-0.35v0l-0.1 0.17-0.12 0.2-0.14 0.22-0.15 0.22-2.35 3.51-0.090 0.1c-0.033 0.031-0.073 0.055-0.118 0.069l-0.002 0.001h-0.96c-0.041-0.012-0.076-0.036-0.1-0.069l-0-0.001c-0.004-0.015-0.007-0.032-0.007-0.050s0.002-0.035 0.007-0.051l-0 0.001v-6.4c-0.005-0.013-0.008-0.029-0.008-0.045s0.003-0.032 0.008-0.046l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.069l0.002-0.001h1.080c0.044 0.012 0.082 0.037 0.11 0.070l0 0c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001v3.59c0 0.11 0 0.23 0 0.35s0 0.25 0 0.37v0l0.23-0.38 0.28-0.43 2.35-3.51 0.080-0.090c0.031-0.030 0.067-0.053 0.108-0.069l0.002-0.001h0.96c0.041 0.014 0.075 0.038 0.1 0.070l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001zM102.43 19.41c0.005 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.009 0.051l0-0.001c-0.028 0.033-0.066 0.058-0.108 0.070l-0.002 0h-1.15c-0.052-0.015-0.096-0.043-0.13-0.080l-0-0c-0.027-0.034-0.047-0.074-0.059-0.118l-0.001-0.002-0.54-1.51c-0.072-0.213-0.153-0.395-0.249-0.567l0.009 0.017c-0.077-0.139-0.17-0.257-0.279-0.359l-0.001-0.001c-0.094-0.088-0.208-0.157-0.334-0.198l-0.006-0.002c-0.128-0.038-0.276-0.060-0.428-0.060-0.001 0-0.001 0-0.002 0h-0.35v2.71c0.005 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.009 0.051l0-0.001c-0.029 0.033-0.066 0.057-0.108 0.070l-0.002 0h-1.080c-0.043-0.015-0.080-0.039-0.11-0.070l-0-0c-0.006-0.015-0.009-0.032-0.009-0.050s0.003-0.035 0.010-0.051l-0 0.001v-6.46c-0.006-0.015-0.009-0.032-0.009-0.050s0.003-0.035 0.010-0.051l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.069l0.002-0.001h1.080c0.044 0.012 0.082 0.037 0.11 0.070l0 0c0.006 0.015 0.009 0.032 0.009 0.050s-0.003 0.035-0.010 0.051l0-0.001v2.54h0.31c0.007 0 0.016 0 0.025 0 0.138 0 0.27-0.022 0.394-0.063l-0.009 0.003c0.124-0.047 0.231-0.115 0.32-0.2l-0 0c0.102-0.1 0.189-0.216 0.256-0.342l0.004-0.008c0.081-0.15 0.158-0.329 0.222-0.514l0.008-0.027 0.45-1.35c0.015-0.046 0.035-0.086 0.061-0.121l-0.001 0.001c0.030-0.038 0.071-0.066 0.118-0.080l0.002-0h1.11c0.041 0.008 0.075 0.030 0.1 0.060l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001c0.003 0.026 0.005 0.055 0.005 0.085s-0.002 0.059-0.005 0.088l0-0.003c-0.026 0.106-0.054 0.193-0.086 0.277l0.006-0.017-0.45 1.2c-0.082 0.226-0.166 0.414-0.262 0.595l0.012-0.025c-0.078 0.152-0.165 0.283-0.263 0.404l0.003-0.004c-0.084 0.103-0.179 0.192-0.286 0.267l-0.004 0.003c-0.098 0.066-0.21 0.123-0.329 0.166l-0.011 0.004c0.147 0.062 0.272 0.129 0.389 0.206l-0.009-0.006c0.121 0.085 0.227 0.18 0.318 0.288l0.002 0.002c0.106 0.123 0.202 0.261 0.284 0.407l0.007 0.013c0.090 0.167 0.185 0.371 0.267 0.581l0.013 0.039 0.55 1.4c0.037 0.084 0.071 0.183 0.097 0.287l0.003 0.013c0.010 0.038 0.017 0.082 0.020 0.128l0 0.002zM96.43 18.57c0 0.090 0 0.16 0 0.22 0.002 0.024 0.003 0.052 0.003 0.080s-0.001 0.056-0.003 0.084l0-0.004c0.003 0.017 0.004 0.036 0.004 0.055s-0.001 0.038-0.004 0.057l0-0.002-0.080 0.11c-0.064 0.057-0.136 0.106-0.214 0.147l-0.006 0.003c-0.111 0.063-0.243 0.123-0.38 0.174l-0.020 0.006c-0.15 0.054-0.331 0.102-0.518 0.137l-0.022 0.003c-0.198 0.038-0.427 0.060-0.66 0.060h-0c-0.017 0-0.038 0-0.058 0-0.428 0-0.837-0.077-1.216-0.218l0.024 0.008c-0.394-0.136-0.73-0.356-0.999-0.639l-0.001-0.001c-0.266-0.295-0.471-0.649-0.595-1.040l-0.005-0.020c-0.134-0.419-0.211-0.902-0.211-1.402 0-0.027 0-0.055 0.001-0.082l-0 0.004c-0-0.023-0.001-0.050-0.001-0.077 0-0.519 0.084-1.019 0.24-1.486l-0.010 0.033c0.144-0.433 0.363-0.806 0.643-1.123l-0.003 0.003c0.271-0.297 0.605-0.532 0.982-0.684l0.018-0.006c0.368-0.152 0.794-0.24 1.242-0.24 0.010 0 0.020 0 0.030 0h-0.002c0.359 0.005 0.702 0.067 1.023 0.177l-0.023-0.007c0.149 0.025 0.28 0.060 0.407 0.105l-0.017-0.005c0.095 0.050 0.177 0.106 0.252 0.171l-0.002-0.001 0.1 0.12c0.003 0.018 0.005 0.039 0.005 0.060s-0.002 0.042-0.005 0.062l0-0.002c0.002 0.025 0.003 0.055 0.003 0.085s-0.001 0.060-0.003 0.089l0-0.004c0 0.070 0 0.15 0 0.24s0 0.19 0 0.27c0.004 0.027 0.006 0.058 0.006 0.090s-0.002 0.063-0.006 0.094l0-0.004c-0.013 0.039-0.033 0.073-0.060 0.1l0-0c-0.012 0.004-0.026 0.006-0.040 0.006s-0.028-0.002-0.041-0.007l0.001 0c-0.078-0.009-0.146-0.042-0.2-0.090l0 0-0.31-0.2c-0.128-0.075-0.277-0.142-0.433-0.195l-0.017-0.005c-0.174-0.057-0.375-0.091-0.583-0.091-0.017 0-0.033 0-0.050 0.001l0.002-0c-0.011-0-0.025-0.001-0.038-0.001-0.499 0-0.941 0.247-1.209 0.626l-0.003 0.005c-0.151 0.211-0.268 0.458-0.337 0.725l-0.003 0.015c-0.075 0.3-0.118 0.645-0.118 1s0.043 0.7 0.124 1.029l-0.006-0.029c0.072 0.276 0.193 0.516 0.353 0.725l-0.003-0.005c0.144 0.181 0.329 0.324 0.541 0.416l0.009 0.003c0.206 0.089 0.445 0.14 0.696 0.14 0.008 0 0.017-0 0.025-0h-0.001c0.007 0 0.016 0 0.024 0 0.216 0 0.424-0.033 0.62-0.094l-0.015 0.004c0.174-0.056 0.323-0.121 0.465-0.197l-0.015 0.007 0.27-0.16c0.053-0.042 0.117-0.070 0.188-0.080l0.002-0h0.080c0.024 0.021 0.041 0.048 0.050 0.079l0 0.001c0.002 0.025 0.004 0.055 0.004 0.085s-0.001 0.060-0.004 0.089l0-0.004c0.080 0.11 0.080 0.21 0.080 0.34zM90.71 19c0.002 0.037 0.004 0.081 0.004 0.125s-0.001 0.088-0.004 0.131l0-0.006c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c-0.015 0.037-0.039 0.067-0.069 0.090l-0.001 0c-0.013 0.005-0.029 0.007-0.045 0.007s-0.032-0.003-0.046-0.008l0.001 0h-3.43c-0.004 0-0.009 0-0.014 0-0.105 0-0.202-0.038-0.277-0.101l0.001 0.001c-0.075-0.076-0.121-0.18-0.121-0.295 0-0.012 0.001-0.024 0.002-0.036l-0 0.002v-5.87c-0.001-0.010-0.001-0.022-0.001-0.035 0-0.115 0.046-0.22 0.121-0.295l-0 0c0.074-0.062 0.171-0.1 0.276-0.1 0.005 0 0.010 0 0.015 0l-0.001-0h3.46c0.027 0.024 0.047 0.054 0.060 0.088l0 0.002c0.003 0.025 0.005 0.055 0.005 0.085s-0.002 0.059-0.005 0.089l0-0.004c0.002 0.039 0.004 0.084 0.004 0.13s-0.001 0.091-0.004 0.136l0-0.006c0.002 0.037 0.004 0.081 0.004 0.125s-0.001 0.088-0.004 0.131l0-0.006c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c-0.014 0.035-0.034 0.066-0.060 0.090l-0 0c-0.012 0.004-0.026 0.006-0.040 0.006s-0.028-0.002-0.041-0.007l0.001 0h-2.42v1.71h2c0.013-0.005 0.029-0.008 0.045-0.008s0.032 0.003 0.046 0.008l-0.001-0c0.031 0.023 0.055 0.053 0.070 0.089l0 0.001c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.006 0.083l0-0.003c0.008 0.075 0.012 0.162 0.012 0.25s-0.004 0.175-0.013 0.261l0.001-0.011c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.006 0.083l0-0.003c-0.013 0.038-0.038 0.068-0.069 0.090l-0.001 0c-0.013 0.004-0.029 0.007-0.045 0.007s-0.032-0.003-0.046-0.007l0.001 0h-2v1.9h2.43c0.013-0.005 0.029-0.008 0.045-0.008s0.032 0.003 0.046 0.008l-0.001-0c0.031 0.023 0.055 0.053 0.070 0.089l0.001 0.001c0.003 0.024 0.005 0.052 0.005 0.080s-0.002 0.056-0.005 0.083l0-0.003c0.022 0.103 0.036 0.224 0.040 0.347l0 0.003zM85.2 19.36c0.005 0.013 0.008 0.029 0.008 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.029 0.032-0.066 0.056-0.108 0.070l-0.002 0h-1.070c-0.047-0.013-0.088-0.038-0.12-0.070v0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-2.36h-1.080c-0.007 0-0.016 0-0.025 0-0.345 0-0.682-0.036-1.006-0.106l0.031 0.006c-0.301-0.062-0.567-0.184-0.795-0.354l0.005 0.004c-0.225-0.175-0.4-0.405-0.506-0.669l-0.004-0.011c-0.115-0.298-0.181-0.642-0.181-1.002 0-0.031 0.001-0.062 0.001-0.092l-0 0.004v-1.83c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001c0.028-0.033 0.066-0.058 0.108-0.070l0.002-0h1.070c0.047 0.013 0.088 0.038 0.12 0.070v0c0.006 0.013 0.009 0.029 0.009 0.045s-0.003 0.032-0.009 0.046l0-0.001v1.8c-0 0.005-0 0.010-0 0.015 0 0.187 0.026 0.367 0.073 0.539l-0.003-0.014c0.041 0.15 0.117 0.278 0.22 0.38l0 0c0.109 0.106 0.243 0.185 0.393 0.228l0.007 0.002c0.173 0.051 0.372 0.080 0.577 0.080 0.015 0 0.030-0 0.045-0l-0.002 0h0.91v-3c-0.005-0.013-0.008-0.029-0.008-0.045s0.003-0.032 0.008-0.046l-0 0.001c0.032-0.032 0.073-0.057 0.118-0.070l0.002-0h1.070c0.044 0.014 0.081 0.038 0.11 0.070l0 0c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001zM79.070 19.36c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.029 0.032-0.066 0.056-0.108 0.069l-0.002 0.001h-1.17c-0.044-0.012-0.082-0.037-0.11-0.070l-0-0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-3.57c0-0.14 0-0.27 0-0.4s0-0.25 0-0.35v0l-0.1 0.17-0.12 0.2-0.14 0.22-0.15 0.22-2.35 3.51-0.090 0.1c-0.033 0.031-0.073 0.055-0.118 0.069l-0.002 0.001h-0.96c-0.041-0.012-0.076-0.036-0.1-0.069l-0-0.001c-0.004-0.015-0.007-0.032-0.007-0.050s0.002-0.035 0.007-0.051l-0 0.001v-6.4c-0.005-0.013-0.008-0.029-0.008-0.045s0.003-0.032 0.008-0.046l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.069l0.002-0.001h1.080c0.044 0.012 0.082 0.037 0.11 0.070l0 0c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001v3.59c0 0.11 0 0.23 0 0.35s0 0.25 0 0.37v0l0.23-0.38 0.28-0.43 2.35-3.51 0.080-0.090c0.031-0.030 0.067-0.053 0.108-0.069l0.002-0.001h0.96c0.041 0.014 0.075 0.038 0.1 0.070l0 0c0.005 0.015 0.008 0.032 0.008 0.050s-0.003 0.035-0.008 0.051l0-0.001zM72.070 19.36c0.004 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.007 0.046l0-0.001c-0.029 0.032-0.066 0.056-0.108 0.069l-0.002 0.001h-1.090c-0.044-0.014-0.081-0.038-0.11-0.070l-0-0c-0.004-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.007-0.046l-0 0.001v-2.75h-2.6v2.73c0.004 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.007 0.046l0-0.001c-0.028 0.033-0.066 0.058-0.108 0.070l-0.002 0h-1.080c-0.044-0.014-0.081-0.038-0.11-0.070l-0-0c-0.004-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.007-0.046l-0 0.001v-6.34c-0.004-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.007-0.046l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.069l0.002-0.001h1.080c0.044 0.013 0.081 0.037 0.11 0.070l0 0c0.004 0.013 0.006 0.029 0.006 0.045s-0.002 0.032-0.007 0.046l0-0.001v2.49h2.54v-2.49c-0.004-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.007-0.046l-0 0.001c0.029-0.032 0.066-0.056 0.108-0.069l0.002-0.001h1.090c0.044 0.014 0.081 0.038 0.11 0.070l0 0c0.004 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.007 0.046l0-0.001zM62.7 14.050v0l-0.94 2.88h1.9zM65.8 19.050c0.031 0.084 0.059 0.184 0.078 0.288l0.002 0.012c0.013 0.025 0.020 0.054 0.020 0.085s-0.007 0.060-0.021 0.086l0.001-0.001c-0.058 0.043-0.131 0.069-0.21 0.070h-1.050c-0.044-0.012-0.082-0.036-0.11-0.070l-0-0c-0.023-0.031-0.040-0.068-0.050-0.108l-0-0.002-0.46-1.41h-2.57l-0.43 1.31c-0.011 0.045-0.028 0.086-0.051 0.122l0.001-0.002c-0.027 0.038-0.064 0.066-0.108 0.080l-0.002 0c-0.032 0.005-0.068 0.007-0.105 0.007s-0.073-0.003-0.109-0.008l0.004 0h-0.74c-0 0-0.001 0-0.001 0-0.072 0-0.139-0.026-0.189-0.070l0 0c-0.011-0.025-0.018-0.054-0.018-0.085s0.007-0.060 0.019-0.086l-0.001 0.001c0.022-0.112 0.049-0.209 0.084-0.303l-0.004 0.013 2.080-6c0.016-0.053 0.040-0.1 0.071-0.141l-0.001 0.001c0.033-0.039 0.078-0.067 0.128-0.080l0.002-0c0.038-0.005 0.081-0.007 0.125-0.007s0.087 0.003 0.13 0.008l-0.005-0.001h0.92c0.044-0.005 0.094-0.008 0.145-0.008s0.101 0.003 0.151 0.009l-0.006-0.001c0.060 0.014 0.112 0.046 0.15 0.090l0 0c0.031 0.046 0.055 0.099 0.069 0.157l0.001 0.003zM59.15 19.050c0.045 0.082 0.086 0.178 0.117 0.278l0.003 0.012c0.015 0.024 0.024 0.053 0.024 0.085s-0.009 0.061-0.025 0.086l0-0.001c-0.063 0.044-0.142 0.070-0.226 0.070-0.001 0-0.003 0-0.004-0h-1.070c-0.048-0.012-0.089-0.036-0.12-0.070l-0-0c-0.024-0.029-0.045-0.062-0.059-0.098l-0.001-0.002-1.29-2.5-1.26 2.44c-0.020 0.038-0.043 0.071-0.070 0.1l0-0c-0.031 0.034-0.072 0.058-0.118 0.070l-0.002 0h-1.030c-0 0-0 0-0 0-0.076 0-0.146-0.026-0.2-0.070l0.001 0c-0.014-0.024-0.023-0.054-0.023-0.085s0.008-0.061 0.023-0.086l-0 0.001c0.037-0.111 0.081-0.207 0.134-0.297l-0.004 0.007 1.62-3-1.57-2.71c-0.044-0.083-0.088-0.182-0.125-0.284l-0.005-0.016c-0.017-0.024-0.026-0.053-0.026-0.085s0.010-0.061 0.027-0.085l-0 0.001c0.061-0.043 0.138-0.069 0.22-0.070h1.14c0.048 0.010 0.090 0.035 0.12 0.070l0 0 0.070 0.1 1.19 2.24 1.15-2.24 0.070-0.1c0.028-0.034 0.066-0.058 0.109-0.070l0.001-0h0.99c0.002-0 0.004-0 0.007-0 0.077 0 0.148 0.026 0.204 0.071l-0.001-0.001c0.015 0.024 0.024 0.053 0.024 0.085s-0.009 0.061-0.025 0.086l0-0.001c-0.036 0.117-0.077 0.216-0.125 0.311l0.005-0.011-1.47 2.72zM68.37 24.6h-1.57q-0.090 0.79-0.19 1.39c-0.060 0.4-0.12 0.75-0.18 1.060s-0.12 0.56-0.19 0.78c-0.064 0.233-0.129 0.422-0.203 0.607l0.013-0.037c-0.064 0.16-0.131 0.295-0.208 0.424l0.008-0.014c-0.076 0.119-0.149 0.221-0.226 0.318l0.006-0.008h2.74zM70.57 31.84c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.023 0.028-0.053 0.049-0.089 0.060l-0.001 0h-0.95c-0.040-0.011-0.074-0.032-0.1-0.060l-0-0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-1.63h-4.5v1.59c0.005 0.013 0.007 0.029 0.007 0.045s-0.003 0.032-0.008 0.046l0-0.001c-0.026 0.028-0.060 0.049-0.099 0.060l-0.001 0h-1.020c-0.040-0.009-0.075-0.030-0.1-0.060l-0-0c-0.005-0.013-0.007-0.029-0.007-0.045s0.003-0.032 0.008-0.046l-0 0.001v-2.43c-0.002-0.014-0.004-0.029-0.004-0.046 0-0.067 0.024-0.128 0.064-0.175l-0 0c0.046-0.044 0.109-0.071 0.178-0.071 0.008 0 0.015 0 0.023 0.001l-0.001-0h0.31c0.080-0.12 0.16-0.24 0.24-0.37 0.076-0.126 0.15-0.274 0.212-0.429l0.008-0.021c0.070-0.17 0.14-0.38 0.21-0.62s0.13-0.53 0.2-0.87 0.13-0.75 0.2-1.23 0.14-1 0.21-1.66c0.010-0.128 0.053-0.244 0.121-0.342l-0.001 0.002c0.062-0.068 0.152-0.111 0.251-0.111 0.007 0 0.013 0 0.020 0.001l-0.001-0h3.46c0.007-0 0.014-0.001 0.022-0.001 0.105 0 0.199 0.042 0.268 0.111v0c0.069 0.079 0.111 0.183 0.111 0.296 0 0.012-0 0.024-0.001 0.035l0-0.002v5.2h0.57c0.006-0.001 0.013-0.001 0.020-0.001 0.071 0 0.135 0.031 0.179 0.081l0 0c0.038 0.055 0.060 0.123 0.060 0.196 0 0.005-0 0.010-0 0.014l0-0.001zM61.97 26.84c0.001-0.026 0.001-0.058 0.001-0.089 0-0.322-0.029-0.637-0.086-0.943l0.005 0.032c-0.047-0.282-0.145-0.535-0.285-0.759l0.005 0.009c-0.132-0.204-0.311-0.367-0.522-0.476l-0.008-0.004c-0.228-0.108-0.495-0.171-0.776-0.171-0.019 0-0.038 0-0.056 0.001l0.003-0c-0.017-0.001-0.037-0.001-0.057-0.001-0.286 0-0.556 0.071-0.792 0.195l0.009-0.004c-0.225 0.126-0.409 0.298-0.546 0.504l-0.004 0.006c-0.136 0.212-0.237 0.461-0.288 0.727l-0.002 0.013c-0.057 0.27-0.090 0.581-0.090 0.9v0c-0 0.021-0 0.046-0 0.071 0 0.328 0.029 0.65 0.085 0.962l-0.005-0.033c0.049 0.286 0.147 0.542 0.285 0.77l-0.005-0.010c0.13 0.206 0.309 0.37 0.523 0.477l0.008 0.003c0.226 0.102 0.49 0.161 0.768 0.161 0.025 0 0.050-0 0.075-0.001l-0.004 0c0.017 0.001 0.037 0.001 0.057 0.001 0.286 0 0.556-0.071 0.792-0.195l-0.009 0.004c0.226-0.124 0.411-0.296 0.546-0.504l0.004-0.006c0.136-0.215 0.237-0.467 0.288-0.737l0.002-0.013c0.063-0.27 0.102-0.583 0.11-0.904l0-0.006zM63.41 26.77c0 0.019 0 0.042 0 0.065 0 0.512-0.077 1.006-0.22 1.471l0.009-0.035c-0.131 0.437-0.344 0.815-0.623 1.133l0.003-0.003c-0.27 0.305-0.604 0.546-0.982 0.703l-0.018 0.007c-0.394 0.153-0.851 0.241-1.328 0.241-0.029 0-0.058-0-0.086-0.001l0.004 0c-0.020 0-0.043 0.001-0.067 0.001-0.466 0-0.914-0.077-1.333-0.219l0.029 0.009c-0.395-0.129-0.731-0.346-0.999-0.629l-0.001-0.001c-0.267-0.296-0.47-0.655-0.585-1.051l-0.005-0.019c-0.127-0.439-0.201-0.943-0.201-1.464 0-0.030 0-0.060 0.001-0.091l-0 0.005c-0-0.017-0-0.037-0-0.057 0-0.504 0.077-0.99 0.22-1.447l-0.009 0.034c0.133-0.43 0.346-0.8 0.623-1.113l-0.003 0.003c0.271-0.301 0.605-0.539 0.982-0.694l0.018-0.006c0.4-0.159 0.864-0.25 1.349-0.25 0.021 0 0.043 0 0.064 0.001l-0.003-0c0.026-0.001 0.056-0.001 0.086-0.001 0.455 0 0.893 0.073 1.303 0.209l-0.029-0.008c0.395 0.129 0.731 0.346 0.999 0.629l0.001 0.001c0.27 0.296 0.477 0.654 0.595 1.051l0.005 0.019c0.14 0.446 0.22 0.959 0.22 1.49v0zM54.77 28.25c0-0.003 0-0.006 0-0.010 0-0.148-0.029-0.289-0.083-0.417l0.003 0.007c-0.052-0.124-0.13-0.228-0.229-0.309l-0.001-0.001c-0.107-0.085-0.234-0.151-0.373-0.188l-0.007-0.002c-0.169-0.045-0.363-0.070-0.564-0.070-0.016 0-0.032 0-0.049 0l0.002-0h-0.81v1.93h1c0.011 0 0.024 0 0.038 0 0.157 0 0.31-0.022 0.454-0.063l-0.012 0.003c0.131-0.040 0.244-0.102 0.342-0.181l-0.002 0.001c0.092-0.079 0.167-0.175 0.218-0.285l0.002-0.005c0.051-0.116 0.081-0.251 0.081-0.393 0-0.013-0-0.026-0.001-0.038l0 0.002zM54.42 25.35c0-0.008 0-0.018 0-0.028 0-0.123-0.022-0.24-0.063-0.349l0.002 0.007c-0.041-0.108-0.106-0.199-0.189-0.269l-0.001-0.001c-0.090-0.072-0.197-0.127-0.314-0.159l-0.006-0.001c-0.14-0.038-0.302-0.060-0.468-0.060-0.015 0-0.030 0-0.044 0.001l0.002-0h-0.69v1.75h0.76c0.014 0.001 0.031 0.001 0.048 0.001 0.151 0 0.296-0.026 0.431-0.074l-0.009 0.003c0.124-0.034 0.231-0.093 0.321-0.171l-0.001 0.001c0.074-0.081 0.132-0.177 0.168-0.284l0.002-0.006c0.038-0.105 0.060-0.227 0.060-0.354 0-0.009-0-0.018-0-0.027l0 0.001zM56.2 28.2c0 0.007 0 0.016 0 0.025 0 0.223-0.037 0.438-0.104 0.639l0.004-0.014c-0.065 0.199-0.157 0.371-0.273 0.524l0.003-0.004c-0.119 0.151-0.258 0.28-0.414 0.386l-0.006 0.004c-0.153 0.104-0.327 0.195-0.513 0.264l-0.017 0.006c-0.178 0.065-0.387 0.117-0.603 0.148l-0.017 0.002c-0.21 0.032-0.452 0.050-0.698 0.050-0.015 0-0.029-0-0.044-0l0.002 0h-1.8c-0.004 0-0.009 0-0.014 0-0.105 0-0.202-0.038-0.277-0.101l0.001 0.001c-0.075-0.076-0.121-0.18-0.121-0.295 0-0.012 0.001-0.024 0.002-0.036l-0 0.002v-5.92c-0.001-0.010-0.001-0.022-0.001-0.035 0-0.115 0.046-0.22 0.121-0.295l-0 0c0.074-0.062 0.171-0.1 0.276-0.1 0.005 0 0.010 0 0.015 0l-0.001-0h1.69c0.003 0 0.006 0 0.010 0 0.351 0 0.693 0.040 1.020 0.116l-0.030-0.006c0.274 0.064 0.515 0.175 0.726 0.324l-0.006-0.004c0.192 0.135 0.345 0.314 0.446 0.522l0.004 0.008c0.101 0.213 0.16 0.462 0.16 0.725 0 0.012-0 0.024-0 0.037l0-0.002c0 0.004 0 0.010 0 0.015 0 0.158-0.022 0.312-0.063 0.457l0.003-0.012c-0.043 0.148-0.105 0.278-0.183 0.395l0.003-0.005c-0.084 0.12-0.183 0.223-0.297 0.308l-0.003 0.003c-0.115 0.090-0.247 0.164-0.39 0.217l-0.010 0.003c0.199 0.035 0.377 0.098 0.54 0.185l-0.010-0.005c0.164 0.090 0.303 0.204 0.418 0.338l0.002 0.002c0.117 0.136 0.212 0.295 0.276 0.469l0.004 0.011c0.094 0.183 0.158 0.397 0.179 0.623l0.001 0.007zM47.2 24.75v0l-0.94 2.88h1.9zM50.3 29.75c0.031 0.083 0.058 0.184 0.078 0.288l0.002 0.012c0.013 0.025 0.020 0.054 0.020 0.085s-0.007 0.060-0.021 0.086l0.001-0.001c-0.058 0.043-0.131 0.069-0.21 0.070h-1.050c-0.044-0.012-0.082-0.036-0.11-0.070l-0-0c-0.017-0.036-0.026-0.078-0.026-0.123 0-0.035 0.006-0.068 0.017-0.099l-0.001 0.002-0.44-1.36h-2.56l-0.46 1.36c-0.011 0.045-0.028 0.086-0.051 0.122l0.001-0.002c-0.027 0.038-0.064 0.066-0.108 0.080l-0.002 0c-0.032 0.005-0.068 0.007-0.105 0.007s-0.073-0.003-0.109-0.008l0.004 0h-0.75c-0 0-0.001 0-0.001 0-0.072 0-0.139-0.026-0.189-0.070l0 0c-0.011-0.025-0.018-0.054-0.018-0.085s0.007-0.060 0.019-0.086l-0.001 0.001c0.022-0.112 0.049-0.209 0.084-0.303l-0.004 0.013 2.080-6c0.016-0.053 0.040-0.1 0.071-0.141l-0.001 0.001c0.033-0.039 0.078-0.067 0.128-0.080l0.002-0c0.038-0.005 0.081-0.007 0.125-0.007s0.087 0.003 0.13 0.008l-0.005-0h0.92c0.044-0.005 0.094-0.008 0.145-0.008s0.101 0.003 0.151 0.009l-0.006-0.001c0.060 0.014 0.112 0.046 0.15 0.090l0 0c0.034 0.046 0.062 0.099 0.079 0.156l0.001 0.004zM7.38 3.41h-5.38v20.23c0.125 2.259 1.937 4.057 4.19 4.16l0.010 0h2.59c0.033-0.001 0.072-0.002 0.111-0.002 1.247 0 2.36 0.57 3.094 1.465l0.006 0.007c0.724-0.902 1.827-1.474 3.063-1.474 0.115 0 0.229 0.005 0.342 0.015l-0.015-0.001h2.41c2.245-0.090 4.049-1.857 4.199-4.077l0.001-0.013v-20.31h-5.37l-2.070-2.070h9.5v22.3c-0.134 3.386-2.859 6.094-6.24 6.2l-0.010 0h-3.38c-1.241 0.024-2.259 0.949-2.428 2.147l-0.002 0.013c-0.178-1.198-1.182-2.113-2.406-2.15l-0.004-0h-3.5c-3.383-0.22-6.048-2.997-6.090-6.406l-0-0.004v-22.1h9.49zM12 0l-3.44 3.4v2.6l2.62-2.55v11.26l-2.6 2.52v2.54l2.6-2.53v1.34l-2.6 2.55v2.54l2.59-2.53v1.27l-2.6 2.54v2.52l3.43-3.36 3.43 3.38v-2.54l-2.59-2.52v-1.31l2.59 2.54v-2.56l-2.6-2.52v-1.36l2.59 2.53v-2.52l-2.6-2.5v-11.3l2.62 2.52v-2.54z\"></path>\r\n </svg>\r\n `,\r\n standalone: true\r\n})\r\n\r\nexport class ImzLogoComponent {}\r\n","import { AsyncPipe } from '@angular/common';\r\nimport { Component, OnDestroy } from '@angular/core';\r\nimport { MatAnchor } from '@angular/material/button';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatDivider } from '@angular/material/divider';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { Router, RouterLink } from '@angular/router';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\nimport { AuthService, UserService } from '../../auth';\r\nimport { SafePipe } from '../../pipes/safe.pipe';\r\nimport { AvatarService } from '../../services';\r\nimport { DialogComponent } from '../dialog/dialog.component';\r\nimport { ImzLogoComponent } from '../logo/imz-logo.component';\r\n\r\n@Component({\r\n selector: 'lib-navbar',\r\n templateUrl: 'navbar.html',\r\n styleUrls: ['./navbar.scss'],\r\n imports: [RouterLink, MatAnchor, MatMenuTrigger, MatMenu, MatMenuItem, MatDivider, MatIcon, MatTooltip,\r\n AsyncPipe, ImzLogoComponent, SafePipe]\r\n})\r\nexport class NavBarComponent implements OnDestroy {\r\n loggedIn$: BehaviorSubject<boolean>;\r\n roles$: BehaviorSubject<string[]>;\r\n fioUser = '';\r\n photoURL: string = '';\r\n\r\n subscription: Subscription | undefined;\r\n\r\n constructor(private authService: AuthService,\r\n userService: UserService,\r\n private avatarService: AvatarService,\r\n private dialog: MatDialog,\r\n private router: Router,\r\n ) {\r\n this.loggedIn$ = this.authService.loggedIn$;\r\n this.roles$ = this.authService.roles$;\r\n\r\n this.fioUser = '';\r\n\r\n this.subscription = this.loggedIn$.subscribe({\r\n next: (value: boolean) => {\r\n if (value) {\r\n if (userService.userData) {\r\n if (userService.userData.lastName && userService.userData.firstName) {\r\n this.fioUser = userService.userData.lastName + ' ' + userService.userData.firstName;\r\n }\r\n if (userService.userData.idHuman) {\r\n // Аватар сотрудника.\r\n const subs = this.avatarService.getAvatarById(Number(userService.userData.idHuman))\r\n .subscribe((image: ArrayBuffer) => {\r\n if (image) {\r\n const blob = new Blob([image], { \"type\": \"image/jpeg\" });\r\n this.photoURL = URL.createObjectURL(blob);\r\n }\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n logout() {\r\n this.authService.logout(this.router.url);\r\n }\r\n\r\n openDialog(): void {\r\n const dialogRef = this.dialog.open(DialogComponent, {\r\n width: '400px',\r\n data: {\r\n id: 'logout',\r\n title: 'Подтверждение',\r\n message: 'Вы хотите выйти?',\r\n btnNoTitle: 'Отмена',\r\n btnYesTitle: 'Выйти'\r\n }\r\n });\r\n\r\n const subs = dialogRef.afterClosed().subscribe((id: any) => {\r\n if (id) {\r\n this.logout();\r\n }\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n\r\n}\r\n","@if (loggedIn$ | async) {\r\n <nav class=\"lib-navbar-header\">\r\n <a class=\"logo-mechan\" routerLink=\"/\">\r\n <lib-imz-logo></lib-imz-logo>\r\n </a>\r\n\r\n <ng-content></ng-content>\r\n\r\n <div class=\"flex-spacer\"></div>\r\n\r\n @if ((loggedIn$ | async) === false || !photoURL) {\r\n <mat-icon [matTooltip]=\"(roles$ | async)?.join(',')||''\">account_circle</mat-icon>\r\n }\r\n @if ((loggedIn$ | async) && photoURL) {\r\n <img\r\n class=\"user-photo\"\r\n [src]=\"photoURL | safe\"\r\n loading=\"lazy\"\r\n [alt]=\"fioUser\"\r\n [matTooltip]=\"(roles$ | async)?.join(',')||''\">\r\n }\r\n\r\n <span class = \"user-name\" [matTooltip]=\"(roles$ | async)?.join(',') || ''\">\r\n {{ fioUser }}\r\n </span>\r\n\r\n <a mat-button class=\"pm-button\" (click)=\"openDialog()\">Выйти <mat-icon>logout</mat-icon></a>\r\n </nav>\r\n}","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.css'],\r\n standalone: true\r\n})\r\nexport class NotFoundComponent {\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","<div class=\"center\">\r\n <h3 class=\"mat-display-1\">Страница не найдена</h3>\r\n</div>\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule, MatOption } from '@angular/material/autocomplete';\r\nimport { MatError, MatFormField, MatHint, MatLabel } from '@angular/material/form-field';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\r\n\r\nimport { SelectItem } from './models';\r\n\r\n@Component({\r\n selector: 'lib-select-autocomplete-with-virtual-scroll',\r\n templateUrl: './select-autocomplete-with-virtual-scroll.component.html',\r\n styleUrl: './select-autocomplete-with-virtual-scroll.component.css',\r\n imports: [FormsModule, ReactiveFormsModule, MatAutocompleteModule, MatHint, MatError, MatOption, MatIcon,\r\n MatFormField, ScrollingModule, MatInput, MatLabel]\r\n})\r\nexport class BaseSelectAutocompleteWithVirtualScrollComponent implements OnInit, OnDestroy {\r\n // https://stackblitz.com/edit/autocomplete-with-virtual-scroll-dc9u2g\r\n\r\n // Все элементы\r\n @Input() items$: BehaviorSubject<SelectItem[]> = new BehaviorSubject<SelectItem[]>([]);\r\n // Выбранный элемент\r\n @Input() selectedItem$: BehaviorSubject<SelectItem | undefined> = new BehaviorSubject<SelectItem | undefined>(undefined);\r\n // Заголовок\r\n @Input() title: string = '';\r\n // Видимость\r\n @Input() isVisible: boolean = true;\r\n // Обязательность\r\n @Input() isRequired: boolean = false;\r\n // Доступность\r\n @Input() isDisabled: boolean = false;\r\n // Доступность\r\n @Input() width: string = '200';\r\n // Событие изменения выбранного элемента\r\n @Output() selectedItemChange = new EventEmitter<string>();\r\n\r\n public height: string = '200px';\r\n // input элемент\r\n inputCtrl = new FormControl();\r\n // отфильтрованные (отображаемые) элементы\r\n filteredItems$: BehaviorSubject<SelectItem[]> = new BehaviorSubject<SelectItem[]>([]);\r\n\r\n subscription: Subscription | undefined;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n //console.log('isVisible = ', this.isVisible);\r\n //console.log('isDisabled = ', this.isDisabled);\r\n\r\n this.subscription = this.items$.subscribe(data => {\r\n console.log('ITEMS$ data', data);\r\n console.log('onLoad: this.selectedItem$.value =', this.selectedItem$.value);\r\n this.filteredItems$.next(data);\r\n if (this.selectedItem$.value)\r\n this.inputCtrl.setValue(this.selectedItem$.value);\r\n // if (this.items.length > 0) {\r\n // this.filteredItems$ = this.inputCtrl.valueChanges.pipe(\r\n // startWith(null),\r\n // map(item => (item ? this._filter(item) : this.items.slice())),\r\n // );\r\n\r\n const subs = this.selectedItem$.subscribe(item => {\r\n console.log('ITEM =', item);\r\n this.inputCtrl.setValue(item);\r\n // if (item)\r\n // this.selectedItems = this.items.filter(s => items.includes(s.value));\r\n });\r\n this.subscription?.add(subs);\r\n });\r\n\r\n // Listen for changes to the input\r\n const subs = this.inputCtrl.valueChanges\r\n .pipe(\r\n startWith(''),\r\n // eslint-disable-next-line no-magic-numbers\r\n debounceTime(500),\r\n distinctUntilChanged(),\r\n // Note: If the option value is bound to object, after selecting the option\r\n // Note: the value will change from string to {}. We want to perform search\r\n // Note: only when the type is string (no match)\r\n //filter(q => typeof q === 'string'),\r\n //tap((v) => console.log('v=', v)),\r\n map((value) => {\r\n // Filter the options\r\n if (typeof value === 'undefined') {\r\n this.filteredItems$.next(this.items$.value);\r\n } else {\r\n if (typeof value !== 'object') {\r\n console.log('v1=', value);\r\n this.filteredItems$.next(\r\n this.items$.value.filter(option =>\r\n option.viewValue\r\n .toLowerCase()\r\n .includes(value.toLowerCase())\r\n )\r\n );\r\n } else {\r\n // typeof value === 'object'\r\n console.log('v2=', value);\r\n if (value) {\r\n // this.predmet = value;\r\n this.filteredItems$.next(\r\n this.items$.value.filter((option) =>\r\n (option.viewValue)\r\n .toLowerCase()\r\n .includes(value.viewValue.toLowerCase())\r\n )\r\n );\r\n } else {\r\n this.filteredItems$.next(this.items$.value);\r\n }\r\n }\r\n }\r\n // Recompute how big the viewport should be.\r\n // eslint-disable-next-line no-magic-numbers\r\n if (this.filteredItems$.value.length < 4) {\r\n // eslint-disable-next-line no-magic-numbers\r\n this.height = this.filteredItems$.value.length * 50 + 'px';\r\n } else {\r\n this.height = '200px';\r\n }\r\n console.log('update filteredItems$.value=', this.filteredItems$.value);\r\n })\r\n )\r\n .subscribe();\r\n this.subscription?.add(subs);\r\n\r\n if (this.isDisabled) {\r\n this.inputCtrl.disable();\r\n } else {\r\n this.inputCtrl.enable();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n onSelectedItemChange(item: any) {\r\n console.log(\"onSelectedItemChange, item=\", item);\r\n // this.selectedItem$.next(item);\r\n this.selectedItemChange.emit(item);\r\n }\r\n\r\n onClearClick($event: MouseEvent) {\r\n $event.stopPropagation();\r\n this.inputCtrl.setValue(\"\");\r\n }\r\n\r\n displayWithFn(lookup: any) {\r\n return lookup\r\n ? lookup.viewValue\r\n : null;\r\n }\r\n\r\n}\r\n","@if (isVisible) {\r\n <mat-form-field [style.width.px]=\"width\">\r\n <mat-label>{{title}}</mat-label>\r\n <input type=\"text\"\r\n [placeholder]=title\r\n aria-label=\"Number\"\r\n matInput\r\n (ngModelChange)=\"onSelectedItemChange($event)\"\r\n [formControl]=\"inputCtrl\"\r\n [matAutocomplete]=\"auto\"\r\n [required]=\"isRequired ? 'required' : ''\"\r\n >\r\n @if (!isDisabled && selectedItem$.value) {\r\n <button mat-button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"onClearClick($event)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayWithFn\" showPanel=\"true\">\r\n <cdk-virtual-scroll-viewport class=\"autocomplete-test-viewport\" [style.height]=\"height\" itemSize=\"25\">\r\n <mat-option *cdkVirtualFor=\"let option of filteredItems$\" [value]=\"option\" class=\"autocomplete-item\">\r\n {{option.viewValue}}\r\n </mat-option>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n @if (inputCtrl.invalid) {\r\n <mat-error>Введите {{title}}</mat-error>\r\n }\r\n @if (!inputCtrl.value) {\r\n <mat-hint>Начните вводить ...</mat-hint>\r\n }\r\n </mat-form-field>\r\n}","import { COMMA, ENTER } from \"@angular/cdk/keycodes\";\r\nimport { AsyncPipe } from \"@angular/common\";\r\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatOptgroup, MatOption } from '@angular/material/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatFormField, MatLabel, MatSelect } from '@angular/material/select';\r\nimport { BehaviorSubject, Observable, Subscription } from \"rxjs\";\r\n\r\nimport { SelectGroup } from './models';\r\n\r\n@Component({\r\n selector: 'lib-select-with-group',\r\n templateUrl: './select-with-group.component.html',\r\n styleUrls: ['./select-with-group.component.css'],\r\n imports: [FormsModule, ReactiveFormsModule, MatIcon, MatOption, MatOptgroup, MatSelect, MatFormField, MatLabel,\r\n AsyncPipe]\r\n})\r\nexport class BaseSelectWithGroupComponent implements OnInit, OnDestroy {\r\n\r\n // Все группы\r\n @Input() groups$: BehaviorSubject<SelectGroup[]> = new BehaviorSubject<SelectGroup[]>([]);\r\n // Выбранные элементы, ключи (BaseSelectItem.value)\r\n @Input() selectedItems$: Observable<string[]> = new Observable<string[]>();\r\n // Заголовок\r\n @Input() title: string = '';\r\n // Событие изменения выбранных элементов\r\n @Output() selectedItemsChange = new EventEmitter<string[]>();\r\n\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n control = new FormControl<number[]>([]);\r\n\r\n subscription: Subscription | undefined;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.groups$.subscribe(data => {\r\n if (data.length > 0) {\r\n this.subscription = this.selectedItems$.subscribe(items => {\r\n this.control.setValue(items.map(i => Number(i)));\r\n });\r\n }\r\n });\r\n }\r\n \r\n ngOnDestroy(): void {\r\n if (this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n selectionChange($event: any) {\r\n this.selectedItemsChange.emit($event.value.map((i: number) => i.toString()));\r\n }\r\n\r\n onClick($event: MouseEvent) {\r\n $event.stopPropagation();\r\n // this.control.setValue('');\r\n this.selectedItemsChange.emit([]);\r\n }\r\n}\r\n","<mat-form-field class=\"select-with-group\" appearance=\"fill\">\r\n <mat-label>{{ title }}</mat-label>\r\n <mat-select [formControl]=\"control\" (selectionChange)=\"selectionChange($event)\" multiple>\r\n @for (group of (groups$ | async); track group) {\r\n <mat-optgroup [label]=\"group.name\">\r\n @for (item of group.items; track item) {\r\n <mat-option [value]=\"item.value\" >\r\n {{item.viewValue}}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }\r\n\r\n </mat-select>\r\n @if (control.value && control.value!.length > 0) {\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"onClick($event)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, inject } from '@angular/core';\r\nimport { MatCheckbox } from '@angular/material/checkbox';\r\nimport { MatDivider } from '@angular/material/divider';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatMenu, MatMenuContent, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport {\r\n MatCell, MatCellDef, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef,\r\n MatNoDataRow, MatRow, MatRowDef, MatTable, MatTableDataSource\r\n} from '@angular/material/table';\r\nimport { RouterLink } from '@angular/router';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\n\r\nimport { AuthService } from '../../auth';\r\nimport { IColumnOptions } from './models/column-options.interface';\r\nimport { IContextMenuOptions } from './models/context-menu-options.interface';\r\nimport { IPageState, ISortState, ITableState } from './table.state';\r\n\r\n\r\n@Component({\r\n selector: 'lib-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.css'],\r\n imports: [MatTable, MatSort, MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCheckbox, MatCellDef, MatCell,\r\n MatSortHeader, MatIcon, RouterLink, MatNoDataRow, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow,\r\n MatMenuTrigger, MatMenu, MatMenuContent, MatDivider, MatMenuItem, MatPaginator]\r\n})\r\nexport class TableComponent<T> implements OnInit, AfterViewInit, OnDestroy {\r\n /** Отображаемые данные. */\r\n @Input() data$ = new BehaviorSubject<T[]>([]);\r\n /** Настройки колонок. */\r\n @Input() columnOptions: IColumnOptions[] = [];\r\n /** Количество записе. */\r\n @Input() length$: BehaviorSubject<number> = new BehaviorSubject<number>(0);\r\n /** Состояние сортировки, пагинации. */\r\n @Input() tableState: ITableState = <ITableState>{};\r\n /** Разрешен выбор нескольких строк. */\r\n @Input() allowMultiSelect = false;\r\n /** Ссылка на страницу в приложении */\r\n @Input() rowRouterLinkField = '';\r\n /** Список элементов контекстного меню. */\r\n @Input() opt: IContextMenuOptions<T>[] = [];\r\n /** Роли которым разрешено отправлять событие rowDoubleClicked при двойном щелчке мышью. */\r\n @Input() rolesDblClickedEvent: string[] = [];\r\n\r\n /** */\r\n @Output() pageStateChange = new EventEmitter<IPageState>();\r\n /** */\r\n @Output() sortStateChange = new EventEmitter<ISortState>();\r\n /** */\r\n @Output() selectionChange = new EventEmitter<T[]>();\r\n /** */\r\n @Output() rowDoubleClicked = new EventEmitter<T>();\r\n\r\n @ViewChild(MatSort) sort: MatSort | undefined;\r\n @ViewChild(MatPaginator) paginator: MatPaginator | undefined;\r\n @ViewChild(MatMenuTrigger) contextMenu: MatMenuTrigger | undefined;\r\n\r\n /** Выбранная строка, для которого будет показываться меню при нажатии правой кнопки мыши. */\r\n itemForMenu: T | undefined;\r\n /** Позиция в которой отображается контекстное меню. */\r\n contextMenuPosition = { x: '0px', y: '0px' };\r\n\r\n // eslint-disable-next-line no-magic-numbers\r\n defaultPageIndex = 0;\r\n // eslint-disable-next-line no-magic-numbers\r\n defaultPageSize = 10;\r\n\r\n /** Источник данных для отображения. */\r\n dataSource = new MatTableDataSource<T>();\r\n\r\n /** Выбранные записи. */\r\n selection: SelectionModel<T> = new SelectionModel<T>();\r\n\r\n /** Список отображаемых колонок (формируется из @columnOptions). */\r\n displayedColumns: string[] | undefined;\r\n\r\n // DI\r\n protected authService = inject(AuthService);\r\n\r\n // Разрешено ли отправлять событие rowDoubleClicked при двойном щелчке мышью.\r\n dblClickedEventEnable = true;\r\n\r\n subscription: Subscription | undefined;\r\n\r\n constructor() {\r\n // получить права пользователя\r\n this.subscription = this.authService.roles$.subscribe((userRoles) => {\r\n this.dblClickedEventEnable = !this.authService.isHideElement(this.rolesDblClickedEvent, userRoles);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.displayedColumns = ['select'].concat(this.columnOptions?.filter(c => !c.hide).map((item) => item.name) || []);\r\n\r\n const subs = this.data$.subscribe(data => {\r\n this.dataSource.data = data;\r\n\r\n // сохранить выделенные строки, если они все еще есть в данных\r\n const selected = this.selection.selected;\r\n this.selection.clear();\r\n data.filter(v => selected.map(s => JSON.stringify(s)).includes(JSON.stringify(v))).map(d => {\r\n this.selection.select(d);\r\n });\r\n });\r\n this.subscription?.add(subs);\r\n\r\n // пересоздаем, т.к. параметр allowMultiSelect появляется только сейчас\r\n this.selection = new SelectionModel<T>(this.allowMultiSelect);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n // подписи элементов управления пагинатора (MatPaginatorIntl)\r\n if (this.paginator) {\r\n this.paginator._intl.itemsPerPageLabel = 'Записей на странице';\r\n this.paginator._intl.firstPageLabel = 'Первая страница';\r\n this.paginator._intl.previousPageLabel = 'Предыдущая страница';\r\n this.paginator._intl.nextPageLabel = 'Следующая страница';\r\n this.paginator._intl.lastPageLabel = 'Последняя страница';\r\n\r\n // изменение пагинации\r\n const subs = this.paginator.page.subscribe(page => {\r\n this.tableState.pageSize = page.pageSize;\r\n this.tableState.pageIndex = page.pageIndex;\r\n this.pageStateChange.emit({\r\n pageIndex: page.pageIndex,\r\n pageSize: page.pageSize\r\n } as IPageState);\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n\r\n // изменение сортировки\r\n if (this.sort) {\r\n const subs = this.sort.sortChange\r\n .subscribe(sort => {\r\n this.tableState.sortActive = sort.active;\r\n this.tableState.sortDirection = sort.direction;\r\n this.sortStateChange.emit({\r\n sortActive: sort.active,\r\n sortDirection: sort.direction\r\n } as ISortState);\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n\r\n // изменение выбранных записей\r\n if (this.selection) {\r\n const subs = this.selection.changed.subscribe(change => {\r\n this.selectionChange.emit(change.source.selected);\r\n });\r\n this.subscription?.add(subs);\r\n }\r\n }\r\n\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n console.log(this.selection.isMultipleSelection());\r\n if (this.isAllSelected()) {\r\n this.selection.clear();\r\n } else {\r\n this.dataSource.data.forEach(row => this.selection.select(row));\r\n }\r\n }\r\n\r\n /** При щелчке по строке. */\r\n onRowClicked(row: T) {\r\n // выделение строки при щелчке по строке\r\n if (this.selection.isSelected(row)) {\r\n this.selection.deselect(row);\r\n } else {\r\n this.selection.select(row);\r\n }\r\n }\r\n\r\n /** При двойном щелчке по строке. */\r\n onRowDblClicked(row: T) {\r\n // выделение строки при двойном щелчке по строке\r\n this.selection.clear();\r\n this.selection.select(row);\r\n if (this.dblClickedEventEnable)\r\n this.rowDoubleClicked.emit(row);\r\n }\r\n\r\n /** При вызове контекстного меню. */\r\n onContextMenu(event: MouseEvent, itemForMenu: T | undefined) {\r\n if (this.opt && this.opt.length === 0) {\r\n // если нет пунктов меню, то не показываем меню\r\n return;\r\n }\r\n event.preventDefault();\r\n this.itemForMenu = itemForMenu;\r\n this.contextMenuPosition.x = event.clientX + 'px';\r\n this.contextMenuPosition.y = event.clientY + 'px';\r\n // как это (menuData) использовать в шаблоне не понятно, поэтому использую this.itemForMenu\r\n // https://www.concretepage.com/angular-material/passing-data-to-mat-menu-angular-material\r\n if (this.contextMenu) {\r\n this.contextMenu.menuData = { itemForMenu };\r\n this.contextMenu.menu?.focusFirstItem('mouse');\r\n this.contextMenu.openMenu();\r\n }\r\n }\r\n}\r\n","<div class=\"component-container\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"tableState.sortActive || ''\"\r\n [matSortDirection]=\"tableState.sortDirection\"\r\n matSortDisableClear>\r\n\r\n <!-- Выбор строки Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n @if (allowMultiSelect) {\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n }\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\">\r\n </mat-checkbox>\r\n </td>\r\n <!-- <td mat-footer-cell *matFooterCellDef></td>-->\r\n </ng-container>\r\n\r\n @for (item of columnOptions; track item) {\r\n <ng-container matColumnDef={{item.name}}>\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header [disabled]=\"item.titleSortDisable\">{{item.title}}</th>\r\n @if (!item.format) {\r\n <td mat-cell *matCellDef=\"let element\" (contextmenu)=\"onContextMenu($event, element)\">\r\n {{element[item.name]}}\r\n </td>\r\n }\r\n @if (item.format === 'pre-wrap') {\r\n <td mat-cell *matCellDef=\"let element\" (contextmenu)=\"onContextMenu($event, element)\" class=\"pre-wrap\">\r\n {{element[item.name]}}\r\n </td>\r\n }\r\n @if (item.format === 'link') {\r\n <td mat-cell *matCellDef=\"let element\" (contextmenu)=\"onContextMenu($event, element)\">\r\n <a [href]=\"element[item.name]\" target=\"_blank\">{{element[item.name]}}</a>\r\n </td>\r\n }\r\n @if (item.format === 'linkIcon') {\r\n <td mat-cell *matCellDef=\"let element\" (contextmenu)=\"onContextMenu($event, element)\">\r\n @if (element[item.name]) {\r\n <a [href]=\"element[item.name]\" target=\"_blank\">\r\n @if (item.icon) {\r\n <mat-icon>{{item.icon}}</mat-icon>\r\n } \r\n @if (item.symbol) {\r\n <span class=\"material-symbols-outlined-light\">{{item.symbol}}</span>\r\n }\r\n </a>\r\n }\r\n </td>\r\n }\r\n @if (item.format === 'routerLink') {\r\n <td mat-cell *matCellDef=\"let element\" (contextmenu)=\"onContextMenu($event, element)\">\r\n <a [routerLink]=\"[element[item.name]]\">{{element[item.name]}}</a>\r\n </td>\r\n }\r\n @if (item.format === 'routerLinkIcon') {\r\n <td mat-cell *matCellDef=\"let element\" (contextmenu)=\"onContextMenu($event, element)\">\r\n @if (element[item.name]) {\r\n <a [routerLink]=\"[element[item.name]]\">\r\n @if (item.icon) {\r\n <mat-icon>{{item.icon}}</mat-icon>\r\n } \r\n @if (item.symbol) {\r\n <span class=\"material-symbols-outlined-light\">{{item.symbol}}</span>\r\n }\r\n </a>\r\n }\r\n </td>\r\n }\r\n @if (item.format === 'checkbox') {\r\n <td mat-cell *matCellDef=\"let element\" (contextmenu)=\"onContextMenu($event, element)\">\r\n <mat-checkbox [checked]=\"element[item.name] === 1\" [disabled]=\"true\"></mat-checkbox>\r\n </td>\r\n }\r\n <!-- <td mat-footer-cell *matFooterCellDef>-->\r\n <!-- </td>-->\r\n </ng-container>\r\n }\r\n\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n <td class=\"mat-cell\" colspan=\"9999\">\r\n Нет данных для отображения\r\n </td>\r\n </tr>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row;\r\n columns: displayedColumns;\" (click)=\"onRowClicked(row)\" (dblclick)=\"onRowDblClicked(row)\" class=\"element-row\"\r\n [class.selected-row]=\"selection.isSelected(row)\">\r\n <!-- [class.fact-done-row]=\"row.quantFact >= row.quantPlan\"-->\r\n </tr>\r\n <!-- <tr mat-footer-row *matFooterRowDef=\"displayedColumns\"></tr>-->\r\n </table>\r\n <div style=\"visibility: hidden; position: fixed\"\r\n [style.left]=\"contextMenuPosition.x\"\r\n [style.top]=\"contextMenuPosition.y\"\r\n [matMenuTriggerFor]=\"contextMenu\" #menuTrigger=\"matMenuTrigger\">\r\n </div>\r\n <mat-menu #contextMenu=\"matMenu\">\r\n <ng-template matMenuContent let-id=\"id\">\r\n @for (menuItem of opt; track menuItem) {\r\n @if (menuItem.title === '-' && !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)) {\r\n <mat-divider></mat-divider>\r\n }\r\n @if (menuItem.title !== '-' && !(menuItem.hideFn ? menuItem.hideFn(itemForMenu) : menuItem.hide)) {\r\n <button mat-menu-item\r\n (click)=\"menuItem.onClickFn ? menuItem.onClickFn(itemForMenu) : ''\"\r\n (mousedown)=\"menuItem.onClickMiddleFn ? menuItem.onClickMiddleFn($event, itemForMenu, menuTrigger) : ''\"\r\n [disabled]=\"menuItem.disabledFn ? menuItem.disabledFn(itemForMenu) : menuItem.disabled\">\r\n @if (menuItem.icon) {\r\n <mat-icon>{{menuItem.icon}}</mat-icon>\r\n }\r\n @if (menuItem.symbol) {\r\n <span class=\"material-symbols-outlined-light\">{{menuItem.symbol}}</span>\r\n }\r\n {{ menuItem.title }}\r\n </button>\r\n }\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n\r\n\r\n<mat-paginator [length]=\"length$.value\"\r\n [pageIndex]=\"tableState.pageIndex || defaultPageIndex\"\r\n [pageSizeOptions]=\"[5, 10, 20, 50, 100]\"\r\n [pageSize]=\"tableState.pageSize || defaultPageSize\"\r\n showFirstLastButtons\r\n itemsPerPageLabel=\"\"\r\n></mat-paginator>\r\n</div>\r\n","/*\r\n * Public API Surface of uikit\r\n */\r\n\r\nexport * from './auth';\r\nexport * from './base';\r\nexport * from './core';\r\nexport * from './guards';\r\nexport * from './loader';\r\nexport * from './models';\r\nexport * from './pipes';\r\nexport * from './services';\r\nexport * from './shared';\r\nexport * from './types';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.Environment","i1","i3.LogService","i4.AlertService","i5.UserService","i1.AuthService","i3.LoaderService","i2.AuthService","i2","i1.UserService","i2.AvatarService","i3","i4","startWith","MatOption","MatFormField","MatLabel"],"mappings":"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"}
|