@indigina/kendo 1.0.152-beta → 1.0.155-beta

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.
@@ -1 +1 @@
1
- {"version":3,"file":"indigina-kendo.js","sources":["../../../projects/kendo/src/lib/angular/forms/directives/debounce.directive.ts","../../../projects/kendo/src/lib/angular/forms/widgets/field/field.component.ts","../../../projects/kendo/src/lib/angular/forms/widgets/field/field-input/field-input.component.ts","../../../projects/kendo/src/lib/angular/forms/widgets/field/field-input/number-input.component.ts","../../../projects/kendo/src/lib/angular/forms/widgets/general-errors/general-errors.component.ts","../../../projects/kendo/src/lib/angular/models/AppSettings.ts","../../../projects/kendo/src/lib/angular/models/IndiginaConfiguration.ts","../../../projects/kendo/src/lib/angular/services/locale-settings.service.ts","../../../projects/kendo/src/lib/angular/widgets/side-menu/menu-item-group/menu-item-group.component.ts","../../../projects/kendo/src/lib/angular/widgets/side-menu/side-menu.component.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/models/TreeViewPropTypes.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/tree-view-node-prop/tree-view-node-prop.component.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/models/TreeViewNodeTypes.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/tree-view-node/tree-view-node.component.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/models/ContentTypesFormat.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/AbstractContentResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Converters/EnumTypeGetter.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Converters/JsonConverter.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Resolvers/JsonResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Converters/TextConverter.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Resolvers/TextResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Converters/XmlConverter.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Resolvers/XmlResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/ContentResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/tree-view.component.ts","../../../projects/kendo/src/lib/angular/indigina.module.ts","../../../projects/kendo/src/lib/services/endpoints.ts","../../../projects/kendo/src/lib/services/signalr/EventNames.ts","../../../projects/kendo/src/lib/services/base.account.service.ts","../../../projects/kendo/src/lib/angular/extensions/ReEntrySubscription.ts","../../../projects/kendo/src/lib/angular/forms/extensions/FormGroupWithErrors.ts","../../../projects/kendo/src/lib/angular/models/HttpCodes.ts","../../../projects/kendo/src/lib/angular/models/HttpMethods.ts","../../../projects/kendo/src/lib/angular/services/settings.service.ts","../../../projects/kendo/src/lib/angular/services/toastr.service.ts","../../../projects/kendo/src/lib/angular/services/http.service.ts","../../../projects/kendo/src/lib/angular/widgets/live-updates-control/live-updates-control.component.ts","../../../projects/kendo/src/lib/models/AuthProviders.ts","../../../projects/kendo/src/lib/services/auth.providers/AuthProvider.ts","../../../projects/kendo/src/lib/services/auth.providers/azureb2c.provider.ts","../../../projects/kendo/src/lib/services/auth.providers/oauth.provider.ts","../../../projects/kendo/src/lib/services/auth-provider.resolver.ts","../../../projects/kendo/src/lib/services/signalr/signalr.service.ts","../../../projects/kendo/src/lib/services/account.service.ts","../../../projects/kendo/src/lib/components/account-menu/account-menu.component.ts","../../../projects/kendo/src/lib/components/azure-login-callback/azure-login-callback.component.ts","../../../projects/kendo/src/lib/components/language-selector/language-selector.component.ts","../../../projects/kendo/src/lib/config/msal-instance.factory.ts","../../../projects/kendo/src/lib/services/permissions.service.ts","../../../projects/kendo/src/lib/directives/requirePermission.directive.ts","../../../projects/kendo/src/lib/interceptors/auth-headers.interceptor.ts","../../../projects/kendo/src/lib/models/FieldTypes.ts","../../../projects/kendo/src/lib/widgets/activity-filter/activity-filter.component.ts","../../../projects/kendo/src/lib/widgets/confirm-dialog/confirm-dialog.component.ts","../../../projects/kendo/src/lib/widgets/current-timezone/current-timezone.component.ts","../../../projects/kendo/src/lib/widgets/entity-edit/buttons-bar/buttons-bar.component.ts","../../../projects/kendo/src/lib/widgets/entity-edit/entity-edit-form.component.ts","../../../projects/kendo/src/lib/widgets/entity-edit/field-dropdown/field-dropdown.component.ts","../../../projects/kendo/src/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.ts","../../../projects/kendo/src/lib/widgets/entity-list/UrlSerializer.ts","../../../projects/kendo/src/lib/widgets/entity-list/entity-list.component.ts","../../../projects/kendo/src/lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component.ts","../../../projects/kendo/src/lib/widgets/excel-export-button/excel-export-button.component.ts","../../../projects/kendo/src/lib/widgets/footer-bar/footer-bar.component.ts","../../../projects/kendo/src/lib/widgets/modal-window/modal-window.component.ts","../../../projects/kendo/src/lib/widgets/multicheck-filter/multicheck-filter.component.ts","../../../projects/kendo/src/lib/widgets/top-bar/top-bar.component.ts","../../../projects/kendo/src/lib/kendo.module.ts","../../../projects/kendo/src/lib/models/FilterTargets.ts","../../../projects/kendo/src/lib/models/MemberTypes.ts","../../../projects/kendo/src/lib/models/Operators.ts","../../../projects/kendo/src/lib/models/PermissionTypes.ts","../../../projects/kendo/src/lib/widgets/activity-filter/FilterConverter.ts","../../../projects/kendo/src/lib/services/activity.filter.service.ts","../../../projects/kendo/src/lib/services/entity.service.ts","../../../projects/kendo/src/lib/widgets/entity-edit/entity-edit.component.ts","../../../projects/kendo/src/public-api.ts","../../../projects/kendo/src/indigina-kendo.ts"],"sourcesContent":["import {\n Directive,\n HostListener,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n Input\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[appDebounce]'\n})\nexport class DebounceDirective implements OnInit, OnDestroy {\n @Input() debounceTime = 500;\n @Output() debounceKeyup = new EventEmitter();\n private keyUp = new Subject();\n private subscription: Subscription;\n\n constructor() { }\n\n ngOnInit() {\n this.subscription = this.keyUp.pipe(\n debounceTime(this.debounceTime)\n ).subscribe(e => this.debounceKeyup.emit(e));\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n @HostListener('keyup', ['$event'])\n\n keyUpEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n this.keyUp.next(event);\n }\n}\n","import { OnInit, Input, ElementRef, Directive } from '@angular/core';\nimport {\n FormGroupDirective,\n FormControl,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\n\nlet id: number = 0;\n\n@Directive()\nexport abstract class FieldComponent<T> implements OnInit {\n @Input() labelKey: string;\n @Input() fieldName: string;\n @Input() disabled: boolean = false;\n \n public disabledKey = 'disabled';\n public id: string;\n\n constructor(\n public parent: FormGroupDirective,\n public eref: ElementRef,\n private defaultValue: T\n ) {}\n\n ngOnInit(): void {\n this.setUp();\n }\n\n protected setUp(): void {\n this.id = '_' + this.fieldName + ++id;\n const validators: ValidatorFn[] = [];\n for (const attr of this.eref.nativeElement.attributes as [\n { name: string; value: string }\n ]) {\n const validator = this.setAttribute(attr.name, attr.value);\n if (validator) {\n validators.push(validator);\n }\n }\n\n const control = this.parent.form.get(this.fieldName);\n if (control) {\n if (control.validator) {\n validators.push(control.validator);\n }\n\n control.setValidators(validators);\n control.updateValueAndValidity();\n } else {\n this.parent.form.addControl(\n this.fieldName,\n new FormControl(this.defaultValue, validators)\n );\n }\n }\n\n protected setAttribute(name: string, value: string): ValidatorFn {\n if (name === this.disabledKey) {\n this.disabled = true;\n\n return;\n }\n\n if (name === 'required') {\n return Validators.required;\n }\n }\n}\n","import { Component, ElementRef, Input } from '@angular/core';\nimport {\n ControlContainer,\n FormGroupDirective,\n Validators,\n ValidatorFn,\n} from '@angular/forms';\nimport { FieldComponent } from '../field.component';\n\n@Component({\n selector: 'field-input',\n templateUrl: './field-input.component.html',\n styleUrls: ['./field-input.component.css'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class FieldInputComponent extends FieldComponent<string> {\n @Input()\n public labelKey: string;\n @Input()\n public fieldName: string;\n\n public type = 'text';\n\n constructor(public parent: FormGroupDirective, public eref: ElementRef) {\n super(parent, eref, '');\n }\n\n protected setAttribute(name: string, value: string): ValidatorFn {\n if (name === 'type') {\n this.type = value;\n }\n\n if (name === 'max-length') {\n return Validators.maxLength(parseInt(value, 10));\n }\n\n return super.setAttribute(name, value);\n }\n}\n","import { Component, ElementRef, Input } from '@angular/core';\nimport { ControlContainer, FormGroupDirective } from '@angular/forms';\nimport { FieldInputComponent } from './field-input.component';\n\nconst emptyString = '';\n\n@Component({\n selector: 'number-input',\n templateUrl: './field-input.component.html',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class NumberInputComponent extends FieldInputComponent {\n constructor(public parent: FormGroupDirective, public eref: ElementRef) {\n super(parent, eref);\n this.type = 'number';\n }\n\n @Input() isPositive: boolean = false;\n\n private cachedValue: number | string;\n\n ngAfterContentInit() {\n const control = this.parent.form.get(this.fieldName);\n control.valueChanges.subscribe((value) => {\n if (value !== this.cachedValue) {\n this.cachedValue =\n (!this.isPositive && (value || value === 0)) ||\n (this.isPositive && value >= 0 && value !== emptyString)\n ? +value\n : emptyString;\n\n control.setValue(this.cachedValue);\n }\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-general-errors',\n templateUrl: './general-errors.component.html',\n styleUrls: ['./general-errors.component.css']\n})\nexport class GeneralErrorsComponent {\n\n @Input() form: FormGroup;\n errors: string[] = [];\n constructor() { }\n\n setErrors(errors: string[]): void {\n this.errors = errors;\n if (errors.length) {\n this.form.setErrors({'_general_errors_': errors });\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { LogLevel } from '@microsoft/signalr';\nimport { AzureB2CSettings } from '../../models/AzureB2CSettings';\nimport { OidcSettings } from '../../models/OidcSettings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class AppSettings {\n apiUrl: string;\n accountUrl: string;\n toastrTimeOut: number;\n signalRLogLevel?: LogLevel;\n oidc: OidcSettings;\n azureB2C: AzureB2CSettings;\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { AppSettings } from './AppSettings';\n\n@Injectable({ providedIn: 'root' })\nexport abstract class IndiginaConfiguration {\n langs?: TranslateLoader;\n appSettings?: AppSettings;\n}\n","import { Injectable } from '@angular/core';\nimport { Language } from '../models/Language';\nimport { TranslateService } from '@ngx-translate/core';\n\nconst languageKey = 'language';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocaleSettingsService {\n private languages: Language[] = [\n { name: 'English', code: 'en-US' },\n { name: 'Русский', code: 'ru-RU' },\n ];\n private localeId: string;\n\n constructor(private translate: TranslateService) {}\n\n init(): void {\n this.translate.addLangs(this.languages.map((x) => x.code));\n this.localeId = this.getLocale();\n this.setLocale(this.localeId || this.languages[0].code);\n }\n\n getLocales(): Language[] {\n return this.languages;\n }\n\n getLocale(): string {\n if (localStorage) {\n return localStorage.getItem(languageKey) || this.localeId;\n } else {\n return this.localeId;\n }\n }\n\n setLocale(locale: string) {\n this.translate.use(locale);\n this.localeId = locale;\n if (localStorage) {\n localStorage.setItem(languageKey, locale);\n }\n }\n}\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { MenuItem } from '../MenuItem';\nimport {\n Router,\n NavigationEnd,\n RouterStateSnapshot,\n UrlTree,\n} from '@angular/router';\n\nconst urlDelimiter = '/';\nconst collapsedEvent = 'collapsed';\n\n@Component({\n selector: '[menu-item-group]',\n templateUrl: './menu-item-group.component.html',\n styleUrls: ['./menu-item-group.component.css'],\n})\nexport class MenuItemGroupComponent implements OnChanges, OnInit {\n @Input() item: MenuItem;\n collapsed: boolean = false;\n private actualPath: string;\n\n constructor(private router: Router) {\n this.router.isActive = function (\n url: string | UrlTree,\n exact: boolean\n ): boolean {\n return this.routerState.snapshot.root.children?.length\n ? url.toString() ===\n urlDelimiter +\n this.routerState.snapshot.root.children[0].routeConfig.path.split(\n '/:'\n )[0]\n : false;\n };\n }\n\n ngOnInit(): void {\n this.setActualPath(this.router.routerState.snapshot);\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.setActualPath(this.router.routerState.snapshot);\n }\n });\n }\n\n ngOnChanges(): void {\n this.setItemExpand();\n }\n\n collapseChild(activeItem: MenuItem, event: MouseEvent) {\n this.item.expanded =\n this.item.text === activeItem.text &&\n !this.item.expanded &&\n !!this.item.items;\n\n if (!activeItem.items || activeItem.items.length === 0) {\n event[collapsedEvent] = true;\n } else {\n event[collapsedEvent] = false;\n }\n }\n\n private setItemExpand() {\n this.item.expanded = this.item.items?.some((x) => {\n return x.link !== undefined && x.link === this.actualPath;\n });\n }\n\n private setActualPath(snapshot: RouterStateSnapshot): void {\n if (snapshot.root.children?.length) {\n this.actualPath =\n urlDelimiter +\n snapshot.root.children[0].routeConfig.path.split('/:')[0];\n this.setItemExpand();\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MenuItemGroupComponent } from './menu-item-group/menu-item-group.component';\nimport { MenuItem } from './MenuItem';\n\nconst collapsedEvent = 'collapsed';\n@Component({\n selector: 'side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.css'],\n})\nexport class SideMenuComponent {\n @Input() items: MenuItem[];\n @Output() logoClick = new EventEmitter();\n\n onLogoClick() {\n this.logoClick.emit();\n }\n\n collapse(\n itemComponent: MenuItemGroupComponent,\n activeItem: MenuItem,\n event: MouseEvent\n ) {\n this.items?.forEach((item) => {\n if (item.text !== activeItem.text && item.expanded) {\n item.expanded = false;\n }\n });\n if (event[collapsedEvent]) {\n itemComponent.collapsed = true;\n } else {\n itemComponent.collapsed = false;\n }\n }\n}\n","export enum TreeViewPropTypes {\n String = 'string',\n Number = 'number',\n Object = 'object',\n Array = 'array',\n}\n","import { Component, Input, QueryList, ViewChildren } from '@angular/core';\nimport { TreeViewProp } from '../models/TreeViewProp';\nimport { TreeViewPropTypes } from '../models/TreeViewPropTypes';\nimport { TreeViewNodeComponent } from '../tree-view-node/tree-view-node.component';\n\n@Component({\n selector: 'tree-view-node-prop',\n templateUrl: './tree-view-node-prop.component.html',\n styleUrls: ['./tree-view-node-prop.component.css'],\n})\nexport class TreeViewNodePropComponent {\n @ViewChildren('node') treeViewNodes: QueryList<TreeViewNodeComponent>;\n\n @Input() prop: TreeViewProp;\n\n public get isSimpleValue(): boolean {\n return !this.isArrayValue && !this.isObjectValue;\n }\n\n public get isArrayValue(): boolean {\n return this.prop.propType === TreeViewPropTypes.Array;\n }\n\n public get isObjectValue(): boolean {\n return this.prop.propType === TreeViewPropTypes.Object;\n }\n\n public get propClass(): string {\n return this.prop.propType === TreeViewPropTypes.Number\n ? 'number'\n : 'string';\n }\n\n public expandAll(): void {\n this.treeViewNodes.forEach((x) => x.expandAll());\n }\n\n public collapseAll(): void {\n this.treeViewNodes.forEach((x) => x.collapseAll());\n }\n}\n","export enum TreeViewNodeTypes {\n Object = 'object',\n Array = 'array',\n Primitive = 'primitive',\n}\n","import {\n Component,\n Input,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { TreeViewNode } from '../models/TreeViewNode';\nimport { TreeViewNodeTypes } from '../models/TreeViewNodeTypes';\nimport { TreeViewNodePropComponent } from '../tree-view-node-prop/tree-view-node-prop.component';\n\n@Component({\n selector: 'tree-view-node',\n templateUrl: './tree-view-node.component.html',\n styleUrls: ['./tree-view-node.component.css'],\n})\nexport class TreeViewNodeComponent implements OnInit {\n @ViewChildren('prop') treeViewProps: QueryList<TreeViewNodePropComponent>;\n\n @Input() node: TreeViewNode;\n @Input() hasExpand: boolean;\n\n public expanded: boolean = true;\n\n public get isObject(): boolean {\n return this.node.nodeType === TreeViewNodeTypes.Object;\n }\n\n public get isArray(): boolean {\n return this.node.nodeType === TreeViewNodeTypes.Array;\n }\n\n public get isPrimitive(): boolean {\n return this.node.nodeType === TreeViewNodeTypes.Primitive;\n }\n\n public get primitive(): { value: any; type: string; startTag: string } {\n const value = this.node.props[0].value;\n const startTag = this.node.props[0].startTag;\n const type = typeof value;\n\n return { value, type, startTag };\n }\n\n ngOnInit(): void {\n this.expanded = !this.hasExpand;\n }\n\n public toggleExpand() {\n this.expanded = !this.expanded;\n }\n\n public expandAll(): void {\n if (this.hasExpand) {\n this.expanded = true;\n }\n\n this.treeViewProps.forEach((x) => x.expandAll());\n }\n\n public collapseAll(): void {\n if (this.hasExpand) {\n this.expanded = false;\n }\n\n this.treeViewProps.forEach((x) => x.collapseAll());\n }\n}\n","export enum ContentTypesFormat {\n Json = 'json',\n Xml = 'xml',\n Text = 'text',\n}\n","import { IContentResolver } from './IContentResolver';\nimport { ResolverResult } from '../models/ResolverResult';\n\nexport abstract class AbstractContentResolver implements IContentResolver {\n private nextResolver: IContentResolver;\n\n constructor(resolver: IContentResolver) {\n this.nextResolver = resolver;\n }\n\n resolve(data: string): ResolverResult {\n if (this.nextResolver) {\n return this.nextResolver.resolve(data);\n }\n\n return null;\n }\n}\n","import { TreeViewNodeTypes } from '../../models/TreeViewNodeTypes';\nimport { TreeViewPropTypes } from '../../models/TreeViewPropTypes';\n\nexport function getPropTypeFromKey(key: string): TreeViewPropTypes {\n return (\n Object.values(TreeViewPropTypes).find((x) => x === key) ||\n TreeViewPropTypes.String\n );\n}\n\nexport function getNodeTypeFromKey(key: string): TreeViewNodeTypes {\n return (\n Object.values(TreeViewNodeTypes).find((x) => x === key) ||\n TreeViewNodeTypes.Object\n );\n}\n","import { TreeViewNode } from '../../models/TreeViewNode';\nimport { TreeViewNodeTypes } from '../../models/TreeViewNodeTypes';\nimport { TreeViewProp } from '../../models/TreeViewProp';\nimport { TreeViewPropTypes } from '../../models/TreeViewPropTypes';\nimport { getPropTypeFromKey, getNodeTypeFromKey } from './EnumTypeGetter';\n\nconst objectBrackets = { inside: '{', outside: '}' };\nconst arrayBrackets = { inside: '[', outside: ']' };\n\nexport class JsonConverter {\n public static convert(\n source: Array<object> | object\n ): Array<TreeViewNode> | TreeViewNode {\n if (Array.isArray(source)) {\n return this.convertArray(source);\n }\n\n return this.convertObject(source);\n }\n\n private static convertObject(source): TreeViewNode {\n const props: Array<TreeViewProp> = [];\n for (const name of Object.keys(source)) {\n const value = source[name];\n let propType =\n value !== null\n ? getPropTypeFromKey(typeof value)\n : TreeViewPropTypes.String;\n\n if (Array.isArray(value)) {\n const result = this.convertArray(value);\n const propType = Array.isArray(result)\n ? TreeViewPropTypes.Array\n : TreeViewPropTypes.Object;\n props.push({\n startTag: `${name}: `,\n value: result,\n propType,\n brackets: arrayBrackets,\n });\n\n continue;\n }\n\n if (propType === TreeViewPropTypes.Object) {\n props.push({\n startTag: `${name}: `,\n value: this.convertObject(value),\n propType,\n });\n\n continue;\n }\n\n props.push({\n startTag: `${name}: `,\n value,\n propType,\n });\n }\n\n return {\n props,\n nodeType: TreeViewNodeTypes.Object,\n brackets: objectBrackets,\n };\n }\n\n private static convertArray(source: Array<any>): TreeViewNode {\n const nodes: Array<TreeViewNode> = [];\n\n source.forEach((item, index) => {\n if (typeof item !== TreeViewPropTypes.Object) {\n nodes.push(this.getPrimitive(item, index));\n } else {\n const brackets = Array.isArray(item) ? arrayBrackets : objectBrackets;\n const inside = brackets.inside;\n const outside = brackets.outside;\n nodes.push({\n ...this.convertObject(item),\n nodeType: Array.isArray(item)\n ? TreeViewNodeTypes.Array\n : getNodeTypeFromKey(typeof item),\n brackets: {\n inside: `${index}: ${inside}`,\n outside,\n },\n });\n }\n });\n\n return {\n props: [\n {\n value: nodes,\n propType: TreeViewPropTypes.Array,\n },\n ],\n brackets: arrayBrackets,\n };\n }\n\n private static getPrimitive(\n source: string | number,\n index: string | number\n ): TreeViewNode {\n const propType = getPropTypeFromKey(typeof source);\n return {\n props: [\n {\n startTag: `${index}: `,\n value: source,\n propType,\n },\n ],\n nodeType: TreeViewNodeTypes.Primitive,\n };\n }\n}\n","import { ContentTypesFormat } from '../../models/ContentTypesFormat';\nimport { ResolverResult } from '../../models/ResolverResult';\nimport { AbstractContentResolver } from '../AbstractContentResolver';\nimport { JsonConverter } from '../Converters/JsonConverter';\n\nexport class JsonResolver extends AbstractContentResolver {\n public resolve(data: string): ResolverResult {\n try {\n const json = JSON.parse(data);\n\n return {\n data: JsonConverter.convert(json),\n format: ContentTypesFormat.Json,\n };\n } catch (e) {\n return super.resolve(data);\n }\n }\n}\n","import { TreeViewNode } from '../../models/TreeViewNode';\nimport { TreeViewPropTypes } from '../../models/TreeViewPropTypes';\n\nexport class TextConverter {\n public static convert(source: string): Array<TreeViewNode> | TreeViewNode {\n return {\n props: [\n {\n value: source,\n propType: TreeViewPropTypes.String,\n },\n ],\n };\n }\n}\n","import { ContentTypesFormat } from '../../models/ContentTypesFormat';\nimport { ResolverResult } from '../../models/ResolverResult';\nimport { AbstractContentResolver } from '../AbstractContentResolver';\nimport { TextConverter } from '../Converters/TextConverter';\n\nexport class TextResolver extends AbstractContentResolver {\n public resolve(data: string): ResolverResult {\n return {\n data: TextConverter.convert(data),\n format: ContentTypesFormat.Text,\n };\n }\n}\n","import { TreeViewNode } from '../../models/TreeViewNode';\nimport { TreeViewProp } from '../../models/TreeViewProp';\nimport { TreeViewPropTypes } from '../../models/TreeViewPropTypes';\nimport { getPropTypeFromKey } from './EnumTypeGetter';\n\nexport class XmlConverter {\n public static convert(source: Document): Array<TreeViewNode> | TreeViewNode {\n if (source.childElementCount > 1) {\n return this.convertObject(source.childNodes);\n }\n\n return { props: [this.convertProp(source.children[0])] };\n }\n\n private static convertProp(source: any): TreeViewProp {\n const name: string = source.tagName;\n let value: Array<TreeViewNode> | string;\n let propType: TreeViewPropTypes;\n\n if (source.childElementCount > 0) {\n value = this.convertObject(source.children);\n propType = TreeViewPropTypes.Array;\n } else {\n value = source.textContent;\n propType = getPropTypeFromKey(typeof value);\n }\n\n return {\n startTag: `<${name}>`,\n endTag: `</${name}>`,\n value,\n propType,\n };\n }\n\n private static convertObject(childs: any): Array<TreeViewNode> {\n const props = Array<TreeViewProp>();\n for (const item of childs) {\n props.push(this.convertProp(item));\n }\n\n return [\n {\n props,\n },\n ];\n }\n}\n","import { ContentTypesFormat } from '../../models/ContentTypesFormat';\nimport { ResolverResult } from '../../models/ResolverResult';\nimport { AbstractContentResolver } from '../AbstractContentResolver';\nimport { XmlConverter } from '../Converters/XmlConverter';\n\nexport class XmlResolver extends AbstractContentResolver {\n public resolve(data: string): ResolverResult {\n try {\n const oParser = new DOMParser();\n const oDOM = oParser.parseFromString(data, 'text/xml');\n\n if (\n oDOM.all.length > 0 &&\n oDOM.getElementsByTagName('parsererror').length === 0\n ) {\n return {\n data: XmlConverter.convert(oDOM),\n format: ContentTypesFormat.Xml,\n };\n }\n } catch (e) {}\n\n return super.resolve(data);\n }\n}\n","import { ResolverResult } from '../models/ResolverResult';\nimport { AbstractContentResolver } from './AbstractContentResolver';\nimport { JsonResolver } from './Resolvers/JsonResolver';\nimport { TextResolver } from './Resolvers/TextResolver';\nimport { XmlResolver } from './Resolvers/XmlResolver';\n\nexport class ContentResolver {\n private chain: AbstractContentResolver;\n\n constructor() {\n this.chain = new JsonResolver(new XmlResolver(new TextResolver(null)));\n }\n\n public resolve(data: string): ResolverResult {\n return this.chain.resolve(data);\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { ClipboardService } from 'ngx-clipboard';\nimport { ContentResolver } from './ContentResolver/ContentResolver';\nimport { ContentTypesFormat } from './models/ContentTypesFormat';\nimport { ResolverResult } from './models/ResolverResult';\nimport { TreeViewNodeComponent } from './tree-view-node/tree-view-node.component';\n\n@Component({\n selector: 'tree-view',\n templateUrl: './tree-view.component.html',\n styleUrls: ['./tree-view.component.css'],\n})\nexport class TreeViewComponent implements OnChanges {\n @ViewChildren('node') treeViewNodes: QueryList<TreeViewNodeComponent>;\n\n @Input() data: string;\n @Input() maxTextLength: number = 1200;\n @Input() maxRootItems: number = 10;\n\n public resolved: ResolverResult;\n public collapsed: boolean;\n public allShow: boolean;\n public rawView: boolean;\n public ContentTypesFormat = ContentTypesFormat;\n\n public get IsArray(): boolean {\n return this.data ? Array.isArray(this.resolved.data) : false;\n }\n\n public get hasCollapse(): boolean {\n if (!this.data) {\n return false;\n }\n\n return this.resolved.format === ContentTypesFormat.Text\n ? this.hasTextCollapse()\n : this.hasNodeCollapse();\n }\n\n public get format(): string {\n return !this.rawView ? this.resolved.format : ContentTypesFormat.Text;\n }\n\n constructor(private clipboardService: ClipboardService) {}\n\n ngOnChanges(): void {\n const contentResolver = new ContentResolver();\n this.allShow = false;\n this.rawView = false;\n this.resolved = contentResolver.resolve(this.data);\n this.collapsed = this.hasCollapse;\n }\n\n public expandToggle(): void {\n this.collapsed = !this.collapsed;\n }\n\n public toggleExpandAll() {\n if (this.allShow) {\n this.treeViewNodes.forEach((x) => x.collapseAll());\n } else {\n this.treeViewNodes.forEach((x) => x.expandAll());\n }\n\n this.collapsed = this.hasCollapse ? this.allShow : false;\n this.allShow = !this.allShow;\n }\n\n public toggleRawView() {\n this.rawView = !this.rawView;\n }\n\n public copyToClipboard() {\n this.clipboardService.copy(this.data);\n }\n\n private hasTextCollapse(): boolean {\n return this.data.length > this.maxTextLength;\n }\n\n private hasNodeCollapse(): boolean {\n if (!Array.isArray(this.resolved.data)) {\n return this.resolved.data.props.length > this.maxRootItems;\n }\n\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { LoadingBarHttpClientModule } from '@ngx-loading-bar/http-client';\nimport {\n TranslateLoader,\n TranslateModule,\n TranslateStore,\n} from '@ngx-translate/core';\nimport { ClipboardModule } from 'ngx-clipboard';\nimport { ToastrModule } from 'ngx-toastr';\nimport { Observable, of } from 'rxjs';\nimport { DebounceDirective } from './forms/directives/debounce.directive';\nimport { FieldInputComponent } from './forms/widgets/field/field-input/field-input.component';\nimport { NumberInputComponent } from './forms/widgets/field/field-input/number-input.component';\nimport { GeneralErrorsComponent } from './forms/widgets/general-errors/general-errors.component';\nimport { AppSettings } from './models/AppSettings';\nimport { IndiginaConfiguration } from './models/IndiginaConfiguration';\nimport { LocaleSettingsService } from './services/locale-settings.service';\nimport { MenuItemGroupComponent } from './widgets/side-menu/menu-item-group/menu-item-group.component';\nimport { SideMenuComponent } from './widgets/side-menu/side-menu.component';\nimport { TreeViewNodePropComponent } from './widgets/tree-view/tree-view-node-prop/tree-view-node-prop.component';\nimport { TreeViewNodeComponent } from './widgets/tree-view/tree-view-node/tree-view-node.component';\nimport { TreeViewComponent } from './widgets/tree-view/tree-view.component';\n\nlet defaultConfig: IndiginaConfiguration = {\n langs: {\n getTranslation(): Observable<any> {\n return of({});\n },\n },\n appSettings: {\n accountUrl: '',\n apiUrl: '',\n toastrTimeOut: 2500,\n oidc: {\n clientId: '',\n authority: '',\n issuer: '',\n },\n azureB2C: {\n clientId: '',\n authority: '',\n knownAuthorities: [''],\n },\n },\n};\n\n@NgModule({\n declarations: [\n SideMenuComponent,\n MenuItemGroupComponent,\n TreeViewComponent,\n TreeViewNodeComponent,\n TreeViewNodePropComponent,\n DebounceDirective,\n GeneralErrorsComponent,\n FieldInputComponent,\n NumberInputComponent,\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n TranslateModule.forChild({\n loader: {\n provide: TranslateLoader,\n useFactory: TranslateLoaderFactory,\n deps: [IndiginaConfiguration, HttpClient],\n },\n }),\n LoadingBarHttpClientModule,\n CommonModule,\n RouterModule,\n ReactiveFormsModule,\n ToastrModule.forRoot(),\n BrowserAnimationsModule,\n ],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: LocaleServiceSettingsFactory,\n multi: true,\n deps: [LocaleSettingsService],\n },\n {\n provide: IndiginaConfiguration,\n useValue: defaultConfig,\n },\n {\n provide: AppSettings,\n useFactory: AppSettingsFactory,\n deps: [IndiginaConfiguration],\n },\n TranslateStore,\n ],\n exports: [\n SideMenuComponent,\n TreeViewComponent,\n DebounceDirective,\n GeneralErrorsComponent,\n FieldInputComponent,\n TranslateModule,\n ClipboardModule,\n LoadingBarHttpClientModule,\n ToastrModule,\n BrowserAnimationsModule,\n NumberInputComponent,\n ],\n})\nexport class IndiginaModule {\n public static forRoot(\n configuration: IndiginaConfiguration\n ): ModuleWithProviders<IndiginaModule> {\n return {\n ngModule: IndiginaModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: LocaleServiceSettingsFactory,\n multi: true,\n deps: [LocaleSettingsService],\n },\n {\n provide: IndiginaConfiguration,\n useValue: configuration ? configuration : defaultConfig,\n },\n ],\n };\n }\n}\n\nexport function LocaleServiceSettingsFactory(\n localeService: LocaleSettingsService\n) {\n return function () {\n localeService.init();\n };\n}\n\nexport function TranslateLoaderFactory(\n configuration: IndiginaConfiguration\n): TranslateLoader {\n return configuration.langs;\n}\n\nexport function AppSettingsFactory(configuration: IndiginaConfiguration) {\n return configuration.appSettings;\n}\n","import { IEntityEndpoints } from './IEntityEndpoints';\nimport { State, toODataString } from '@progress/kendo-data-query';\nimport { MemberTypes } from '../models/MemberTypes';\nimport { IActivityEndpoints } from './IActivityEndpoints';\n\nexport const endpoints = {\n signalr: {\n eventsHub: 'EventsHub',\n },\n oidc: {\n config: 'oidc/config',\n },\n members: {\n me: 'members/me',\n },\n admins: {\n ...buildEntityEndpoints('admins'),\n roles: {\n ...buildEntityEndpoints('admins/roles'),\n },\n },\n system: {\n info: 'system/info',\n },\n firstUser: 'admins/first',\n partners: buildEntityEndpoints('partners'),\n permissions: {\n all: (type: MemberTypes) => `permissions/${type}s`,\n member: (id: string) => `permissions/${id}`,\n mine: 'permissions/me',\n },\n users: {\n ...buildEntityEndpoints('users'),\n roles: {\n ...buildEntityEndpoints('users/roles'),\n },\n },\n apiTokens: buildEntityEndpoints('apiTokens'),\n};\n\nconst guidFormat = /'((\\{){0,1}[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}(\\}){0,1})'/g;\nexport function buildEntityEndpoints(name: string): IEntityEndpoints {\n return {\n path: name,\n query: (state: State) =>\n `${name}?${toODataString(state, { utcDates: true }).replace(\n guidFormat,\n '$1'\n )}`,\n entityPath: (id: string) => `${name}/${id}`,\n };\n}\nexport function buildActivityEndpoints(name: string): IActivityEndpoints {\n return {\n query: (state: State) =>\n `activities/${name}?${toODataString(state, {\n utcDates: true,\n }).replace(guidFormat, '$1')}`,\n search: (state: State, searchTerm: string) => {\n let uri = `activities/${name}/search?${toODataString(state, {\n utcDates: true,\n })}`;\n if (searchTerm) {\n uri += `&searchTerm=${searchTerm}`;\n }\n\n return uri;\n },\n detailedActivity: (id: string, partnerId: string) =>\n partnerId\n ? `activities/${name}/${id}/${partnerId}`\n : `activities/${name}/${id}`,\n };\n}\n","export enum EventNames {\n UserUpdated = 'userUpdated',\n PermissionsUpdated = 'permissionsUpdated',\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { HttpService } from '../angular/services/http.service';\nimport { SettingsService } from '../angular/services/settings.service';\nimport { AuthProviderResolver } from './auth-provider.resolver';\nimport { AuthProvider } from './auth.providers/AuthProvider';\nimport { endpoints } from './endpoints';\nimport { EventNames } from './signalr/EventNames';\nimport { SignalRService } from './signalr/signalr.service';\n\nconst adminUriPart = '/admin/';\n\nexport abstract class BaseAccountService<T> {\n public user = new BehaviorSubject<T>(null);\n\n constructor(\n public resolver: AuthProviderResolver,\n protected httpService: HttpService,\n protected settingsService: SettingsService,\n protected signalRService: SignalRService\n ) {\n this.resolver\n .getProvider()\n .pipe(\n map((provider) => {\n this.initialize(provider);\n })\n )\n .subscribe();\n }\n\n login() {\n this.resolver\n .getProvider()\n .pipe(\n map((provider) => {\n provider.login();\n })\n )\n .subscribe();\n }\n\n logout() {\n this.settingsService.clearLoginAsUser();\n this.resolver\n .getProvider()\n .pipe(\n map((provider) => {\n provider.logout();\n })\n )\n .subscribe();\n }\n\n private initialize(provider: AuthProvider) {\n this.getCurrentUser().subscribe((user) => {\n if (!user) {\n return;\n }\n\n const path = this.settingsService.getCallbackPath();\n if (path) {\n this.settingsService.clearCallbackPath();\n window.location.href = window.location.origin + path;\n\n return;\n }\n\n if (\n this.isAdmin(user) &&\n !window.location.pathname.startsWith(adminUriPart)\n ) {\n window.location.href = `${window.location.origin}${adminUriPart}`;\n\n return;\n }\n\n provider.getAccessToken().subscribe((token) => {\n this.signalRService.startConnection(token);\n this.signalRService\n .on<T>(EventNames.UserUpdated)\n .subscribe(async () => {\n provider.getAccessToken().subscribe((token) => {\n this.signalRService.reconnect(token);\n });\n this.httpService\n .get<T>(endpoints.members.me)\n .subscribe((user) => this.user.next(user));\n });\n });\n });\n }\n\n getCurrentUser(): Observable<T> {\n return this.resolver.getProvider().pipe(\n mergeMap((provider) => {\n if (this.user.getValue() || !provider.isUserLoggedIn()) {\n return this.user;\n }\n\n return provider.getAccessToken().pipe(\n mergeMap(() => {\n return this.httpService.get(endpoints.members.me).pipe(\n map((user: T) => {\n this.user.next(user);\n\n return user;\n })\n );\n })\n );\n })\n );\n }\n\n public isUserLoggedIn(): Observable<boolean> {\n return this.resolver\n .getProvider()\n .pipe(map((provider) => provider.isUserLoggedIn()));\n }\n\n public abstract isAdmin(member: T): boolean;\n}\n","import { ISubscriptionControl } from './ISubscriptionControl';\nimport { Observable, Subscription } from 'rxjs';\n\nexport class ReEntrySubscription<T> implements ISubscriptionControl {\n private subscription: Subscription;\n\n constructor(\n private observable: Observable<T>,\n private action: (event: T) => void\n ) {}\n\n public get connected(): boolean {\n return !this.subscription.closed;\n }\n\n public resume(): void {\n this.subscription = this.observable.subscribe(this.action);\n }\n\n public pause(): void {\n this.subscription.unsubscribe();\n }\n}\n","import {\n AbstractControl,\n AbstractControlOptions,\n AsyncValidatorFn,\n FormGroup,\n ValidatorFn,\n FormControl,\n} from '@angular/forms';\n\nexport class FormGroupWithErrors extends FormGroup {\n generalErrors: string[] = [];\n\n constructor(\n controls: { [key: string]: AbstractControl },\n validatorOrOpts?:\n | ValidatorFn\n | ValidatorFn[]\n | AbstractControlOptions\n | null,\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null\n ) {\n super(controls, validatorOrOpts, asyncValidator);\n }\n\n public getControl(name: string): AbstractControl {\n if (!this.contains(name)) {\n this.addControl(name, new FormControl({}));\n }\n\n return this.get(name);\n }\n\n public applyServerErrors(\n error: { title?: string; errors: { [key: string]: string[] } },\n form?: FormGroupWithErrors\n ): void {\n this.generalErrors = [];\n if (error.title) {\n this.generalErrors.push(error.title);\n }\n\n if (!form) {\n form = this;\n }\n\n for (const key in error.errors) {\n const ctrl = form.controls[key];\n if (ctrl) {\n ctrl.setErrors({ serverErrorMsg: error.errors[key].join(',') });\n } else {\n this.generalErrors.push(error.errors[key].join(','));\n }\n }\n }\n}\n","export enum HttpCodes {\n BadRequest = 400,\n Forbidden = 403,\n InternalServerError = 500,\n NotFound = 404,\n OK = 200,\n Unauthorized = 401,\n}\n","import { NamedModel } from './NamedModel';\n\nexport const HttpMethods: NamedModel[] = [\n { name: 'POST', id: 'POST' },\n { name: 'PUT', id: 'PUT' },\n { name: 'GET', id: 'GET' },\n { name: 'DELETE', id: 'DELETE' },\n];\n","import { Injectable } from '@angular/core';\n\nconst callbackPathKey = 'callbackPath';\nconst homePath = '/home';\nconst loginAsKey = 'X-User-Id';\nconst tokenKey = 'access_token';\n\n@Injectable({ providedIn: 'root' })\nexport class SettingsService {\n public putCurrentCallbackPath() {\n this.putCallbackPath(window.location.pathname + window.location.hash);\n }\n\n public putCallbackPath(pathUri: string): void {\n if (!this.getCallbackPath() && pathUri !== homePath) {\n localStorage.setItem(callbackPathKey, pathUri);\n }\n }\n\n public getCallbackPath(): string {\n return localStorage.getItem(callbackPathKey);\n }\n\n public clearCallbackPath(): void {\n localStorage.removeItem(callbackPathKey);\n }\n\n public setLoginAsUser(id: string): void {\n localStorage.setItem(loginAsKey, id);\n }\n\n public getLoginAsUser(): string {\n return localStorage.getItem(loginAsKey);\n }\n\n public clearLoginAsUser(): void {\n localStorage.removeItem(loginAsKey);\n }\n\n public setToken(token: string) {\n localStorage.setItem(tokenKey, token);\n }\n\n public getToken(): string {\n return localStorage.getItem(tokenKey);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppSettings } from '../models/AppSettings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppToastrService {\n constructor(\n private toastr: ToastrService,\n private appSettings: AppSettings\n ) {}\n\n private timeout = this.appSettings.toastrTimeOut;\n\n public showError(message: string, title: string = 'Error'): void {\n this.toastr.error(message, title, { timeOut: this.timeout });\n }\n\n public showSuccess(message: string, title: string = ''): void {\n this.toastr.success(message, title, { timeOut: this.timeout });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { AppSettings } from '../models/AppSettings';\nimport { CustomHttpErrorResponse } from '../models/CustomHttpErrorResponse';\nimport { HttpCodes } from '../models/HttpCodes';\nimport { SettingsService } from './settings.service';\nimport { AppToastrService } from './toastr.service';\n\nconst absoluteUrlRegExp = /^http(s)?:\\/\\//;\n\n@Injectable({ providedIn: 'root' })\nexport class HttpService {\n constructor(\n private appToastrService: AppToastrService,\n private httpClient: HttpClient,\n private appSettings: AppSettings,\n private translate: TranslateService,\n private router: Router,\n private settingsService: SettingsService\n ) {}\n\n get<T>(path: string): Observable<T> {\n return this.httpClient\n .get<T>(this.createUrl(path))\n .pipe(\n catchError((err: CustomHttpErrorResponse) =>\n this.handleServerError(err)\n )\n );\n }\n\n delete(path: string): Observable<object> {\n return this.httpClient.delete(this.createUrl(path)).pipe(\n tap(() => this.showSuccessMessage('ToastrMessages.RemovedSuccessfully')),\n catchError((err: CustomHttpErrorResponse) => this.handleServerError(err))\n );\n }\n\n post<T>(\n path: string,\n data: T,\n successTranslateMessage: string = null\n ): Observable<T> {\n return this.httpClient.post<T>(this.createUrl(path), data).pipe(\n tap(() =>\n this.showSuccessMessage(\n successTranslateMessage ?? 'ToastrMessages.SavedSuccessfully'\n )\n ),\n catchError((err) => this.handleServerError(err))\n );\n }\n\n put<T>(\n path: string,\n data: T,\n successTranslateMessage: string = null\n ): Observable<T> {\n return this.httpClient.put<T>(this.createUrl(path), data).pipe(\n tap(() =>\n this.showSuccessMessage(\n successTranslateMessage ?? 'ToastrMessages.SavedSuccessfully'\n )\n ),\n catchError((err) => this.handleServerError(err))\n );\n }\n\n private createUrl(path: string): string {\n return absoluteUrlRegExp.test(path) ? path : this.appSettings.apiUrl + path;\n }\n\n private handleServerError(error: CustomHttpErrorResponse) {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n this.appToastrService.showError(\n 'An error occurred: ' + error.error.message\n );\n\n return of(null);\n }\n\n if (error.status === HttpCodes.Unauthorized) {\n this.settingsService.putCurrentCallbackPath();\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.Unauthorized')\n );\n\n return of(null);\n }\n\n if (error.status === HttpCodes.Forbidden) {\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.Forbidden')\n );\n this.router.navigate(['forbidden']);\n\n return of(null);\n }\n\n if (error.status === HttpCodes.NotFound) {\n if (!!this.settingsService.getLoginAsUser()) {\n this.settingsService.clearLoginAsUser();\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.CanNotLoginAsUser')\n );\n setTimeout(() => {\n window.location.href = '/';\n }, 1000);\n }\n\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.NotFound')\n );\n\n return of(null);\n }\n\n if (error.status >= HttpCodes.InternalServerError) {\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.ServerError') + error.error.title\n );\n\n return of(null);\n }\n\n return throwError(error);\n }\n\n private showSuccessMessage(message: string) {\n this.appToastrService.showSuccess(this.translate.instant(message));\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ISubscriptionControl } from '../../extensions/ISubscriptionControl';\n\n@Component({\n selector: 'live-updates-control',\n styleUrls: ['./live-updates-control.component.css'],\n templateUrl: './live-updates-control.component.html',\n})\nexport class LiveUpdatesControlComponent implements OnInit {\n @Input() subscription: ISubscriptionControl;\n\n ngOnInit(): void {\n this.subscription.resume();\n }\n\n public toggle(): void {\n this.subscription.connected\n ? this.subscription.pause()\n : this.subscription.resume();\n }\n}\n","export enum AuthProviders {\n IdentityServer = 'IdentityServer',\n AzureB2C = 'AzureB2C',\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class AuthProvider {\n public abstract initialize(): Observable<boolean>;\n public abstract login();\n public abstract logout();\n public abstract isUserLoggedIn(): boolean;\n public abstract getAccessToken(): Observable<string>;\n}\n","import { MsalService } from '@azure/msal-angular';\nimport { InteractionRequiredAuthError } from '@azure/msal-browser';\nimport { from, Observable, of } from 'rxjs';\nimport { SettingsService } from '../../angular/services/settings.service';\nimport { AuthProvider } from './AuthProvider';\n\nexport class AzureB2CProvider extends AuthProvider {\n constructor(\n private authService: MsalService,\n private settingsService: SettingsService\n ) {\n super();\n }\n\n public initialize(): Observable<boolean> {\n return of(true);\n }\n\n public login() {\n if (!this.isUserLoggedIn()) {\n this.authService.loginRedirect().subscribe();\n }\n }\n\n public logout() {\n this.authService.logoutRedirect({\n postLogoutRedirectUri: location.origin,\n });\n }\n\n public getAccessToken(): Observable<string> {\n const request = {\n scopes: ['openid', 'offline_access', 'profile'],\n };\n\n return from(\n this.authService.instance\n .acquireTokenSilent(request)\n .then((authenticationResult) => {\n const token = authenticationResult.idToken;\n this.settingsService.setToken(token);\n\n return token;\n })\n .catch(async (error) => {\n if (error instanceof InteractionRequiredAuthError) {\n await this.authService.instance.acquireTokenRedirect(request);\n\n return this.settingsService.getToken();\n }\n })\n );\n }\n\n public isUserLoggedIn = (): boolean =>\n !!this.authService.instance.getActiveAccount()?.localAccountId;\n}\n","import { AuthConfig, OAuthService } from 'angular-oauth2-oidc';\nimport { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';\nimport { from, Observable, of } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\nimport { IndiginaConfiguration } from '../../angular/models/IndiginaConfiguration';\nimport { AuthProvider } from './AuthProvider';\n\nconst homePath = '/home';\n\nexport class OAuthProvider extends AuthProvider {\n constructor(\n private oauthService: OAuthService,\n private configuration: IndiginaConfiguration\n ) {\n super();\n }\n\n public initialize(): Observable<boolean> {\n const authConfig: AuthConfig = {\n issuer: this.configuration.appSettings.oidc.issuer,\n redirectUri: window.location.origin + '/login/callback',\n clientId: this.configuration.appSettings.oidc.clientId,\n scope: 'openid profile offline_access',\n postLogoutRedirectUri: window.location.origin + homePath,\n silentRefreshRedirectUri: window.location.origin + '/silent-renew.html',\n };\n\n return this.configure(authConfig);\n }\n\n public login() {\n this.oauthService.initLoginFlow();\n }\n\n public logout() {\n this.oauthService.logOut();\n }\n\n public getAccessToken(): Observable<string> {\n return of(this.oauthService.getAccessToken());\n }\n\n public isUserLoggedIn = (): boolean =>\n this.oauthService.hasValidAccessToken();\n\n private configure(authConfig: AuthConfig): Observable<boolean> {\n this.oauthService.configure(authConfig);\n this.oauthService.tokenValidationHandler = new JwksValidationHandler();\n this.oauthService.setupAutomaticSilentRefresh();\n\n return from(\n this.oauthService.loadDiscoveryDocument(\n authConfig.issuer + '/identity/.well-known/openid-configuration'\n )\n ).pipe(mergeMap(() => from(this.oauthService.tryLoginImplicitFlow())));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MsalService } from '@azure/msal-angular';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { IndiginaConfiguration } from '../angular/models/IndiginaConfiguration';\nimport { HttpService } from '../angular/services/http.service';\nimport { SettingsService } from '../angular/services/settings.service';\nimport { AuthProviders } from '../models/AuthProviders';\nimport { SystemInfo } from '../models/SystemInfo';\nimport { AuthProvider } from '../services/auth.providers/AuthProvider';\nimport { AzureB2CProvider } from './../services/auth.providers/azureb2c.provider';\nimport { OAuthProvider } from './../services/auth.providers/oauth.provider';\nimport { endpoints } from './endpoints';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthProviderResolver {\n private AuthProvider$ = new BehaviorSubject<AuthProvider>(null);\n\n constructor(\n httpService: HttpService,\n oauthService: OAuthService,\n msalService: MsalService,\n settingsService: SettingsService,\n indiginaConfiguration: IndiginaConfiguration\n ) {\n httpService.get<SystemInfo>(endpoints.system.info).subscribe((info) => {\n let provider: AuthProvider;\n if (info.identityProvider === AuthProviders.IdentityServer) {\n provider = new OAuthProvider(oauthService, indiginaConfiguration);\n } else {\n provider = new AzureB2CProvider(msalService, settingsService);\n }\n\n provider.initialize().subscribe(() => this.AuthProvider$.next(provider));\n });\n }\n\n public getProvider = (): Observable<AuthProvider> =>\n this.AuthProvider$.pipe(filter((x) => !!x));\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport * as signalR from '@microsoft/signalr';\nimport { AppSettings } from '../../angular/models/AppSettings';\nimport { endpoints } from '../endpoints';\n\n@Injectable({ providedIn: 'root' })\nexport class SignalRService {\n protected isConnectionEstablished = false;\n protected hubConnection: signalR.HubConnection;\n private eventEmitters: { [eventName: string]: EventEmitter<any> } = {};\n\n constructor(private appSettings: AppSettings) {}\n\n private createConnection(token: string) {\n this.hubConnection = new signalR.HubConnectionBuilder()\n .withUrl(this.appSettings.apiUrl + endpoints.signalr.eventsHub, {\n accessTokenFactory: () => {\n return token;\n },\n })\n .configureLogging(\n this.appSettings.signalRLogLevel ?? signalR.LogLevel.None\n )\n .build();\n\n this.hubConnection.onclose((err?) => {\n if (err !== undefined) {\n this.isConnectionEstablished = false;\n this.startConnection(token);\n }\n });\n }\n\n public startConnection(token: string): void {\n if (!this.isConnectionEstablished) {\n this.createConnection(token);\n this.hubConnection\n .start()\n .then(() => {\n this.isConnectionEstablished = true;\n Object.keys(this.eventEmitters).forEach((eventName) => {\n this.hubConnection.on(eventName, (model) => {\n this.eventEmitters[eventName].emit(model);\n });\n });\n })\n .catch(() => {\n console.warn('Error while establishing connection, retrying...');\n setTimeout(() => this.startConnection(token), 5000);\n });\n }\n }\n\n public reconnect(token: string) {\n if (this.isConnectionEstablished) {\n this.hubConnection.stop().then(() => {\n this.isConnectionEstablished = false;\n this.startConnection(token);\n });\n }\n }\n\n public on<T>(eventName: string): EventEmitter<T> {\n if (!this.eventEmitters[eventName]) {\n this.eventEmitters[eventName] = new EventEmitter<T>();\n if (this.hubConnection) {\n this.hubConnection.on(eventName, (model) => {\n this.eventEmitters[eventName].emit(model);\n });\n }\n }\n\n return this.eventEmitters[eventName] as EventEmitter<T>;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpService } from '../angular/services/http.service';\nimport { SettingsService } from '../angular/services/settings.service';\nimport { Member } from '../models/Member';\nimport { AuthProviderResolver } from './auth-provider.resolver';\nimport { BaseAccountService } from './base.account.service';\nimport { SignalRService } from './signalr/signalr.service';\n\nconst adminKey = 'Admin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService extends BaseAccountService<Member> {\n constructor(\n public resolver: AuthProviderResolver,\n httpService: HttpService,\n settingsService: SettingsService,\n signalRService: SignalRService\n ) {\n super(resolver, httpService, settingsService, signalRService);\n }\n\n public isAdmin = (member: Member): boolean =>\n member?.type === adminKey ?? false;\n}\n","import {\n Component,\n Input,\n HostListener,\n ElementRef,\n ViewChild,\n} from '@angular/core';\nimport { AppSettings } from '../../angular/models/AppSettings';\nimport { Member } from '../../models/Member';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'account-menu',\n templateUrl: './account-menu.component.html',\n styleUrls: ['./account-menu.component.css'],\n})\nexport class AccountMenuComponent {\n @ViewChild('accountMenuElement') accountMenu: ElementRef;\n @Input() user: Member;\n expand = false;\n languageSelectorVisible = false;\n constructor(\n private eref: ElementRef,\n private accountService: AccountService,\n private appSettings: AppSettings\n ) {}\n\n get fullName(): string {\n return `${this.user?.firstName} ${this.user?.lastName}`;\n }\n\n get accountUrl(): string {\n return this.appSettings.accountUrl;\n }\n\n toogle(): void {\n this.expand = !this.expand;\n }\n\n logout(): void {\n this.accountService.logout();\n }\n\n openLanguageSelector(event: MouseEvent): void {\n event.stopPropagation();\n this.toogle();\n this.languageSelectorVisible = true;\n }\n\n @HostListener('document:click', ['$event'])\n clickedOutside(event: any) {\n if (!this.eref.nativeElement.contains(event.target) && this.expand) {\n this.toogle();\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MsalService } from '@azure/msal-angular';\nimport { AuthenticationResult } from '@azure/msal-browser';\nimport { SettingsService } from '../../angular/services/settings.service';\n\n@Component({\n selector: 'lib-azure-login',\n template: '',\n})\nexport class AzureLoginCallbackComponent {\n constructor(\n private authService: MsalService,\n private settingsService: SettingsService,\n private router: Router\n ) {}\n\n ngOnInit() {\n this.authService\n .handleRedirectObservable()\n .subscribe((result: AuthenticationResult) => {\n if (result) {\n this.settingsService.setToken(result.idToken);\n this.authService.instance.setActiveAccount(result.account);\n }\n\n this.router.navigate(['home']);\n });\n }\n\n public logout() {\n this.authService.logout();\n }\n}\n","import {\n Component,\n ElementRef,\n HostListener,\n Output,\n EventEmitter,\n Input,\n} from '@angular/core';\nimport { Language } from '../../angular/models/Language';\nimport { LocaleSettingsService } from '../../angular/services/locale-settings.service';\n\n@Component({\n selector: 'language-selector',\n templateUrl: './language-selector.component.html',\n styleUrls: ['./language-selector.component.css'],\n})\nexport class LanguageSelectorComponent {\n @Input() visible: boolean;\n @Output() visibleChange = new EventEmitter<boolean>();\n currentLanguageCode = '';\n languages: Language[];\n\n constructor(\n private eref: ElementRef,\n private settings: LocaleSettingsService\n ) {\n this.currentLanguageCode = this.settings.getLocale();\n this.languages = this.settings.getLocales();\n }\n\n async changeLanguage(code: string) {\n this.currentLanguageCode = code;\n this.settings.setLocale(this.currentLanguageCode);\n this.close();\n }\n\n close(): void {\n this.visible = false;\n this.visibleChange.emit(this.visible);\n }\n\n @HostListener('document:click', ['$event'])\n clickedOutside(event: any) {\n if (!this.eref.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n}\n","import {\n BrowserCacheLocation,\n Configuration,\n IPublicClientApplication,\n PublicClientApplication,\n} from '@azure/msal-browser';\nimport { IndiginaConfiguration } from '../angular/models/IndiginaConfiguration';\n\nconst isIE =\n window.navigator.userAgent.indexOf('MSIE ') > -1 ||\n window.navigator.userAgent.indexOf('Trident/') > -1;\n\nexport const MSALInstanceFactory = (\n config: IndiginaConfiguration\n): IPublicClientApplication => {\n const msalConfig: Configuration = {\n auth: {\n clientId: config.appSettings.azureB2C.clientId,\n authority: config.appSettings.azureB2C.authority,\n knownAuthorities: config.appSettings.azureB2C.knownAuthorities,\n redirectUri: window.location.origin + '/azure/login/callback',\n postLogoutRedirectUri: '/',\n navigateToLoginRequestUrl: false,\n },\n cache: {\n cacheLocation: BrowserCacheLocation.SessionStorage,\n storeAuthStateInCookie: isIE,\n },\n system: {\n loggerOptions: {\n loggerCallback: () => {},\n piiLoggingEnabled: false,\n },\n },\n };\n\n return new PublicClientApplication(msalConfig);\n};\n","import { endpoints } from './endpoints';\nimport { Injectable } from '@angular/core';\nimport { AccountService } from './account.service';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MemberTypes } from '../models/MemberTypes';\nimport { Permissions } from './../models/Permissions';\nimport { HttpService } from '../angular/services/http.service';\nimport { SignalRService } from './signalr/signalr.service';\nimport { EventNames } from './signalr/EventNames';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class PermissionsService {\n private loaded = false;\n public mine = new BehaviorSubject<Permissions>({});\n\n constructor(\n private httpService: HttpService,\n private accountService: AccountService,\n private signalRService: SignalRService\n ) {\n this.accountService.user.subscribe(async (user) => {\n if (!user) {\n this.mine.next({});\n\n return;\n }\n\n this.httpService\n .get<Permissions>(endpoints.permissions.mine)\n .subscribe((permissions) => {\n this.mine.next(permissions);\n this.loaded = true;\n this.signalRService\n .on<string>(EventNames.PermissionsUpdated)\n .subscribe(() => {\n this.getPermissionsFromServer();\n });\n });\n });\n }\n\n public getAll(memberType: MemberTypes): Observable<Permissions> {\n return this.httpService.get<Permissions>(\n endpoints.permissions.all(memberType)\n );\n }\n\n public getMine(): Observable<Permissions> {\n if (this.loaded) {\n return this.mine;\n }\n\n return this.getPermissionsFromServer();\n }\n\n private getPermissionsFromServer(): Observable<Permissions> {\n return this.httpService.get<Permissions>(endpoints.permissions.mine).pipe(\n map((permissions) => {\n this.mine.next(permissions);\n\n return permissions;\n })\n );\n }\n}\n","import { Directive, Input, ElementRef, OnInit, Renderer2 } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { PermissionTypes } from '../models/PermissionTypes';\nimport { PermissionsService } from '../services/permissions.service';\n\nconst hiddenClass = 'hidden';\n\n@Directive({\n selector: '[requirePermission]',\n})\nexport class RequirePermissionDirective implements OnInit {\n @Input()\n permissionType: PermissionTypes | PermissionTypes[];\n @Input()\n permissionCategory?: string;\n\n constructor(\n private elementRef: ElementRef,\n private route: ActivatedRoute,\n private permissionsService: PermissionsService,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.hide();\n const category = this.permissionCategory\n ? this.permissionCategory\n : this.getRouteCategory(this.route);\n\n if (!category) {\n this.show();\n\n return;\n }\n\n this.permissionsService.mine.subscribe((permissions) => {\n const hasAccess =\n permissions[category] && this.hasType(permissions[category]);\n if (hasAccess) {\n this.show();\n } else {\n this.hide();\n }\n });\n }\n\n private hide() {\n this.renderer.addClass(this.elementRef.nativeElement, hiddenClass);\n }\n\n private show() {\n this.renderer.removeClass(this.elementRef.nativeElement, hiddenClass);\n }\n\n private hasType(types: PermissionTypes[]) {\n return Array.isArray(this.permissionType)\n ? types.map((x) => this.permissionType.includes(x)).some((x) => x)\n : types.includes(this.permissionType);\n }\n\n private getRouteCategory(route: ActivatedRoute): string {\n const routeData = route.snapshot.data;\n if (routeData && routeData.permission) {\n return routeData.permission.category;\n }\n\n if (this.route.parent) {\n return this.getRouteCategory(this.route.parent);\n }\n\n return null;\n }\n}\n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SettingsService } from '../angular/services/settings.service';\n\nconst AuthorizationHeader = 'Authorization';\n\n@Injectable()\nexport class AuthHeadersInterceptor implements HttpInterceptor {\n constructor(private settingsService: SettingsService) {}\n\n intercept(\n request: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n if (!request.headers.keys().find((x) => x === AuthorizationHeader)) {\n const token = this.settingsService.getToken();\n if (token) {\n const modified = request.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n return next.handle(modified);\n } else {\n return next.handle(request);\n }\n }\n\n return next.handle(request);\n }\n}\n","export enum FieldTypes {\n Text,\n Checkbox,\n Dropdown,\n Multiselect,\n}\n","import { ActivityFilter } from '../../models/ActivityFilter';\nimport { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { CustomFilterElement } from '../../models/CustomFilterElement';\nimport { FieldTypes } from '../../models/FieldTypes';\nimport { ActivityFilterService } from '../../services/activity.filter.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NamedModel } from '../../angular/models/NamedModel';\n\nconst allKey = 'All';\nconst defaultValueField = 'id';\n\n@Component({\n selector: 'activity-filter',\n templateUrl: './activity-filter.component.html',\n styleUrls: ['./activity-filter.component.less'],\n})\nexport class ActivityFilterComponent implements OnInit, OnChanges {\n @Input() showArchiveSwitcher: boolean = true;\n @Input() showSearhText: boolean = true;\n @Input() customFilterElements: CustomFilterElement[];\n @Input() filterService: ActivityFilterService;\n\n public filter: ActivityFilter;\n public FieldTypes = FieldTypes;\n\n constructor(private translate: TranslateService) {}\n\n ngOnInit(): void {\n this.customFilterElements?.forEach(\n (element) =>\n (element.valueField = element.valueField\n ? element.valueField\n : defaultValueField)\n );\n this.filterService.filter$.subscribe((filter) => {\n this.filter = filter;\n this.changeFilter();\n });\n }\n\n ngOnChanges(): void {\n this.changeFilter();\n }\n\n public defaultNamedModel: NamedModel = {\n name: this.translate.instant(allKey),\n id: null,\n };\n\n public setTodayFilter() {\n this.filterService.setToday();\n }\n\n public clearFilter() {\n this.customFilterElements?.forEach((element) => {\n element.filter.value = null;\n if (element.filter.values) {\n element.filter.values = [];\n }\n });\n this.filterService.reset();\n this.emitChangeEvents();\n }\n\n public applyFilter() {\n this.setCustomFilters();\n this.filterService.applyFilter(this.filter);\n }\n\n public fieldChange(\n value: string | number | boolean | string[],\n element: CustomFilterElement\n ) {\n if (element.change) {\n element.change(value);\n }\n }\n\n private fillFilter() {\n if (!this.filter) {\n return;\n }\n\n this.customFilterElements?.forEach((element) => {\n element.filter = { ...element.filter, value: null, values: null };\n });\n\n this.filter.customFilters?.forEach((filter) => {\n const element = this.customFilterElements?.find(\n (x) =>\n x.filter.field === filter.field &&\n x.filter.filterTarget === filter.filterTarget\n );\n if (element) {\n element.filter = Object.assign({}, filter);\n }\n });\n }\n\n private setCustomFilters() {\n this.customFilterElements?.forEach((element) => {\n const index = this.filter.customFilters?.findIndex(\n (x) => x.field === element.filter.field\n );\n if (index !== -1) {\n this.filter.customFilters.splice(index, 1);\n }\n });\n\n this.customFilterElements?.forEach((element) =>\n this.filter.customFilters.push(element.filter)\n );\n }\n\n private fixMultiselectFilters() {\n const multiSelectFilters = this.customFilterElements?.map((element) => {\n if (element.fieldType === FieldTypes.Multiselect) {\n return element.filter;\n }\n });\n if (multiSelectFilters) {\n multiSelectFilters.forEach((filter) => {\n if (filter?.value) {\n filter.values = [filter.value as string];\n filter.value = null;\n }\n });\n }\n }\n\n private changeFilter() {\n this.fillFilter();\n this.fixMultiselectFilters();\n this.emitChangeEvents();\n }\n\n private emitChangeEvents() {\n this.customFilterElements?.forEach((element) => {\n if (element.filter.value || element.filter.values) {\n this.fieldChange(\n element.filter.value ?? element.filter.values,\n element\n );\n }\n });\n }\n}\n","import { Component, ViewChild, TemplateRef } from '@angular/core';\nimport { DialogService, DialogRef } from '@progress/kendo-angular-dialog';\n\n@Component({\n selector: 'confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.css'],\n})\nexport class ConfirmDialogComponent {\n private dialog: DialogRef;\n private callback: () => void;\n @ViewChild('dialogActions', { static: true })\n public dialogActions: TemplateRef<any>;\n constructor(private dialogService: DialogService) {}\n\n cancel(): void {\n this.dialog.close();\n this.callback = undefined;\n }\n\n confirm() {\n this.callback();\n this.cancel();\n }\n\n public open(content: string, callback: () => void) {\n this.callback = callback;\n this.dialog = this.dialogService.open({\n content,\n actions: this.dialogActions,\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport * as momentModule from 'moment-timezone';\nconst moment = momentModule;\n\n@Component({\n selector: 'current-timezone',\n templateUrl: './current-timezone.component.html',\n styleUrls: ['./current-timezone.component.css'],\n})\nexport class CurrentTimezoneComponent implements OnInit {\n public timeZoneAndOffset: string;\n constructor() {}\n\n ngOnInit(): void {\n const timeZone = moment.tz.guess();\n this.timeZoneAndOffset = timeZone + ' ' + moment().format('Z');\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n selector: 'entity-edit-buttons-bar',\n templateUrl: './buttons-bar.component.html',\n styleUrls: ['./buttons-bar.component.css'],\n})\nexport class EntityEditButtonsBarComponent {\n @Input()\n public valid: boolean;\n @Output()\n public save = new EventEmitter<boolean>();\n}\n","import { OnInit, ViewChild, Component, Input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { FormControl } from '@angular/forms';\nimport { IFormAdapter } from './IFormAdapter';\nimport { FormGroupWithErrors } from '../../angular/forms/extensions/FormGroupWithErrors';\nimport { GeneralErrorsComponent } from '../../angular/forms/widgets/general-errors/general-errors.component';\nimport { IdentifiedModel } from '../../angular/models/IdentifiedModel';\nimport { finalize } from 'rxjs/operators';\n\n@Component({\n selector: 'entity-edit-form',\n templateUrl: './entity-edit-form.component.html',\n styleUrls: ['./entity-edit-form.component.css'],\n})\nexport class EntityEditFormComponent implements OnInit {\n public formGroup: FormGroupWithErrors;\n @ViewChild('general_errors')\n generalErrors: GeneralErrorsComponent;\n @Input()\n title: string;\n @Input()\n adapter: IFormAdapter<IdentifiedModel>;\n\n public saveInProgress: boolean;\n\n constructor(private route: ActivatedRoute) {\n this.saveInProgress = false;\n }\n\n ngOnInit() {\n this.route.params.subscribe((params: IdentifiedModel) => {\n this.formGroup = null;\n const formGroup = new FormGroupWithErrors({});\n if (params.id) {\n this.adapter\n .getService()\n .get(params.id)\n .subscribe((model) => {\n formGroup.addControl('id', new FormControl(model.id));\n for (const key of Object.keys(model)) {\n formGroup.addControl(key, new FormControl(model[key]));\n }\n\n this.adapter.setForm(formGroup);\n this.formGroup = formGroup;\n });\n } else {\n this.adapter.setForm(formGroup);\n this.formGroup = formGroup;\n }\n });\n }\n\n save(): void {\n this.saveInProgress = true;\n this.adapter\n .getService()\n .save(this.adapter.getValue())\n .pipe(finalize(() => (this.saveInProgress = false)))\n .subscribe(\n (result: IdentifiedModel) => {\n this.adapter.onSaved(result);\n },\n (error: HttpErrorResponse) => {\n this.formGroup.applyServerErrors(error.error, this.formGroup);\n this.generalErrors.setErrors(this.formGroup.generalErrors);\n }\n );\n }\n}\n","import { Component, Input, ElementRef, OnChanges } from '@angular/core';\nimport {\n ControlContainer,\n FormGroupDirective,\n AbstractControl,\n} from '@angular/forms';\nimport { CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { FieldComponent } from '../../../angular/forms/widgets/field/field.component';\nimport { IdentifiedModel } from '../../../angular/models/IdentifiedModel';\nimport { NamedModel } from '../../../angular/models/NamedModel';\nimport { IEntityService } from '../../../services/IEntityService';\n\n@Component({\n selector: 'field-dropdown',\n templateUrl: './field-dropdown.component.html',\n styleUrls: ['./field-dropdown.component.css'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class FieldDropdownComponent\n extends FieldComponent<string>\n implements OnChanges\n{\n @Input()\n service: IEntityService<NamedModel>;\n @Input()\n rebind: string;\n @Input()\n filter?: CompositeFilterDescriptor;\n data: IdentifiedModel[] = [];\n get control(): AbstractControl {\n return this.parent.form.get(this.fieldName);\n }\n\n constructor(public parent: FormGroupDirective, public eref: ElementRef) {\n super(parent, eref, '');\n }\n\n async ngOnChanges(): Promise<void> {\n await this.getData();\n this.control.setValue(\n (this.data.find((d) => d.id === this.control.value) || this.data[0]).id\n );\n }\n\n private getData() {\n this.service\n .getPage(this.filter ? { filter: this.filter } : {})\n .subscribe((data) => (this.data = data.data));\n }\n}\n","import { Component, Input, ElementRef, OnChanges } from '@angular/core';\nimport {\n ControlContainer,\n FormGroupDirective,\n AbstractControl,\n} from '@angular/forms';\nimport { CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { FieldComponent } from '../../../angular/forms/widgets/field/field.component';\nimport { IdentifiedModel } from '../../../angular/models/IdentifiedModel';\nimport { NamedModel } from '../../../angular/models/NamedModel';\nimport { IEntityService } from '../../../services/IEntityService';\n\n@Component({\n selector: 'field-multiselect',\n templateUrl: './field-multiselect.component.html',\n styleUrls: ['./field-multiselect.component.css'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class FieldMultiSelectComponent\n extends FieldComponent<string[]>\n implements OnChanges\n{\n @Input()\n service: IEntityService<NamedModel>;\n @Input()\n rebind: string;\n @Input()\n filter?: CompositeFilterDescriptor;\n data: IdentifiedModel[] = [];\n get control(): AbstractControl {\n return this.parent.form.get(this.fieldName);\n }\n\n constructor(public parent: FormGroupDirective, public eref: ElementRef) {\n super(parent, eref, []);\n }\n\n ngOnChanges(): void {\n this.getData().subscribe((data) => {\n this.data = data.data;\n this.control.setValue(\n this.control.value.filter(\n (x: string) => this.data.filter((d) => d.id === x).length\n )\n );\n });\n }\n\n private getData() {\n return this.service.getPage(this.filter ? { filter: this.filter } : {});\n }\n}\n","import {\n CompositeFilterDescriptor,\n FilterDescriptor,\n} from '@progress/kendo-data-query';\n\nexport const urlSerialize = (object: object): string => {\n let serialized = '';\n Object.keys(object).forEach((key) => {\n if (typeof object[key] === 'object') {\n const serializedObject = !isEmptyObject(object[key])\n ? JSON.stringify(object[key])\n : '';\n serialized += serializedObject ? `${key}=${serializedObject}&` : '';\n } else {\n serialized +=\n object[key] || object[key] === 0 ? `${key}=${object[key]}&` : '';\n }\n });\n\n return serialized.slice(0, -1);\n};\n\nconst isEmptyObject = (object: object): boolean => {\n return object === null || Object.keys(object).length === 0;\n};\n\nconst isDate = (date) => isNaN(date) && !isNaN(Date.parse(date));\n\nexport const urlDeserialize = (params: URLSearchParams) => {\n const deserialized = {};\n params.forEach((param, key) => {\n if (key === 'sort' || key === 'group') {\n deserialized[key] = JSON.parse(param);\n } else if (key === 'filter') {\n deserialized[key] = transformFilter(JSON.parse(param));\n } else {\n deserialized[key] = param;\n }\n });\n\n return deserialized;\n};\n\nfunction transformFilter(\n gridFilter: CompositeFilterDescriptor\n): CompositeFilterDescriptor {\n transformFilters(gridFilter);\n\n return gridFilter;\n}\n\nfunction transformFilters(gridFilter: CompositeFilterDescriptor) {\n if (gridFilter.filters.length) {\n gridFilter.filters.forEach(\n (filter: CompositeFilterDescriptor | FilterDescriptor) => {\n let filterDescriptor = filter as FilterDescriptor;\n filterDescriptor.value = isDate(filterDescriptor.value)\n ? new Date(filterDescriptor.value)\n : filterDescriptor.value;\n\n let compositeFilterDescriptor = filter as CompositeFilterDescriptor;\n if (compositeFilterDescriptor.filters) {\n transformFilters(compositeFilterDescriptor);\n }\n }\n );\n }\n}\n","import { Observable } from 'rxjs';\nimport {\n Component,\n OnInit,\n ViewChild,\n Input,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n Output,\n} from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport {\n State,\n FilterDescriptor,\n CompositeFilterDescriptor,\n SortDescriptor,\n} from '@progress/kendo-data-query';\nimport {\n DataStateChangeEvent,\n RowClassArgs,\n} from '@progress/kendo-angular-grid';\nimport { Field } from './Field';\nimport { Command } from './Command';\nimport { urlDeserialize, urlSerialize } from './UrlSerializer';\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { IEntityService } from '../../services/IEntityService';\nimport { Page } from '../../models/Page';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NamedModel } from '../../angular/models/NamedModel';\nimport { IdentifiedModel } from '../../angular/models/IdentifiedModel';\n\nconst nameField = 'name';\n\n@Component({\n selector: 'entity-list',\n templateUrl: './entity-list.component.html',\n styleUrls: ['./entity-list.component.css'],\n})\nexport class EntityListComponent implements OnInit, OnChanges {\n @Input()\n public service: IEntityService<NamedModel>;\n @Input()\n public filters: Array<FilterDescriptor | CompositeFilterDescriptor>;\n @Input()\n public fields?: Field[];\n @Input()\n public commands?: Command[];\n @Input()\n public rowClass?: (dataItem: NamedModel, index: number) => {};\n @Input()\n public defaultSort?: SortDescriptor[];\n @Output()\n public filterChange = new EventEmitter<CompositeFilterDescriptor>();\n @ViewChild('confirmDialog', { static: true })\n public dialog: ConfirmDialogComponent;\n public gridState: State = {};\n public page: Page<NamedModel>;\n public loadings = 0;\n public searchTerm: string;\n public selected: string[] = [];\n public gridFields: Field[] = [];\n private defaultFields: Field[] = [\n { name: 'name', label: 'Name', sortable: true, position: 0 },\n ];\n\n constructor(\n private translate: TranslateService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n this.getAllData = this.getAllData.bind(this);\n this.getRowClass = this.getRowClass.bind(this);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.filters || changes.filters.firstChange) {\n return;\n }\n\n this.getFilteredData();\n }\n\n async ngOnInit() {\n this.gridFields = (this.fields || [])\n .concat(this.defaultFields)\n .sort((left, right) => (left.position || 0) - (right.position || 0));\n this.filters = this.filters ? this.filters : [];\n this.commands = this.commands ? this.commands : [];\n this.route.fragment.subscribe(async (fragment: string) => {\n await this.restoreGridState(new URLSearchParams(fragment));\n });\n\n this.route.firstChild.params.subscribe(async (params: Params) => {\n if (params.id) {\n this.selected[0] = params.id;\n } else {\n this.selected.pop();\n }\n });\n }\n\n public removeHandler({ dataItem }) {\n this.dialog.open(\n this.translate.instant('Confirmation.Delete') +\n ': \"' +\n dataItem.name +\n '\"?',\n () => this.remove(dataItem)\n );\n }\n\n public selectItem({ dataItem }) {\n this.router.navigate([dataItem.id], {\n relativeTo: this.route,\n fragment: urlSerialize(this.gridState),\n });\n }\n\n public onActivate(child: { saved: EventEmitter<NamedModel> }) {\n if (child.saved) {\n child.saved.subscribe((data: { id: string; name: string }) =>\n this.updateGrid(data)\n );\n }\n }\n\n public onDeactivate(child: { saved: EventEmitter<NamedModel> }) {\n if (child.saved) {\n child.saved.unsubscribe();\n }\n }\n\n public dataStateChange(state: DataStateChangeEvent) {\n Object.keys(state).forEach((key) => {\n this.gridState[key] = isNaN(state.skip)\n ? this.gridState[key]\n : state[key];\n });\n\n this.router.navigate([], {\n relativeTo: this.route,\n fragment: urlSerialize(this.gridState),\n });\n }\n\n public onSearch(value: string) {\n this.searchTerm = value;\n this.gridState.skip = 0;\n this.getFilteredData();\n }\n\n public getAllData(): Observable<Page<NamedModel>> {\n const state = Object.assign({}, this.gridState);\n delete state.skip;\n delete state.take;\n\n return this.service.getPage(state);\n }\n\n public getRowClass(context: RowClassArgs): Object {\n return this.rowClass && context\n ? this.rowClass(context.dataItem, context.index)\n : {};\n }\n\n private getFilteredData() {\n this.gridState.filter = this.getFilter();\n this.router.navigate([], {\n relativeTo: this.route,\n fragment: urlSerialize(this.gridState),\n });\n }\n\n protected updateGrid(data: NamedModel) {\n const exists = this.page.data.filter((x) => x.id === data.id);\n if (exists.length) {\n this.page.data[this.page.data.indexOf(exists[0])] = data;\n\n return;\n }\n\n this.page.total++;\n this.page.data.splice(0, 0, data);\n if (this.page.data.length > this.gridState.take) {\n this.page.data.splice(this.page.data.length - 1, 1);\n }\n\n this.selected[0] = data.id;\n this.router.navigate([data.id], {\n relativeTo: this.route,\n preserveFragment: true,\n });\n }\n\n private async remove(entity: IdentifiedModel) {\n this.loadings++;\n this.service.delete(entity.id).subscribe(() => {\n if (\n this.selected.length &&\n this.selected[this.selected.length - 1] === entity.id\n ) {\n this.router.navigate(['../'], {\n preserveFragment: true,\n relativeTo: this.route.firstChild,\n });\n }\n this.loadings--;\n });\n this.getData();\n }\n\n protected getData() {\n this.loadings++;\n this.service.getPage(this.gridState).subscribe((page) => {\n this.page = page;\n this.loadings--;\n });\n }\n\n private getFilter(): CompositeFilterDescriptor {\n const filter: CompositeFilterDescriptor = {\n logic: 'and',\n filters: this.searchTerm\n ? [\n { field: nameField, operator: 'contains', value: this.searchTerm },\n ...this.filters,\n ]\n : this.filters,\n };\n\n return filter;\n }\n\n private onFilterChange() {\n const filter: any = this.gridState.filter?.filters.find(\n (x: FilterDescriptor) => x.field === nameField\n );\n this.searchTerm = filter?.value;\n this.filterChange.emit(this.gridState.filter);\n }\n\n private async restoreGridState(params: URLSearchParams) {\n const defaultGridState: State = {\n sort: this.defaultSort || [{ field: nameField, dir: 'asc' }],\n skip: 0,\n take: 10,\n };\n\n const state = urlDeserialize(params);\n this.gridState = state.hasOwnProperty('take') ? state : defaultGridState;\n this.onFilterChange();\n this.getData();\n }\n}\n","import {\n Component,\n Input,\n Output,\n OnInit,\n EventEmitter,\n ViewChild,\n} from '@angular/core';\nimport { DropDownListComponent } from '@progress/kendo-angular-dropdowns';\nimport { IEntityService } from '../../../services/IEntityService';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { NamedModel } from '../../../angular/models/NamedModel';\n\nconst All = 'All';\n\n@Component({\n selector: 'field-dropdownlist',\n templateUrl: './field-dropdownlist.component.html',\n styleUrls: ['./field-dropdownlist.component.css'],\n})\nexport class FieldDropdownlistComponent implements OnInit {\n @Input()\n service: IEntityService<NamedModel>;\n @Input()\n label: string;\n @Output()\n valueChange = new EventEmitter<NamedModel>();\n @ViewChild('inputElement')\n private kendoDropDown: DropDownListComponent;\n private initialSelectedId: string;\n\n public defaultItem: NamedModel;\n public data: NamedModel[];\n\n constructor(private translate: TranslateService) {}\n\n async ngOnInit(): Promise<void> {\n this.defaultItem = { id: null, name: this.translate.instant(All) };\n await this.getData();\n this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\n this.defaultItem = { id: null, name: this.translate.instant(All) };\n });\n }\n\n private getData() {\n this.service.getPage({}).subscribe((data) => {\n this.data = data.data;\n if (this.initialSelectedId) {\n const selectedItem = this.data.find(\n (x) => x.id === this.initialSelectedId\n );\n\n if (selectedItem) {\n this.kendoDropDown.writeValue(selectedItem);\n }\n }\n });\n }\n\n onValueChange(event: NamedModel) {\n this.valueChange.emit(event);\n }\n\n public initSelectedId(id: string): void {\n this.initialSelectedId = id;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'excel-export-button',\n templateUrl: './excel-export-button.component.html',\n styleUrls: ['./excel-export-button.component.css'],\n})\nexport class ExcelExportButtonComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'footer-bar',\n templateUrl: './footer-bar.component.html',\n styleUrls: ['./footer-bar.component.css'],\n})\nexport class FooterBarComponent {}\n","import { Component, Input } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'modal-window',\n templateUrl: './modal-window.component.html',\n styleUrls: ['./modal-window.component.css'],\n})\nexport class ModalWindowComponent {\n @Input() callbackPath: string;\n\n constructor(protected route: ActivatedRoute, private router: Router) {}\n\n public opened: boolean = true;\n\n public close() {\n this.opened = false;\n this.router.navigate([this.callbackPath], {\n relativeTo: this.route,\n fragment: this.route.snapshot?.fragment,\n });\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n AfterViewInit,\n} from '@angular/core';\nimport {\n CompositeFilterDescriptor,\n distinct,\n filterBy,\n FilterDescriptor,\n} from '@progress/kendo-data-query';\nimport { FilterService } from '@progress/kendo-angular-grid';\nimport { NamedModel } from '../../angular/models/NamedModel';\n\nconst defaultValueKey = 'id';\n\n@Component({\n selector: 'multicheck-filter',\n templateUrl: './multicheck-filter.component.html',\n styleUrls: ['./multicheck-filter.component.css'],\n})\nexport class MulticheckFilterComponent implements AfterViewInit {\n @Input() public currentFilter: CompositeFilterDescriptor;\n @Input() public data: NamedModel[];\n @Input() public filterService: FilterService;\n @Input() public field: string;\n @Input() public valueField: string;\n @Output() public valueChange = new EventEmitter<number[]>();\n\n public currentData: NamedModel[];\n public showFilter = true;\n private value: string[] = [];\n private filters: FilterDescriptor[] = [];\n private get ValueKey(): string {\n return this.valueField ? this.valueField : defaultValueKey;\n }\n\n public ngAfterViewInit() {\n this.currentData = this.data;\n if (this.currentData && this.currentData.length) {\n this.traverseFilters(this.currentFilter);\n this.value = this.filters.map((f: FilterDescriptor) => f.value);\n this.showFilter = typeof this.currentData[0].name === 'string';\n }\n }\n\n traverseFilters(filters: CompositeFilterDescriptor | FilterDescriptor) {\n let compositeFilterDescriptor = filters as CompositeFilterDescriptor;\n if (compositeFilterDescriptor.filters) {\n for (let i = 0; i < compositeFilterDescriptor.filters.length; i++) {\n const innerFilter = compositeFilterDescriptor.filters[\n i\n ] as FilterDescriptor;\n if (innerFilter.value && innerFilter.field === this.field) {\n this.filters.push(innerFilter);\n }\n\n this.traverseFilters(innerFilter);\n }\n }\n }\n\n public isItemSelected(item: NamedModel) {\n return this.value.some((x) => x === item[this.ValueKey]);\n }\n\n public onSelectionChange(item: NamedModel) {\n const selectedValue = item[this.ValueKey];\n if (this.value.some((x) => x === selectedValue)) {\n this.value = this.value.filter((x) => x !== selectedValue);\n } else {\n this.value.push(selectedValue);\n }\n\n this.filterService.filter({\n filters: this.value.map((value) => ({\n field: this.field,\n operator: 'eq',\n value,\n })),\n logic: 'or',\n });\n }\n\n public onInput(e: any) {\n this.currentData = distinct(\n [\n ...this.currentData.filter((dataItem) =>\n this.value.some((val) => val === dataItem.id)\n ),\n ...filterBy(this.data, {\n operator: 'contains',\n field: 'name',\n value: e.target.value,\n }),\n ],\n 'name'\n );\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Member } from '../../models/Member';\n\n@Component({\n selector: 'top-bar',\n templateUrl: './top-bar.component.html',\n styleUrls: ['./top-bar.component.css'],\n})\nexport class TopMenuComponent {\n @Input()\n currentUser: Member;\n\n public toggleButtonClick() {\n document.body.classList.toggle('mini-navbar');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { MsalModule, MsalService, MSAL_INSTANCE } from '@azure/msal-angular';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\nimport { DialogsModule, WindowModule } from '@progress/kendo-angular-dialog';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { ExcelModule, GridModule } from '@progress/kendo-angular-grid';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\nimport { PopupModule } from '@progress/kendo-angular-popup';\nimport { TooltipModule } from '@progress/kendo-angular-tooltip';\nimport {\n OAuthModule,\n OAuthModuleConfig,\n OAuthStorage,\n} from 'angular-oauth2-oidc';\nimport { IndiginaModule } from './angular/indigina.module';\nimport { AppSettings } from './angular/models/AppSettings';\nimport { IndiginaConfiguration } from './angular/models/IndiginaConfiguration';\nimport { LiveUpdatesControlComponent } from './angular/widgets/live-updates-control/live-updates-control.component';\nimport { AccountMenuComponent } from './components/account-menu/account-menu.component';\nimport { AzureLoginCallbackComponent } from './components/azure-login-callback/azure-login-callback.component';\nimport { LanguageSelectorComponent } from './components/language-selector/language-selector.component';\nimport { MSALInstanceFactory } from './config/msal-instance.factory';\nimport { RequirePermissionDirective } from './directives/requirePermission.directive';\nimport { AuthHeadersInterceptor } from './interceptors/auth-headers.interceptor';\nimport { AccountService } from './services/account.service';\nimport { PermissionsService } from './services/permissions.service';\nimport { SignalRService } from './services/signalr/signalr.service';\nimport { ActivityFilterComponent } from './widgets/activity-filter/activity-filter.component';\nimport { ConfirmDialogComponent } from './widgets/confirm-dialog/confirm-dialog.component';\nimport { CurrentTimezoneComponent } from './widgets/current-timezone/current-timezone.component';\nimport { EntityEditButtonsBarComponent } from './widgets/entity-edit/buttons-bar/buttons-bar.component';\nimport { EntityEditFormComponent } from './widgets/entity-edit/entity-edit-form.component';\nimport { FieldDropdownComponent } from './widgets/entity-edit/field-dropdown/field-dropdown.component';\nimport { FieldMultiSelectComponent } from './widgets/entity-edit/field-multiselect/field-multiselect.component';\nimport { EntityListComponent } from './widgets/entity-list/entity-list.component';\nimport { FieldDropdownlistComponent } from './widgets/entity-list/field-dropdownlist/field-dropdownlist.component';\nimport { ExcelExportButtonComponent } from './widgets/excel-export-button/excel-export-button.component';\nimport { FooterBarComponent } from './widgets/footer-bar/footer-bar.component';\nimport { ModalWindowComponent } from './widgets/modal-window/modal-window.component';\nimport { MulticheckFilterComponent } from './widgets/multicheck-filter/multicheck-filter.component';\nimport { TopMenuComponent } from './widgets/top-bar/top-bar.component';\n\n@NgModule({\n declarations: [\n TopMenuComponent,\n FooterBarComponent,\n AccountMenuComponent,\n LanguageSelectorComponent,\n EntityEditButtonsBarComponent,\n EntityEditFormComponent,\n EntityListComponent,\n FieldDropdownComponent,\n FieldMultiSelectComponent,\n FieldDropdownlistComponent,\n ConfirmDialogComponent,\n ExcelExportButtonComponent,\n MulticheckFilterComponent,\n RequirePermissionDirective,\n ActivityFilterComponent,\n CurrentTimezoneComponent,\n ModalWindowComponent,\n LiveUpdatesControlComponent,\n AzureLoginCallbackComponent,\n ],\n imports: [\n CommonModule,\n RouterModule,\n IndiginaModule,\n OAuthModule.forRoot(),\n PopupModule,\n GridModule,\n ExcelModule,\n InputsModule,\n ButtonsModule,\n DialogsModule,\n CommonModule,\n FormsModule,\n WindowModule,\n DialogsModule,\n ReactiveFormsModule,\n DropDownsModule,\n TooltipModule,\n DateInputsModule,\n MsalModule,\n ],\n providers: [\n { provide: OAuthStorage, useValue: localStorage },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthHeadersInterceptor,\n multi: true,\n },\n AccountService,\n PermissionsService,\n SignalRService,\n MsalService,\n ],\n exports: [\n TopMenuComponent,\n FooterBarComponent,\n AccountMenuComponent,\n LanguageSelectorComponent,\n IndiginaModule,\n PopupModule,\n OAuthModule,\n DropDownsModule,\n TooltipModule,\n DateInputsModule,\n WindowModule,\n DialogsModule,\n PopupModule,\n GridModule,\n ExcelModule,\n InputsModule,\n ButtonsModule,\n EntityEditButtonsBarComponent,\n EntityEditFormComponent,\n EntityListComponent,\n FieldDropdownComponent,\n FieldMultiSelectComponent,\n FieldDropdownlistComponent,\n ConfirmDialogComponent,\n ExcelExportButtonComponent,\n MulticheckFilterComponent,\n RequirePermissionDirective,\n ActivityFilterComponent,\n CurrentTimezoneComponent,\n ModalWindowComponent,\n LiveUpdatesControlComponent,\n MsalModule,\n AzureLoginCallbackComponent,\n ],\n})\nexport class KendoModule {\n public static forRoot(\n config: IndiginaConfiguration\n ): ModuleWithProviders<KendoModule> {\n return {\n ngModule: KendoModule,\n providers: [\n {\n provide: IndiginaConfiguration,\n useValue: config,\n },\n {\n provide: OAuthModuleConfig,\n useValue: {\n resourceServer: {\n allowedUrls: [config.appSettings.apiUrl],\n sendAccessToken: true,\n },\n },\n },\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALInstanceFactory,\n deps: [IndiginaConfiguration],\n },\n ],\n };\n }\n}\n\nexport function OAuthConfigFactory(\n appSettings: AppSettings\n): OAuthModuleConfig {\n return {\n resourceServer: {\n allowedUrls: [appSettings?.apiUrl],\n sendAccessToken: true,\n },\n };\n}\n","export enum FilterTargets {\n Url,\n Grid,\n}\n","export enum MemberTypes {\n Admin = 'Admin',\n User = 'User'\n}\n","export enum Operators {\n eq = 'eq',\n neq = 'neq',\n isnull = 'isnull',\n isnotnull = 'isnotnull',\n lt = 'lt',\n lte = 'lte',\n gt = 'gt',\n gte = 'gte',\n startswith = 'startswith',\n endswith = 'endswith',\n contains = 'contains',\n doesnotcontain = 'doesnotcontain',\n isempty = 'isempty',\n isnotempty = 'isnotempty',\n}\n","export enum PermissionTypes {\n Create = 'Create',\n Delete = 'Delete',\n Edit = 'Edit',\n View = 'View',\n Set = 'Set',\n}\n","import { State, CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { ActivityFilter } from '../../models/ActivityFilter';\nimport { FilterTargets } from '../../models/FilterTargets';\nimport { Operators } from '../../models/Operators';\nexport class FilterConverter {\n public static toGridState(\n filter: ActivityFilter,\n DateFilterFieldName: string\n ): State {\n const gridState: State = {\n filter: {\n logic: 'and',\n filters: [],\n },\n };\n const mainFilter: CompositeFilterDescriptor = {\n logic: 'and',\n filters: [],\n };\n gridState.skip = filter.skip;\n gridState.take = filter.take;\n if (filter.group) {\n gridState.group = filter.group;\n }\n\n if (filter.sort) {\n gridState.sort = filter.sort;\n } else {\n gridState.sort = [{ field: DateFilterFieldName, dir: 'desc' }];\n }\n\n if (filter.dateFrom) {\n mainFilter.filters.push({\n operator: Operators.gte,\n field: DateFilterFieldName,\n value: filter.dateFrom,\n });\n }\n\n if (filter.dateTo) {\n mainFilter.filters.push({\n operator: Operators.lte,\n field: DateFilterFieldName,\n value: filter.dateTo,\n });\n }\n\n filter.customFilters?.forEach((x) => {\n if (x.filterTarget === FilterTargets.Grid) {\n if (x.values && x.values.length) {\n const multiselectFilter: CompositeFilterDescriptor = {\n logic: 'or',\n filters: [],\n };\n x.values.forEach((value) => {\n multiselectFilter.filters.push({\n operator: x.operator,\n field: x.field,\n value,\n });\n });\n\n gridState.filter.filters.push(multiselectFilter);\n } else {\n if (x.value !== null && typeof x.value !== 'undefined') {\n mainFilter.filters.push({\n operator: x.operator,\n field: x.field,\n value: x.value,\n });\n }\n }\n }\n });\n\n if (mainFilter.filters.length) {\n if (gridState.filter.filters.length) {\n gridState.filter.filters.push(mainFilter);\n } else {\n gridState.filter.filters = mainFilter.filters;\n }\n }\n\n return gridState;\n }\n}\n","import { FilterConverter } from '../widgets/activity-filter/FilterConverter';\nimport {\n urlDeserialize,\n urlSerialize,\n} from '../widgets/entity-list/UrlSerializer';\nimport { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport {\n CompositeFilterDescriptor,\n FilterDescriptor,\n State,\n} from '@progress/kendo-data-query';\nimport { ActivityFilter } from '../models/ActivityFilter';\nimport { FilterTargets } from '../models/FilterTargets';\nimport { Operators } from '../models/Operators';\nimport { CustomFilter } from '../models/CustomFilter';\n\nconst filterKey = 'filter';\nconst filtersKey = 'filters';\nconst dateToKey = 'dateTo';\nconst dateFromKey = 'dateFrom';\nconst customFiltersKey = 'customFilters';\nconst nullKey = 'null';\n\n@Injectable()\nexport class ActivityFilterService {\n public currentFilter: ActivityFilter;\n public currentGridState: State;\n\n private readonly defaultFilter: ActivityFilter = {\n dateTo: null,\n dateFrom: null,\n switchToArchive: false,\n searchText: '',\n skip: 0,\n take: 10,\n };\n\n protected DateFilterStartFieldName = 'start';\n protected filterBehavior = new BehaviorSubject<ActivityFilter>(\n this.defaultFilter\n );\n protected gridStateBehavior = new BehaviorSubject<State>(\n FilterConverter.toGridState(\n this.defaultFilter,\n this.DateFilterStartFieldName\n )\n );\n\n public filter$ = this.filterBehavior.asObservable();\n public gridState$ = this.gridStateBehavior.asObservable();\n\n constructor(private route: ActivatedRoute, private router: Router) {\n this.currentFilter = Object.assign({}, this.defaultFilter);\n this.route.fragment.subscribe(async (fragment: string) => {\n const parsed = urlDeserialize(new URLSearchParams(fragment));\n if (Object.keys(parsed).some((key) => key === filterKey)) {\n this.currentGridState = parsed as State;\n this.fillCurrentFilter(parsed);\n } else {\n this.clearFilter();\n this.setTodayDates();\n this.currentGridState = FilterConverter.toGridState(\n this.currentFilter,\n this.DateFilterStartFieldName\n );\n }\n\n this.filterBehavior.next(this.currentFilter);\n });\n\n this.filter$.subscribe((filter) => {\n this.gridStateBehavior.next(\n FilterConverter.toGridState(filter, this.DateFilterStartFieldName)\n );\n });\n }\n\n public reset() {\n this.clearFilter();\n this.applyFilter(this.currentFilter);\n this.gridStateBehavior.next(this.currentGridState);\n }\n\n public setFilter(filter: ActivityFilter) {\n this.currentFilter.skip = 0;\n this.currentFilter = Object.assign(filter);\n this.currentGridState = FilterConverter.toGridState(\n this.currentFilter,\n this.DateFilterStartFieldName\n );\n }\n\n public applyFilter(filter: ActivityFilter) {\n this.setFilter(filter);\n this.stateNavigation(this.prepareFilterToSerialize());\n }\n\n public setToday() {\n this.setTodayDates();\n this.applyFilter(this.currentFilter);\n }\n\n public clearFilter() {\n if (this.currentFilter) {\n const customFilters = Object.assign([], this.currentFilter.customFilters);\n customFilters.forEach((x) => {\n x.value = null;\n if (x.values) {\n x.values = [];\n }\n });\n this.currentFilter = Object.assign({}, this.defaultFilter);\n this.currentFilter.customFilters = customFilters;\n } else {\n this.currentFilter = Object.assign({}, this.defaultFilter);\n }\n }\n\n public setGridState(state: State) {\n this.currentGridState = state;\n const { switchToArchive, searchText } = this.currentFilter;\n this.clearFilter();\n this.currentFilter = Object.assign(this.currentFilter, {\n switchToArchive,\n searchText,\n });\n this.fillCurrentFilter(this.currentGridState);\n this.stateNavigation(this.currentGridState);\n }\n\n public setTodayDates() {\n const now = new Date();\n this.currentFilter.dateTo = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate() + 1,\n 0,\n 0,\n 0\n );\n this.currentFilter.dateFrom = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate(),\n 0,\n 0,\n 0\n );\n }\n\n private async stateNavigation(object: Object) {\n const navigate = await this.router.navigate([], {\n relativeTo: this.route,\n fragment: urlSerialize(object),\n });\n if (!navigate) {\n this.filterBehavior.next(this.currentFilter);\n }\n }\n\n private prepareFilterToSerialize(): object {\n const result = {};\n Object.keys(this.currentFilter).forEach((key) => {\n if (\n key !== dateToKey &&\n key !== dateFromKey &&\n key !== customFiltersKey\n ) {\n result[key] = this.currentFilter[key];\n }\n });\n\n this.currentFilter.customFilters?.forEach((filter) => {\n if (filter.filterTarget == FilterTargets.Url) {\n result[filter.field] = filter.value;\n }\n });\n\n result[filterKey] = FilterConverter.toGridState(\n this.currentFilter,\n this.DateFilterStartFieldName\n ).filter;\n\n return result;\n }\n\n private fillCurrentFilter(object: State) {\n this.currentFilter.customFilters = [];\n this.fillFromDescriptor(object.filter);\n Object.keys(object).forEach((key) => {\n if (key !== filterKey && key !== nullKey && key !== filtersKey) {\n if (Object.keys(this.currentFilter).some((x) => x == key)) {\n this.currentFilter[key] = object[key];\n } else {\n this.fillUrlFilter(key, object[key]);\n }\n }\n });\n }\n\n private fillUrlFilter(key: string, val: string) {\n const index = this.currentFilter.customFilters.findIndex(\n (filter) => filter.field == key\n );\n if (index !== -1) {\n this.currentFilter.customFilters[index].value = val;\n } else {\n this.currentFilter.customFilters.push({\n field: key,\n value: val,\n operator: Operators.eq,\n filterTarget: FilterTargets.Url,\n });\n }\n }\n\n private fillFromDescriptor(gridFilter: CompositeFilterDescriptor) {\n gridFilter?.filters.forEach(\n (filter: CompositeFilterDescriptor | FilterDescriptor) => {\n const filterDescriptor = filter as FilterDescriptor;\n if (\n filterDescriptor.field === this.DateFilterStartFieldName &&\n filterDescriptor.operator === Operators.lte\n ) {\n this.currentFilter.dateTo = filterDescriptor.value;\n }\n\n if (\n filterDescriptor.field === this.DateFilterStartFieldName &&\n filterDescriptor.operator === Operators.gte\n ) {\n this.currentFilter.dateFrom = filterDescriptor.value;\n }\n\n if (\n filterDescriptor.field &&\n filterDescriptor.field !== this.DateFilterStartFieldName\n ) {\n this.setFieldFilter({\n field: filterDescriptor.field as string,\n filterTarget: FilterTargets.Grid,\n operator: Operators[filterDescriptor.operator as string],\n value: filterDescriptor.value,\n });\n }\n\n const compositeFilterDescriptor = filter as CompositeFilterDescriptor;\n if (compositeFilterDescriptor.filters) {\n this.fillFromDescriptor(compositeFilterDescriptor);\n }\n }\n );\n }\n\n private setFieldFilter(filter: CustomFilter) {\n const index = this.currentFilter.customFilters.findIndex(\n (x) => x.field === filter.field && x.operator === filter.operator\n );\n if (index !== -1) {\n const values = this.currentFilter.customFilters[index].values;\n const value = this.currentFilter.customFilters[index].value;\n this.currentFilter.customFilters[index].values = values ? values : [];\n if (value) {\n this.currentFilter.customFilters[index].values.push(value as string);\n this.currentFilter.customFilters[index].value = null;\n }\n\n this.currentFilter.customFilters[index].values.push(\n filter.value as string\n );\n } else {\n this.currentFilter.customFilters.push(filter);\n }\n }\n}\n","import { IEntityService } from './IEntityService';\nimport { Page } from '../models/Page';\nimport { IEntityEndpoints } from './IEntityEndpoints';\nimport { Observable } from 'rxjs';\nimport { State } from '@progress/kendo-data-query/dist/npm/state';\nimport { IdentifiedModel } from '../angular/models/IdentifiedModel';\nimport { HttpService } from '../angular/services/http.service';\n\nexport abstract class EntityService<T extends IdentifiedModel>\n implements IEntityService<T>\n{\n constructor(\n protected httpService: HttpService,\n protected endpoints: IEntityEndpoints\n ) {}\n\n getPage(state: State): Observable<Page<T>> {\n return this.httpService.get<Page<T>>(this.endpoints.query(state));\n }\n\n get(id: string): Observable<T> {\n return this.httpService.get<T>(this.endpoints.entityPath(id));\n }\n\n delete(id: string): Observable<object> {\n return this.httpService.delete(this.endpoints.entityPath(id));\n }\n\n save(model: T): Observable<T> {\n if (model.id) {\n return this.httpService.put(this.endpoints.entityPath(model.id), model);\n }\n\n return this.httpService.post(this.endpoints.path, model);\n }\n}\n","import { EventEmitter } from '@angular/core';\nimport { FormGroupWithErrors } from '../../angular/forms/extensions/FormGroupWithErrors';\nimport { IdentifiedModel } from '../../angular/models/IdentifiedModel';\nimport { IEntityService } from '../../services/IEntityService';\nimport { IFormAdapter } from './IFormAdapter';\n\nexport abstract class EntityEditComponent<T extends IdentifiedModel>\n implements IFormAdapter<T>\n{\n form: FormGroupWithErrors;\n saved = new EventEmitter<T>();\n get adapter() {\n return this;\n }\n\n constructor(public service: IEntityService<T>) {}\n\n getValue(): T {\n return this.form.value;\n }\n\n getService(): IEntityService<T> {\n return this.service;\n }\n\n setForm(form: FormGroupWithErrors): void {\n this.form = form;\n }\n\n onSaved(value: T): void {\n this.saved.emit(value);\n }\n}\n","import * as momentModule from 'moment-timezone';\n/*\n * Public API Surface of kendo\n */\nexport * from '@angular/platform-browser/animations';\nexport * from '@azure/msal-angular';\nexport { LogLevel } from '@microsoft/signalr';\nexport * from '@ngx-loading-bar/http-client';\nexport * from '@ngx-translate/core';\nexport {\n OAuthModule,\n OAuthModuleConfig,\n OAuthService,\n OAuthStorage,\n} from 'angular-oauth2-oidc';\nexport * from 'ngx-clipboard';\nexport * from 'ngx-toastr';\nexport { IndiginaModule } from '././lib/angular/indigina.module';\nexport { BaseAccountService } from '././lib/services/base.account.service';\nexport { ISubscriptionControl } from './lib/angular/extensions/ISubscriptionControl';\nexport { ReEntrySubscription } from './lib/angular/extensions/ReEntrySubscription';\nexport { DebounceDirective } from './lib/angular/forms/directives/debounce.directive';\nexport { FormGroupWithErrors } from './lib/angular/forms/extensions/FormGroupWithErrors';\nexport { FieldInputComponent } from './lib/angular/forms/widgets/field/field-input/field-input.component';\nexport { NumberInputComponent } from './lib/angular/forms/widgets/field/field-input/number-input.component';\nexport { FieldComponent } from './lib/angular/forms/widgets/field/field.component';\nexport { GeneralErrorsComponent } from './lib/angular/forms/widgets/general-errors/general-errors.component';\nexport { AppSettings } from './lib/angular/models/AppSettings';\nexport type { CustomHttpErrorResponse } from './lib/angular/models/CustomHttpErrorResponse';\nexport { HttpCodes } from './lib/angular/models/HttpCodes';\nexport { HttpMethods } from './lib/angular/models/HttpMethods';\nexport { IdentifiedModel } from './lib/angular/models/IdentifiedModel';\nexport { IndiginaConfiguration } from './lib/angular/models/IndiginaConfiguration';\nexport { Language } from './lib/angular/models/Language';\nexport { NamedModel } from './lib/angular/models/NamedModel';\nexport { HttpService } from './lib/angular/services/http.service';\nexport { LocaleSettingsService } from './lib/angular/services/locale-settings.service';\nexport { SettingsService } from './lib/angular/services/settings.service';\nexport { AppToastrService } from './lib/angular/services/toastr.service';\nexport { LiveUpdatesControlComponent } from './lib/angular/widgets/live-updates-control/live-updates-control.component';\nexport { MenuItem } from './lib/angular/widgets/side-menu/MenuItem';\nexport { SideMenuComponent } from './lib/angular/widgets/side-menu/side-menu.component';\nexport { TreeViewComponent } from './lib/angular/widgets/tree-view/tree-view.component';\nexport { AccountMenuComponent } from './lib/components/account-menu/account-menu.component';\nexport { AzureLoginCallbackComponent } from './lib/components/azure-login-callback/azure-login-callback.component';\nexport { LanguageSelectorComponent } from './lib/components/language-selector/language-selector.component';\nexport { MSALInstanceFactory } from './lib/config/msal-instance.factory';\nexport { RequirePermissionDirective } from './lib/directives/requirePermission.directive';\nexport { KendoModule } from './lib/kendo.module';\nexport { ActivityFilter } from './lib/models/ActivityFilter';\nexport { AzureB2CSettings } from './lib/models/AzureB2CSettings';\nexport { CustomFilter } from './lib/models/CustomFilter';\nexport { CustomFilterElement } from './lib/models/CustomFilterElement';\nexport { FieldTypes } from './lib/models/FieldTypes';\nexport { FilterTargets } from './lib/models/FilterTargets';\nexport { Member } from './lib/models/Member';\nexport { MemberBase } from './lib/models/MemberBase';\nexport { MemberTypes } from './lib/models/MemberTypes';\nexport { OidcSettings } from './lib/models/OidcSettings';\nexport { Operators } from './lib/models/Operators';\nexport { Page } from './lib/models/Page';\nexport { Permissions } from './lib/models/Permissions';\nexport { PermissionTypes } from './lib/models/PermissionTypes';\nexport { SystemInfo } from './lib/models/SystemInfo';\nexport { AccountService } from './lib/services/account.service';\nexport { ActivityFilterService } from './lib/services/activity.filter.service';\nexport { AuthProviderResolver } from './lib/services/auth-provider.resolver';\nexport { AuthProvider } from './lib/services/auth.providers/AuthProvider';\nexport {\n buildActivityEndpoints,\n buildEntityEndpoints,\n endpoints,\n} from './lib/services/endpoints';\nexport { EntityService } from './lib/services/entity.service';\nexport { IActivityEndpoints } from './lib/services/IActivityEndpoints';\nexport { IEntityEndpoints } from './lib/services/IEntityEndpoints';\nexport { IEntityService } from './lib/services/IEntityService';\nexport { PermissionsService } from './lib/services/permissions.service';\nexport { EventNames } from './lib/services/signalr/EventNames';\nexport { SignalRService } from './lib/services/signalr/signalr.service';\nexport { ActivityFilterComponent } from './lib/widgets/activity-filter/activity-filter.component';\nexport { ConfirmDialogComponent } from './lib/widgets/confirm-dialog/confirm-dialog.component';\nexport { CurrentTimezoneComponent } from './lib/widgets/current-timezone/current-timezone.component';\nexport { EntityEditButtonsBarComponent } from './lib/widgets/entity-edit/buttons-bar/buttons-bar.component';\nexport { EntityEditFormComponent } from './lib/widgets/entity-edit/entity-edit-form.component';\nexport { EntityEditComponent } from './lib/widgets/entity-edit/entity-edit.component';\nexport { FieldDropdownComponent } from './lib/widgets/entity-edit/field-dropdown/field-dropdown.component';\nexport { FieldMultiSelectComponent } from './lib/widgets/entity-edit/field-multiselect/field-multiselect.component';\nexport { Command } from './lib/widgets/entity-list/Command';\nexport { EntityListComponent } from './lib/widgets/entity-list/entity-list.component';\nexport { Field } from './lib/widgets/entity-list/Field';\nexport { FieldDropdownlistComponent } from './lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component';\nexport {\n urlDeserialize,\n urlSerialize,\n} from './lib/widgets/entity-list/UrlSerializer';\nexport { ExcelExportButtonComponent } from './lib/widgets/excel-export-button/excel-export-button.component';\nexport { FooterBarComponent } from './lib/widgets/footer-bar/footer-bar.component';\nexport { ModalWindowComponent } from './lib/widgets/modal-window/modal-window.component';\nexport { MulticheckFilterComponent } from './lib/widgets/multicheck-filter/multicheck-filter.component';\nexport { TopMenuComponent } from './lib/widgets/top-bar/top-bar.component';\nexport const momentTimezone = momentModule;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AppSettingsFactory as ɵc,LocaleServiceSettingsFactory as ɵa,TranslateLoaderFactory as ɵb} from './lib/angular/indigina.module';\nexport {MenuItemGroupComponent as ɵd} from './lib/angular/widgets/side-menu/menu-item-group/menu-item-group.component';\nexport {TreeViewNodePropComponent as ɵf} from './lib/angular/widgets/tree-view/tree-view-node-prop/tree-view-node-prop.component';\nexport {TreeViewNodeComponent as ɵe} from './lib/angular/widgets/tree-view/tree-view-node/tree-view-node.component';\nexport {AuthHeadersInterceptor as ɵg} from './lib/interceptors/auth-headers.interceptor';"],"names":["collapsedEvent","homePath"],"mappings":"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"}
1
+ {"version":3,"file":"indigina-kendo.js","sources":["../../../projects/kendo/src/lib/angular/forms/directives/debounce.directive.ts","../../../projects/kendo/src/lib/angular/forms/widgets/field/field.component.ts","../../../projects/kendo/src/lib/angular/forms/widgets/field/field-input/field-input.component.ts","../../../projects/kendo/src/lib/angular/forms/widgets/field/field-input/number-input.component.ts","../../../projects/kendo/src/lib/angular/forms/widgets/general-errors/general-errors.component.ts","../../../projects/kendo/src/lib/angular/models/AppSettings.ts","../../../projects/kendo/src/lib/angular/models/IndiginaConfiguration.ts","../../../projects/kendo/src/lib/angular/services/locale-settings.service.ts","../../../projects/kendo/src/lib/angular/widgets/side-menu/menu-item-group/menu-item-group.component.ts","../../../projects/kendo/src/lib/angular/widgets/side-menu/side-menu.component.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/models/TreeViewPropTypes.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/tree-view-node-prop/tree-view-node-prop.component.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/models/TreeViewNodeTypes.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/tree-view-node/tree-view-node.component.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/models/ContentTypesFormat.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/AbstractContentResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Converters/EnumTypeGetter.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Converters/JsonConverter.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Resolvers/JsonResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Converters/TextConverter.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Resolvers/TextResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Converters/XmlConverter.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/Resolvers/XmlResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/ContentResolver/ContentResolver.ts","../../../projects/kendo/src/lib/angular/widgets/tree-view/tree-view.component.ts","../../../projects/kendo/src/lib/angular/indigina.module.ts","../../../projects/kendo/src/lib/services/endpoints.ts","../../../projects/kendo/src/lib/services/signalr/EventNames.ts","../../../projects/kendo/src/lib/services/base.account.service.ts","../../../projects/kendo/src/lib/angular/extensions/ReEntrySubscription.ts","../../../projects/kendo/src/lib/angular/forms/extensions/FormGroupWithErrors.ts","../../../projects/kendo/src/lib/angular/models/HttpCodes.ts","../../../projects/kendo/src/lib/angular/models/HttpMethods.ts","../../../projects/kendo/src/lib/angular/services/settings.service.ts","../../../projects/kendo/src/lib/angular/services/toastr.service.ts","../../../projects/kendo/src/lib/angular/services/http.service.ts","../../../projects/kendo/src/lib/angular/widgets/live-updates-control/live-updates-control.component.ts","../../../projects/kendo/src/lib/models/AuthProviders.ts","../../../projects/kendo/src/lib/services/auth.providers/AuthProvider.ts","../../../projects/kendo/src/lib/services/auth.providers/azureb2c.provider.ts","../../../projects/kendo/src/lib/services/auth.providers/oauth.provider.ts","../../../projects/kendo/src/lib/services/auth-provider.resolver.ts","../../../projects/kendo/src/lib/services/signalr/signalr.service.ts","../../../projects/kendo/src/lib/services/account.service.ts","../../../projects/kendo/src/lib/components/account-menu/account-menu.component.ts","../../../projects/kendo/src/lib/components/azure-login-callback/azure-login-callback.component.ts","../../../projects/kendo/src/lib/components/language-selector/language-selector.component.ts","../../../projects/kendo/src/lib/config/msal-instance.factory.ts","../../../projects/kendo/src/lib/services/permissions.service.ts","../../../projects/kendo/src/lib/directives/requirePermission.directive.ts","../../../projects/kendo/src/lib/interceptors/auth-headers.interceptor.ts","../../../projects/kendo/src/lib/models/FieldTypes.ts","../../../projects/kendo/src/lib/widgets/activity-filter/activity-filter.component.ts","../../../projects/kendo/src/lib/widgets/confirm-dialog/confirm-dialog.component.ts","../../../projects/kendo/src/lib/widgets/current-timezone/current-timezone.component.ts","../../../projects/kendo/src/lib/widgets/entity-edit/buttons-bar/buttons-bar.component.ts","../../../projects/kendo/src/lib/widgets/entity-edit/entity-edit-form.component.ts","../../../projects/kendo/src/lib/widgets/entity-edit/field-dropdown/field-dropdown.component.ts","../../../projects/kendo/src/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.ts","../../../projects/kendo/src/lib/widgets/entity-list/UrlSerializer.ts","../../../projects/kendo/src/lib/widgets/entity-list/entity-list.component.ts","../../../projects/kendo/src/lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component.ts","../../../projects/kendo/src/lib/widgets/excel-export-button/excel-export-button.component.ts","../../../projects/kendo/src/lib/widgets/footer-bar/footer-bar.component.ts","../../../projects/kendo/src/lib/widgets/modal-window/modal-window.component.ts","../../../projects/kendo/src/lib/widgets/multicheck-filter/multicheck-filter.component.ts","../../../projects/kendo/src/lib/widgets/top-bar/top-bar.component.ts","../../../projects/kendo/src/lib/kendo.module.ts","../../../projects/kendo/src/lib/models/FilterTargets.ts","../../../projects/kendo/src/lib/models/MemberTypes.ts","../../../projects/kendo/src/lib/models/Operators.ts","../../../projects/kendo/src/lib/models/PermissionTypes.ts","../../../projects/kendo/src/lib/widgets/activity-filter/FilterConverter.ts","../../../projects/kendo/src/lib/services/activity.filter.service.ts","../../../projects/kendo/src/lib/services/entity.service.ts","../../../projects/kendo/src/lib/widgets/entity-edit/entity-edit.component.ts","../../../projects/kendo/src/public-api.ts","../../../projects/kendo/src/indigina-kendo.ts"],"sourcesContent":["import {\n Directive,\n HostListener,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n Input\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[appDebounce]'\n})\nexport class DebounceDirective implements OnInit, OnDestroy {\n @Input() debounceTime = 500;\n @Output() debounceKeyup = new EventEmitter();\n private keyUp = new Subject();\n private subscription: Subscription;\n\n constructor() { }\n\n ngOnInit() {\n this.subscription = this.keyUp.pipe(\n debounceTime(this.debounceTime)\n ).subscribe(e => this.debounceKeyup.emit(e));\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n @HostListener('keyup', ['$event'])\n\n keyUpEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n this.keyUp.next(event);\n }\n}\n","import { OnInit, Input, ElementRef, Directive } from '@angular/core';\nimport {\n FormGroupDirective,\n FormControl,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\n\nlet id: number = 0;\n\n@Directive()\nexport abstract class FieldComponent<T> implements OnInit {\n @Input() labelKey: string;\n @Input() fieldName: string;\n @Input() disabled: boolean = false;\n \n public disabledKey = 'disabled';\n public id: string;\n\n constructor(\n public parent: FormGroupDirective,\n public eref: ElementRef,\n private defaultValue: T\n ) {}\n\n ngOnInit(): void {\n this.setUp();\n }\n\n protected setUp(): void {\n this.id = '_' + this.fieldName + ++id;\n const validators: ValidatorFn[] = [];\n for (const attr of this.eref.nativeElement.attributes as [\n { name: string; value: string }\n ]) {\n const validator = this.setAttribute(attr.name, attr.value);\n if (validator) {\n validators.push(validator);\n }\n }\n\n const control = this.parent.form.get(this.fieldName);\n if (control) {\n if (control.validator) {\n validators.push(control.validator);\n }\n\n control.setValidators(validators);\n control.updateValueAndValidity();\n } else {\n this.parent.form.addControl(\n this.fieldName,\n new FormControl(this.defaultValue, validators)\n );\n }\n }\n\n protected setAttribute(name: string, value: string): ValidatorFn {\n if (name === this.disabledKey) {\n this.disabled = true;\n\n return;\n }\n\n if (name === 'required') {\n return Validators.required;\n }\n }\n}\n","import { Component, ElementRef, Input } from '@angular/core';\nimport {\n ControlContainer,\n FormGroupDirective,\n Validators,\n ValidatorFn,\n} from '@angular/forms';\nimport { FieldComponent } from '../field.component';\n\n@Component({\n selector: 'field-input',\n templateUrl: './field-input.component.html',\n styleUrls: ['./field-input.component.css'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class FieldInputComponent extends FieldComponent<string> {\n @Input()\n public labelKey: string;\n @Input()\n public fieldName: string;\n\n public type = 'text';\n\n constructor(public parent: FormGroupDirective, public eref: ElementRef) {\n super(parent, eref, '');\n }\n\n protected setAttribute(name: string, value: string): ValidatorFn {\n if (name === 'type') {\n this.type = value;\n }\n\n if (name === 'max-length') {\n return Validators.maxLength(parseInt(value, 10));\n }\n\n return super.setAttribute(name, value);\n }\n}\n","import { Component, ElementRef, Input } from '@angular/core';\nimport { ControlContainer, FormGroupDirective } from '@angular/forms';\nimport { FieldInputComponent } from './field-input.component';\n\nconst emptyString = '';\n\n@Component({\n selector: 'number-input',\n templateUrl: './field-input.component.html',\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class NumberInputComponent extends FieldInputComponent {\n constructor(public parent: FormGroupDirective, public eref: ElementRef) {\n super(parent, eref);\n this.type = 'number';\n }\n\n @Input() isPositive: boolean = false;\n\n private cachedValue: number | string;\n\n ngAfterContentInit() {\n const control = this.parent.form.get(this.fieldName);\n control.valueChanges.subscribe((value) => {\n if (value !== this.cachedValue) {\n this.cachedValue =\n (!this.isPositive && (value || value === 0)) ||\n (this.isPositive && value >= 0 && value !== emptyString)\n ? +value\n : emptyString;\n\n control.setValue(this.cachedValue);\n }\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-general-errors',\n templateUrl: './general-errors.component.html',\n styleUrls: ['./general-errors.component.css']\n})\nexport class GeneralErrorsComponent {\n\n @Input() form: FormGroup;\n errors: string[] = [];\n constructor() { }\n\n setErrors(errors: string[]): void {\n this.errors = errors;\n if (errors.length) {\n this.form.setErrors({'_general_errors_': errors });\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { LogLevel } from '@microsoft/signalr';\nimport { AzureB2CSettings } from '../../models/AzureB2CSettings';\nimport { OidcSettings } from '../../models/OidcSettings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport abstract class AppSettings {\n apiUrl: string;\n accountUrl: string;\n toastrTimeOut: number;\n signalRLogLevel?: LogLevel;\n oidc: OidcSettings;\n azureB2C: AzureB2CSettings;\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { AppSettings } from './AppSettings';\n\n@Injectable({ providedIn: 'root' })\nexport abstract class IndiginaConfiguration {\n langs?: TranslateLoader;\n appSettings?: AppSettings;\n}\n","import { Injectable } from '@angular/core';\nimport { Language } from '../models/Language';\nimport { TranslateService } from '@ngx-translate/core';\n\nconst languageKey = 'language';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LocaleSettingsService {\n private languages: Language[] = [\n { name: 'English', code: 'en-US' },\n { name: 'Русский', code: 'ru-RU' },\n ];\n private localeId: string;\n\n constructor(private translate: TranslateService) {}\n\n init(): void {\n this.translate.addLangs(this.languages.map((x) => x.code));\n this.localeId = this.getLocale();\n this.setLocale(this.localeId || this.languages[0].code);\n }\n\n getLocales(): Language[] {\n return this.languages;\n }\n\n getLocale(): string {\n if (localStorage) {\n return localStorage.getItem(languageKey) || this.localeId;\n } else {\n return this.localeId;\n }\n }\n\n setLocale(locale: string) {\n this.translate.use(locale);\n this.localeId = locale;\n if (localStorage) {\n localStorage.setItem(languageKey, locale);\n }\n }\n}\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { MenuItem } from '../MenuItem';\nimport {\n Router,\n NavigationEnd,\n RouterStateSnapshot,\n UrlTree,\n} from '@angular/router';\n\nconst urlDelimiter = '/';\nconst collapsedEvent = 'collapsed';\n\n@Component({\n selector: '[menu-item-group]',\n templateUrl: './menu-item-group.component.html',\n styleUrls: ['./menu-item-group.component.css'],\n})\nexport class MenuItemGroupComponent implements OnChanges, OnInit {\n @Input() item: MenuItem;\n collapsed: boolean = false;\n private actualPath: string;\n\n constructor(private router: Router) {\n this.router.isActive = function (\n url: string | UrlTree,\n exact: boolean\n ): boolean {\n return this.routerState.snapshot.root.children?.length\n ? url.toString() ===\n urlDelimiter +\n this.routerState.snapshot.root.children[0].routeConfig.path.split(\n '/:'\n )[0]\n : false;\n };\n }\n\n ngOnInit(): void {\n this.setActualPath(this.router.routerState.snapshot);\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.setActualPath(this.router.routerState.snapshot);\n }\n });\n }\n\n ngOnChanges(): void {\n this.setItemExpand();\n }\n\n collapseChild(activeItem: MenuItem, event: MouseEvent) {\n this.item.expanded =\n this.item.text === activeItem.text &&\n !this.item.expanded &&\n !!this.item.items;\n\n if (!activeItem.items || activeItem.items.length === 0) {\n event[collapsedEvent] = true;\n } else {\n event[collapsedEvent] = false;\n }\n }\n\n private setItemExpand() {\n this.item.expanded = this.item.items?.some((x) => {\n return x.link !== undefined && x.link === this.actualPath;\n });\n }\n\n private setActualPath(snapshot: RouterStateSnapshot): void {\n if (snapshot.root.children?.length) {\n this.actualPath =\n urlDelimiter +\n snapshot.root.children[0].routeConfig.path.split('/:')[0];\n this.setItemExpand();\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MenuItemGroupComponent } from './menu-item-group/menu-item-group.component';\nimport { MenuItem } from './MenuItem';\n\nconst collapsedEvent = 'collapsed';\n@Component({\n selector: 'side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.css'],\n})\nexport class SideMenuComponent {\n @Input() items: MenuItem[];\n @Output() logoClick = new EventEmitter();\n\n onLogoClick() {\n this.logoClick.emit();\n }\n\n collapse(\n itemComponent: MenuItemGroupComponent,\n activeItem: MenuItem,\n event: MouseEvent\n ) {\n this.items?.forEach((item) => {\n if (item.text !== activeItem.text && item.expanded) {\n item.expanded = false;\n }\n });\n if (event[collapsedEvent]) {\n itemComponent.collapsed = true;\n } else {\n itemComponent.collapsed = false;\n }\n }\n}\n","export enum TreeViewPropTypes {\n String = 'string',\n Number = 'number',\n Object = 'object',\n Array = 'array',\n}\n","import { Component, Input, QueryList, ViewChildren } from '@angular/core';\nimport { TreeViewProp } from '../models/TreeViewProp';\nimport { TreeViewPropTypes } from '../models/TreeViewPropTypes';\nimport { TreeViewNodeComponent } from '../tree-view-node/tree-view-node.component';\n\n@Component({\n selector: 'tree-view-node-prop',\n templateUrl: './tree-view-node-prop.component.html',\n styleUrls: ['./tree-view-node-prop.component.css'],\n})\nexport class TreeViewNodePropComponent {\n @ViewChildren('node') treeViewNodes: QueryList<TreeViewNodeComponent>;\n\n @Input() prop: TreeViewProp;\n\n public get isSimpleValue(): boolean {\n return !this.isArrayValue && !this.isObjectValue;\n }\n\n public get isArrayValue(): boolean {\n return this.prop.propType === TreeViewPropTypes.Array;\n }\n\n public get isObjectValue(): boolean {\n return this.prop.propType === TreeViewPropTypes.Object;\n }\n\n public get propClass(): string {\n return this.prop.propType === TreeViewPropTypes.Number\n ? 'number'\n : 'string';\n }\n\n public expandAll(): void {\n this.treeViewNodes.forEach((x) => x.expandAll());\n }\n\n public collapseAll(): void {\n this.treeViewNodes.forEach((x) => x.collapseAll());\n }\n}\n","export enum TreeViewNodeTypes {\n Object = 'object',\n Array = 'array',\n Primitive = 'primitive',\n}\n","import {\n Component,\n Input,\n OnInit,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { TreeViewNode } from '../models/TreeViewNode';\nimport { TreeViewNodeTypes } from '../models/TreeViewNodeTypes';\nimport { TreeViewNodePropComponent } from '../tree-view-node-prop/tree-view-node-prop.component';\n\n@Component({\n selector: 'tree-view-node',\n templateUrl: './tree-view-node.component.html',\n styleUrls: ['./tree-view-node.component.css'],\n})\nexport class TreeViewNodeComponent implements OnInit {\n @ViewChildren('prop') treeViewProps: QueryList<TreeViewNodePropComponent>;\n\n @Input() node: TreeViewNode;\n @Input() hasExpand: boolean;\n\n public expanded: boolean = true;\n\n public get isObject(): boolean {\n return this.node.nodeType === TreeViewNodeTypes.Object;\n }\n\n public get isArray(): boolean {\n return this.node.nodeType === TreeViewNodeTypes.Array;\n }\n\n public get isPrimitive(): boolean {\n return this.node.nodeType === TreeViewNodeTypes.Primitive;\n }\n\n public get primitive(): { value: any; type: string; startTag: string } {\n const value = this.node.props[0].value;\n const startTag = this.node.props[0].startTag;\n const type = typeof value;\n\n return { value, type, startTag };\n }\n\n ngOnInit(): void {\n this.expanded = !this.hasExpand;\n }\n\n public toggleExpand() {\n this.expanded = !this.expanded;\n }\n\n public expandAll(): void {\n if (this.hasExpand) {\n this.expanded = true;\n }\n\n this.treeViewProps.forEach((x) => x.expandAll());\n }\n\n public collapseAll(): void {\n if (this.hasExpand) {\n this.expanded = false;\n }\n\n this.treeViewProps.forEach((x) => x.collapseAll());\n }\n}\n","export enum ContentTypesFormat {\n Json = 'json',\n Xml = 'xml',\n Text = 'text',\n}\n","import { IContentResolver } from './IContentResolver';\nimport { ResolverResult } from '../models/ResolverResult';\n\nexport abstract class AbstractContentResolver implements IContentResolver {\n private nextResolver: IContentResolver;\n\n constructor(resolver: IContentResolver) {\n this.nextResolver = resolver;\n }\n\n resolve(data: string): ResolverResult {\n if (this.nextResolver) {\n return this.nextResolver.resolve(data);\n }\n\n return null;\n }\n}\n","import { TreeViewNodeTypes } from '../../models/TreeViewNodeTypes';\nimport { TreeViewPropTypes } from '../../models/TreeViewPropTypes';\n\nexport function getPropTypeFromKey(key: string): TreeViewPropTypes {\n return (\n Object.values(TreeViewPropTypes).find((x) => x === key) ||\n TreeViewPropTypes.String\n );\n}\n\nexport function getNodeTypeFromKey(key: string): TreeViewNodeTypes {\n return (\n Object.values(TreeViewNodeTypes).find((x) => x === key) ||\n TreeViewNodeTypes.Object\n );\n}\n","import { TreeViewNode } from '../../models/TreeViewNode';\nimport { TreeViewNodeTypes } from '../../models/TreeViewNodeTypes';\nimport { TreeViewProp } from '../../models/TreeViewProp';\nimport { TreeViewPropTypes } from '../../models/TreeViewPropTypes';\nimport { getPropTypeFromKey, getNodeTypeFromKey } from './EnumTypeGetter';\n\nconst objectBrackets = { inside: '{', outside: '}' };\nconst arrayBrackets = { inside: '[', outside: ']' };\n\nexport class JsonConverter {\n public static convert(\n source: Array<object> | object\n ): Array<TreeViewNode> | TreeViewNode {\n if (Array.isArray(source)) {\n return this.convertArray(source);\n }\n\n return this.convertObject(source);\n }\n\n private static convertObject(source): TreeViewNode {\n const props: Array<TreeViewProp> = [];\n for (const name of Object.keys(source)) {\n const value = source[name];\n let propType =\n value !== null\n ? getPropTypeFromKey(typeof value)\n : TreeViewPropTypes.String;\n\n if (Array.isArray(value)) {\n const result = this.convertArray(value);\n const propType = Array.isArray(result)\n ? TreeViewPropTypes.Array\n : TreeViewPropTypes.Object;\n props.push({\n startTag: `${name}: `,\n value: result,\n propType,\n brackets: arrayBrackets,\n });\n\n continue;\n }\n\n if (propType === TreeViewPropTypes.Object) {\n props.push({\n startTag: `${name}: `,\n value: this.convertObject(value),\n propType,\n });\n\n continue;\n }\n\n props.push({\n startTag: `${name}: `,\n value,\n propType,\n });\n }\n\n return {\n props,\n nodeType: TreeViewNodeTypes.Object,\n brackets: objectBrackets,\n };\n }\n\n private static convertArray(source: Array<any>): TreeViewNode {\n const nodes: Array<TreeViewNode> = [];\n\n source.forEach((item, index) => {\n if (typeof item !== TreeViewPropTypes.Object) {\n nodes.push(this.getPrimitive(item, index));\n } else {\n const brackets = Array.isArray(item) ? arrayBrackets : objectBrackets;\n const inside = brackets.inside;\n const outside = brackets.outside;\n nodes.push({\n ...this.convertObject(item),\n nodeType: Array.isArray(item)\n ? TreeViewNodeTypes.Array\n : getNodeTypeFromKey(typeof item),\n brackets: {\n inside: `${index}: ${inside}`,\n outside,\n },\n });\n }\n });\n\n return {\n props: [\n {\n value: nodes,\n propType: TreeViewPropTypes.Array,\n },\n ],\n brackets: arrayBrackets,\n };\n }\n\n private static getPrimitive(\n source: string | number,\n index: string | number\n ): TreeViewNode {\n const propType = getPropTypeFromKey(typeof source);\n return {\n props: [\n {\n startTag: `${index}: `,\n value: source,\n propType,\n },\n ],\n nodeType: TreeViewNodeTypes.Primitive,\n };\n }\n}\n","import { ContentTypesFormat } from '../../models/ContentTypesFormat';\nimport { ResolverResult } from '../../models/ResolverResult';\nimport { AbstractContentResolver } from '../AbstractContentResolver';\nimport { JsonConverter } from '../Converters/JsonConverter';\n\nexport class JsonResolver extends AbstractContentResolver {\n public resolve(data: string): ResolverResult {\n try {\n const json = JSON.parse(data);\n\n return {\n data: JsonConverter.convert(json),\n format: ContentTypesFormat.Json,\n };\n } catch (e) {\n return super.resolve(data);\n }\n }\n}\n","import { TreeViewNode } from '../../models/TreeViewNode';\nimport { TreeViewPropTypes } from '../../models/TreeViewPropTypes';\n\nexport class TextConverter {\n public static convert(source: string): Array<TreeViewNode> | TreeViewNode {\n return {\n props: [\n {\n value: source,\n propType: TreeViewPropTypes.String,\n },\n ],\n };\n }\n}\n","import { ContentTypesFormat } from '../../models/ContentTypesFormat';\nimport { ResolverResult } from '../../models/ResolverResult';\nimport { AbstractContentResolver } from '../AbstractContentResolver';\nimport { TextConverter } from '../Converters/TextConverter';\n\nexport class TextResolver extends AbstractContentResolver {\n public resolve(data: string): ResolverResult {\n return {\n data: TextConverter.convert(data),\n format: ContentTypesFormat.Text,\n };\n }\n}\n","import { TreeViewNode } from '../../models/TreeViewNode';\nimport { TreeViewProp } from '../../models/TreeViewProp';\nimport { TreeViewPropTypes } from '../../models/TreeViewPropTypes';\nimport { getPropTypeFromKey } from './EnumTypeGetter';\n\nexport class XmlConverter {\n public static convert(source: Document): Array<TreeViewNode> | TreeViewNode {\n if (source.childElementCount > 1) {\n return this.convertObject(source.childNodes);\n }\n\n return { props: [this.convertProp(source.children[0])] };\n }\n\n private static convertProp(source: any): TreeViewProp {\n const name: string = source.tagName;\n let value: Array<TreeViewNode> | string;\n let propType: TreeViewPropTypes;\n\n if (source.childElementCount > 0) {\n value = this.convertObject(source.children);\n propType = TreeViewPropTypes.Array;\n } else {\n value = source.textContent;\n propType = getPropTypeFromKey(typeof value);\n }\n\n return {\n startTag: `<${name}>`,\n endTag: `</${name}>`,\n value,\n propType,\n };\n }\n\n private static convertObject(childs: any): Array<TreeViewNode> {\n const props = Array<TreeViewProp>();\n for (const item of childs) {\n props.push(this.convertProp(item));\n }\n\n return [\n {\n props,\n },\n ];\n }\n}\n","import { ContentTypesFormat } from '../../models/ContentTypesFormat';\nimport { ResolverResult } from '../../models/ResolverResult';\nimport { AbstractContentResolver } from '../AbstractContentResolver';\nimport { XmlConverter } from '../Converters/XmlConverter';\n\nexport class XmlResolver extends AbstractContentResolver {\n public resolve(data: string): ResolverResult {\n try {\n const oParser = new DOMParser();\n const oDOM = oParser.parseFromString(data, 'text/xml');\n\n if (\n oDOM.all.length > 0 &&\n oDOM.getElementsByTagName('parsererror').length === 0\n ) {\n return {\n data: XmlConverter.convert(oDOM),\n format: ContentTypesFormat.Xml,\n };\n }\n } catch (e) {}\n\n return super.resolve(data);\n }\n}\n","import { ResolverResult } from '../models/ResolverResult';\nimport { AbstractContentResolver } from './AbstractContentResolver';\nimport { JsonResolver } from './Resolvers/JsonResolver';\nimport { TextResolver } from './Resolvers/TextResolver';\nimport { XmlResolver } from './Resolvers/XmlResolver';\n\nexport class ContentResolver {\n private chain: AbstractContentResolver;\n\n constructor() {\n this.chain = new JsonResolver(new XmlResolver(new TextResolver(null)));\n }\n\n public resolve(data: string): ResolverResult {\n return this.chain.resolve(data);\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport { ClipboardService } from 'ngx-clipboard';\nimport { ContentResolver } from './ContentResolver/ContentResolver';\nimport { ContentTypesFormat } from './models/ContentTypesFormat';\nimport { ResolverResult } from './models/ResolverResult';\nimport { TreeViewNodeComponent } from './tree-view-node/tree-view-node.component';\n\n@Component({\n selector: 'tree-view',\n templateUrl: './tree-view.component.html',\n styleUrls: ['./tree-view.component.css'],\n})\nexport class TreeViewComponent implements OnChanges {\n @ViewChildren('node') treeViewNodes: QueryList<TreeViewNodeComponent>;\n\n @Input() data: string;\n @Input() maxTextLength: number = 1200;\n @Input() maxRootItems: number = 10;\n\n public resolved: ResolverResult;\n public collapsed: boolean;\n public allShow: boolean;\n public rawView: boolean;\n public ContentTypesFormat = ContentTypesFormat;\n\n public get IsArray(): boolean {\n return this.data ? Array.isArray(this.resolved.data) : false;\n }\n\n public get hasCollapse(): boolean {\n if (!this.data) {\n return false;\n }\n\n return this.resolved.format === ContentTypesFormat.Text\n ? this.hasTextCollapse()\n : this.hasNodeCollapse();\n }\n\n public get format(): string {\n return !this.rawView ? this.resolved.format : ContentTypesFormat.Text;\n }\n\n constructor(private clipboardService: ClipboardService) {}\n\n ngOnChanges(): void {\n const contentResolver = new ContentResolver();\n this.allShow = false;\n this.rawView = false;\n this.resolved = contentResolver.resolve(this.data);\n this.collapsed = this.hasCollapse;\n }\n\n public expandToggle(): void {\n this.collapsed = !this.collapsed;\n }\n\n public toggleExpandAll() {\n if (this.allShow) {\n this.treeViewNodes.forEach((x) => x.collapseAll());\n } else {\n this.treeViewNodes.forEach((x) => x.expandAll());\n }\n\n this.collapsed = this.hasCollapse ? this.allShow : false;\n this.allShow = !this.allShow;\n }\n\n public toggleRawView() {\n this.rawView = !this.rawView;\n }\n\n public copyToClipboard() {\n this.clipboardService.copy(this.data);\n }\n\n private hasTextCollapse(): boolean {\n return this.data.length > this.maxTextLength;\n }\n\n private hasNodeCollapse(): boolean {\n if (!Array.isArray(this.resolved.data)) {\n return this.resolved.data.props.length > this.maxRootItems;\n }\n\n return false;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { LoadingBarHttpClientModule } from '@ngx-loading-bar/http-client';\nimport {\n TranslateLoader,\n TranslateModule,\n TranslateStore,\n} from '@ngx-translate/core';\nimport { ClipboardModule } from 'ngx-clipboard';\nimport { ToastrModule } from 'ngx-toastr';\nimport { Observable, of } from 'rxjs';\nimport { DebounceDirective } from './forms/directives/debounce.directive';\nimport { FieldInputComponent } from './forms/widgets/field/field-input/field-input.component';\nimport { NumberInputComponent } from './forms/widgets/field/field-input/number-input.component';\nimport { GeneralErrorsComponent } from './forms/widgets/general-errors/general-errors.component';\nimport { AppSettings } from './models/AppSettings';\nimport { IndiginaConfiguration } from './models/IndiginaConfiguration';\nimport { LocaleSettingsService } from './services/locale-settings.service';\nimport { MenuItemGroupComponent } from './widgets/side-menu/menu-item-group/menu-item-group.component';\nimport { SideMenuComponent } from './widgets/side-menu/side-menu.component';\nimport { TreeViewNodePropComponent } from './widgets/tree-view/tree-view-node-prop/tree-view-node-prop.component';\nimport { TreeViewNodeComponent } from './widgets/tree-view/tree-view-node/tree-view-node.component';\nimport { TreeViewComponent } from './widgets/tree-view/tree-view.component';\n\nlet defaultConfig: IndiginaConfiguration = {\n langs: {\n getTranslation(): Observable<any> {\n return of({});\n },\n },\n appSettings: {\n accountUrl: '',\n apiUrl: '',\n toastrTimeOut: 2500,\n oidc: {\n clientId: '',\n authority: '',\n issuer: '',\n },\n azureB2C: {\n clientId: '',\n authority: '',\n knownAuthorities: [''],\n },\n },\n};\n\n@NgModule({\n declarations: [\n SideMenuComponent,\n MenuItemGroupComponent,\n TreeViewComponent,\n TreeViewNodeComponent,\n TreeViewNodePropComponent,\n DebounceDirective,\n GeneralErrorsComponent,\n FieldInputComponent,\n NumberInputComponent,\n ],\n imports: [\n BrowserModule,\n HttpClientModule,\n TranslateModule.forChild({\n loader: {\n provide: TranslateLoader,\n useFactory: TranslateLoaderFactory,\n deps: [IndiginaConfiguration, HttpClient],\n },\n }),\n LoadingBarHttpClientModule,\n CommonModule,\n RouterModule,\n ReactiveFormsModule,\n ToastrModule.forRoot(),\n BrowserAnimationsModule,\n ],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: LocaleServiceSettingsFactory,\n multi: true,\n deps: [LocaleSettingsService],\n },\n {\n provide: IndiginaConfiguration,\n useValue: defaultConfig,\n },\n {\n provide: AppSettings,\n useFactory: AppSettingsFactory,\n deps: [IndiginaConfiguration],\n },\n TranslateStore,\n ],\n exports: [\n SideMenuComponent,\n TreeViewComponent,\n DebounceDirective,\n GeneralErrorsComponent,\n FieldInputComponent,\n TranslateModule,\n ClipboardModule,\n LoadingBarHttpClientModule,\n ToastrModule,\n BrowserAnimationsModule,\n NumberInputComponent,\n ],\n})\nexport class IndiginaModule {\n public static forRoot(\n configuration: IndiginaConfiguration\n ): ModuleWithProviders<IndiginaModule> {\n if (!configuration.appSettings.apiUrl.endsWith('/')) {\n configuration.appSettings.apiUrl += '/';\n }\n\n return {\n ngModule: IndiginaModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: LocaleServiceSettingsFactory,\n multi: true,\n deps: [LocaleSettingsService],\n },\n {\n provide: IndiginaConfiguration,\n useValue: configuration ? configuration : defaultConfig,\n },\n ],\n };\n }\n}\n\nexport function LocaleServiceSettingsFactory(\n localeService: LocaleSettingsService\n) {\n return function () {\n localeService.init();\n };\n}\n\nexport function TranslateLoaderFactory(\n configuration: IndiginaConfiguration\n): TranslateLoader {\n return configuration.langs;\n}\n\nexport function AppSettingsFactory(configuration: IndiginaConfiguration) {\n return configuration.appSettings;\n}\n","import { IEntityEndpoints } from './IEntityEndpoints';\nimport { State, toODataString } from '@progress/kendo-data-query';\nimport { MemberTypes } from '../models/MemberTypes';\nimport { IActivityEndpoints } from './IActivityEndpoints';\n\nexport const endpoints = {\n signalr: {\n eventsHub: 'EventsHub',\n },\n oidc: {\n config: 'oidc/config',\n },\n members: {\n me: 'members/me',\n },\n admins: {\n ...buildEntityEndpoints('admins'),\n roles: {\n ...buildEntityEndpoints('admins/roles'),\n },\n },\n system: {\n info: 'system/info',\n },\n firstUser: 'admins/first',\n partners: buildEntityEndpoints('partners'),\n permissions: {\n all: (type: MemberTypes) => `permissions/${type}s`,\n member: (id: string) => `permissions/${id}`,\n mine: 'permissions/me',\n },\n users: {\n ...buildEntityEndpoints('users'),\n roles: {\n ...buildEntityEndpoints('users/roles'),\n },\n },\n apiTokens: buildEntityEndpoints('apiTokens'),\n};\n\nconst guidFormat = /'((\\{){0,1}[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}(\\}){0,1})'/g;\nexport function buildEntityEndpoints(name: string): IEntityEndpoints {\n return {\n path: name,\n query: (state: State) =>\n `${name}?${toODataString(state, { utcDates: true }).replace(\n guidFormat,\n '$1'\n )}`,\n entityPath: (id: string) => `${name}/${id}`,\n };\n}\nexport function buildActivityEndpoints(name: string): IActivityEndpoints {\n return {\n query: (state: State) =>\n `activities/${name}?${toODataString(state, {\n utcDates: true,\n }).replace(guidFormat, '$1')}`,\n search: (state: State, searchTerm: string) => {\n let uri = `activities/${name}/search?${toODataString(state, {\n utcDates: true,\n })}`;\n if (searchTerm) {\n uri += `&searchTerm=${searchTerm}`;\n }\n\n return uri;\n },\n detailedActivity: (id: string, partnerId: string) =>\n partnerId\n ? `activities/${name}/${id}/${partnerId}`\n : `activities/${name}/${id}`,\n };\n}\n","export enum EventNames {\n UserUpdated = 'userUpdated',\n PermissionsUpdated = 'permissionsUpdated',\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\nimport { HttpService } from '../angular/services/http.service';\nimport { SettingsService } from '../angular/services/settings.service';\nimport { AuthProviderResolver } from './auth-provider.resolver';\nimport { AuthProvider } from './auth.providers/AuthProvider';\nimport { endpoints } from './endpoints';\nimport { EventNames } from './signalr/EventNames';\nimport { SignalRService } from './signalr/signalr.service';\n\nconst adminUriPart = '/admin/';\n\nexport abstract class BaseAccountService<T> {\n public user = new BehaviorSubject<T>(null);\n\n constructor(\n public resolver: AuthProviderResolver,\n protected httpService: HttpService,\n protected settingsService: SettingsService,\n protected signalRService: SignalRService\n ) {\n this.resolver\n .getProvider()\n .pipe(\n map((provider) => {\n this.initialize(provider);\n })\n )\n .subscribe();\n }\n\n login() {\n this.resolver\n .getProvider()\n .pipe(\n map((provider) => {\n provider.login();\n })\n )\n .subscribe();\n }\n\n logout() {\n this.settingsService.clearLoginAsUser();\n this.resolver\n .getProvider()\n .pipe(\n map((provider) => {\n provider.logout();\n })\n )\n .subscribe();\n }\n\n private initialize(provider: AuthProvider) {\n this.getCurrentUser().subscribe((user) => {\n if (!user) {\n return;\n }\n\n const path = this.settingsService.getCallbackPath();\n if (path) {\n this.settingsService.clearCallbackPath();\n window.location.href = window.location.origin + path;\n\n return;\n }\n\n if (\n this.isAdmin(user) &&\n !window.location.pathname.startsWith(adminUriPart)\n ) {\n window.location.href = `${window.location.origin}${adminUriPart}`;\n\n return;\n }\n\n provider.getAccessToken().subscribe((token) => {\n this.signalRService.startConnection(token);\n this.signalRService\n .on<T>(EventNames.UserUpdated)\n .subscribe(async () => {\n provider.getAccessToken().subscribe((token) => {\n this.signalRService.reconnect(token);\n });\n this.httpService\n .get<T>(endpoints.members.me)\n .subscribe((user) => this.user.next(user));\n });\n });\n });\n }\n\n getCurrentUser(): Observable<T> {\n return this.resolver.getProvider().pipe(\n mergeMap((provider) => {\n if (this.user.getValue() || !provider.isUserLoggedIn()) {\n return this.user;\n }\n\n return provider.getAccessToken().pipe(\n mergeMap(() => {\n return this.httpService.get(endpoints.members.me).pipe(\n map((user: T) => {\n this.user.next(user);\n\n return user;\n })\n );\n })\n );\n })\n );\n }\n\n public isUserLoggedIn(): Observable<boolean> {\n return this.resolver\n .getProvider()\n .pipe(map((provider) => provider.isUserLoggedIn()));\n }\n\n public abstract isAdmin(member: T): boolean;\n}\n","import { ISubscriptionControl } from './ISubscriptionControl';\nimport { Observable, Subscription } from 'rxjs';\n\nexport class ReEntrySubscription<T> implements ISubscriptionControl {\n private subscription: Subscription;\n\n constructor(\n private observable: Observable<T>,\n private action: (event: T) => void\n ) {}\n\n public get connected(): boolean {\n return !this.subscription.closed;\n }\n\n public resume(): void {\n this.subscription = this.observable.subscribe(this.action);\n }\n\n public pause(): void {\n this.subscription.unsubscribe();\n }\n}\n","import {\n AbstractControl,\n AbstractControlOptions,\n AsyncValidatorFn,\n FormGroup,\n ValidatorFn,\n FormControl,\n} from '@angular/forms';\n\nexport class FormGroupWithErrors extends FormGroup {\n generalErrors: string[] = [];\n\n constructor(\n controls: { [key: string]: AbstractControl },\n validatorOrOpts?:\n | ValidatorFn\n | ValidatorFn[]\n | AbstractControlOptions\n | null,\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null\n ) {\n super(controls, validatorOrOpts, asyncValidator);\n }\n\n public getControl(name: string): AbstractControl {\n if (!this.contains(name)) {\n this.addControl(name, new FormControl({}));\n }\n\n return this.get(name);\n }\n\n public applyServerErrors(\n error: { title?: string; errors: { [key: string]: string[] } },\n form?: FormGroupWithErrors\n ): void {\n this.generalErrors = [];\n if (error.title) {\n this.generalErrors.push(error.title);\n }\n\n if (!form) {\n form = this;\n }\n\n for (const key in error.errors) {\n const ctrl = form.controls[key];\n if (ctrl) {\n ctrl.setErrors({ serverErrorMsg: error.errors[key].join(',') });\n } else {\n this.generalErrors.push(error.errors[key].join(','));\n }\n }\n }\n}\n","export enum HttpCodes {\n BadRequest = 400,\n Forbidden = 403,\n InternalServerError = 500,\n NotFound = 404,\n OK = 200,\n Unauthorized = 401,\n}\n","import { NamedModel } from './NamedModel';\n\nexport const HttpMethods: NamedModel[] = [\n { name: 'POST', id: 'POST' },\n { name: 'PUT', id: 'PUT' },\n { name: 'GET', id: 'GET' },\n { name: 'DELETE', id: 'DELETE' },\n];\n","import { Injectable } from '@angular/core';\n\nconst callbackPathKey = 'callbackPath';\nconst homePath = '/home';\nconst loginAsKey = 'X-User-Id';\nconst tokenKey = 'access_token';\n\n@Injectable({ providedIn: 'root' })\nexport class SettingsService {\n public putCurrentCallbackPath() {\n this.putCallbackPath(window.location.pathname + window.location.hash);\n }\n\n public putCallbackPath(pathUri: string): void {\n if (!this.getCallbackPath() && pathUri !== homePath) {\n localStorage.setItem(callbackPathKey, pathUri);\n }\n }\n\n public getCallbackPath(): string {\n return localStorage.getItem(callbackPathKey);\n }\n\n public clearCallbackPath(): void {\n localStorage.removeItem(callbackPathKey);\n }\n\n public setLoginAsUser(id: string): void {\n localStorage.setItem(loginAsKey, id);\n }\n\n public getLoginAsUser(): string {\n return localStorage.getItem(loginAsKey);\n }\n\n public clearLoginAsUser(): void {\n localStorage.removeItem(loginAsKey);\n }\n\n public setToken(token: string) {\n localStorage.setItem(tokenKey, token);\n }\n\n public getToken(): string {\n return localStorage.getItem(tokenKey);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { AppSettings } from '../models/AppSettings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppToastrService {\n constructor(\n private toastr: ToastrService,\n private appSettings: AppSettings\n ) {}\n\n private timeout = this.appSettings.toastrTimeOut;\n\n public showError(message: string, title: string = 'Error'): void {\n this.toastr.error(message, title, { timeOut: this.timeout });\n }\n\n public showSuccess(message: string, title: string = ''): void {\n this.toastr.success(message, title, { timeOut: this.timeout });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { AppSettings } from '../models/AppSettings';\nimport { CustomHttpErrorResponse } from '../models/CustomHttpErrorResponse';\nimport { HttpCodes } from '../models/HttpCodes';\nimport { SettingsService } from './settings.service';\nimport { AppToastrService } from './toastr.service';\n\nconst absoluteUrlRegExp = /^http(s)?:\\/\\//;\n\n@Injectable({ providedIn: 'root' })\nexport class HttpService {\n constructor(\n private appToastrService: AppToastrService,\n private httpClient: HttpClient,\n private appSettings: AppSettings,\n private translate: TranslateService,\n private router: Router,\n private settingsService: SettingsService\n ) {}\n\n get<T>(path: string): Observable<T> {\n return this.httpClient\n .get<T>(this.createUrl(path))\n .pipe(\n catchError((err: CustomHttpErrorResponse) =>\n this.handleServerError(err)\n )\n );\n }\n\n delete(path: string): Observable<object> {\n return this.httpClient.delete(this.createUrl(path)).pipe(\n tap(() => this.showSuccessMessage('ToastrMessages.RemovedSuccessfully')),\n catchError((err: CustomHttpErrorResponse) => this.handleServerError(err))\n );\n }\n\n post<T>(\n path: string,\n data: T,\n successTranslateMessage: string = null\n ): Observable<T> {\n return this.httpClient.post<T>(this.createUrl(path), data).pipe(\n tap(() =>\n this.showSuccessMessage(\n successTranslateMessage ?? 'ToastrMessages.SavedSuccessfully'\n )\n ),\n catchError((err) => this.handleServerError(err))\n );\n }\n\n put<T>(\n path: string,\n data: T,\n successTranslateMessage: string = null\n ): Observable<T> {\n return this.httpClient.put<T>(this.createUrl(path), data).pipe(\n tap(() =>\n this.showSuccessMessage(\n successTranslateMessage ?? 'ToastrMessages.SavedSuccessfully'\n )\n ),\n catchError((err) => this.handleServerError(err))\n );\n }\n\n private createUrl(path: string): string {\n return absoluteUrlRegExp.test(path) ? path : this.appSettings.apiUrl + path;\n }\n\n private handleServerError(error: CustomHttpErrorResponse) {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n this.appToastrService.showError(\n 'An error occurred: ' + error.error.message\n );\n\n return of(null);\n }\n\n if (error.status === HttpCodes.Unauthorized) {\n this.settingsService.putCurrentCallbackPath();\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.Unauthorized')\n );\n\n return of(null);\n }\n\n if (error.status === HttpCodes.Forbidden) {\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.Forbidden')\n );\n this.router.navigate(['forbidden']);\n\n return of(null);\n }\n\n if (error.status === HttpCodes.NotFound) {\n if (!!this.settingsService.getLoginAsUser()) {\n this.settingsService.clearLoginAsUser();\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.CanNotLoginAsUser')\n );\n setTimeout(() => {\n window.location.href = '/';\n }, 1000);\n }\n\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.NotFound')\n );\n\n return of(null);\n }\n\n if (error.status >= HttpCodes.InternalServerError) {\n this.appToastrService.showError(\n this.translate.instant('ToastrMessages.ServerError') + error.error.title\n );\n\n return of(null);\n }\n\n return throwError(error);\n }\n\n private showSuccessMessage(message: string) {\n this.appToastrService.showSuccess(this.translate.instant(message));\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ISubscriptionControl } from '../../extensions/ISubscriptionControl';\n\n@Component({\n selector: 'live-updates-control',\n styleUrls: ['./live-updates-control.component.css'],\n templateUrl: './live-updates-control.component.html',\n})\nexport class LiveUpdatesControlComponent implements OnInit {\n @Input() subscription: ISubscriptionControl;\n\n ngOnInit(): void {\n this.subscription.resume();\n }\n\n public toggle(): void {\n this.subscription.connected\n ? this.subscription.pause()\n : this.subscription.resume();\n }\n}\n","export enum AuthProviders {\n IdentityServer = 'IdentityServer',\n AzureB2C = 'AzureB2C',\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class AuthProvider {\n public abstract initialize(): Observable<boolean>;\n public abstract login();\n public abstract logout();\n public abstract isUserLoggedIn(): boolean;\n public abstract getAccessToken(): Observable<string>;\n}\n","import { MsalService } from '@azure/msal-angular';\nimport { InteractionRequiredAuthError } from '@azure/msal-browser';\nimport { from, Observable, of } from 'rxjs';\nimport { SettingsService } from '../../angular/services/settings.service';\nimport { AuthProvider } from './AuthProvider';\n\nexport class AzureB2CProvider extends AuthProvider {\n constructor(\n private authService: MsalService,\n private settingsService: SettingsService\n ) {\n super();\n }\n\n public initialize(): Observable<boolean> {\n return of(true);\n }\n\n public login() {\n if (!this.isUserLoggedIn()) {\n this.authService.loginRedirect().subscribe();\n }\n }\n\n public logout() {\n this.authService.logoutRedirect({\n postLogoutRedirectUri: location.origin,\n });\n }\n\n public getAccessToken(): Observable<string> {\n const request = {\n scopes: ['openid', 'offline_access', 'profile'],\n };\n\n return from(\n this.authService.instance\n .acquireTokenSilent(request)\n .then((authenticationResult) => {\n const token = authenticationResult.idToken;\n this.settingsService.setToken(token);\n\n return token;\n })\n .catch(async (error) => {\n if (error instanceof InteractionRequiredAuthError) {\n await this.authService.instance.acquireTokenRedirect(request);\n\n return this.settingsService.getToken();\n }\n })\n );\n }\n\n public isUserLoggedIn = (): boolean =>\n !!this.authService.instance.getActiveAccount()?.localAccountId;\n}\n","import { AuthConfig, OAuthService } from 'angular-oauth2-oidc';\nimport { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';\nimport { from, Observable, of } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\nimport { IndiginaConfiguration } from '../../angular/models/IndiginaConfiguration';\nimport { AuthProvider } from './AuthProvider';\n\nconst homePath = '/home';\n\nexport class OAuthProvider extends AuthProvider {\n constructor(\n private oauthService: OAuthService,\n private configuration: IndiginaConfiguration\n ) {\n super();\n }\n\n public initialize(): Observable<boolean> {\n const authConfig: AuthConfig = {\n issuer: this.configuration.appSettings.oidc.issuer,\n redirectUri: window.location.origin + '/login/callback',\n clientId: this.configuration.appSettings.oidc.clientId,\n scope: 'openid profile offline_access',\n postLogoutRedirectUri: window.location.origin + homePath,\n silentRefreshRedirectUri: window.location.origin + '/silent-renew.html',\n };\n\n return this.configure(authConfig);\n }\n\n public login() {\n this.oauthService.initLoginFlow();\n }\n\n public logout() {\n this.oauthService.logOut();\n }\n\n public getAccessToken(): Observable<string> {\n return of(this.oauthService.getAccessToken());\n }\n\n public isUserLoggedIn = (): boolean =>\n this.oauthService.hasValidAccessToken();\n\n private configure(authConfig: AuthConfig): Observable<boolean> {\n this.oauthService.configure(authConfig);\n this.oauthService.tokenValidationHandler = new JwksValidationHandler();\n this.oauthService.setupAutomaticSilentRefresh();\n\n return from(\n this.oauthService.loadDiscoveryDocument(\n authConfig.issuer + '/identity/.well-known/openid-configuration'\n )\n ).pipe(mergeMap(() => from(this.oauthService.tryLoginImplicitFlow())));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MsalService } from '@azure/msal-angular';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { IndiginaConfiguration } from '../angular/models/IndiginaConfiguration';\nimport { HttpService } from '../angular/services/http.service';\nimport { SettingsService } from '../angular/services/settings.service';\nimport { AuthProviders } from '../models/AuthProviders';\nimport { SystemInfo } from '../models/SystemInfo';\nimport { AuthProvider } from '../services/auth.providers/AuthProvider';\nimport { AzureB2CProvider } from './../services/auth.providers/azureb2c.provider';\nimport { OAuthProvider } from './../services/auth.providers/oauth.provider';\nimport { endpoints } from './endpoints';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthProviderResolver {\n private AuthProvider$ = new BehaviorSubject<AuthProvider>(null);\n\n constructor(\n httpService: HttpService,\n oauthService: OAuthService,\n msalService: MsalService,\n settingsService: SettingsService,\n indiginaConfiguration: IndiginaConfiguration\n ) {\n httpService.get<SystemInfo>(endpoints.system.info).subscribe((info) => {\n let provider: AuthProvider;\n if (info.identityProvider === AuthProviders.IdentityServer) {\n provider = new OAuthProvider(oauthService, indiginaConfiguration);\n } else {\n provider = new AzureB2CProvider(msalService, settingsService);\n }\n\n provider.initialize().subscribe(() => this.AuthProvider$.next(provider));\n });\n }\n\n public getProvider = (): Observable<AuthProvider> =>\n this.AuthProvider$.pipe(filter((x) => !!x));\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport * as signalR from '@microsoft/signalr';\nimport { AppSettings } from '../../angular/models/AppSettings';\nimport { endpoints } from '../endpoints';\n\n@Injectable({ providedIn: 'root' })\nexport class SignalRService {\n protected isConnectionEstablished = false;\n protected hubConnection: signalR.HubConnection;\n private eventEmitters: { [eventName: string]: EventEmitter<any> } = {};\n\n constructor(private appSettings: AppSettings) {}\n\n private createConnection(token: string) {\n this.hubConnection = new signalR.HubConnectionBuilder()\n .withUrl(this.appSettings.apiUrl + endpoints.signalr.eventsHub, {\n accessTokenFactory: () => {\n return token;\n },\n })\n .configureLogging(\n this.appSettings.signalRLogLevel ?? signalR.LogLevel.None\n )\n .build();\n\n this.hubConnection.onclose((err?) => {\n if (err !== undefined) {\n this.isConnectionEstablished = false;\n this.startConnection(token);\n }\n });\n }\n\n public startConnection(token: string): void {\n if (!this.isConnectionEstablished) {\n this.createConnection(token);\n this.hubConnection\n .start()\n .then(() => {\n this.isConnectionEstablished = true;\n Object.keys(this.eventEmitters).forEach((eventName) => {\n this.hubConnection.on(eventName, (model) => {\n this.eventEmitters[eventName].emit(model);\n });\n });\n })\n .catch(() => {\n console.warn('Error while establishing connection, retrying...');\n setTimeout(() => this.startConnection(token), 5000);\n });\n }\n }\n\n public reconnect(token: string) {\n if (this.isConnectionEstablished) {\n this.hubConnection.stop().then(() => {\n this.isConnectionEstablished = false;\n this.startConnection(token);\n });\n }\n }\n\n public on<T>(eventName: string): EventEmitter<T> {\n if (!this.eventEmitters[eventName]) {\n this.eventEmitters[eventName] = new EventEmitter<T>();\n if (this.hubConnection) {\n this.hubConnection.on(eventName, (model) => {\n this.eventEmitters[eventName].emit(model);\n });\n }\n }\n\n return this.eventEmitters[eventName] as EventEmitter<T>;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpService } from '../angular/services/http.service';\nimport { SettingsService } from '../angular/services/settings.service';\nimport { Member } from '../models/Member';\nimport { AuthProviderResolver } from './auth-provider.resolver';\nimport { BaseAccountService } from './base.account.service';\nimport { SignalRService } from './signalr/signalr.service';\n\nconst adminKey = 'Admin';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountService extends BaseAccountService<Member> {\n constructor(\n public resolver: AuthProviderResolver,\n httpService: HttpService,\n settingsService: SettingsService,\n signalRService: SignalRService\n ) {\n super(resolver, httpService, settingsService, signalRService);\n }\n\n public isAdmin = (member: Member): boolean =>\n member?.type === adminKey ?? false;\n}\n","import {\n Component,\n Input,\n HostListener,\n ElementRef,\n ViewChild,\n} from '@angular/core';\nimport { AppSettings } from '../../angular/models/AppSettings';\nimport { Member } from '../../models/Member';\nimport { AccountService } from '../../services/account.service';\n\n@Component({\n selector: 'account-menu',\n templateUrl: './account-menu.component.html',\n styleUrls: ['./account-menu.component.css'],\n})\nexport class AccountMenuComponent {\n @ViewChild('accountMenuElement') accountMenu: ElementRef;\n @Input() user: Member;\n expand = false;\n languageSelectorVisible = false;\n constructor(\n private eref: ElementRef,\n private accountService: AccountService,\n private appSettings: AppSettings\n ) {}\n\n get fullName(): string {\n return `${this.user?.firstName} ${this.user?.lastName}`;\n }\n\n get accountUrl(): string {\n return this.appSettings.accountUrl;\n }\n\n toogle(): void {\n this.expand = !this.expand;\n }\n\n logout(): void {\n this.accountService.logout();\n }\n\n openLanguageSelector(event: MouseEvent): void {\n event.stopPropagation();\n this.toogle();\n this.languageSelectorVisible = true;\n }\n\n @HostListener('document:click', ['$event'])\n clickedOutside(event: any) {\n if (!this.eref.nativeElement.contains(event.target) && this.expand) {\n this.toogle();\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MsalService } from '@azure/msal-angular';\nimport { AuthenticationResult } from '@azure/msal-browser';\nimport { SettingsService } from '../../angular/services/settings.service';\n\n@Component({\n selector: 'lib-azure-login',\n template: '',\n})\nexport class AzureLoginCallbackComponent {\n constructor(\n private authService: MsalService,\n private settingsService: SettingsService,\n private router: Router\n ) {}\n\n ngOnInit() {\n this.authService\n .handleRedirectObservable()\n .subscribe((result: AuthenticationResult) => {\n if (result) {\n this.settingsService.setToken(result.idToken);\n this.authService.instance.setActiveAccount(result.account);\n }\n\n this.router.navigate(['home']);\n });\n }\n\n public logout() {\n this.authService.logout();\n }\n}\n","import {\n Component,\n ElementRef,\n HostListener,\n Output,\n EventEmitter,\n Input,\n} from '@angular/core';\nimport { Language } from '../../angular/models/Language';\nimport { LocaleSettingsService } from '../../angular/services/locale-settings.service';\n\n@Component({\n selector: 'language-selector',\n templateUrl: './language-selector.component.html',\n styleUrls: ['./language-selector.component.css'],\n})\nexport class LanguageSelectorComponent {\n @Input() visible: boolean;\n @Output() visibleChange = new EventEmitter<boolean>();\n currentLanguageCode = '';\n languages: Language[];\n\n constructor(\n private eref: ElementRef,\n private settings: LocaleSettingsService\n ) {\n this.currentLanguageCode = this.settings.getLocale();\n this.languages = this.settings.getLocales();\n }\n\n async changeLanguage(code: string) {\n this.currentLanguageCode = code;\n this.settings.setLocale(this.currentLanguageCode);\n this.close();\n }\n\n close(): void {\n this.visible = false;\n this.visibleChange.emit(this.visible);\n }\n\n @HostListener('document:click', ['$event'])\n clickedOutside(event: any) {\n if (!this.eref.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n}\n","import {\n BrowserCacheLocation,\n Configuration,\n IPublicClientApplication,\n PublicClientApplication,\n} from '@azure/msal-browser';\nimport { IndiginaConfiguration } from '../angular/models/IndiginaConfiguration';\n\nconst isIE =\n window.navigator.userAgent.indexOf('MSIE ') > -1 ||\n window.navigator.userAgent.indexOf('Trident/') > -1;\n\nexport const MSALInstanceFactory = (\n config: IndiginaConfiguration\n): IPublicClientApplication => {\n const msalConfig: Configuration = {\n auth: {\n clientId: config.appSettings.azureB2C.clientId,\n authority: config.appSettings.azureB2C.authority,\n knownAuthorities: config.appSettings.azureB2C.knownAuthorities,\n redirectUri: window.location.origin + '/azure/login/callback',\n postLogoutRedirectUri: '/',\n navigateToLoginRequestUrl: false,\n },\n cache: {\n cacheLocation: BrowserCacheLocation.SessionStorage,\n storeAuthStateInCookie: isIE,\n },\n system: {\n loggerOptions: {\n loggerCallback: () => {},\n piiLoggingEnabled: false,\n },\n },\n };\n\n return new PublicClientApplication(msalConfig);\n};\n","import { endpoints } from './endpoints';\nimport { Injectable } from '@angular/core';\nimport { AccountService } from './account.service';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { MemberTypes } from '../models/MemberTypes';\nimport { Permissions } from './../models/Permissions';\nimport { HttpService } from '../angular/services/http.service';\nimport { SignalRService } from './signalr/signalr.service';\nimport { EventNames } from './signalr/EventNames';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class PermissionsService {\n private loaded = false;\n public mine = new BehaviorSubject<Permissions>({});\n\n constructor(\n private httpService: HttpService,\n private accountService: AccountService,\n private signalRService: SignalRService\n ) {\n this.accountService.user.subscribe(async (user) => {\n if (!user) {\n this.mine.next({});\n\n return;\n }\n\n this.httpService\n .get<Permissions>(endpoints.permissions.mine)\n .subscribe((permissions) => {\n this.mine.next(permissions);\n this.loaded = true;\n this.signalRService\n .on<string>(EventNames.PermissionsUpdated)\n .subscribe(() => {\n this.getPermissionsFromServer();\n });\n });\n });\n }\n\n public getAll(memberType: MemberTypes): Observable<Permissions> {\n return this.httpService.get<Permissions>(\n endpoints.permissions.all(memberType)\n );\n }\n\n public getMine(): Observable<Permissions> {\n if (this.loaded) {\n return this.mine;\n }\n\n return this.getPermissionsFromServer();\n }\n\n private getPermissionsFromServer(): Observable<Permissions> {\n return this.httpService.get<Permissions>(endpoints.permissions.mine).pipe(\n map((permissions) => {\n this.mine.next(permissions);\n\n return permissions;\n })\n );\n }\n}\n","import { Directive, Input, ElementRef, OnInit, Renderer2 } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { PermissionTypes } from '../models/PermissionTypes';\nimport { PermissionsService } from '../services/permissions.service';\n\nconst hiddenClass = 'hidden';\n\n@Directive({\n selector: '[requirePermission]',\n})\nexport class RequirePermissionDirective implements OnInit {\n @Input()\n permissionType: PermissionTypes | PermissionTypes[];\n @Input()\n permissionCategory?: string;\n\n constructor(\n private elementRef: ElementRef,\n private route: ActivatedRoute,\n private permissionsService: PermissionsService,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.hide();\n const category = this.permissionCategory\n ? this.permissionCategory\n : this.getRouteCategory(this.route);\n\n if (!category) {\n this.show();\n\n return;\n }\n\n this.permissionsService.mine.subscribe((permissions) => {\n const hasAccess =\n permissions[category] && this.hasType(permissions[category]);\n if (hasAccess) {\n this.show();\n } else {\n this.hide();\n }\n });\n }\n\n private hide() {\n this.renderer.addClass(this.elementRef.nativeElement, hiddenClass);\n }\n\n private show() {\n this.renderer.removeClass(this.elementRef.nativeElement, hiddenClass);\n }\n\n private hasType(types: PermissionTypes[]) {\n return Array.isArray(this.permissionType)\n ? types.map((x) => this.permissionType.includes(x)).some((x) => x)\n : types.includes(this.permissionType);\n }\n\n private getRouteCategory(route: ActivatedRoute): string {\n const routeData = route.snapshot.data;\n if (routeData && routeData.permission) {\n return routeData.permission.category;\n }\n\n if (this.route.parent) {\n return this.getRouteCategory(this.route.parent);\n }\n\n return null;\n }\n}\n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SettingsService } from '../angular/services/settings.service';\n\nconst AuthorizationHeader = 'Authorization';\n\n@Injectable()\nexport class AuthHeadersInterceptor implements HttpInterceptor {\n constructor(private settingsService: SettingsService) {}\n\n intercept(\n request: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n if (!request.headers.keys().find((x) => x === AuthorizationHeader)) {\n const token = this.settingsService.getToken();\n if (token) {\n const modified = request.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n return next.handle(modified);\n } else {\n return next.handle(request);\n }\n }\n\n return next.handle(request);\n }\n}\n","export enum FieldTypes {\n Text,\n Checkbox,\n Dropdown,\n Multiselect,\n}\n","import { ActivityFilter } from '../../models/ActivityFilter';\nimport { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { CustomFilterElement } from '../../models/CustomFilterElement';\nimport { FieldTypes } from '../../models/FieldTypes';\nimport { ActivityFilterService } from '../../services/activity.filter.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NamedModel } from '../../angular/models/NamedModel';\n\nconst allKey = 'All';\nconst defaultValueField = 'id';\n\n@Component({\n selector: 'activity-filter',\n templateUrl: './activity-filter.component.html',\n styleUrls: ['./activity-filter.component.less'],\n})\nexport class ActivityFilterComponent implements OnInit, OnChanges {\n @Input() showArchiveSwitcher: boolean = true;\n @Input() showSearhText: boolean = true;\n @Input() customFilterElements: CustomFilterElement[];\n @Input() filterService: ActivityFilterService;\n\n public filter: ActivityFilter;\n public FieldTypes = FieldTypes;\n\n constructor(private translate: TranslateService) {}\n\n ngOnInit(): void {\n this.customFilterElements?.forEach(\n (element) =>\n (element.valueField = element.valueField\n ? element.valueField\n : defaultValueField)\n );\n this.filterService.filter$.subscribe((filter) => {\n this.filter = filter;\n this.changeFilter();\n });\n }\n\n ngOnChanges(): void {\n this.changeFilter();\n }\n\n public defaultNamedModel: NamedModel = {\n name: this.translate.instant(allKey),\n id: null,\n };\n\n public setTodayFilter() {\n this.filterService.setToday();\n }\n\n public clearFilter() {\n this.customFilterElements?.forEach((element) => {\n element.filter.value = null;\n if (element.filter.values) {\n element.filter.values = [];\n }\n });\n this.filterService.reset();\n this.emitChangeEvents();\n }\n\n public applyFilter() {\n this.setCustomFilters();\n this.filterService.applyFilter(this.filter);\n }\n\n public fieldChange(\n value: string | number | boolean | string[],\n element: CustomFilterElement\n ) {\n if (element.change) {\n element.change(value);\n }\n }\n\n private fillFilter() {\n if (!this.filter) {\n return;\n }\n\n this.customFilterElements?.forEach((element) => {\n element.filter = { ...element.filter, value: null, values: null };\n });\n\n this.filter.customFilters?.forEach((filter) => {\n const element = this.customFilterElements?.find(\n (x) =>\n x.filter.field === filter.field &&\n x.filter.filterTarget === filter.filterTarget\n );\n if (element) {\n element.filter = Object.assign({}, filter);\n }\n });\n }\n\n private setCustomFilters() {\n this.customFilterElements?.forEach((element) => {\n const index = this.filter.customFilters?.findIndex(\n (x) => x.field === element.filter.field\n );\n if (index !== -1) {\n this.filter.customFilters.splice(index, 1);\n }\n });\n\n this.customFilterElements?.forEach((element) =>\n this.filter.customFilters.push(element.filter)\n );\n }\n\n private fixMultiselectFilters() {\n const multiSelectFilters = this.customFilterElements?.map((element) => {\n if (element.fieldType === FieldTypes.Multiselect) {\n return element.filter;\n }\n });\n if (multiSelectFilters) {\n multiSelectFilters.forEach((filter) => {\n if (filter?.value) {\n filter.values = [filter.value as string];\n filter.value = null;\n }\n });\n }\n }\n\n private changeFilter() {\n this.fillFilter();\n this.fixMultiselectFilters();\n this.emitChangeEvents();\n }\n\n private emitChangeEvents() {\n this.customFilterElements?.forEach((element) => {\n if (element.filter.value || element.filter.values) {\n this.fieldChange(\n element.filter.value ?? element.filter.values,\n element\n );\n }\n });\n }\n}\n","import { Component, ViewChild, TemplateRef } from '@angular/core';\nimport { DialogService, DialogRef } from '@progress/kendo-angular-dialog';\n\n@Component({\n selector: 'confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.css'],\n})\nexport class ConfirmDialogComponent {\n private dialog: DialogRef;\n private callback: () => void;\n @ViewChild('dialogActions', { static: true })\n public dialogActions: TemplateRef<any>;\n constructor(private dialogService: DialogService) {}\n\n cancel(): void {\n this.dialog.close();\n this.callback = undefined;\n }\n\n confirm() {\n this.callback();\n this.cancel();\n }\n\n public open(content: string, callback: () => void) {\n this.callback = callback;\n this.dialog = this.dialogService.open({\n content,\n actions: this.dialogActions,\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport * as momentModule from 'moment-timezone';\nconst moment = momentModule;\n\n@Component({\n selector: 'current-timezone',\n templateUrl: './current-timezone.component.html',\n styleUrls: ['./current-timezone.component.css'],\n})\nexport class CurrentTimezoneComponent implements OnInit {\n public timeZoneAndOffset: string;\n constructor() {}\n\n ngOnInit(): void {\n const timeZone = moment.tz.guess();\n this.timeZoneAndOffset = timeZone + ' ' + moment().format('Z');\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n selector: 'entity-edit-buttons-bar',\n templateUrl: './buttons-bar.component.html',\n styleUrls: ['./buttons-bar.component.css'],\n})\nexport class EntityEditButtonsBarComponent {\n @Input()\n public valid: boolean;\n @Output()\n public save = new EventEmitter<boolean>();\n}\n","import { OnInit, ViewChild, Component, Input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { FormControl } from '@angular/forms';\nimport { IFormAdapter } from './IFormAdapter';\nimport { FormGroupWithErrors } from '../../angular/forms/extensions/FormGroupWithErrors';\nimport { GeneralErrorsComponent } from '../../angular/forms/widgets/general-errors/general-errors.component';\nimport { IdentifiedModel } from '../../angular/models/IdentifiedModel';\nimport { finalize } from 'rxjs/operators';\n\n@Component({\n selector: 'entity-edit-form',\n templateUrl: './entity-edit-form.component.html',\n styleUrls: ['./entity-edit-form.component.css'],\n})\nexport class EntityEditFormComponent implements OnInit {\n public formGroup: FormGroupWithErrors;\n @ViewChild('general_errors')\n generalErrors: GeneralErrorsComponent;\n @Input()\n title: string;\n @Input()\n adapter: IFormAdapter<IdentifiedModel>;\n\n public saveInProgress: boolean;\n\n constructor(private route: ActivatedRoute) {\n this.saveInProgress = false;\n }\n\n ngOnInit() {\n this.route.params.subscribe((params: IdentifiedModel) => {\n this.formGroup = null;\n const formGroup = new FormGroupWithErrors({});\n if (params.id) {\n this.adapter\n .getService()\n .get(params.id)\n .subscribe((model) => {\n formGroup.addControl('id', new FormControl(model.id));\n for (const key of Object.keys(model)) {\n formGroup.addControl(key, new FormControl(model[key]));\n }\n\n this.adapter.setForm(formGroup);\n this.formGroup = formGroup;\n });\n } else {\n this.adapter.setForm(formGroup);\n this.formGroup = formGroup;\n }\n });\n }\n\n save(): void {\n this.saveInProgress = true;\n this.adapter\n .getService()\n .save(this.adapter.getValue())\n .pipe(finalize(() => (this.saveInProgress = false)))\n .subscribe(\n (result: IdentifiedModel) => {\n this.adapter.onSaved(result);\n },\n (error: HttpErrorResponse) => {\n this.formGroup.applyServerErrors(error.error, this.formGroup);\n this.generalErrors.setErrors(this.formGroup.generalErrors);\n }\n );\n }\n}\n","import { Component, Input, ElementRef, OnChanges } from '@angular/core';\nimport {\n ControlContainer,\n FormGroupDirective,\n AbstractControl,\n} from '@angular/forms';\nimport { CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { FieldComponent } from '../../../angular/forms/widgets/field/field.component';\nimport { IdentifiedModel } from '../../../angular/models/IdentifiedModel';\nimport { NamedModel } from '../../../angular/models/NamedModel';\nimport { IEntityService } from '../../../services/IEntityService';\n\n@Component({\n selector: 'field-dropdown',\n templateUrl: './field-dropdown.component.html',\n styleUrls: ['./field-dropdown.component.css'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class FieldDropdownComponent\n extends FieldComponent<string>\n implements OnChanges\n{\n @Input()\n service: IEntityService<NamedModel>;\n @Input()\n rebind: string;\n @Input()\n filter?: CompositeFilterDescriptor;\n data: IdentifiedModel[] = [];\n get control(): AbstractControl {\n return this.parent.form.get(this.fieldName);\n }\n\n constructor(public parent: FormGroupDirective, public eref: ElementRef) {\n super(parent, eref, '');\n }\n\n async ngOnChanges(): Promise<void> {\n await this.getData();\n this.control.setValue(\n (this.data.find((d) => d.id === this.control.value) || this.data[0]).id\n );\n }\n\n private getData() {\n this.service\n .getPage(this.filter ? { filter: this.filter } : {})\n .subscribe((data) => (this.data = data.data));\n }\n}\n","import { Component, Input, ElementRef, OnChanges } from '@angular/core';\nimport {\n ControlContainer,\n FormGroupDirective,\n AbstractControl,\n} from '@angular/forms';\nimport { CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { FieldComponent } from '../../../angular/forms/widgets/field/field.component';\nimport { IdentifiedModel } from '../../../angular/models/IdentifiedModel';\nimport { NamedModel } from '../../../angular/models/NamedModel';\nimport { IEntityService } from '../../../services/IEntityService';\n\n@Component({\n selector: 'field-multiselect',\n templateUrl: './field-multiselect.component.html',\n styleUrls: ['./field-multiselect.component.css'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class FieldMultiSelectComponent\n extends FieldComponent<string[]>\n implements OnChanges\n{\n @Input()\n service: IEntityService<NamedModel>;\n @Input()\n rebind: string;\n @Input()\n filter?: CompositeFilterDescriptor;\n data: IdentifiedModel[] = [];\n get control(): AbstractControl {\n return this.parent.form.get(this.fieldName);\n }\n\n constructor(public parent: FormGroupDirective, public eref: ElementRef) {\n super(parent, eref, []);\n }\n\n ngOnChanges(): void {\n this.getData().subscribe((data) => {\n this.data = data.data;\n this.control.setValue(\n this.control.value.filter(\n (x: string) => this.data.filter((d) => d.id === x).length\n )\n );\n });\n }\n\n private getData() {\n return this.service.getPage(this.filter ? { filter: this.filter } : {});\n }\n}\n","import {\n CompositeFilterDescriptor,\n FilterDescriptor,\n} from '@progress/kendo-data-query';\n\nexport const urlSerialize = (object: object): string => {\n let serialized = '';\n Object.keys(object).forEach((key) => {\n if (typeof object[key] === 'object') {\n const serializedObject = !isEmptyObject(object[key])\n ? JSON.stringify(object[key])\n : '';\n serialized += serializedObject ? `${key}=${serializedObject}&` : '';\n } else {\n serialized +=\n object[key] || object[key] === 0 ? `${key}=${object[key]}&` : '';\n }\n });\n\n return serialized.slice(0, -1);\n};\n\nconst isEmptyObject = (object: object): boolean => {\n return object === null || Object.keys(object).length === 0;\n};\n\nconst isDate = (date) => isNaN(date) && !isNaN(Date.parse(date));\n\nexport const urlDeserialize = (params: URLSearchParams) => {\n const deserialized = {};\n params.forEach((param, key) => {\n if (key === 'sort' || key === 'group') {\n deserialized[key] = JSON.parse(param);\n } else if (key === 'filter') {\n deserialized[key] = transformFilter(JSON.parse(param));\n } else {\n deserialized[key] = param;\n }\n });\n\n return deserialized;\n};\n\nfunction transformFilter(\n gridFilter: CompositeFilterDescriptor\n): CompositeFilterDescriptor {\n transformFilters(gridFilter);\n\n return gridFilter;\n}\n\nfunction transformFilters(gridFilter: CompositeFilterDescriptor) {\n if (gridFilter.filters.length) {\n gridFilter.filters.forEach(\n (filter: CompositeFilterDescriptor | FilterDescriptor) => {\n let filterDescriptor = filter as FilterDescriptor;\n filterDescriptor.value = isDate(filterDescriptor.value)\n ? new Date(filterDescriptor.value)\n : filterDescriptor.value;\n\n let compositeFilterDescriptor = filter as CompositeFilterDescriptor;\n if (compositeFilterDescriptor.filters) {\n transformFilters(compositeFilterDescriptor);\n }\n }\n );\n }\n}\n","import { Observable } from 'rxjs';\nimport {\n Component,\n OnInit,\n ViewChild,\n Input,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n Output,\n} from '@angular/core';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport {\n State,\n FilterDescriptor,\n CompositeFilterDescriptor,\n SortDescriptor,\n} from '@progress/kendo-data-query';\nimport {\n DataStateChangeEvent,\n RowClassArgs,\n} from '@progress/kendo-angular-grid';\nimport { Field } from './Field';\nimport { Command } from './Command';\nimport { urlDeserialize, urlSerialize } from './UrlSerializer';\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { IEntityService } from '../../services/IEntityService';\nimport { Page } from '../../models/Page';\nimport { TranslateService } from '@ngx-translate/core';\nimport { NamedModel } from '../../angular/models/NamedModel';\nimport { IdentifiedModel } from '../../angular/models/IdentifiedModel';\n\nconst nameField = 'name';\n\n@Component({\n selector: 'entity-list',\n templateUrl: './entity-list.component.html',\n styleUrls: ['./entity-list.component.css'],\n})\nexport class EntityListComponent implements OnInit, OnChanges {\n @Input()\n public service: IEntityService<NamedModel>;\n @Input()\n public filters: Array<FilterDescriptor | CompositeFilterDescriptor>;\n @Input()\n public fields?: Field[];\n @Input()\n public commands?: Command[];\n @Input()\n public rowClass?: (dataItem: NamedModel, index: number) => {};\n @Input()\n public defaultSort?: SortDescriptor[];\n @Output()\n public filterChange = new EventEmitter<CompositeFilterDescriptor>();\n @ViewChild('confirmDialog', { static: true })\n public dialog: ConfirmDialogComponent;\n public gridState: State = {};\n public page: Page<NamedModel>;\n public loadings = 0;\n public searchTerm: string;\n public selected: string[] = [];\n public gridFields: Field[] = [];\n private defaultFields: Field[] = [\n { name: 'name', label: 'Name', sortable: true, position: 0 },\n ];\n\n constructor(\n private translate: TranslateService,\n private route: ActivatedRoute,\n private router: Router\n ) {\n this.getAllData = this.getAllData.bind(this);\n this.getRowClass = this.getRowClass.bind(this);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (!changes.filters || changes.filters.firstChange) {\n return;\n }\n\n this.getFilteredData();\n }\n\n async ngOnInit() {\n this.gridFields = (this.fields || [])\n .concat(this.defaultFields)\n .sort((left, right) => (left.position || 0) - (right.position || 0));\n this.filters = this.filters ? this.filters : [];\n this.commands = this.commands ? this.commands : [];\n this.route.fragment.subscribe(async (fragment: string) => {\n await this.restoreGridState(new URLSearchParams(fragment));\n });\n\n this.route.firstChild.params.subscribe(async (params: Params) => {\n if (params.id) {\n this.selected[0] = params.id;\n } else {\n this.selected.pop();\n }\n });\n }\n\n public removeHandler({ dataItem }) {\n this.dialog.open(\n this.translate.instant('Confirmation.Delete') +\n ': \"' +\n dataItem.name +\n '\"?',\n () => this.remove(dataItem)\n );\n }\n\n public selectItem({ dataItem }) {\n this.router.navigate([dataItem.id], {\n relativeTo: this.route,\n fragment: urlSerialize(this.gridState),\n });\n }\n\n public onActivate(child: { saved: EventEmitter<NamedModel> }) {\n if (child.saved) {\n child.saved.subscribe((data: { id: string; name: string }) =>\n this.updateGrid(data)\n );\n }\n }\n\n public onDeactivate(child: { saved: EventEmitter<NamedModel> }) {\n if (child.saved) {\n child.saved.unsubscribe();\n }\n }\n\n public dataStateChange(state: DataStateChangeEvent) {\n Object.keys(state).forEach((key) => {\n this.gridState[key] = isNaN(state.skip)\n ? this.gridState[key]\n : state[key];\n });\n\n this.router.navigate([], {\n relativeTo: this.route,\n fragment: urlSerialize(this.gridState),\n });\n }\n\n public onSearch(value: string) {\n this.searchTerm = value;\n this.gridState.skip = 0;\n this.getFilteredData();\n }\n\n public getAllData(): Observable<Page<NamedModel>> {\n const state = Object.assign({}, this.gridState);\n delete state.skip;\n delete state.take;\n\n return this.service.getPage(state);\n }\n\n public getRowClass(context: RowClassArgs): Object {\n return this.rowClass && context\n ? this.rowClass(context.dataItem, context.index)\n : {};\n }\n\n private getFilteredData() {\n this.gridState.filter = this.getFilter();\n this.router.navigate([], {\n relativeTo: this.route,\n fragment: urlSerialize(this.gridState),\n });\n }\n\n protected updateGrid(data: NamedModel) {\n const exists = this.page.data.filter((x) => x.id === data.id);\n if (exists.length) {\n this.page.data[this.page.data.indexOf(exists[0])] = data;\n\n return;\n }\n\n this.page.total++;\n this.page.data.splice(0, 0, data);\n if (this.page.data.length > this.gridState.take) {\n this.page.data.splice(this.page.data.length - 1, 1);\n }\n\n this.selected[0] = data.id;\n this.router.navigate([data.id], {\n relativeTo: this.route,\n preserveFragment: true,\n });\n }\n\n private async remove(entity: IdentifiedModel) {\n this.loadings++;\n this.service.delete(entity.id).subscribe(() => {\n if (\n this.selected.length &&\n this.selected[this.selected.length - 1] === entity.id\n ) {\n this.router.navigate(['../'], {\n preserveFragment: true,\n relativeTo: this.route.firstChild,\n });\n }\n this.loadings--;\n });\n this.getData();\n }\n\n protected getData() {\n this.loadings++;\n this.service.getPage(this.gridState).subscribe((page) => {\n this.page = page;\n this.loadings--;\n });\n }\n\n private getFilter(): CompositeFilterDescriptor {\n const filter: CompositeFilterDescriptor = {\n logic: 'and',\n filters: this.searchTerm\n ? [\n { field: nameField, operator: 'contains', value: this.searchTerm },\n ...this.filters,\n ]\n : this.filters,\n };\n\n return filter;\n }\n\n private onFilterChange() {\n const filter: any = this.gridState.filter?.filters.find(\n (x: FilterDescriptor) => x.field === nameField\n );\n this.searchTerm = filter?.value;\n this.filterChange.emit(this.gridState.filter);\n }\n\n private async restoreGridState(params: URLSearchParams) {\n const defaultGridState: State = {\n sort: this.defaultSort || [{ field: nameField, dir: 'asc' }],\n skip: 0,\n take: 10,\n };\n\n const state = urlDeserialize(params);\n this.gridState = state.hasOwnProperty('take') ? state : defaultGridState;\n this.onFilterChange();\n this.getData();\n }\n}\n","import {\n Component,\n Input,\n Output,\n OnInit,\n EventEmitter,\n ViewChild,\n} from '@angular/core';\nimport { DropDownListComponent } from '@progress/kendo-angular-dropdowns';\nimport { IEntityService } from '../../../services/IEntityService';\nimport { LangChangeEvent, TranslateService } from '@ngx-translate/core';\nimport { NamedModel } from '../../../angular/models/NamedModel';\n\nconst All = 'All';\n\n@Component({\n selector: 'field-dropdownlist',\n templateUrl: './field-dropdownlist.component.html',\n styleUrls: ['./field-dropdownlist.component.css'],\n})\nexport class FieldDropdownlistComponent implements OnInit {\n @Input()\n service: IEntityService<NamedModel>;\n @Input()\n label: string;\n @Output()\n valueChange = new EventEmitter<NamedModel>();\n @ViewChild('inputElement')\n private kendoDropDown: DropDownListComponent;\n private initialSelectedId: string;\n\n public defaultItem: NamedModel;\n public data: NamedModel[];\n\n constructor(private translate: TranslateService) {}\n\n async ngOnInit(): Promise<void> {\n this.defaultItem = { id: null, name: this.translate.instant(All) };\n await this.getData();\n this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\n this.defaultItem = { id: null, name: this.translate.instant(All) };\n });\n }\n\n private getData() {\n this.service.getPage({}).subscribe((data) => {\n this.data = data.data;\n if (this.initialSelectedId) {\n const selectedItem = this.data.find(\n (x) => x.id === this.initialSelectedId\n );\n\n if (selectedItem) {\n this.kendoDropDown.writeValue(selectedItem);\n }\n }\n });\n }\n\n onValueChange(event: NamedModel) {\n this.valueChange.emit(event);\n }\n\n public initSelectedId(id: string): void {\n this.initialSelectedId = id;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'excel-export-button',\n templateUrl: './excel-export-button.component.html',\n styleUrls: ['./excel-export-button.component.css'],\n})\nexport class ExcelExportButtonComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'footer-bar',\n templateUrl: './footer-bar.component.html',\n styleUrls: ['./footer-bar.component.css'],\n})\nexport class FooterBarComponent {}\n","import { Component, Input } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'modal-window',\n templateUrl: './modal-window.component.html',\n styleUrls: ['./modal-window.component.css'],\n})\nexport class ModalWindowComponent {\n @Input() callbackPath: string;\n\n constructor(protected route: ActivatedRoute, private router: Router) {}\n\n public opened: boolean = true;\n\n public close() {\n this.opened = false;\n this.router.navigate([this.callbackPath], {\n relativeTo: this.route,\n fragment: this.route.snapshot?.fragment,\n });\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n AfterViewInit,\n} from '@angular/core';\nimport {\n CompositeFilterDescriptor,\n distinct,\n filterBy,\n FilterDescriptor,\n} from '@progress/kendo-data-query';\nimport { FilterService } from '@progress/kendo-angular-grid';\nimport { NamedModel } from '../../angular/models/NamedModel';\n\nconst defaultValueKey = 'id';\n\n@Component({\n selector: 'multicheck-filter',\n templateUrl: './multicheck-filter.component.html',\n styleUrls: ['./multicheck-filter.component.css'],\n})\nexport class MulticheckFilterComponent implements AfterViewInit {\n @Input() public currentFilter: CompositeFilterDescriptor;\n @Input() public data: NamedModel[];\n @Input() public filterService: FilterService;\n @Input() public field: string;\n @Input() public valueField: string;\n @Output() public valueChange = new EventEmitter<number[]>();\n\n public currentData: NamedModel[];\n public showFilter = true;\n private value: string[] = [];\n private filters: FilterDescriptor[] = [];\n private get ValueKey(): string {\n return this.valueField ? this.valueField : defaultValueKey;\n }\n\n public ngAfterViewInit() {\n this.currentData = this.data;\n if (this.currentData && this.currentData.length) {\n this.traverseFilters(this.currentFilter);\n this.value = this.filters.map((f: FilterDescriptor) => f.value);\n this.showFilter = typeof this.currentData[0].name === 'string';\n }\n }\n\n traverseFilters(filters: CompositeFilterDescriptor | FilterDescriptor) {\n let compositeFilterDescriptor = filters as CompositeFilterDescriptor;\n if (compositeFilterDescriptor.filters) {\n for (let i = 0; i < compositeFilterDescriptor.filters.length; i++) {\n const innerFilter = compositeFilterDescriptor.filters[\n i\n ] as FilterDescriptor;\n if (innerFilter.value && innerFilter.field === this.field) {\n this.filters.push(innerFilter);\n }\n\n this.traverseFilters(innerFilter);\n }\n }\n }\n\n public isItemSelected(item: NamedModel) {\n return this.value.some((x) => x === item[this.ValueKey]);\n }\n\n public onSelectionChange(item: NamedModel) {\n const selectedValue = item[this.ValueKey];\n if (this.value.some((x) => x === selectedValue)) {\n this.value = this.value.filter((x) => x !== selectedValue);\n } else {\n this.value.push(selectedValue);\n }\n\n this.filterService.filter({\n filters: this.value.map((value) => ({\n field: this.field,\n operator: 'eq',\n value,\n })),\n logic: 'or',\n });\n }\n\n public onInput(e: any) {\n this.currentData = distinct(\n [\n ...this.currentData.filter((dataItem) =>\n this.value.some((val) => val === dataItem.id)\n ),\n ...filterBy(this.data, {\n operator: 'contains',\n field: 'name',\n value: e.target.value,\n }),\n ],\n 'name'\n );\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Member } from '../../models/Member';\n\n@Component({\n selector: 'top-bar',\n templateUrl: './top-bar.component.html',\n styleUrls: ['./top-bar.component.css'],\n})\nexport class TopMenuComponent {\n @Input()\n currentUser: Member;\n\n public toggleButtonClick() {\n document.body.classList.toggle('mini-navbar');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { MsalModule, MsalService, MSAL_INSTANCE } from '@azure/msal-angular';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\nimport { DialogsModule, WindowModule } from '@progress/kendo-angular-dialog';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { ExcelModule, GridModule } from '@progress/kendo-angular-grid';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\nimport { PopupModule } from '@progress/kendo-angular-popup';\nimport { TooltipModule } from '@progress/kendo-angular-tooltip';\nimport {\n OAuthModule,\n OAuthModuleConfig,\n OAuthStorage,\n} from 'angular-oauth2-oidc';\nimport { IndiginaModule } from './angular/indigina.module';\nimport { AppSettings } from './angular/models/AppSettings';\nimport { IndiginaConfiguration } from './angular/models/IndiginaConfiguration';\nimport { LiveUpdatesControlComponent } from './angular/widgets/live-updates-control/live-updates-control.component';\nimport { AccountMenuComponent } from './components/account-menu/account-menu.component';\nimport { AzureLoginCallbackComponent } from './components/azure-login-callback/azure-login-callback.component';\nimport { LanguageSelectorComponent } from './components/language-selector/language-selector.component';\nimport { MSALInstanceFactory } from './config/msal-instance.factory';\nimport { RequirePermissionDirective } from './directives/requirePermission.directive';\nimport { AuthHeadersInterceptor } from './interceptors/auth-headers.interceptor';\nimport { AccountService } from './services/account.service';\nimport { PermissionsService } from './services/permissions.service';\nimport { SignalRService } from './services/signalr/signalr.service';\nimport { ActivityFilterComponent } from './widgets/activity-filter/activity-filter.component';\nimport { ConfirmDialogComponent } from './widgets/confirm-dialog/confirm-dialog.component';\nimport { CurrentTimezoneComponent } from './widgets/current-timezone/current-timezone.component';\nimport { EntityEditButtonsBarComponent } from './widgets/entity-edit/buttons-bar/buttons-bar.component';\nimport { EntityEditFormComponent } from './widgets/entity-edit/entity-edit-form.component';\nimport { FieldDropdownComponent } from './widgets/entity-edit/field-dropdown/field-dropdown.component';\nimport { FieldMultiSelectComponent } from './widgets/entity-edit/field-multiselect/field-multiselect.component';\nimport { EntityListComponent } from './widgets/entity-list/entity-list.component';\nimport { FieldDropdownlistComponent } from './widgets/entity-list/field-dropdownlist/field-dropdownlist.component';\nimport { ExcelExportButtonComponent } from './widgets/excel-export-button/excel-export-button.component';\nimport { FooterBarComponent } from './widgets/footer-bar/footer-bar.component';\nimport { ModalWindowComponent } from './widgets/modal-window/modal-window.component';\nimport { MulticheckFilterComponent } from './widgets/multicheck-filter/multicheck-filter.component';\nimport { TopMenuComponent } from './widgets/top-bar/top-bar.component';\n\n@NgModule({\n declarations: [\n TopMenuComponent,\n FooterBarComponent,\n AccountMenuComponent,\n LanguageSelectorComponent,\n EntityEditButtonsBarComponent,\n EntityEditFormComponent,\n EntityListComponent,\n FieldDropdownComponent,\n FieldMultiSelectComponent,\n FieldDropdownlistComponent,\n ConfirmDialogComponent,\n ExcelExportButtonComponent,\n MulticheckFilterComponent,\n RequirePermissionDirective,\n ActivityFilterComponent,\n CurrentTimezoneComponent,\n ModalWindowComponent,\n LiveUpdatesControlComponent,\n AzureLoginCallbackComponent,\n ],\n imports: [\n CommonModule,\n RouterModule,\n IndiginaModule,\n OAuthModule.forRoot(),\n PopupModule,\n GridModule,\n ExcelModule,\n InputsModule,\n ButtonsModule,\n DialogsModule,\n CommonModule,\n FormsModule,\n WindowModule,\n DialogsModule,\n ReactiveFormsModule,\n DropDownsModule,\n TooltipModule,\n DateInputsModule,\n MsalModule,\n ],\n providers: [\n { provide: OAuthStorage, useValue: localStorage },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthHeadersInterceptor,\n multi: true,\n },\n AccountService,\n PermissionsService,\n SignalRService,\n MsalService,\n ],\n exports: [\n TopMenuComponent,\n FooterBarComponent,\n AccountMenuComponent,\n LanguageSelectorComponent,\n IndiginaModule,\n PopupModule,\n OAuthModule,\n DropDownsModule,\n TooltipModule,\n DateInputsModule,\n WindowModule,\n DialogsModule,\n PopupModule,\n GridModule,\n ExcelModule,\n InputsModule,\n ButtonsModule,\n EntityEditButtonsBarComponent,\n EntityEditFormComponent,\n EntityListComponent,\n FieldDropdownComponent,\n FieldMultiSelectComponent,\n FieldDropdownlistComponent,\n ConfirmDialogComponent,\n ExcelExportButtonComponent,\n MulticheckFilterComponent,\n RequirePermissionDirective,\n ActivityFilterComponent,\n CurrentTimezoneComponent,\n ModalWindowComponent,\n LiveUpdatesControlComponent,\n MsalModule,\n AzureLoginCallbackComponent,\n ],\n})\nexport class KendoModule {\n public static forRoot(\n config: IndiginaConfiguration\n ): ModuleWithProviders<KendoModule> {\n if (!config.appSettings.apiUrl.endsWith('/')) {\n config.appSettings.apiUrl += '/';\n }\n\n return {\n ngModule: KendoModule,\n providers: [\n {\n provide: IndiginaConfiguration,\n useValue: config,\n },\n {\n provide: OAuthModuleConfig,\n useValue: {\n resourceServer: {\n allowedUrls: [config.appSettings.apiUrl],\n sendAccessToken: true,\n },\n },\n },\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALInstanceFactory,\n deps: [IndiginaConfiguration],\n },\n ],\n };\n }\n}\n\nexport function OAuthConfigFactory(\n appSettings: AppSettings\n): OAuthModuleConfig {\n return {\n resourceServer: {\n allowedUrls: [appSettings?.apiUrl],\n sendAccessToken: true,\n },\n };\n}\n","export enum FilterTargets {\n Url,\n Grid,\n}\n","export enum MemberTypes {\n Admin = 'Admin',\n User = 'User'\n}\n","export enum Operators {\n eq = 'eq',\n neq = 'neq',\n isnull = 'isnull',\n isnotnull = 'isnotnull',\n lt = 'lt',\n lte = 'lte',\n gt = 'gt',\n gte = 'gte',\n startswith = 'startswith',\n endswith = 'endswith',\n contains = 'contains',\n doesnotcontain = 'doesnotcontain',\n isempty = 'isempty',\n isnotempty = 'isnotempty',\n}\n","export enum PermissionTypes {\n Create = 'Create',\n Delete = 'Delete',\n Edit = 'Edit',\n View = 'View',\n Set = 'Set',\n}\n","import { State, CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { ActivityFilter } from '../../models/ActivityFilter';\nimport { FilterTargets } from '../../models/FilterTargets';\nimport { Operators } from '../../models/Operators';\nexport class FilterConverter {\n public static toGridState(\n filter: ActivityFilter,\n DateFilterFieldName: string\n ): State {\n const gridState: State = {\n filter: {\n logic: 'and',\n filters: [],\n },\n };\n const mainFilter: CompositeFilterDescriptor = {\n logic: 'and',\n filters: [],\n };\n gridState.skip = filter.skip;\n gridState.take = filter.take;\n if (filter.group) {\n gridState.group = filter.group;\n }\n\n if (filter.sort) {\n gridState.sort = filter.sort;\n } else {\n gridState.sort = [{ field: DateFilterFieldName, dir: 'desc' }];\n }\n\n if (filter.dateFrom) {\n mainFilter.filters.push({\n operator: Operators.gte,\n field: DateFilterFieldName,\n value: filter.dateFrom,\n });\n }\n\n if (filter.dateTo) {\n mainFilter.filters.push({\n operator: Operators.lte,\n field: DateFilterFieldName,\n value: filter.dateTo,\n });\n }\n\n filter.customFilters?.forEach((x) => {\n if (x.filterTarget === FilterTargets.Grid) {\n if (x.values && x.values.length) {\n const multiselectFilter: CompositeFilterDescriptor = {\n logic: 'or',\n filters: [],\n };\n x.values.forEach((value) => {\n multiselectFilter.filters.push({\n operator: x.operator,\n field: x.field,\n value,\n });\n });\n\n gridState.filter.filters.push(multiselectFilter);\n } else {\n if (x.value !== null && typeof x.value !== 'undefined') {\n mainFilter.filters.push({\n operator: x.operator,\n field: x.field,\n value: x.value,\n });\n }\n }\n }\n });\n\n if (mainFilter.filters.length) {\n if (gridState.filter.filters.length) {\n gridState.filter.filters.push(mainFilter);\n } else {\n gridState.filter.filters = mainFilter.filters;\n }\n }\n\n return gridState;\n }\n}\n","import { FilterConverter } from '../widgets/activity-filter/FilterConverter';\nimport {\n urlDeserialize,\n urlSerialize,\n} from '../widgets/entity-list/UrlSerializer';\nimport { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport {\n CompositeFilterDescriptor,\n FilterDescriptor,\n State,\n} from '@progress/kendo-data-query';\nimport { ActivityFilter } from '../models/ActivityFilter';\nimport { FilterTargets } from '../models/FilterTargets';\nimport { Operators } from '../models/Operators';\nimport { CustomFilter } from '../models/CustomFilter';\n\nconst filterKey = 'filter';\nconst filtersKey = 'filters';\nconst dateToKey = 'dateTo';\nconst dateFromKey = 'dateFrom';\nconst customFiltersKey = 'customFilters';\nconst nullKey = 'null';\n\n@Injectable()\nexport class ActivityFilterService {\n public currentFilter: ActivityFilter;\n public currentGridState: State;\n\n private readonly defaultFilter: ActivityFilter = {\n dateTo: null,\n dateFrom: null,\n switchToArchive: false,\n searchText: '',\n skip: 0,\n take: 10,\n };\n\n protected DateFilterStartFieldName = 'start';\n protected filterBehavior = new BehaviorSubject<ActivityFilter>(\n this.defaultFilter\n );\n protected gridStateBehavior = new BehaviorSubject<State>(\n FilterConverter.toGridState(\n this.defaultFilter,\n this.DateFilterStartFieldName\n )\n );\n\n public filter$ = this.filterBehavior.asObservable();\n public gridState$ = this.gridStateBehavior.asObservable();\n\n constructor(private route: ActivatedRoute, private router: Router) {\n this.currentFilter = Object.assign({}, this.defaultFilter);\n this.route.fragment.subscribe(async (fragment: string) => {\n const parsed = urlDeserialize(new URLSearchParams(fragment));\n if (Object.keys(parsed).some((key) => key === filterKey)) {\n this.currentGridState = parsed as State;\n this.fillCurrentFilter(parsed);\n } else {\n this.clearFilter();\n this.setTodayDates();\n this.currentGridState = FilterConverter.toGridState(\n this.currentFilter,\n this.DateFilterStartFieldName\n );\n }\n\n this.filterBehavior.next(this.currentFilter);\n });\n\n this.filter$.subscribe((filter) => {\n this.gridStateBehavior.next(\n FilterConverter.toGridState(filter, this.DateFilterStartFieldName)\n );\n });\n }\n\n public reset() {\n this.clearFilter();\n this.applyFilter(this.currentFilter);\n this.gridStateBehavior.next(this.currentGridState);\n }\n\n public setFilter(filter: ActivityFilter) {\n this.currentFilter.skip = 0;\n this.currentFilter = Object.assign(filter);\n this.currentGridState = FilterConverter.toGridState(\n this.currentFilter,\n this.DateFilterStartFieldName\n );\n }\n\n public applyFilter(filter: ActivityFilter) {\n this.setFilter(filter);\n this.stateNavigation(this.prepareFilterToSerialize());\n }\n\n public setToday() {\n this.setTodayDates();\n this.applyFilter(this.currentFilter);\n }\n\n public clearFilter() {\n if (this.currentFilter) {\n const customFilters = Object.assign([], this.currentFilter.customFilters);\n customFilters.forEach((x) => {\n x.value = null;\n if (x.values) {\n x.values = [];\n }\n });\n this.currentFilter = Object.assign({}, this.defaultFilter);\n this.currentFilter.customFilters = customFilters;\n } else {\n this.currentFilter = Object.assign({}, this.defaultFilter);\n }\n }\n\n public setGridState(state: State) {\n this.currentGridState = state;\n const { switchToArchive, searchText } = this.currentFilter;\n this.clearFilter();\n this.currentFilter = Object.assign(this.currentFilter, {\n switchToArchive,\n searchText,\n });\n this.fillCurrentFilter(this.currentGridState);\n this.stateNavigation(this.currentGridState);\n }\n\n public setTodayDates() {\n const now = new Date();\n this.currentFilter.dateTo = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate() + 1,\n 0,\n 0,\n 0\n );\n this.currentFilter.dateFrom = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate(),\n 0,\n 0,\n 0\n );\n }\n\n private async stateNavigation(object: Object) {\n const navigate = await this.router.navigate([], {\n relativeTo: this.route,\n fragment: urlSerialize(object),\n });\n if (!navigate) {\n this.filterBehavior.next(this.currentFilter);\n }\n }\n\n private prepareFilterToSerialize(): object {\n const result = {};\n Object.keys(this.currentFilter).forEach((key) => {\n if (\n key !== dateToKey &&\n key !== dateFromKey &&\n key !== customFiltersKey\n ) {\n result[key] = this.currentFilter[key];\n }\n });\n\n this.currentFilter.customFilters?.forEach((filter) => {\n if (filter.filterTarget == FilterTargets.Url) {\n result[filter.field] = filter.value;\n }\n });\n\n result[filterKey] = FilterConverter.toGridState(\n this.currentFilter,\n this.DateFilterStartFieldName\n ).filter;\n\n return result;\n }\n\n private fillCurrentFilter(object: State) {\n this.currentFilter.customFilters = [];\n this.fillFromDescriptor(object.filter);\n Object.keys(object).forEach((key) => {\n if (key !== filterKey && key !== nullKey && key !== filtersKey) {\n if (Object.keys(this.currentFilter).some((x) => x == key)) {\n this.currentFilter[key] = object[key];\n } else {\n this.fillUrlFilter(key, object[key]);\n }\n }\n });\n }\n\n private fillUrlFilter(key: string, val: string) {\n const index = this.currentFilter.customFilters.findIndex(\n (filter) => filter.field == key\n );\n if (index !== -1) {\n this.currentFilter.customFilters[index].value = val;\n } else {\n this.currentFilter.customFilters.push({\n field: key,\n value: val,\n operator: Operators.eq,\n filterTarget: FilterTargets.Url,\n });\n }\n }\n\n private fillFromDescriptor(gridFilter: CompositeFilterDescriptor) {\n gridFilter?.filters.forEach(\n (filter: CompositeFilterDescriptor | FilterDescriptor) => {\n const filterDescriptor = filter as FilterDescriptor;\n if (\n filterDescriptor.field === this.DateFilterStartFieldName &&\n filterDescriptor.operator === Operators.lte\n ) {\n this.currentFilter.dateTo = filterDescriptor.value;\n }\n\n if (\n filterDescriptor.field === this.DateFilterStartFieldName &&\n filterDescriptor.operator === Operators.gte\n ) {\n this.currentFilter.dateFrom = filterDescriptor.value;\n }\n\n if (\n filterDescriptor.field &&\n filterDescriptor.field !== this.DateFilterStartFieldName\n ) {\n this.setFieldFilter({\n field: filterDescriptor.field as string,\n filterTarget: FilterTargets.Grid,\n operator: Operators[filterDescriptor.operator as string],\n value: filterDescriptor.value,\n });\n }\n\n const compositeFilterDescriptor = filter as CompositeFilterDescriptor;\n if (compositeFilterDescriptor.filters) {\n this.fillFromDescriptor(compositeFilterDescriptor);\n }\n }\n );\n }\n\n private setFieldFilter(filter: CustomFilter) {\n const index = this.currentFilter.customFilters.findIndex(\n (x) => x.field === filter.field && x.operator === filter.operator\n );\n if (index !== -1) {\n const values = this.currentFilter.customFilters[index].values;\n const value = this.currentFilter.customFilters[index].value;\n this.currentFilter.customFilters[index].values = values ? values : [];\n if (value) {\n this.currentFilter.customFilters[index].values.push(value as string);\n this.currentFilter.customFilters[index].value = null;\n }\n\n this.currentFilter.customFilters[index].values.push(\n filter.value as string\n );\n } else {\n this.currentFilter.customFilters.push(filter);\n }\n }\n}\n","import { IEntityService } from './IEntityService';\nimport { Page } from '../models/Page';\nimport { IEntityEndpoints } from './IEntityEndpoints';\nimport { Observable } from 'rxjs';\nimport { State } from '@progress/kendo-data-query/dist/npm/state';\nimport { IdentifiedModel } from '../angular/models/IdentifiedModel';\nimport { HttpService } from '../angular/services/http.service';\n\nexport abstract class EntityService<T extends IdentifiedModel>\n implements IEntityService<T>\n{\n constructor(\n protected httpService: HttpService,\n protected endpoints: IEntityEndpoints\n ) {}\n\n getPage(state: State): Observable<Page<T>> {\n return this.httpService.get<Page<T>>(this.endpoints.query(state));\n }\n\n get(id: string): Observable<T> {\n return this.httpService.get<T>(this.endpoints.entityPath(id));\n }\n\n delete(id: string): Observable<object> {\n return this.httpService.delete(this.endpoints.entityPath(id));\n }\n\n save(model: T): Observable<T> {\n if (model.id) {\n return this.httpService.put(this.endpoints.entityPath(model.id), model);\n }\n\n return this.httpService.post(this.endpoints.path, model);\n }\n}\n","import { EventEmitter } from '@angular/core';\nimport { FormGroupWithErrors } from '../../angular/forms/extensions/FormGroupWithErrors';\nimport { IdentifiedModel } from '../../angular/models/IdentifiedModel';\nimport { IEntityService } from '../../services/IEntityService';\nimport { IFormAdapter } from './IFormAdapter';\n\nexport abstract class EntityEditComponent<T extends IdentifiedModel>\n implements IFormAdapter<T>\n{\n form: FormGroupWithErrors;\n saved = new EventEmitter<T>();\n get adapter() {\n return this;\n }\n\n constructor(public service: IEntityService<T>) {}\n\n getValue(): T {\n return this.form.value;\n }\n\n getService(): IEntityService<T> {\n return this.service;\n }\n\n setForm(form: FormGroupWithErrors): void {\n this.form = form;\n }\n\n onSaved(value: T): void {\n this.saved.emit(value);\n }\n}\n","import * as momentModule from 'moment-timezone';\n/*\n * Public API Surface of kendo\n */\nexport * from '@angular/platform-browser/animations';\nexport * from '@azure/msal-angular';\nexport { LogLevel } from '@microsoft/signalr';\nexport * from '@ngx-loading-bar/http-client';\nexport * from '@ngx-translate/core';\nexport {\n OAuthModule,\n OAuthModuleConfig,\n OAuthService,\n OAuthStorage,\n} from 'angular-oauth2-oidc';\nexport * from 'ngx-clipboard';\nexport * from 'ngx-toastr';\nexport { IndiginaModule } from '././lib/angular/indigina.module';\nexport { BaseAccountService } from '././lib/services/base.account.service';\nexport { ISubscriptionControl } from './lib/angular/extensions/ISubscriptionControl';\nexport { ReEntrySubscription } from './lib/angular/extensions/ReEntrySubscription';\nexport { DebounceDirective } from './lib/angular/forms/directives/debounce.directive';\nexport { FormGroupWithErrors } from './lib/angular/forms/extensions/FormGroupWithErrors';\nexport { FieldInputComponent } from './lib/angular/forms/widgets/field/field-input/field-input.component';\nexport { NumberInputComponent } from './lib/angular/forms/widgets/field/field-input/number-input.component';\nexport { FieldComponent } from './lib/angular/forms/widgets/field/field.component';\nexport { GeneralErrorsComponent } from './lib/angular/forms/widgets/general-errors/general-errors.component';\nexport { AppSettings } from './lib/angular/models/AppSettings';\nexport type { CustomHttpErrorResponse } from './lib/angular/models/CustomHttpErrorResponse';\nexport { HttpCodes } from './lib/angular/models/HttpCodes';\nexport { HttpMethods } from './lib/angular/models/HttpMethods';\nexport { IdentifiedModel } from './lib/angular/models/IdentifiedModel';\nexport { IndiginaConfiguration } from './lib/angular/models/IndiginaConfiguration';\nexport { Language } from './lib/angular/models/Language';\nexport { NamedModel } from './lib/angular/models/NamedModel';\nexport { HttpService } from './lib/angular/services/http.service';\nexport { LocaleSettingsService } from './lib/angular/services/locale-settings.service';\nexport { SettingsService } from './lib/angular/services/settings.service';\nexport { AppToastrService } from './lib/angular/services/toastr.service';\nexport { LiveUpdatesControlComponent } from './lib/angular/widgets/live-updates-control/live-updates-control.component';\nexport { MenuItem } from './lib/angular/widgets/side-menu/MenuItem';\nexport { SideMenuComponent } from './lib/angular/widgets/side-menu/side-menu.component';\nexport { TreeViewComponent } from './lib/angular/widgets/tree-view/tree-view.component';\nexport { AccountMenuComponent } from './lib/components/account-menu/account-menu.component';\nexport { AzureLoginCallbackComponent } from './lib/components/azure-login-callback/azure-login-callback.component';\nexport { LanguageSelectorComponent } from './lib/components/language-selector/language-selector.component';\nexport { MSALInstanceFactory } from './lib/config/msal-instance.factory';\nexport { RequirePermissionDirective } from './lib/directives/requirePermission.directive';\nexport { KendoModule } from './lib/kendo.module';\nexport { ActivityFilter } from './lib/models/ActivityFilter';\nexport { AzureB2CSettings } from './lib/models/AzureB2CSettings';\nexport { CustomFilter } from './lib/models/CustomFilter';\nexport { CustomFilterElement } from './lib/models/CustomFilterElement';\nexport { FieldTypes } from './lib/models/FieldTypes';\nexport { FilterTargets } from './lib/models/FilterTargets';\nexport { Member } from './lib/models/Member';\nexport { MemberBase } from './lib/models/MemberBase';\nexport { MemberTypes } from './lib/models/MemberTypes';\nexport { OidcSettings } from './lib/models/OidcSettings';\nexport { Operators } from './lib/models/Operators';\nexport { Page } from './lib/models/Page';\nexport { Permissions } from './lib/models/Permissions';\nexport { PermissionTypes } from './lib/models/PermissionTypes';\nexport { SystemInfo } from './lib/models/SystemInfo';\nexport { AccountService } from './lib/services/account.service';\nexport { ActivityFilterService } from './lib/services/activity.filter.service';\nexport { AuthProviderResolver } from './lib/services/auth-provider.resolver';\nexport { AuthProvider } from './lib/services/auth.providers/AuthProvider';\nexport {\n buildActivityEndpoints,\n buildEntityEndpoints,\n endpoints,\n} from './lib/services/endpoints';\nexport { EntityService } from './lib/services/entity.service';\nexport { IActivityEndpoints } from './lib/services/IActivityEndpoints';\nexport { IEntityEndpoints } from './lib/services/IEntityEndpoints';\nexport { IEntityService } from './lib/services/IEntityService';\nexport { PermissionsService } from './lib/services/permissions.service';\nexport { EventNames } from './lib/services/signalr/EventNames';\nexport { SignalRService } from './lib/services/signalr/signalr.service';\nexport { ActivityFilterComponent } from './lib/widgets/activity-filter/activity-filter.component';\nexport { ConfirmDialogComponent } from './lib/widgets/confirm-dialog/confirm-dialog.component';\nexport { CurrentTimezoneComponent } from './lib/widgets/current-timezone/current-timezone.component';\nexport { EntityEditButtonsBarComponent } from './lib/widgets/entity-edit/buttons-bar/buttons-bar.component';\nexport { EntityEditFormComponent } from './lib/widgets/entity-edit/entity-edit-form.component';\nexport { EntityEditComponent } from './lib/widgets/entity-edit/entity-edit.component';\nexport { FieldDropdownComponent } from './lib/widgets/entity-edit/field-dropdown/field-dropdown.component';\nexport { FieldMultiSelectComponent } from './lib/widgets/entity-edit/field-multiselect/field-multiselect.component';\nexport { Command } from './lib/widgets/entity-list/Command';\nexport { EntityListComponent } from './lib/widgets/entity-list/entity-list.component';\nexport { Field } from './lib/widgets/entity-list/Field';\nexport { FieldDropdownlistComponent } from './lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component';\nexport {\n urlDeserialize,\n urlSerialize,\n} from './lib/widgets/entity-list/UrlSerializer';\nexport { ExcelExportButtonComponent } from './lib/widgets/excel-export-button/excel-export-button.component';\nexport { FooterBarComponent } from './lib/widgets/footer-bar/footer-bar.component';\nexport { ModalWindowComponent } from './lib/widgets/modal-window/modal-window.component';\nexport { MulticheckFilterComponent } from './lib/widgets/multicheck-filter/multicheck-filter.component';\nexport { TopMenuComponent } from './lib/widgets/top-bar/top-bar.component';\nexport const momentTimezone = momentModule;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AppSettingsFactory as ɵc,LocaleServiceSettingsFactory as ɵa,TranslateLoaderFactory as ɵb} from './lib/angular/indigina.module';\nexport {MenuItemGroupComponent as ɵd} from './lib/angular/widgets/side-menu/menu-item-group/menu-item-group.component';\nexport {TreeViewNodePropComponent as ɵf} from './lib/angular/widgets/tree-view/tree-view-node-prop/tree-view-node-prop.component';\nexport {TreeViewNodeComponent as ɵe} from './lib/angular/widgets/tree-view/tree-view-node/tree-view-node.component';\nexport {AuthHeadersInterceptor as ɵg} from './lib/interceptors/auth-headers.interceptor';"],"names":["collapsedEvent","homePath"],"mappings":"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"}