@indice/ng-components 0.1.281 → 0.1.285

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":"indice-ng-components.js","sources":["../../../projects/ng-components/src/lib/directives/click-outside.directive.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.ts","../../../projects/ng-components/src/lib/icons.ts","../../../projects/ng-components/src/lib/types.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-tile.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-column.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-details-section.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/services/component-loader.service.ts","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-renew/auth-renew.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pipes/address.pipe.ts","../../../projects/ng-components/src/lib/pipes/duration-format.pipe.ts","../../../projects/ng-components/src/lib/helpers/base-list.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/ng-components.module.ts","../../../projects/ng-components/src/public-api.ts","../../../projects/ng-components/src/indice-ng-components.ts"],"sourcesContent":["//\r\n// https://github.com/arkon/ng-click-outside\r\n// the project is inactive - so imoved the directive code in our project\r\n//\r\nimport {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n SimpleChanges,\r\n NgZone,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n// tslint:disable-next-line:directive-selector\r\n@Directive({ selector: '[clickOutside]' })\r\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() clickOutsideEnabled = true;\r\n\r\n @Input() attachOutsideOnClick = false;\r\n @Input() delayClickOutsideInit = false;\r\n @Input() emitOnBlur = false;\r\n\r\n @Input() exclude = '';\r\n @Input() excludeBeforeClick = false;\r\n\r\n @Input() clickOutsideEvents = '';\r\n\r\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _nodesExcluded: Array<HTMLElement> = [];\r\n // tslint:disable-next-line:variable-name\r\n private _events: Array<string> = ['click'];\r\n\r\n constructor(\r\n // tslint:disable-next-line:variable-name\r\n private _el: ElementRef,\r\n // tslint:disable-next-line:variable-name\r\n private _ngZone: NgZone,\r\n @Inject(PLATFORM_ID) private platformId: any) {\r\n this._initOnClickBody = this._initOnClickBody.bind(this);\r\n this._onClickBody = this._onClickBody.bind(this);\r\n this._onWindowBlur = this._onWindowBlur.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._removeClickOutsideListener();\r\n this._removeAttachOutsideOnClickListener();\r\n this._removeWindowBlurListener();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\r\n this._init();\r\n }\r\n }\r\n\r\n private _init(): void {\r\n if (this.clickOutsideEvents !== '') {\r\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\r\n }\r\n\r\n this._excludeCheck();\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._initAttachOutsideOnClickListener();\r\n } else {\r\n this._initOnClickBody();\r\n }\r\n\r\n if (this.emitOnBlur) {\r\n this._initWindowBlurListener();\r\n }\r\n }\r\n\r\n private _initOnClickBody(): void {\r\n if (this.delayClickOutsideInit) {\r\n setTimeout(this._initClickOutsideListener.bind(this));\r\n } else {\r\n this._initClickOutsideListener();\r\n }\r\n }\r\n\r\n private _excludeCheck(): void {\r\n if (this.exclude) {\r\n try {\r\n const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\r\n if (nodes) {\r\n this._nodesExcluded = nodes;\r\n }\r\n } catch (err) {\r\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\r\n }\r\n }\r\n }\r\n\r\n private _onClickBody(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n if (this.excludeBeforeClick) {\r\n this._excludeCheck();\r\n }\r\n\r\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\r\n this._emit(ev);\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._removeClickOutsideListener();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resolves problem with outside click on iframe\r\n * @see https://github.com/arkon/ng-click-outside/issues/32\r\n */\r\n private _onWindowBlur(ev: Event): void {\r\n setTimeout(() => {\r\n if (!document.hidden) {\r\n this._emit(ev);\r\n }\r\n });\r\n }\r\n\r\n private _emit(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n this._ngZone.run(() => this.clickOutside.emit(ev));\r\n }\r\n\r\n private _shouldExclude(target: any): boolean {\r\n // tslint:disable-next-line:prefer-const\r\n for (let excludedNode of this._nodesExcluded) {\r\n if (excludedNode.contains(target)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _initClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _removeClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _initAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _removeAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _initWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.addEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n\r\n private _removeWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.removeEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-drop-down-menu',\r\n templateUrl: './drop-down-menu.component.html'\r\n})\r\nexport class DropDownMenuComponent implements OnInit, OnChanges {\r\n @Input() options: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('selected') selectedValue: any | null = null;\r\n @Input() multiple = false;\r\n\r\n private selectedOption$: MenuOption | null = null;\r\n public get selectedOption(): MenuOption | null {\r\n return this.selectedOption$;\r\n }\r\n public set selectedOption(option: MenuOption | null) {\r\n this.selectedOption$ = option;\r\n this.selectedValue = option ? option.value : null;\r\n this.expanded = false;\r\n }\r\n\r\n @Output() selectedChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private expanded$ = false;\r\n public get expanded(): boolean {\r\n return this.expanded$;\r\n }\r\n public set expanded(value: boolean) {\r\n this.expanded$ = value;\r\n }\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {\r\n this.selectedOption$ = this.options.filter(o => o.value === this.selectedValue)[0];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public isSelected(option: MenuOption): boolean {\r\n return option != null && this.selectedValue != null && option.value === this.selectedValue;\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.expanded = false;\r\n }\r\n\r\n public selectOption(option: MenuOption): void {\r\n this.selectedOption = option;\r\n this.selectedChange.emit(option.value);\r\n this.selectedChanged.emit(option.value);\r\n }\r\n\r\n}\r\n","export class Icons {\r\n // https://uifabricicons.azurewebsites.net/\r\n public static Dashboard = `ms-Icon ms-Icon--HomeGroup `;\r\n public static Locations = `ms-Icon ms-Icon--MapPin `;\r\n public static ChargePoints = `ms-Icon ms-Icon--ChatBot `;\r\n public static Transations = `ms-Icon ms-Icon--PaymentCard `;\r\n public static Badges = `ms-Icon ms-Icon--IDBadge `;\r\n\r\n public static Information = `ms-Icon ms-Icon--Info`;\r\n public static Refresh = `ms-Icon ms-Icon--Refresh`;\r\n public static Search = `ms-Icon ms-Icon--Search`;\r\n public static Add = `ms-Icon ms-Icon--Add`;\r\n public static Filter = `ms-Icon ms-Icon--Filter`;\r\n\r\n public static TilesView = `ms-Icon ms-Icon--AppIconDefault`;\r\n public static TableView = `ms-Icon ms-Icon--Table`;\r\n public static MapView = `ms-Icon ms-Icon--MapPin`;\r\n public static EntryView = `ms-Icon ms-Icon--EntryView`;\r\n\r\n public static Separator = `ms-Icon ms-Icon--Separator text-white`;\r\n\r\n public static ItemsCount = 'ms-Icon ms-Icon--Boards';\r\n\r\n public static Heart = 'ms-Icon ms-Icon--Heart';\r\n public static HeartBroken = 'ms-Icon ms-Icon--HeartBroken';\r\n public static DateTime = 'ms-Icon ms-Icon--ReminderTime';\r\n\r\n public static Expand = 'ms-Icon ms-Icon--ChevronDown';\r\n public static Collapse = 'ms-Icon ms-Icon--ChevronUp';\r\n\r\n public static SortAsc = 'ms-Icon ms-Icon--Ascending';\r\n public static SortDesc = 'ms-Icon ms-Icon--Descending';\r\n\r\n public static Details = ' ms-Icon ms-Icon--AccountActivity'\r\n}\r\n","export interface IAppLinks {\r\n public: NavLink[];\r\n main: NavLink[];\r\n profile: NavLink[];\r\n profileActions: NavLink[];\r\n legal: NavLink[];\r\n brand: NavLink[];\r\n}\r\n\r\n\r\nexport class NavLink {\r\n constructor(text: string, path: string, exact: boolean = false, external: boolean = false, icon?: string) {\r\n this.text = text;\r\n this.path = path;\r\n this.exact = exact;\r\n this.external = external;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public path: string;\r\n public exact: boolean;\r\n public external: boolean;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport class ExternalNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n}\r\n\r\nexport class FragmentNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n}\r\n\r\nexport class ViewAction {\r\n public type: string;\r\n public key: string | null;\r\n public param: any;\r\n public icon: string;\r\n public tooltip: string | null;\r\n\r\n constructor(type: string, key: string | null, param: any, icon: string, tooltip: string | null) {\r\n this.type = type;\r\n this.key = key;\r\n this.param = param;\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n }\r\n}\r\n\r\nexport class ListViewType {\r\n public static Tiles = 'tiles';\r\n public static Table = 'table';\r\n public static Map = 'map';\r\n}\r\n\r\nexport class RouterViewAction extends ViewAction {\r\n public outlet: string | null = null;\r\n public link: string | null = null;\r\n constructor(icon: string, link: string, outlet: string | null, tooltip: string | null) {\r\n super('router-link', null, null, icon, tooltip);\r\n this.outlet = outlet;\r\n this.link = link;\r\n }\r\n}\r\n\r\n\r\nexport class SwitchViewAction extends ViewAction {\r\n constructor(view: string, icon: string, tooltip: string | null) {\r\n super('switch-view', null, view, icon, tooltip);\r\n }\r\n}\r\n\r\nexport interface IResultSet<T> {\r\n count: number;\r\n items: T[];\r\n}\r\n\r\nexport class HeaderMetaItem {\r\n public key: string | null = null;\r\n public icon: string | null = null;\r\n public text: string | null = null;\r\n}\r\n\r\nexport class MenuOption {\r\n constructor(text: string, value: any, description?: string, data?: any, icon?: string) {\r\n this.text = text;\r\n this.value = value;\r\n this.description = description;\r\n this.data = data;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public value: any;\r\n public description: string | undefined;\r\n public data: any | undefined;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport interface IAddress {\r\n id?: string;\r\n street?: string | null;\r\n streetNumber?: string | null;\r\n city?: string | null;\r\n region?: string | null;\r\n postalCode?: string | null;\r\n country?: string | null;\r\n}\r\n\r\nexport interface IShellConfig {\r\n appLogo: string;\r\n appLogoAlt: string;\r\n showHeader: boolean;\r\n customHeaderComponent?: any;\r\n showFooter: boolean;\r\n customFooterComponent?: any;\r\n fluid: boolean;\r\n}\r\n\r\nexport class DefaultShellConfig implements IShellConfig {\r\n appLogo = 'https://tailwindui.com/img/logos/workflow-mark.svg?color=white';\r\n appLogoAlt = 'your app name here';\r\n showHeader = true;\r\n showFooter = true;\r\n fluid = false;\r\n}\r\n\r\nexport enum SCREEN_SIZE {\r\n XS,\r\n SM,\r\n MD,\r\n LG,\r\n XL\r\n}\r\n\r\nexport interface IScreenSize {\r\n id: SCREEN_SIZE;\r\n name: string;\r\n css: string;\r\n}\r\n\r\nexport enum ToastType {\r\n Info = 'info',\r\n Success = 'success',\r\n Error = 'error',\r\n Warning = 'warning'\r\n}\r\n\r\nexport const NULL_TOAST = { title : '_____NULL_____' } as Toast;\r\n\r\nexport interface Toast {\r\n type: ToastType;\r\n title: string;\r\n body: string;\r\n delay: number;\r\n}\r\n\r\nexport enum SidePaneSize {\r\n Default = '',\r\n Small25 = '25%',\r\n Medium50 = '50%',\r\n Large75 = '75%'\r\n}\r\n\r\nexport enum SidePaneOverlayType {\r\n Default = '',\r\n None = '-opacity-0',\r\n Light = '',\r\n Dark = '-opacity-50'\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Icons } from '../../icons';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-pager',\r\n templateUrl: './pager.component.html'\r\n})\r\nexport class PagerComponent implements OnInit, OnChanges {\r\n // PAGING\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [\r\n new MenuOption('10', 10),\r\n new MenuOption('20', 20),\r\n new MenuOption('30', 30),\r\n new MenuOption('50', 50),\r\n new MenuOption('100', 100)\r\n ];\r\n public pages: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n public canPreviousPage = false;\r\n public canNextPage = false;\r\n\r\n // SORTING\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = 'desc';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n public sortdirIcon = Icons.SortDesc;\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.calcPages();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private calcPages(): void {\r\n this.pages = [];\r\n if (this.count && this.count > 0) {\r\n const pageCount = this.count / this.pageSize;\r\n for (let i = 0; i < pageCount; i++) {\r\n this.pages.push(new MenuOption(i + 1 + '', i + 1));\r\n }\r\n }\r\n this.canPreviousPage = this.page > 1;\r\n this.canNextPage = this.page < this.pages.length;\r\n //console.log('calcPages', this.page, this.canPreviousPage, this.canNextPage);\r\n }\r\n\r\n public nextPage(): void {\r\n const next = this.page + 1;\r\n this.gotoPage(next);\r\n }\r\n\r\n public previousPage(): void {\r\n const previous = this.page - 1;\r\n this.gotoPage(previous);\r\n }\r\n\r\n public gotoPage(page: number): void {\r\n this.page = page;\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public pageSizeOptionChanged(pageSize: number): void {\r\n this.pageSizeChanged.emit(pageSize);\r\n this.calcPages();\r\n }\r\n\r\n public pageOptionChanged(page: number): void {\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public sortOptionChanged(sort: string): void {\r\n this.sortChanged.emit(sort);\r\n }\r\n\r\n public toggleSortdir(): void {\r\n //console.log('toggleSortdir');\r\n let sortdir = 'desc';\r\n if (this.sortdir === 'desc') {\r\n sortdir = 'asc';\r\n this.sortdirIcon = Icons.SortAsc;\r\n } else {\r\n sortdir = 'desc';\r\n this.sortdirIcon = Icons.SortDesc;\r\n }\r\n this.sortdirChanged.emit(sortdir);\r\n }\r\n\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-tile', template: '<ng-content></ng-content>' })\r\nexport class ListTileComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({selector: 'lib-list-column', template: '<ng-content></ng-content>'})\r\nexport class ListColumnComponent {\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('full-width') fullWidth = false;\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() { }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' })\r\nexport class ListDetailsSectionComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { MenuOption, ListViewType } from '../../types';\r\nimport { ListTileComponent } from './list-tile.component';\r\nimport { ListColumnComponent } from './list-column.component';\r\nimport { ListDetailsSectionComponent } from './list-details-section.component';\r\nimport { Icons } from '../../icons';\r\n\r\n@Component({\r\n selector: 'lib-list-view',\r\n templateUrl: './list-view.component.html'\r\n})\r\nexport class ListViewComponent implements OnChanges {\r\n public expandIcon = Icons.Expand;\r\n public collapseIcon = Icons.Collapse;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-pager') showPager = true;\r\n // DATA SOURCE!\r\n @Input() items: any[] | null | undefined;\r\n\r\n // PAGING - pass through for pager component\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() detailsOpened: EventEmitter<{item: any, open: boolean}> = new EventEmitter<{item: any, open: boolean}>();\r\n\r\n public tableViewSupported = false;\r\n private multipleFullWidth = false;\r\n public fullWidthTHClass = 'list-view-th-full';\r\n public fullWidthTDClass = 'list-view-td-full';\r\n public tilesViewSupported = false;\r\n public detailsSectionSupported = false;\r\n\r\n @Input() view = ListViewType.Table;\r\n\r\n // SORTING - pass through for pager component\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = '-';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n // COLUMNS\r\n public columns: any[] = [];\r\n @ContentChildren(ListColumnComponent, { read: ListColumnComponent })\r\n set cols(refs: QueryList<ListColumnComponent>) {\r\n this.columns = refs?.toArray();\r\n if (this.columns && this.columns.length > 0) {\r\n this.tableViewSupported = true;\r\n }\r\n this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;\r\n this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';\r\n this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';\r\n }\r\n\r\n public tilesDeckClass = 'cards-deck-4';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('tiles-count') tilesCount = 4;\r\n\r\n public tileTemplate: any | null | undefined = null;\r\n @ContentChild(ListTileComponent, {read: ListTileComponent})\r\n set tiles(ref: ListTileComponent) {\r\n this.tileTemplate = ref;\r\n if (this.tileTemplate) {\r\n this.tilesViewSupported = true;\r\n }\r\n }\r\n\r\n public detailsTemplate: any | null | undefined = null;\r\n @ContentChild(ListDetailsSectionComponent, {read: ListDetailsSectionComponent})\r\n set details(ref: ListDetailsSectionComponent) {\r\n this.detailsTemplate = ref;\r\n if (this.detailsTemplate) {\r\n this.detailsSectionSupported = true;\r\n }\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const tilesCountChange = changes['tiles-count'] || changes.tilesCount ;\r\n if (tilesCountChange) {\r\n this.setTilesDeckClass(tilesCountChange.currentValue);\r\n }\r\n }\r\n\r\n // events\r\n public emitPageChanged($event: number): void {\r\n this.pageChanged.emit($event);\r\n }\r\n\r\n public emitPageSizeChanged($event: number): void {\r\n this.pageSizeChanged.emit($event);\r\n }\r\n\r\n public emitSortChanged($event: string): void {\r\n this.sortChanged.emit($event);\r\n }\r\n public emitSortdirChanged($event: string): void {\r\n this.sortdirChanged.emit($event);\r\n }\r\n\r\n public toggleDetails(item: any): void {\r\n item.detailsExpanded = !item.detailsExpanded;\r\n this.detailsOpened.emit({ item, open: item.detailsExpanded });\r\n }\r\n\r\n // helpers\r\n private setTilesDeckClass(tiles: number): void {\r\n if ( tiles >= 1 && tiles <= 4 ) {\r\n this.tilesDeckClass = `cards-deck-${tiles}`;\r\n } else {\r\n this.tilesDeckClass = 'cards-deck-3';\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-list-view-empty-state',\r\n templateUrl: './list-view-empty-state.component.html'\r\n})\r\nexport class ListViewEmptyStateComponent implements OnInit {\r\n\r\n @Input() title = 'Δεν βρέθηκαν εγγραφές.';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('new-item-label') newItemLabel = 'Νέα εγγραφή';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-skeleton-loader',\r\n templateUrl: './skeleton-loader.component.html'\r\n})\r\nexport class SkeletonLoaderComponent implements OnInit {\r\n @Input() count = 5;\r\n @Input() type = 'tiles'; // 'large-tile', 'table'\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public counter(i: number): number[] {\r\n return new Array(i);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-collapsible-panel',\r\n templateUrl: './collapsible-panel.component.html'\r\n})\r\nexport class CollapsiblePanelComponent implements OnInit {\r\n @Input() title: string | null = null;\r\n public visible = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kpi-tile',\r\n templateUrl: './kpi-tile.component.html'\r\n})\r\nexport class KpiTileComponent implements OnInit {\r\n\r\n @Input() title: string | undefined = undefined;\r\n @Input() busy = false;\r\n @Input() kpi: any | undefined = undefined;\r\n // tslint:disable-next-line:no-output-rename\r\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitTileAction($event: any): boolean {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.tileAction.emit($event);\r\n return false;\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/\r\n@Component({\r\n selector: 'lib-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatepickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DatepickerComponent implements OnInit, ControlValueAccessor {\r\n @Input() readonly: boolean = true;\r\n @Input() disabled: boolean = false;\r\n @Input('display-format') displayFormat: string | undefined = 'dd/MM/yyyy';\r\n @Input() placeholder: string | undefined = '';\r\n @Input() value: Date | undefined | null = null;\r\n @Output() valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n @ViewChild('dateInput') dateInput: ElementRef | undefined;\r\n public showCalendar = false;\r\n public showYears = false;\r\n public monthNames = [\r\n 'Ιανουάριος',\r\n 'Φεβρουάριος',\r\n 'Μάρτιος',\r\n 'Απρίλιος',\r\n 'Μάϊος',\r\n 'Ιούνιος',\r\n 'Ιούλιος',\r\n 'Αύγουστος',\r\n 'Σεπτέμβριος',\r\n 'Οκτώβριος',\r\n 'Νοεμβριος',\r\n 'Δεκέμβριος',\r\n ];\r\n public dayNames = ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'];\r\n\r\n public month: number = -1;\r\n public year: number = -1;\r\n public calendarDates: any[] = [];\r\n public calendarYears: any[] = [];\r\n public showCalendarYears: any[] = [];\r\n public blankDays: any[] = [];\r\n public calendarYearPage = 1;\r\n private yearsPerPage = 30;\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n ngOnInit(): void {\r\n let today = new Date();\r\n this.month = today.getMonth();\r\n this.year = today.getFullYear();\r\n this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];\r\n this.calendarYears = [{ year: this.value?.getFullYear(), today: this.value, selected: this.value }];\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.value?.getFullYear() });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\r\n this.calcDays();\r\n }\r\n\r\n public compareDates(date1: Date | undefined | null, day: number | null | undefined, year: number | null | undefined): boolean {\r\n if (!date1) {\r\n return false;\r\n }\r\n const d = new Date(year ?? this.year, this.month, day ?? this.value?.getDay());\r\n return date1.toDateString() === d.toDateString();\r\n };\r\n\r\n public selectDateValue(date: any): void {\r\n // This should be in UTC\r\n let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showCalendar = false;\r\n }\r\n\r\n public selectYearValue(year: any): void {\r\n let selectedDate = new Date(year.year, 1, 1, 2, 0, 0, 0);\r\n this.year = year.year;\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n }\r\n\r\n public previousMonth(): void {\r\n if (this.month !== 0) {\r\n this.month = this.month - 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 11;\r\n this.year = this.year - 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextMonth(): void {\r\n if (this.month !== 11) {\r\n this.month = this.month + 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 0;\r\n this.year = this.year + 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public previousYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage > 1 ? --this.calendarYearPage : 1);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage ? ++this.calendarYearPage : this.calendarYearPage);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public calcDays(): void {\r\n const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();\r\n // find where to start calendar day of week\r\n const dayOfWeek = new Date(this.year, this.month).getDay();\r\n const blankdaysArray = [];\r\n for (var i = 1; i <= dayOfWeek; i++) {\r\n blankdaysArray.push(i);\r\n }\r\n\r\n const daysArray = [];\r\n const today = new Date();\r\n for (var i = 1; i <= daysInMonth; i++) {\r\n daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value, i, null) });\r\n }\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.blankDays = blankdaysArray;\r\n this.calendarDates = daysArray;\r\n }\r\n\r\n private updateDays(): void {\r\n const today = new Date();\r\n this.calendarDates.forEach(d => {\r\n d.today = this.compareDates(today, d, this.year);\r\n d.selected = this.compareDates(this.value, d, this.year);\r\n });\r\n }\r\n\r\n constructor() { }\r\n\r\n writeValue(obj: any): void {\r\n if (obj) {\r\n this.value = new Date(obj);\r\n this.month = this.value.getMonth();\r\n this.year = this.value.getFullYear();\r\n }\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange$ = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched$ = fn;\r\n }\r\n\r\n public onBlur(event: any): void {\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public paginate(array: any[], page_number: number): any[] {\r\n return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);\r\n }\r\n\r\n public openYears() {\r\n this.showYears = !this.showYears;\r\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\r\n this.calcDays();\r\n }\r\n\r\n public openCalendar() {\r\n this.showCalendar = !this.showCalendar\r\n this.calcDays();\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Toast, ToastType, NULL_TOAST } from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterService {\r\n\r\n private subject: BehaviorSubject<Toast>;\r\n public toast$: Observable<Toast>;\r\n\r\n constructor() {\r\n this.subject = new BehaviorSubject<Toast>(NULL_TOAST);\r\n this.toast$ = this.subject.asObservable()\r\n .pipe(filter( toast => toast !== null && toast.title !== NULL_TOAST.title ));\r\n }\r\n\r\n public show(type: ToastType, title?: string, body?: string, delay?: number): void {\r\n this.subject.next({ type, title, body, delay } as Toast);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '../../services/toaster.service';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster-container',\r\n templateUrl: './toaster-container.component.html'\r\n})\r\nexport class ToasterContainerComponent implements OnInit {\r\n\r\n toasts: Toast[] = [];\r\n\r\n constructor(private toaster: ToasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.toaster.toast$\r\n .subscribe(toast => {\r\n this.toasts = [toast, ...this.toasts];\r\n setTimeout(() => this.toasts.pop(), toast.delay || 6000);\r\n });\r\n }\r\n\r\n remove(index: number): void {\r\n this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster',\r\n templateUrl: './toaster.component.html'\r\n})\r\nexport class ToasterComponent implements OnInit {\r\n\r\n @Input() toast: Toast | undefined;\r\n @Input() i = 0;\r\n @Output() remove = new EventEmitter<number>();\r\n public isMobile = false;\r\n public closed = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;\r\n }\r\n\r\n public closeToast(index: number): void {\r\n this.closed = true;\r\n setTimeout(() => this.remove.emit(index), 100);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-avatar-initials',\r\n templateUrl: './avatar-initials.component.html'\r\n})\r\nexport class AvatarInitialsComponent implements OnInit {\r\n @Input()\r\n public name: string | null | undefined;\r\n @Input()\r\n public large = false;\r\n public initials?: string;\r\n public circleColor!: string;\r\n private colors = [\r\n '#EB7181', // red\r\n '#468547', // green\r\n '#FFD558', // yellow\r\n '#3670B2', // blue\r\n ];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.createInititals();\r\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\r\n // assign this to a class if you want to randomly change background colors of the circle.\r\n this.circleColor = this.colors[randomIndex];\r\n }\r\n\r\n private createInititals(): void {\r\n if (this.name) {\r\n let initials = '';\r\n for (let i = 0; i < this.name.length; i++) {\r\n if (this.name.charAt(i) === ' ') {\r\n continue;\r\n }\r\n if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {\r\n initials += this.name.charAt(i);\r\n if (initials.length === 2) {\r\n break;\r\n }\r\n }\r\n }\r\n this.initials = initials;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'lib-toggle',\n templateUrl: './toggle.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true\n }\n ]\n})\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\n @Input()\n public value: boolean | null | undefined;\n @Input()\n public disabled:boolean | null | undefined;\n @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\n\n private onChange$: any | undefined = undefined;\n private onTouched$: any | undefined = undefined;\n\n constructor() { }\n writeValue(obj: any): void {\n if(obj) {\n this.value = obj || false;\n }\n }\n registerOnChange(fn: any): void {\n this.onChange$ = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched$ = fn;\n }\n\n public onBlur(event: any): void {\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n\n ngOnInit(): void {\n }\n\n public changeValue(){\n this.value = !this.value;\n this.valueChange.emit(this.value);\n if(this.onChange$) {\n this.onChange$(this.value);\n }\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n}","import { InjectionToken } from '@angular/core';\r\nimport { IAppLinks, IShellConfig } from './types';\r\n\r\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\r\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\r\n","import { Injectable, ComponentFactoryResolver, ViewContainerRef } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ComponentLoaderService {\r\n constructor(private cfr: ComponentFactoryResolver) { }\r\n\r\n public loadComponent(vcr: ViewContainerRef, component: any): void {\r\n vcr.clear();\r\n const componentFactory = this.cfr.resolveComponentFactory(component);\r\n const componentRef = vcr.createComponent(componentFactory);\r\n // TL;TR Force change detection on this component, where change detection means force lifecycle hooks to run\r\n // In order to avoid NG0100: Expression has changed after it was checked\r\n // The above error is caused because the view is rendered before the lifecycle hooks are called,\r\n // resulting in bindind expression changes\r\n // A somewhat explanation here:\r\n // https://stackoverflow.com/questions/56427104/when-is-oninit-event-triggered-for-a-dynamically-loaded-angular-component\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Directive, ViewContainerRef, Input } from '@angular/core';\r\n\r\n@Directive({ selector: '[appDynamicComponentHost]' })\r\nexport class DynamicComponentHostDirective {\r\n @Input() hostName: string = '';\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}","import { SHELL_CONFIG } from './../../../tokens';\r\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\r\nimport { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, ViewContainerRef, QueryList } from '@angular/core';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\nimport { ActivationStart, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\nimport { ComponentLoaderService } from '../../../services/component-loader.service';\r\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-layout',\r\n templateUrl: './shell-layout.component.html'\r\n})\r\nexport class ShellLayoutComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChildren(DynamicComponentHostDirective)\r\n dynamicComponentHosts: QueryList<DynamicComponentHostDirective> | null = null;\r\n public showRightPaneSM = false;\r\n private routerSub$: Subscription | null = null;\r\n public activeConfig: IShellConfig = new DefaultShellConfig();\r\n constructor(@Inject(DOCUMENT) private document: any,\r\n private router: Router, private location: Location,\r\n @Inject(SHELL_CONFIG) private config: IShellConfig | null,\r\n private componentLoaderService: ComponentLoaderService) {\r\n if (!config) {\r\n config = new DefaultShellConfig();\r\n }\r\n this.activeConfig = config;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routerSub$ = this.router.events\r\n .pipe(filter(event => event instanceof ActivationStart))\r\n .subscribe((e) => {\r\n // console.log('ShellLayoutComponent ActivationStart', e);\r\n if ((e as ActivationStart)?.snapshot) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot', (e as ActivationStart)?.snapshot);\r\n if ((e as ActivationStart)?.snapshot?.data) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot data', (e as ActivationStart)?.snapshot.data);\r\n if ((e as ActivationStart)?.snapshot?.data.shell) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot data shell params',\r\n // (e as ActivationStart)?.snapshot.data.shell);\r\n this.activeConfig = (e as ActivationStart)?.snapshot.data.shell as IShellConfig;\r\n // console.log('ShellLayoutComponent activeConfig from route: ', this.activeConfig);\r\n if (this.activeConfig.customHeaderComponent) {\r\n this.initCustomComponents();\r\n }\r\n } else {\r\n this.activeConfig = this.config ? this.config : new DefaultShellConfig();\r\n // console.log('ShellLayoutComponent default activeConfig: ', this.activeConfig);\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.initCustomComponents();\r\n }\r\n\r\n private initCustomComponents(): void {\r\n if(this.dynamicComponentHosts && this.dynamicComponentHosts.length > 0){\r\n this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Header'));\r\n // since you're not using it...\r\n // this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Footer'));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n }\r\n\r\n private loadCustomComponent(host: DynamicComponentHostDirective | undefined): void{\r\n if (host){\r\n const viewContainerRef = host.viewContainerRef;\r\n if (viewContainerRef && this.activeConfig.customHeaderComponent) {\r\n this.componentLoaderService.loadComponent(viewContainerRef, this.activeConfig.customHeaderComponent);\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\r\nimport { User } from 'oidc-client';\r\nimport { Event, NavigationStart, Router, RouterEvent } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { NavLink } from '../../../types';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { BehaviorSubject, Observable, Subject, SubscriptionLike } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-header',\r\n templateUrl: './shell-header.component.html'\r\n})\r\nexport class ShellHeaderComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('section-links') sectionLinksPath = 'main';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('profile-menu') profileMenuVisible = true;\r\n @Input() border = true;\r\n public sectionLinks: NavLink[] = [];\r\n public mobileMenuExpanded = false;\r\n public userMenuExpanded = false;\r\n protected routeSubject: Observable<Event>;\r\n protected userSubject: BehaviorSubject<any>;\r\n protected routerSub$: Subscription | null = null;\r\n protected userSub$: Subscription | null = null;\r\n protected statusSub$: Subscription | null = null;\r\n public user: User | null = null;\r\n public avatarName: string | null = null;\r\n\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n this.routeSubject = this.router.events.pipe(filter(event => event instanceof NavigationStart));\r\n this.userSubject = this.authService.userStatus;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n // TODO: check authenticated user here before we start polling server status\r\n if (this.statusSub$) {\r\n this.statusSub$.unsubscribe();\r\n }\r\n if (this.userSub$) {\r\n this.userSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sectionLinks = this.links[this.sectionLinksPath] as NavLink[];\r\n this.routerSub$ = this.routeSubject.subscribe(event => {\r\n this.mobileMenuExpanded = false;\r\n this.userMenuExpanded = false;\r\n });\r\n this.authService.loadUser().then(user => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n //console.log(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.userSubject.subscribe((user: any) => {\r\n //console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.userMenuExpanded = false;\r\n }\r\n\r\n public signin(event: any | null | undefined): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n this.authService.startAuthentication();\r\n }\r\n\r\n private setCurrentUser(user: any): void {\r\n this.user = user;\r\n if (this.user && this.user.profile) {\r\n this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`;\r\n //console.log('load user', this.avatarName);\r\n }\r\n }\r\n}\r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { IAppLinks } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-footer',\r\n templateUrl: './shell-footer.component.html'\r\n\r\n})\r\n\r\nexport class ShellFooterComponent {\r\n constructor(@Inject(APP_LINKS) public links: IAppLinks) {\r\n }\r\n}\r\n","import { SwitchViewAction } from '../../../types';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { HeaderMetaItem, RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-view-layout',\r\n templateUrl: './view-layout.component.html'\r\n})\r\nexport class ViewLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-header') header = true;\r\n @Input() fluid = false;\r\n @Input() title = 'no title';\r\n @Input() icon: string | null = null;\r\n @Input() actions: ViewAction[] | null = null;\r\n @Input() busy = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() view: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any): void {\r\n //console.log('routerLinkActionClick', action);\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { rightpane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n fromEvent(this.searchInput$?.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe(_ => {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n });\r\n }\r\n\r\n public switchViewActionClick(action: SwitchViewAction | any): void {\r\n //console.log('switchViewActionClick', action);\r\n this.view = action.param;\r\n if (action && action.param) {\r\n this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { HeaderMetaItem } from '../../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-model-view-layout',\r\n templateUrl: './model-view-layout.component.html'\r\n})\r\nexport class ModelViewLayoutComponent implements OnInit {\r\n public showRightPaneSM = false;\r\n @Input() title = 'no title';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('primary-links') primary: { text: string, link: string }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('secondary-links') secondary: { text: string, link: string }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n constructor( private location: Location) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated($event: any): void {\r\n //console.log('onSidePaneActivated', $event);\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n //console.log('onSidePaneActivated', $event);\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public closeSidePane(): void {\r\n this.location.back();\r\n }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-view-layout',\r\n templateUrl: './side-view-layout.component.html'\r\n})\r\nexport class SideViewLayoutComponent implements OnInit {\r\n @Input() title: string | null = 'Πληροφορίες';\r\n @Input() showActions = true;\r\n @Input() disabled = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('return-path') returnPath: string | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-label') okLabel = 'Αποθήκευση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-show') okShow = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-close-dialog') closeOnOk = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-label') cancelLabel = 'Ακύρωση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-show') cancelShow = true;\r\n // @Output() close = new EventEmitter<any>();\r\n @Output() cancel: EventEmitter<boolean> = new EventEmitter();\r\n @Output() ok: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(private location: Location, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public closeSidePane(): void {\r\n if (this.returnPath) {\r\n this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => this.router.navigateByUrl(this.returnPath || '/'));\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n\r\n public emitClose(): void {\r\n this.cancel.emit(false);\r\n this.closeSidePane();\r\n }\r\n\r\n public emitCancel(): void {\r\n this.cancel.emit(false);\r\n this.closeSidePane();\r\n }\r\n\r\n public emitOK(): void {\r\n this.ok.emit(true);\r\n if(this.closeOnOk) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { fromEvent } from 'rxjs';\r\nimport { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-form-layout',\r\n templateUrl: './form-layout.component.html'\r\n})\r\nexport class FormLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() actions: ViewAction[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle: string | null = null;\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n public showRightPaneSM = false;\r\n\r\n constructor(private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated($event: any): void {\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.onComplete.emit(true);\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n fromEvent(this.searchInput$?.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe(_ => {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n });\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any, relative: boolean = false): void {\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-auth-callback',\r\n templateUrl: './auth-callback.component.html'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n public status = 'παρακαλώ περιμένετε...';\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router, private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n const self = this;\r\n this.authService.completeAuthentication().then(() => {\r\n self.authService.isLoggedIn().subscribe((result: any) => {\r\n // i'm sorry!\r\n if (!result) {\r\n self.router.navigate(['/unauthorized']);\r\n return;\r\n }\r\n let navigationUrl = '/dashboard';\r\n if (this.route.data) {\r\n this.route.data.subscribe(data => {\r\n if(data['navigationUrl'] != undefined){\r\n navigationUrl = data['navigationUrl'];\r\n }\r\n })\r\n }\r\n\r\n // did you want to go somewhere?\r\n const user = self.authService.currentUser();\r\n if (user && user.state && user.state.url) {\r\n //console.log('AuthCallbackComponent user state', user.state);\r\n self.router.navigateByUrl(user.state.url);\r\n return;\r\n } else {\r\n self.router.navigateByUrl(navigationUrl);\r\n return;\r\n }\r\n\r\n //\r\n // lets check your subscriptions...\r\n // self.status = `we're loading your subscription information, please wait...`;\r\n // ok get the subscriptions for the user\r\n // self.appState.subscriptions.subscribe((subs) => {\r\n // self.subscriptions = subs;\r\n // if (subs === null || subs.length === 0) {\r\n // self.router.navigate(['/new-subscription']);\r\n // } else if (subs.length === 1) {\r\n // self.status = `welcome ${user.profile.name}, we're loading your configuration information, please wait...`;\r\n // self.selectSubscription(subs[0]);\r\n // } else {\r\n // self.status = `welcome ${user.profile.name}, please select a subscription to proceed...`;\r\n // }\r\n // }, error => {\r\n // self.status = `oups! an error occured, sorry about that! please try again in a while :)`;\r\n // });\r\n //\r\n\r\n });\r\n });\r\n }\r\n\r\n // public selectSubscription(subscription: any) {\r\n // this.appState.selectSubscription(subscription);\r\n // this.router.navigate([subscription.homePath]);\r\n // }\r\n\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n\r\n@Component({ selector: 'lib-auth-renew', template: ''})\r\nexport class AuthRenewComponent implements OnInit {\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n // console.log('AuthRenewComponent init!!!');\r\n this.authService.manager.signinSilentCallback().catch(() => {\r\n // console.log('redirect to unauthorized!');\r\n this.router.navigate(['/unauthorized']);\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-logged-out',\r\n templateUrl: './logged-out.component.html'\r\n})\r\nexport class LoggedOutComponent implements OnInit {\r\n status = 'working on it, please give me a sec...';\r\n finished = false;\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.completeSignout().then(() => {\r\n this.status = 'Thank you!';\r\n this.finished = true;\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-error',\r\n templateUrl: './error.component.html'\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n public error = 'Error!';\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-page-not-found',\r\n templateUrl: './page-not-found.component.html'\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n\r\n// tslint:disable-next-line:component-selector\r\n@Component({selector: 'lib-unauthorized', templateUrl: './unauthorized.component.html'})\r\nexport class UnauthorizedComponent implements OnInit {\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n signin(): void {\r\n this.authService.clearState().then( (_: any) => {\r\n this.authService.startSignout();\r\n });\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IAddress } from '../types';\r\n\r\n@Pipe({\r\n name: 'address',\r\n pure: false\r\n})\r\nexport class AddressPipe implements PipeTransform {\r\n\r\n transform(value: IAddress | undefined): string {\r\n if (value === undefined || null || '') {\r\n return '';\r\n }\r\n // tslint:disable-next-line:no-non-null-assertion\r\n return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode! ? ', ' + +value.postalCode! : ''}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'durationFormat',\r\n pure: false\r\n})\r\nexport class DurationFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, arg1: any, arg2: any): string {\r\n\r\n let days: any;\r\n let seconds: any;\r\n let minutes: any;\r\n let hours: any;\r\n\r\n if (arg1 === 'ms' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value / 1000) % 60);\r\n minutes = Math.floor(((value / (1000 * 60)) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value % 60));\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(((value / 1000) % 60));\r\n minutes = Math.floor((value / (1000 * 60) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60) % 24));\r\n days = Math.floor((value / (1000 * 60 * 60 * 24)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(value % 60);\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60) % 24);\r\n days = Math.floor((((value / 60) / 60) / 24));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private format(arg2: string, seconds: any, minutes: any, hours: any, days: any): any {\r\n (days < 10) ? days = '0' + days : days;\r\n (hours < 10) ? hours = '0' + hours : hours;\r\n (minutes < 10) ? minutes = '0' + minutes : minutes;\r\n (seconds < 10) ? seconds = '0' + seconds : seconds;\r\n\r\n switch (arg2) {\r\n case 'hhmmss':\r\n return `${hours}:${minutes}:${seconds}`;\r\n\r\n case 'ddhhmmss':\r\n return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;\r\n\r\n case 'ddhhmmssLong':\r\n return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;\r\n }\r\n return undefined;\r\n }\r\n\r\n}\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { HeaderMetaItem, IResultSet, MenuOption, RouterViewAction, ViewAction, ListViewType } from '../types';\r\nimport { Icons } from '../icons';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseListComponent<T> implements OnInit, OnDestroy {\r\n public items: T[] | null | undefined = null;\r\n public view: string = ListViewType.Tiles;\r\n public title: string | null = null;\r\n public actions: ViewAction[] = [];\r\n public loaderItems: any[] = [1, 2, 3, 4, 5];\r\n public page = 1;\r\n public pageSize = 20;\r\n public count = 0;\r\n public sort: string | null = '';\r\n public sortdir: string | null = '-';\r\n public search: string | null = '';\r\n public sortOptions: MenuOption[] = [];\r\n public metaItems: HeaderMetaItem[] = [];\r\n public abstract newItemLink: string | null;\r\n private routeSub$: Subscription | undefined;\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routeSub$) {\r\n this.routeSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.actions = [\r\n new ViewAction('search', null, null, Icons.Search, 'αναζήτηση'),\r\n new ViewAction('refresh', null, null, Icons.Refresh, 'ανανέωση στοιχείων')\r\n ];\r\n if (this.newItemLink) {\r\n this.actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\r\n }\r\n\r\n this.metaItems = [\r\n { key: 'count', icon: Icons.ItemsCount, text: 'παρακαλώ περιμένετε...' }\r\n ];\r\n\r\n // disabled external route changes monitoring due to sync issues - which is bad :) - refresh from url will not work\r\n // until i come up with a solution...\r\n\r\n this.routeSub$ = this.route$.queryParamMap.subscribe(params => {\r\n if (params.keys.length === 0) {\r\n return;\r\n }\r\n\r\n // changing the view mode does not require reloading...\r\n this.view = params.get('view') || ListViewType.Tiles;\r\n //console.log('route changes ', this.view);\r\n\r\n // if (params.get('search') !== this.search) {\r\n // this.searchChanged(params.get('search'));\r\n // }\r\n\r\n // const page = +(params.get('page') || 1);\r\n // if (page !== this.page) {\r\n // this.page = page;\r\n // }\r\n\r\n // const size = +(params.get('pagesize') || 20);\r\n // if (this.pageSize !== size) {\r\n // this.pageSize = size;\r\n // }\r\n\r\n // if (params.get('search') !== this.search) {\r\n // this.search = params.get('search');\r\n // }\r\n\r\n // if (params.get('sort') !== this.sort) {\r\n // this.sort = params.get('sort');\r\n // }\r\n\r\n // if (params.get('sortdir') !== this.sortdir) {\r\n // this.sortdir = params.get('sortdir');\r\n // }\r\n\r\n });\r\n\r\n // just to sync params in query\r\n this.setRouteParams(true);\r\n this.load();\r\n }\r\n\r\n private setRouteParams(locationChange: boolean = false): void {\r\n this.router$.navigate([], {\r\n relativeTo: this.route$, queryParams: {\r\n view: this.view,\r\n page: this.page,\r\n pagesize: this.pageSize,\r\n search: this.search,\r\n sort: this.sort,\r\n dir: this.sortdir\r\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\r\n });\r\n }\r\n\r\n public actionHandler($event: ViewAction): void {\r\n //console.log('BaseListComponent actionHandler', $event);\r\n if ($event.key === 'refresh') {\r\n this.refresh();\r\n }\r\n }\r\n\r\n private load(): void {\r\n //console.log('BaseListComponent LOAD');\r\n this.count = 0;\r\n this.items = null;\r\n this.loadItems().subscribe(result => {\r\n this.count = result ? result.count : 0;\r\n this.items = result?.items;\r\n this.updateHeaderMeta();\r\n });\r\n }\r\n\r\n private updateHeaderMeta(): void {\r\n const count = this.metaItems?.filter(m => m.key === 'count')[0];\r\n if (count) {\r\n count.text = `${this.count} αποτελέσματα`;\r\n }\r\n }\r\n\r\n public abstract loadItems(): Observable<IResultSet<T> | null | undefined>;\r\n\r\n public clear(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public refresh(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public pageChanged(page: number): void {\r\n if(this.page !== page) {\r\n this.page = page;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n }\r\n\r\n public pageSizeChanged(pageSize: number): void {\r\n if(this.pageSize !== pageSize) {\r\n this.pageSize = pageSize;\r\n this.page = 1;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortChanged(sort: string): void {\r\n //console.log('base-list sortChanged', sort);\r\n if (this.sort !== sort) {\r\n this.page = 1;\r\n this.sort = sort;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortdirChanged(sortdir: string): void {\r\n if (this.sortdir !== sortdir) {\r\n this.page = 1;\r\n this.sortdir = sortdir;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public searchChanged(searchText: string | null): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = searchText;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n}\r\n","import { SidePaneOverlayType, SidePaneSize } from './../../types';\r\nimport { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-pane',\r\n templateUrl: './side-pane.component.html'\r\n})\r\nexport class SidePaneComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('visible') showPane = false;\r\n public sizeContainerStyle = 'side-pane-box-size';\r\n public overlayStyle = 'side-pane-overlay';\r\n constructor(private router: Router, @Inject(DOCUMENT) private document: any,) { }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated(component: any): void {\r\n this.document.body.classList.add('modal-active');\r\n let sizeStyleSuffix = '';\r\n const state = this.router.getCurrentNavigation()?.extras.state;\r\n if (state) {\r\n if (state.paneSize) {\r\n if (state.paneSize === SidePaneSize.Small25) {\r\n sizeStyleSuffix = '-25';\r\n } else if (state.paneSize === SidePaneSize.Medium50) {\r\n sizeStyleSuffix = '-50';\r\n } else if (state.paneSize === SidePaneSize.Large75) {\r\n sizeStyleSuffix = '-75';\r\n }\r\n }\r\n if (state.paneOverlay) {\r\n if (state.paneOverlay === SidePaneOverlayType.None) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-0';\r\n } else if (state.paneOverlay === SidePaneOverlayType.Dark) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-50';\r\n } else {\r\n this.overlayStyle = 'side-pane-overlay';\r\n }\r\n }\r\n }\r\n this.sizeContainerStyle = `side-pane-box-size${sizeStyleSuffix}`;\r\n this.showPane = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.document.body.classList.remove('modal-active');\r\n this.showPane = false;\r\n }\r\n\r\n}\r\n","import { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\r\nimport { ToasterService } from './services/toaster.service';\r\nimport { ToasterComponent } from './controls/toaster/toaster.component';\r\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\r\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\r\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\r\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\r\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\r\nimport { ErrorComponent } from './pages/http-status/error/error.component';\r\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\r\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\r\nimport { IndiceAuthModule } from '@indice/ng-auth';\r\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\r\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\r\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\r\nimport { ListViewComponent } from './controls/list-view/list-view.component';\r\nimport { PagerComponent } from './controls/pager/pager.component';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.component';\r\nimport { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';\r\nimport { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';\r\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\r\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\r\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\r\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\r\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\r\nimport { AddressPipe } from './pipes/address.pipe';\r\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\r\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\r\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\r\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\r\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\r\nimport { ToggleComponent } from './controls/toggle/toggle.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n // diectives\r\n ClickOutsideDirective,\r\n DynamicComponentHostDirective,\r\n // controls\r\n DropDownMenuComponent,\r\n PagerComponent,\r\n ListViewComponent,\r\n ListColumnComponent,\r\n ListTileComponent,\r\n ListDetailsSectionComponent,\r\n ListViewEmptyStateComponent,\r\n SkeletonLoaderComponent,\r\n CollapsiblePanelComponent,\r\n KpiTileComponent,\r\n SidePaneComponent,\r\n DatepickerComponent,\r\n AvatarInitialsComponent,\r\n ToggleComponent,\r\n // Toaster\r\n ToasterContainerComponent,\r\n ToasterComponent,\r\n // shell layout\r\n ShellLayoutComponent,\r\n ShellHeaderComponent,\r\n ShellFooterComponent,\r\n // view layouts\r\n ViewLayoutComponent,\r\n SideViewLayoutComponent,\r\n ModelViewLayoutComponent,\r\n FormLayoutComponent,\r\n // pages (common)\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n LoggedOutComponent,\r\n ErrorComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n // pipes\r\n AddressPipe,\r\n DurationFormatPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n IndiceAuthModule\r\n ],\r\n exports: [\r\n ClickOutsideDirective,\r\n DropDownMenuComponent,\r\n PagerComponent,\r\n ListViewComponent,\r\n ListColumnComponent,\r\n ListTileComponent,\r\n ListDetailsSectionComponent,\r\n ListViewEmptyStateComponent,\r\n KpiTileComponent,\r\n SkeletonLoaderComponent,\r\n ShellLayoutComponent,\r\n ShellHeaderComponent,\r\n ShellFooterComponent,\r\n ViewLayoutComponent,\r\n SideViewLayoutComponent,\r\n ModelViewLayoutComponent,\r\n FormLayoutComponent,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n LoggedOutComponent,\r\n ErrorComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n AddressPipe,\r\n DurationFormatPipe,\r\n CollapsiblePanelComponent,\r\n SidePaneComponent,\r\n DatepickerComponent,\r\n ToasterContainerComponent,\r\n ToasterComponent,\r\n AvatarInitialsComponent,\r\n ToggleComponent\r\n ]\r\n})\r\nexport class IndiceComponentsModule {\r\n // tslint:disable-next-line:typedef\r\n static forRoot() {\r\n return {\r\n ngModule: IndiceComponentsModule,\r\n providers: [ToasterService]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of @indice/ng-components\r\n */\r\n\r\n// directives\r\nexport * from './lib/directives/click-outside.directive';\r\n\r\n// controls\r\nexport * from './lib/controls/drop-down-menu/drop-down-menu.component';\r\nexport * from './lib/controls/pager/pager.component';\r\nexport * from './lib/controls/list-view/list-view.component';\r\nexport * from './lib/controls/list-view/list-column.component';\r\nexport * from './lib/controls/list-view/list-tile.component';\r\nexport * from './lib/controls/list-view/list-details-section.component';\r\nexport * from './lib/controls/list-view/list-view-empty-state.component';\r\nexport * from './lib/controls/skeleton-loader/skeleton-loader.component';\r\nexport * from './lib/controls/collapsible-panel/collapsible-panel.component';\r\nexport * from './lib/controls/kpi-tile/kpi-tile.component';\r\nexport * from './lib/controls/date-picker/date-picker.component';\r\nexport * from './lib/controls/toaster/toaster-container.component';\r\nexport * from './lib/controls/toaster/toaster.component';\r\nexport * from './lib/controls/avatar-initials/avatar-initials.component';\r\nexport * from './lib/controls/toggle/toggle.component';\r\n\r\n// shell layout\r\nexport * from './lib/layouts/shell/shell-layout/shell-layout.component';\r\nexport * from './lib/layouts/shell/shell-header/shell-header.component';\r\nexport * from './lib/layouts/shell/shell-footer/shell-footer.component';\r\n\r\n// view layouts\r\nexport * from './lib/layouts/views/view-layout/view-layout.component';\r\nexport * from './lib/layouts/views/model-view-layout/model-view-layout.component';\r\nexport * from './lib/layouts/views/side-view-layout/side-view-layout.component';\r\nexport * from './lib/layouts/views/form-layout/form-layout.component';\r\n\r\n// pages\r\nexport * from './lib/pages/auth/auth-callback/auth-callback.component';\r\nexport * from './lib/pages/auth/auth-renew/auth-renew.component';\r\nexport * from './lib/pages/auth/logged-out/logged-out.component';\r\nexport * from './lib/pages/http-status/error/error.component';\r\nexport * from './lib/pages/http-status/page-not-found/page-not-found.component';\r\nexport * from './lib/pages/http-status/unauthorized/unauthorized.component';\r\n\r\n// pipes\r\nexport * from './lib/pipes/address.pipe';\r\nexport * from './lib/pipes/duration-format.pipe';\r\n\r\n// common stuff (tokens, types, helper classes)\r\nexport * from './lib/tokens';\r\nexport * from './lib/types';\r\nexport * from './lib/icons';\r\nexport * from './lib/helpers/base-list.component';\r\n\r\n// services\r\nexport * from './lib/services/component-loader.service';\r\nexport * from './lib/services/toaster.service';\r\n\r\nexport * from './lib/ng-components.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SidePaneComponent as ɵb} from './lib/controls/side-pane/side-pane.component';\nexport {DynamicComponentHostDirective as ɵa} from './lib/directives/dynamic-component-host.directive';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indice-ng-components.js","sources":["../../../projects/ng-components/src/lib/directives/click-outside.directive.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.ts","../../../projects/ng-components/src/lib/icons.ts","../../../projects/ng-components/src/lib/types.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-tile.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-column.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-details-section.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/services/component-loader.service.ts","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-renew/auth-renew.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pipes/address.pipe.ts","../../../projects/ng-components/src/lib/pipes/duration-format.pipe.ts","../../../projects/ng-components/src/lib/helpers/base-list.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/ng-components.module.ts","../../../projects/ng-components/src/public-api.ts","../../../projects/ng-components/src/indice-ng-components.ts"],"sourcesContent":["//\r\n// https://github.com/arkon/ng-click-outside\r\n// the project is inactive - so imoved the directive code in our project\r\n//\r\nimport {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n SimpleChanges,\r\n NgZone,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n// tslint:disable-next-line:directive-selector\r\n@Directive({ selector: '[clickOutside]' })\r\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() clickOutsideEnabled = true;\r\n\r\n @Input() attachOutsideOnClick = false;\r\n @Input() delayClickOutsideInit = false;\r\n @Input() emitOnBlur = false;\r\n\r\n @Input() exclude = '';\r\n @Input() excludeBeforeClick = false;\r\n\r\n @Input() clickOutsideEvents = '';\r\n\r\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _nodesExcluded: Array<HTMLElement> = [];\r\n // tslint:disable-next-line:variable-name\r\n private _events: Array<string> = ['click'];\r\n\r\n constructor(\r\n // tslint:disable-next-line:variable-name\r\n private _el: ElementRef,\r\n // tslint:disable-next-line:variable-name\r\n private _ngZone: NgZone,\r\n @Inject(PLATFORM_ID) private platformId: any) {\r\n this._initOnClickBody = this._initOnClickBody.bind(this);\r\n this._onClickBody = this._onClickBody.bind(this);\r\n this._onWindowBlur = this._onWindowBlur.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._removeClickOutsideListener();\r\n this._removeAttachOutsideOnClickListener();\r\n this._removeWindowBlurListener();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\r\n this._init();\r\n }\r\n }\r\n\r\n private _init(): void {\r\n if (this.clickOutsideEvents !== '') {\r\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\r\n }\r\n\r\n this._excludeCheck();\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._initAttachOutsideOnClickListener();\r\n } else {\r\n this._initOnClickBody();\r\n }\r\n\r\n if (this.emitOnBlur) {\r\n this._initWindowBlurListener();\r\n }\r\n }\r\n\r\n private _initOnClickBody(): void {\r\n if (this.delayClickOutsideInit) {\r\n setTimeout(this._initClickOutsideListener.bind(this));\r\n } else {\r\n this._initClickOutsideListener();\r\n }\r\n }\r\n\r\n private _excludeCheck(): void {\r\n if (this.exclude) {\r\n try {\r\n const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\r\n if (nodes) {\r\n this._nodesExcluded = nodes;\r\n }\r\n } catch (err) {\r\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\r\n }\r\n }\r\n }\r\n\r\n private _onClickBody(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n if (this.excludeBeforeClick) {\r\n this._excludeCheck();\r\n }\r\n\r\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\r\n this._emit(ev);\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._removeClickOutsideListener();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resolves problem with outside click on iframe\r\n * @see https://github.com/arkon/ng-click-outside/issues/32\r\n */\r\n private _onWindowBlur(ev: Event): void {\r\n setTimeout(() => {\r\n if (!document.hidden) {\r\n this._emit(ev);\r\n }\r\n });\r\n }\r\n\r\n private _emit(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n this._ngZone.run(() => this.clickOutside.emit(ev));\r\n }\r\n\r\n private _shouldExclude(target: any): boolean {\r\n // tslint:disable-next-line:prefer-const\r\n for (let excludedNode of this._nodesExcluded) {\r\n if (excludedNode.contains(target)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _initClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _removeClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _initAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _removeAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _initWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.addEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n\r\n private _removeWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.removeEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-drop-down-menu',\r\n templateUrl: './drop-down-menu.component.html'\r\n})\r\nexport class DropDownMenuComponent implements OnInit, OnChanges {\r\n @Input() options: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('selected') selectedValue: any | null = null;\r\n @Input() multiple = false;\r\n\r\n private selectedOption$: MenuOption | null = null;\r\n public get selectedOption(): MenuOption | null {\r\n return this.selectedOption$;\r\n }\r\n public set selectedOption(option: MenuOption | null) {\r\n this.selectedOption$ = option;\r\n this.selectedValue = option ? option.value : null;\r\n this.expanded = false;\r\n }\r\n\r\n @Output() selectedChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private expanded$ = false;\r\n public get expanded(): boolean {\r\n return this.expanded$;\r\n }\r\n public set expanded(value: boolean) {\r\n this.expanded$ = value;\r\n }\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {\r\n this.selectedOption$ = this.options.filter(o => o.value === this.selectedValue)[0];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public isSelected(option: MenuOption): boolean {\r\n return option != null && this.selectedValue != null && option.value === this.selectedValue;\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.expanded = false;\r\n }\r\n\r\n public selectOption(option: MenuOption): void {\r\n this.selectedOption = option;\r\n this.selectedChange.emit(option.value);\r\n this.selectedChanged.emit(option.value);\r\n }\r\n\r\n}\r\n","export class Icons {\r\n // https://uifabricicons.azurewebsites.net/\r\n public static Dashboard = `ms-Icon ms-Icon--HomeGroup `;\r\n public static Locations = `ms-Icon ms-Icon--MapPin `;\r\n public static ChargePoints = `ms-Icon ms-Icon--ChatBot `;\r\n public static Transations = `ms-Icon ms-Icon--PaymentCard `;\r\n public static Badges = `ms-Icon ms-Icon--IDBadge `;\r\n\r\n public static Information = `ms-Icon ms-Icon--Info`;\r\n public static Refresh = `ms-Icon ms-Icon--Refresh`;\r\n public static Search = `ms-Icon ms-Icon--Search`;\r\n public static Add = `ms-Icon ms-Icon--Add`;\r\n public static Send = `ms-Icon ms-Icon--Send`;\r\n public static Filter = `ms-Icon ms-Icon--Filter`;\r\n\r\n public static TilesView = `ms-Icon ms-Icon--AppIconDefault`;\r\n public static TableView = `ms-Icon ms-Icon--Table`;\r\n public static MapView = `ms-Icon ms-Icon--MapPin`;\r\n public static EntryView = `ms-Icon ms-Icon--EntryView`;\r\n\r\n public static Separator = `ms-Icon ms-Icon--Separator text-white`;\r\n\r\n public static ItemsCount = 'ms-Icon ms-Icon--Boards';\r\n\r\n public static Heart = 'ms-Icon ms-Icon--Heart';\r\n public static HeartBroken = 'ms-Icon ms-Icon--HeartBroken';\r\n public static DateTime = 'ms-Icon ms-Icon--ReminderTime';\r\n\r\n public static Expand = 'ms-Icon ms-Icon--ChevronDown';\r\n public static Collapse = 'ms-Icon ms-Icon--ChevronUp';\r\n\r\n public static SortAsc = 'ms-Icon ms-Icon--Ascending';\r\n public static SortDesc = 'ms-Icon ms-Icon--Descending';\r\n\r\n public static Details = ' ms-Icon ms-Icon--AccountActivity'\r\n}\r\n","export interface IAppLinks {\r\n public: NavLink[];\r\n main: NavLink[];\r\n profile: NavLink[];\r\n profileActions: NavLink[];\r\n legal: NavLink[];\r\n brand: NavLink[];\r\n}\r\n\r\n\r\nexport class NavLink {\r\n constructor(text: string, path: string, exact: boolean = false, external: boolean = false, icon?: string) {\r\n this.text = text;\r\n this.path = path;\r\n this.exact = exact;\r\n this.external = external;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public path: string;\r\n public exact: boolean;\r\n public external: boolean;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport class ExternalNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n}\r\n\r\nexport class FragmentNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n}\r\n\r\nexport class ViewAction {\r\n public type: string;\r\n public key: string | null;\r\n public param: any;\r\n public icon: string;\r\n public tooltip: string | null;\r\n\r\n constructor(type: string, key: string | null, param: any, icon: string, tooltip: string | null) {\r\n this.type = type;\r\n this.key = key;\r\n this.param = param;\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n }\r\n}\r\n\r\nexport class ListViewType {\r\n public static Tiles = 'tiles';\r\n public static Table = 'table';\r\n public static Map = 'map';\r\n}\r\n\r\nexport class RouterViewAction extends ViewAction {\r\n public outlet: string | null = null;\r\n public link: string | null = null;\r\n constructor(icon: string, link: string, outlet: string | null, tooltip: string | null) {\r\n super('router-link', null, null, icon, tooltip);\r\n this.outlet = outlet;\r\n this.link = link;\r\n }\r\n}\r\n\r\n\r\nexport class SwitchViewAction extends ViewAction {\r\n constructor(view: string, icon: string, tooltip: string | null) {\r\n super('switch-view', null, view, icon, tooltip);\r\n }\r\n}\r\n\r\nexport interface IResultSet<T> {\r\n count: number;\r\n items: T[];\r\n}\r\n\r\nexport class HeaderMetaItem {\r\n public key: string | null = null;\r\n public icon: string | null = null;\r\n public text: string | null = null;\r\n}\r\n\r\nexport class MenuOption {\r\n constructor(text: string, value: any, description?: string, data?: any, icon?: string) {\r\n this.text = text;\r\n this.value = value;\r\n this.description = description;\r\n this.data = data;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public value: any;\r\n public description: string | undefined;\r\n public data: any | undefined;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport interface IAddress {\r\n id?: string;\r\n street?: string | null;\r\n streetNumber?: string | null;\r\n city?: string | null;\r\n region?: string | null;\r\n postalCode?: string | null;\r\n country?: string | null;\r\n}\r\n\r\nexport interface IShellConfig {\r\n appLogo: string;\r\n appLogoAlt: string;\r\n showHeader: boolean;\r\n customHeaderComponent?: any;\r\n showFooter: boolean;\r\n customFooterComponent?: any;\r\n fluid: boolean;\r\n}\r\n\r\nexport class DefaultShellConfig implements IShellConfig {\r\n appLogo = 'https://tailwindui.com/img/logos/workflow-mark.svg?color=white';\r\n appLogoAlt = 'your app name here';\r\n showHeader = true;\r\n showFooter = true;\r\n fluid = false;\r\n}\r\n\r\nexport enum SCREEN_SIZE {\r\n XS,\r\n SM,\r\n MD,\r\n LG,\r\n XL\r\n}\r\n\r\nexport interface IScreenSize {\r\n id: SCREEN_SIZE;\r\n name: string;\r\n css: string;\r\n}\r\n\r\nexport enum ToastType {\r\n Info = 'info',\r\n Success = 'success',\r\n Error = 'error',\r\n Warning = 'warning'\r\n}\r\n\r\nexport const NULL_TOAST = { title : '_____NULL_____' } as Toast;\r\n\r\nexport interface Toast {\r\n type: ToastType;\r\n title: string;\r\n body: string;\r\n delay: number;\r\n}\r\n\r\nexport enum SidePaneSize {\r\n Default = '',\r\n Small25 = '25%',\r\n Medium50 = '50%',\r\n Large75 = '75%'\r\n}\r\n\r\nexport enum SidePaneOverlayType {\r\n Default = '',\r\n None = '-opacity-0',\r\n Light = '',\r\n Dark = '-opacity-50'\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Icons } from '../../icons';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-pager',\r\n templateUrl: './pager.component.html'\r\n})\r\nexport class PagerComponent implements OnInit, OnChanges {\r\n // PAGING\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [\r\n new MenuOption('10', 10),\r\n new MenuOption('20', 20),\r\n new MenuOption('30', 30),\r\n new MenuOption('50', 50),\r\n new MenuOption('100', 100)\r\n ];\r\n public pages: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n public canPreviousPage = false;\r\n public canNextPage = false;\r\n\r\n // SORTING\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = 'desc';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n public sortdirIcon = Icons.SortDesc;\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.calcPages();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private calcPages(): void {\r\n this.pages = [];\r\n if (this.count && this.count > 0) {\r\n const pageCount = this.count / this.pageSize;\r\n for (let i = 0; i < pageCount; i++) {\r\n this.pages.push(new MenuOption(i + 1 + '', i + 1));\r\n }\r\n }\r\n this.canPreviousPage = this.page > 1;\r\n this.canNextPage = this.page < this.pages.length;\r\n //console.log('calcPages', this.page, this.canPreviousPage, this.canNextPage);\r\n }\r\n\r\n public nextPage(): void {\r\n const next = this.page + 1;\r\n this.gotoPage(next);\r\n }\r\n\r\n public previousPage(): void {\r\n const previous = this.page - 1;\r\n this.gotoPage(previous);\r\n }\r\n\r\n public gotoPage(page: number): void {\r\n this.page = page;\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public pageSizeOptionChanged(pageSize: number): void {\r\n this.pageSizeChanged.emit(pageSize);\r\n this.calcPages();\r\n }\r\n\r\n public pageOptionChanged(page: number): void {\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public sortOptionChanged(sort: string): void {\r\n this.sortChanged.emit(sort);\r\n }\r\n\r\n public toggleSortdir(): void {\r\n //console.log('toggleSortdir');\r\n let sortdir = 'desc';\r\n if (this.sortdir === 'desc') {\r\n sortdir = 'asc';\r\n this.sortdirIcon = Icons.SortAsc;\r\n } else {\r\n sortdir = 'desc';\r\n this.sortdirIcon = Icons.SortDesc;\r\n }\r\n this.sortdirChanged.emit(sortdir);\r\n }\r\n\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-tile', template: '<ng-content></ng-content>' })\r\nexport class ListTileComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({selector: 'lib-list-column', template: '<ng-content></ng-content>'})\r\nexport class ListColumnComponent {\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('full-width') fullWidth = false;\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() { }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' })\r\nexport class ListDetailsSectionComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { MenuOption, ListViewType } from '../../types';\r\nimport { ListTileComponent } from './list-tile.component';\r\nimport { ListColumnComponent } from './list-column.component';\r\nimport { ListDetailsSectionComponent } from './list-details-section.component';\r\nimport { Icons } from '../../icons';\r\n\r\n@Component({\r\n selector: 'lib-list-view',\r\n templateUrl: './list-view.component.html'\r\n})\r\nexport class ListViewComponent implements OnChanges {\r\n public expandIcon = Icons.Expand;\r\n public collapseIcon = Icons.Collapse;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-pager') showPager = true;\r\n // DATA SOURCE!\r\n @Input() items: any[] | null | undefined;\r\n\r\n // PAGING - pass through for pager component\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() detailsOpened: EventEmitter<{item: any, open: boolean}> = new EventEmitter<{item: any, open: boolean}>();\r\n\r\n public tableViewSupported = false;\r\n private multipleFullWidth = false;\r\n public fullWidthTHClass = 'list-view-th-full';\r\n public fullWidthTDClass = 'list-view-td-full';\r\n public tilesViewSupported = false;\r\n public detailsSectionSupported = false;\r\n\r\n @Input() view = ListViewType.Table;\r\n\r\n // SORTING - pass through for pager component\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = '-';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n // COLUMNS\r\n public columns: any[] = [];\r\n @ContentChildren(ListColumnComponent, { read: ListColumnComponent })\r\n set cols(refs: QueryList<ListColumnComponent>) {\r\n this.columns = refs?.toArray();\r\n if (this.columns && this.columns.length > 0) {\r\n this.tableViewSupported = true;\r\n }\r\n this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;\r\n this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';\r\n this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';\r\n }\r\n\r\n public tilesDeckClass = 'cards-deck-4';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('tiles-count') tilesCount = 4;\r\n\r\n public tileTemplate: any | null | undefined = null;\r\n @ContentChild(ListTileComponent, {read: ListTileComponent})\r\n set tiles(ref: ListTileComponent) {\r\n this.tileTemplate = ref;\r\n if (this.tileTemplate) {\r\n this.tilesViewSupported = true;\r\n }\r\n }\r\n\r\n public detailsTemplate: any | null | undefined = null;\r\n @ContentChild(ListDetailsSectionComponent, {read: ListDetailsSectionComponent})\r\n set details(ref: ListDetailsSectionComponent) {\r\n this.detailsTemplate = ref;\r\n if (this.detailsTemplate) {\r\n this.detailsSectionSupported = true;\r\n }\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const tilesCountChange = changes['tiles-count'] || changes.tilesCount ;\r\n if (tilesCountChange) {\r\n this.setTilesDeckClass(tilesCountChange.currentValue);\r\n }\r\n }\r\n\r\n // events\r\n public emitPageChanged($event: number): void {\r\n this.pageChanged.emit($event);\r\n }\r\n\r\n public emitPageSizeChanged($event: number): void {\r\n this.pageSizeChanged.emit($event);\r\n }\r\n\r\n public emitSortChanged($event: string): void {\r\n this.sortChanged.emit($event);\r\n }\r\n public emitSortdirChanged($event: string): void {\r\n this.sortdirChanged.emit($event);\r\n }\r\n\r\n public toggleDetails(item: any): void {\r\n item.detailsExpanded = !item.detailsExpanded;\r\n this.detailsOpened.emit({ item, open: item.detailsExpanded });\r\n }\r\n\r\n // helpers\r\n private setTilesDeckClass(tiles: number): void {\r\n if ( tiles >= 1 && tiles <= 4 ) {\r\n this.tilesDeckClass = `cards-deck-${tiles}`;\r\n } else {\r\n this.tilesDeckClass = 'cards-deck-3';\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-list-view-empty-state',\r\n templateUrl: './list-view-empty-state.component.html'\r\n})\r\nexport class ListViewEmptyStateComponent implements OnInit {\r\n\r\n @Input() title = 'Δεν βρέθηκαν εγγραφές.';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('new-item-label') newItemLabel = 'Νέα εγγραφή';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-skeleton-loader',\r\n templateUrl: './skeleton-loader.component.html'\r\n})\r\nexport class SkeletonLoaderComponent implements OnInit {\r\n @Input() count = 5;\r\n @Input() type = 'tiles'; // 'large-tile', 'table'\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public counter(i: number): number[] {\r\n return new Array(i);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-collapsible-panel',\r\n templateUrl: './collapsible-panel.component.html'\r\n})\r\nexport class CollapsiblePanelComponent implements OnInit {\r\n @Input() title: string | null = null;\r\n public visible = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kpi-tile',\r\n templateUrl: './kpi-tile.component.html'\r\n})\r\nexport class KpiTileComponent implements OnInit {\r\n\r\n @Input() title: string | undefined = undefined;\r\n @Input() busy = false;\r\n @Input() kpi: any | undefined = undefined;\r\n // tslint:disable-next-line:no-output-rename\r\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitTileAction($event: any): boolean {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.tileAction.emit($event);\r\n return false;\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/\r\n@Component({\r\n selector: 'lib-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatepickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DatepickerComponent implements OnInit, ControlValueAccessor {\r\n @Input() readonly: boolean = true;\r\n @Input() disabled: boolean = false;\r\n @Input('display-format') displayFormat: string | undefined = 'dd/MM/yyyy';\r\n @Input() placeholder: string | undefined = '';\r\n @Input() value: Date | undefined | null = null;\r\n @Output() valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n @ViewChild('dateInput') dateInput: ElementRef | undefined;\r\n public showCalendar = false;\r\n public showYears = false;\r\n public monthNames = [\r\n 'Ιανουάριος',\r\n 'Φεβρουάριος',\r\n 'Μάρτιος',\r\n 'Απρίλιος',\r\n 'Μάϊος',\r\n 'Ιούνιος',\r\n 'Ιούλιος',\r\n 'Αύγουστος',\r\n 'Σεπτέμβριος',\r\n 'Οκτώβριος',\r\n 'Νοεμβριος',\r\n 'Δεκέμβριος',\r\n ];\r\n public dayNames = ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'];\r\n\r\n public month: number = -1;\r\n public year: number = -1;\r\n public calendarDates: any[] = [];\r\n public calendarYears: any[] = [];\r\n public showCalendarYears: any[] = [];\r\n public blankDays: any[] = [];\r\n public calendarYearPage = 1;\r\n private yearsPerPage = 30;\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n ngOnInit(): void {\r\n let today = new Date();\r\n this.month = today.getMonth();\r\n this.year = today.getFullYear();\r\n this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];\r\n this.calendarYears = [{ year: this.value?.getFullYear(), today: this.value, selected: this.value }];\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.value?.getFullYear() });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\r\n this.calcDays();\r\n }\r\n\r\n public compareDates(date1: Date | undefined | null, day: number | null | undefined, year: number | null | undefined): boolean {\r\n if (!date1) {\r\n return false;\r\n }\r\n const d = new Date(year ?? this.year, this.month, day ?? this.value?.getDay());\r\n return date1.toDateString() === d.toDateString();\r\n };\r\n\r\n public selectDateValue(date: any): void {\r\n // This should be in UTC\r\n let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showCalendar = false;\r\n }\r\n\r\n public selectYearValue(year: any): void {\r\n let selectedDate = new Date(year.year, 1, 1, 2, 0, 0, 0);\r\n this.year = year.year;\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n }\r\n\r\n public previousMonth(): void {\r\n if (this.month !== 0) {\r\n this.month = this.month - 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 11;\r\n this.year = this.year - 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextMonth(): void {\r\n if (this.month !== 11) {\r\n this.month = this.month + 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 0;\r\n this.year = this.year + 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public previousYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage > 1 ? --this.calendarYearPage : 1);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage ? ++this.calendarYearPage : this.calendarYearPage);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public calcDays(): void {\r\n const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();\r\n // find where to start calendar day of week\r\n const dayOfWeek = new Date(this.year, this.month).getDay();\r\n const blankdaysArray = [];\r\n for (var i = 1; i <= dayOfWeek; i++) {\r\n blankdaysArray.push(i);\r\n }\r\n\r\n const daysArray = [];\r\n const today = new Date();\r\n for (var i = 1; i <= daysInMonth; i++) {\r\n daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value, i, null) });\r\n }\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.blankDays = blankdaysArray;\r\n this.calendarDates = daysArray;\r\n }\r\n\r\n private updateDays(): void {\r\n const today = new Date();\r\n this.calendarDates.forEach(d => {\r\n d.today = this.compareDates(today, d, this.year);\r\n d.selected = this.compareDates(this.value, d, this.year);\r\n });\r\n }\r\n\r\n constructor() { }\r\n\r\n writeValue(obj: any): void {\r\n if (obj) {\r\n this.value = new Date(obj);\r\n this.month = this.value.getMonth();\r\n this.year = this.value.getFullYear();\r\n }\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange$ = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched$ = fn;\r\n }\r\n\r\n public onBlur(event: any): void {\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public paginate(array: any[], page_number: number): any[] {\r\n return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);\r\n }\r\n\r\n public openYears() {\r\n this.showYears = !this.showYears;\r\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\r\n this.calcDays();\r\n }\r\n\r\n public openCalendar() {\r\n this.showCalendar = !this.showCalendar\r\n this.calcDays();\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Toast, ToastType, NULL_TOAST } from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterService {\r\n\r\n private subject: BehaviorSubject<Toast>;\r\n public toast$: Observable<Toast>;\r\n\r\n constructor() {\r\n this.subject = new BehaviorSubject<Toast>(NULL_TOAST);\r\n this.toast$ = this.subject.asObservable()\r\n .pipe(filter( toast => toast !== null && toast.title !== NULL_TOAST.title ));\r\n }\r\n\r\n public show(type: ToastType, title?: string, body?: string, delay?: number): void {\r\n this.subject.next({ type, title, body, delay } as Toast);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '../../services/toaster.service';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster-container',\r\n templateUrl: './toaster-container.component.html'\r\n})\r\nexport class ToasterContainerComponent implements OnInit {\r\n\r\n toasts: Toast[] = [];\r\n\r\n constructor(private toaster: ToasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.toaster.toast$\r\n .subscribe(toast => {\r\n this.toasts = [toast, ...this.toasts];\r\n setTimeout(() => this.toasts.pop(), toast.delay || 6000);\r\n });\r\n }\r\n\r\n remove(index: number): void {\r\n this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster',\r\n templateUrl: './toaster.component.html'\r\n})\r\nexport class ToasterComponent implements OnInit {\r\n\r\n @Input() toast: Toast | undefined;\r\n @Input() i = 0;\r\n @Output() remove = new EventEmitter<number>();\r\n public isMobile = false;\r\n public closed = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;\r\n }\r\n\r\n public closeToast(index: number): void {\r\n this.closed = true;\r\n setTimeout(() => this.remove.emit(index), 100);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-avatar-initials',\r\n templateUrl: './avatar-initials.component.html'\r\n})\r\nexport class AvatarInitialsComponent implements OnInit {\r\n @Input()\r\n public name: string | null | undefined;\r\n @Input()\r\n public large = false;\r\n public initials?: string;\r\n public circleColor!: string;\r\n private colors = [\r\n '#EB7181', // red\r\n '#468547', // green\r\n '#FFD558', // yellow\r\n '#3670B2', // blue\r\n ];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.createInititals();\r\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\r\n // assign this to a class if you want to randomly change background colors of the circle.\r\n this.circleColor = this.colors[randomIndex];\r\n }\r\n\r\n private createInititals(): void {\r\n if (this.name) {\r\n let initials = '';\r\n for (let i = 0; i < this.name.length; i++) {\r\n if (this.name.charAt(i) === ' ') {\r\n continue;\r\n }\r\n if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {\r\n initials += this.name.charAt(i);\r\n if (initials.length === 2) {\r\n break;\r\n }\r\n }\r\n }\r\n this.initials = initials;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'lib-toggle',\n templateUrl: './toggle.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true\n }\n ]\n})\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\n @Input()\n public value: boolean | null | undefined;\n @Input()\n public disabled:boolean | null | undefined;\n @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\n\n private onChange$: any | undefined = undefined;\n private onTouched$: any | undefined = undefined;\n\n constructor() { }\n writeValue(obj: any): void {\n if(obj) {\n this.value = obj || false;\n }\n }\n registerOnChange(fn: any): void {\n this.onChange$ = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched$ = fn;\n }\n\n public onBlur(event: any): void {\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n\n ngOnInit(): void {\n }\n\n public changeValue(){\n this.value = !this.value;\n this.valueChange.emit(this.value);\n if(this.onChange$) {\n this.onChange$(this.value);\n }\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n}","import { InjectionToken } from '@angular/core';\r\nimport { IAppLinks, IShellConfig } from './types';\r\n\r\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\r\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\r\n","import { Injectable, ComponentFactoryResolver, ViewContainerRef } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ComponentLoaderService {\r\n constructor(private cfr: ComponentFactoryResolver) { }\r\n\r\n public loadComponent(vcr: ViewContainerRef, component: any): void {\r\n vcr.clear();\r\n const componentFactory = this.cfr.resolveComponentFactory(component);\r\n const componentRef = vcr.createComponent(componentFactory);\r\n // TL;TR Force change detection on this component, where change detection means force lifecycle hooks to run\r\n // In order to avoid NG0100: Expression has changed after it was checked\r\n // The above error is caused because the view is rendered before the lifecycle hooks are called,\r\n // resulting in bindind expression changes\r\n // A somewhat explanation here:\r\n // https://stackoverflow.com/questions/56427104/when-is-oninit-event-triggered-for-a-dynamically-loaded-angular-component\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Directive, ViewContainerRef, Input } from '@angular/core';\r\n\r\n@Directive({ selector: '[appDynamicComponentHost]' })\r\nexport class DynamicComponentHostDirective {\r\n @Input() hostName: string = '';\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}","import { SHELL_CONFIG } from './../../../tokens';\r\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\r\nimport { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, ViewContainerRef, QueryList } from '@angular/core';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\nimport { ActivationStart, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\nimport { ComponentLoaderService } from '../../../services/component-loader.service';\r\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-layout',\r\n templateUrl: './shell-layout.component.html'\r\n})\r\nexport class ShellLayoutComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChildren(DynamicComponentHostDirective)\r\n dynamicComponentHosts: QueryList<DynamicComponentHostDirective> | null = null;\r\n public showRightPaneSM = false;\r\n private routerSub$: Subscription | null = null;\r\n public activeConfig: IShellConfig = new DefaultShellConfig();\r\n constructor(@Inject(DOCUMENT) private document: any,\r\n private router: Router, private location: Location,\r\n @Inject(SHELL_CONFIG) private config: IShellConfig | null,\r\n private componentLoaderService: ComponentLoaderService) {\r\n if (!config) {\r\n config = new DefaultShellConfig();\r\n }\r\n this.activeConfig = config;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routerSub$ = this.router.events\r\n .pipe(filter(event => event instanceof ActivationStart))\r\n .subscribe((e) => {\r\n // console.log('ShellLayoutComponent ActivationStart', e);\r\n if ((e as ActivationStart)?.snapshot) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot', (e as ActivationStart)?.snapshot);\r\n if ((e as ActivationStart)?.snapshot?.data) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot data', (e as ActivationStart)?.snapshot.data);\r\n if ((e as ActivationStart)?.snapshot?.data.shell) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot data shell params',\r\n // (e as ActivationStart)?.snapshot.data.shell);\r\n this.activeConfig = (e as ActivationStart)?.snapshot.data.shell as IShellConfig;\r\n // console.log('ShellLayoutComponent activeConfig from route: ', this.activeConfig);\r\n if (this.activeConfig.customHeaderComponent) {\r\n this.initCustomComponents();\r\n }\r\n } else {\r\n this.activeConfig = this.config ? this.config : new DefaultShellConfig();\r\n // console.log('ShellLayoutComponent default activeConfig: ', this.activeConfig);\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.initCustomComponents();\r\n }\r\n\r\n private initCustomComponents(): void {\r\n if(this.dynamicComponentHosts && this.dynamicComponentHosts.length > 0){\r\n this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Header'));\r\n // since you're not using it...\r\n // this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Footer'));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n }\r\n\r\n private loadCustomComponent(host: DynamicComponentHostDirective | undefined): void{\r\n if (host){\r\n const viewContainerRef = host.viewContainerRef;\r\n if (viewContainerRef && this.activeConfig.customHeaderComponent) {\r\n this.componentLoaderService.loadComponent(viewContainerRef, this.activeConfig.customHeaderComponent);\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\r\nimport { User } from 'oidc-client';\r\nimport { Event, NavigationStart, Router, RouterEvent } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { NavLink } from '../../../types';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { BehaviorSubject, Observable, Subject, SubscriptionLike } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-header',\r\n templateUrl: './shell-header.component.html'\r\n})\r\nexport class ShellHeaderComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('section-links') sectionLinksPath = 'main';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('profile-menu') profileMenuVisible = true;\r\n @Input() border = true;\r\n public sectionLinks: NavLink[] = [];\r\n public mobileMenuExpanded = false;\r\n public userMenuExpanded = false;\r\n protected routeSubject: Observable<Event>;\r\n protected userSubject: BehaviorSubject<any>;\r\n protected routerSub$: Subscription | null = null;\r\n protected userSub$: Subscription | null = null;\r\n protected statusSub$: Subscription | null = null;\r\n public user: User | null = null;\r\n public avatarName: string | null = null;\r\n\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n this.routeSubject = this.router.events.pipe(filter(event => event instanceof NavigationStart));\r\n this.userSubject = this.authService.userStatus;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n // TODO: check authenticated user here before we start polling server status\r\n if (this.statusSub$) {\r\n this.statusSub$.unsubscribe();\r\n }\r\n if (this.userSub$) {\r\n this.userSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sectionLinks = this.links[this.sectionLinksPath] as NavLink[];\r\n this.routerSub$ = this.routeSubject.subscribe(event => {\r\n this.mobileMenuExpanded = false;\r\n this.userMenuExpanded = false;\r\n });\r\n this.authService.loadUser().then(user => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n //console.log(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.userSubject.subscribe((user: any) => {\r\n //console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.userMenuExpanded = false;\r\n }\r\n\r\n public signin(event: any | null | undefined): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n this.authService.startAuthentication();\r\n }\r\n\r\n private setCurrentUser(user: any): void {\r\n this.user = user;\r\n if (this.user && this.user.profile) {\r\n this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`;\r\n //console.log('load user', this.avatarName);\r\n }\r\n }\r\n}\r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { IAppLinks } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-footer',\r\n templateUrl: './shell-footer.component.html'\r\n\r\n})\r\n\r\nexport class ShellFooterComponent {\r\n constructor(@Inject(APP_LINKS) public links: IAppLinks) {\r\n }\r\n}\r\n","import { SwitchViewAction } from '../../../types';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { HeaderMetaItem, RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-view-layout',\r\n templateUrl: './view-layout.component.html'\r\n})\r\nexport class ViewLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-header') header = true;\r\n @Input() fluid = false;\r\n @Input() title = 'no title';\r\n @Input() icon: string | null = null;\r\n @Input() actions: ViewAction[] | null = null;\r\n @Input() busy = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() view: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any): void {\r\n //console.log('routerLinkActionClick', action);\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { rightpane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n fromEvent(this.searchInput$?.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe(_ => {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n });\r\n }\r\n\r\n public switchViewActionClick(action: SwitchViewAction | any): void {\r\n //console.log('switchViewActionClick', action);\r\n this.view = action.param;\r\n if (action && action.param) {\r\n this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { HeaderMetaItem } from '../../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-model-view-layout',\r\n templateUrl: './model-view-layout.component.html'\r\n})\r\nexport class ModelViewLayoutComponent implements OnInit {\r\n public showRightPaneSM = false;\r\n @Input() title = 'no title';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('primary-links') primary: { text: string, link: string }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('secondary-links') secondary: { text: string, link: string }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n constructor( private location: Location) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated($event: any): void {\r\n //console.log('onSidePaneActivated', $event);\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n //console.log('onSidePaneActivated', $event);\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public closeSidePane(): void {\r\n this.location.back();\r\n }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-view-layout',\r\n templateUrl: './side-view-layout.component.html'\r\n})\r\nexport class SideViewLayoutComponent implements OnInit {\r\n @Input() title: string | null = 'Πληροφορίες';\r\n @Input() showActions = true;\r\n @Input() disabled = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('return-path') returnPath: string | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-label') okLabel = 'Αποθήκευση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-show') okShow = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-close-dialog') closeOnOk = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-label') cancelLabel = 'Ακύρωση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-show') cancelShow = true;\r\n // @Output() close = new EventEmitter<any>();\r\n @Output() cancel: EventEmitter<boolean> = new EventEmitter();\r\n @Output() ok: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(private location: Location, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public closeSidePane(): void {\r\n if (this.returnPath) {\r\n this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => this.router.navigateByUrl(this.returnPath || '/'));\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n\r\n public emitClose(): void {\r\n this.cancel.emit(false);\r\n this.closeSidePane();\r\n }\r\n\r\n public emitCancel(): void {\r\n this.cancel.emit(false);\r\n this.closeSidePane();\r\n }\r\n\r\n public emitOK(): void {\r\n this.ok.emit(true);\r\n if(this.closeOnOk) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { fromEvent } from 'rxjs';\r\nimport { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-form-layout',\r\n templateUrl: './form-layout.component.html'\r\n})\r\nexport class FormLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() actions: ViewAction[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle: string | null = null;\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n public showRightPaneSM = false;\r\n\r\n constructor(private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated($event: any): void {\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.onComplete.emit(true);\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n fromEvent(this.searchInput$?.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe(_ => {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n });\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any, relative: boolean = false): void {\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-auth-callback',\r\n templateUrl: './auth-callback.component.html'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n public status = 'παρακαλώ περιμένετε...';\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router, private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n const self = this;\r\n this.authService.completeAuthentication().then(() => {\r\n self.authService.isLoggedIn().subscribe((result: any) => {\r\n // i'm sorry!\r\n if (!result) {\r\n self.router.navigate(['/unauthorized']);\r\n return;\r\n }\r\n let navigationUrl = '/dashboard';\r\n if (this.route.data) {\r\n this.route.data.subscribe(data => {\r\n if(data['navigationUrl'] != undefined){\r\n navigationUrl = data['navigationUrl'];\r\n }\r\n })\r\n }\r\n\r\n // did you want to go somewhere?\r\n const user = self.authService.currentUser();\r\n if (user && user.state && user.state.url) {\r\n //console.log('AuthCallbackComponent user state', user.state);\r\n self.router.navigateByUrl(user.state.url);\r\n return;\r\n } else {\r\n self.router.navigateByUrl(navigationUrl);\r\n return;\r\n }\r\n\r\n //\r\n // lets check your subscriptions...\r\n // self.status = `we're loading your subscription information, please wait...`;\r\n // ok get the subscriptions for the user\r\n // self.appState.subscriptions.subscribe((subs) => {\r\n // self.subscriptions = subs;\r\n // if (subs === null || subs.length === 0) {\r\n // self.router.navigate(['/new-subscription']);\r\n // } else if (subs.length === 1) {\r\n // self.status = `welcome ${user.profile.name}, we're loading your configuration information, please wait...`;\r\n // self.selectSubscription(subs[0]);\r\n // } else {\r\n // self.status = `welcome ${user.profile.name}, please select a subscription to proceed...`;\r\n // }\r\n // }, error => {\r\n // self.status = `oups! an error occured, sorry about that! please try again in a while :)`;\r\n // });\r\n //\r\n\r\n });\r\n });\r\n }\r\n\r\n // public selectSubscription(subscription: any) {\r\n // this.appState.selectSubscription(subscription);\r\n // this.router.navigate([subscription.homePath]);\r\n // }\r\n\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n\r\n@Component({ selector: 'lib-auth-renew', template: ''})\r\nexport class AuthRenewComponent implements OnInit {\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n // console.log('AuthRenewComponent init!!!');\r\n this.authService.manager.signinSilentCallback().catch(() => {\r\n // console.log('redirect to unauthorized!');\r\n this.router.navigate(['/unauthorized']);\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-logged-out',\r\n templateUrl: './logged-out.component.html'\r\n})\r\nexport class LoggedOutComponent implements OnInit {\r\n status = 'working on it, please give me a sec...';\r\n finished = false;\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.completeSignout().then(() => {\r\n this.status = 'Thank you!';\r\n this.finished = true;\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-error',\r\n templateUrl: './error.component.html'\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n public error = 'Error!';\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-page-not-found',\r\n templateUrl: './page-not-found.component.html'\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n\r\n// tslint:disable-next-line:component-selector\r\n@Component({selector: 'lib-unauthorized', templateUrl: './unauthorized.component.html'})\r\nexport class UnauthorizedComponent implements OnInit {\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n signin(): void {\r\n this.authService.clearState().then( (_: any) => {\r\n this.authService.startSignout();\r\n });\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IAddress } from '../types';\r\n\r\n@Pipe({\r\n name: 'address',\r\n pure: false\r\n})\r\nexport class AddressPipe implements PipeTransform {\r\n\r\n transform(value: IAddress | undefined): string {\r\n if (value === undefined || null || '') {\r\n return '';\r\n }\r\n // tslint:disable-next-line:no-non-null-assertion\r\n return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode! ? ', ' + +value.postalCode! : ''}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'durationFormat',\r\n pure: false\r\n})\r\nexport class DurationFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, arg1: any, arg2: any): string {\r\n\r\n let days: any;\r\n let seconds: any;\r\n let minutes: any;\r\n let hours: any;\r\n\r\n if (arg1 === 'ms' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value / 1000) % 60);\r\n minutes = Math.floor(((value / (1000 * 60)) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value % 60));\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(((value / 1000) % 60));\r\n minutes = Math.floor((value / (1000 * 60) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60) % 24));\r\n days = Math.floor((value / (1000 * 60 * 60 * 24)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(value % 60);\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60) % 24);\r\n days = Math.floor((((value / 60) / 60) / 24));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private format(arg2: string, seconds: any, minutes: any, hours: any, days: any): any {\r\n (days < 10) ? days = '0' + days : days;\r\n (hours < 10) ? hours = '0' + hours : hours;\r\n (minutes < 10) ? minutes = '0' + minutes : minutes;\r\n (seconds < 10) ? seconds = '0' + seconds : seconds;\r\n\r\n switch (arg2) {\r\n case 'hhmmss':\r\n return `${hours}:${minutes}:${seconds}`;\r\n\r\n case 'ddhhmmss':\r\n return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;\r\n\r\n case 'ddhhmmssLong':\r\n return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;\r\n }\r\n return undefined;\r\n }\r\n\r\n}\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { HeaderMetaItem, IResultSet, MenuOption, RouterViewAction, ViewAction, ListViewType } from '../types';\r\nimport { Icons } from '../icons';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseListComponent<T> implements OnInit, OnDestroy {\r\n public items: T[] | null | undefined = null;\r\n public view: string = ListViewType.Tiles;\r\n public title: string | null = null;\r\n public actions: ViewAction[] = [];\r\n public loaderItems: any[] = [1, 2, 3, 4, 5];\r\n public page = 1;\r\n public pageSize = 20;\r\n public count = 0;\r\n public sort: string | null = '';\r\n public sortdir: string | null = '-';\r\n public search: string | null = '';\r\n public sortOptions: MenuOption[] = [];\r\n public metaItems: HeaderMetaItem[] = [];\r\n public abstract newItemLink: string | null;\r\n private routeSub$: Subscription | undefined;\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routeSub$) {\r\n this.routeSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.actions = [\r\n new ViewAction('search', null, null, Icons.Search, 'αναζήτηση'),\r\n new ViewAction('refresh', null, null, Icons.Refresh, 'ανανέωση στοιχείων')\r\n ];\r\n if (this.newItemLink) {\r\n this.actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\r\n }\r\n\r\n this.metaItems = [\r\n { key: 'count', icon: Icons.ItemsCount, text: 'παρακαλώ περιμένετε...' }\r\n ];\r\n\r\n // disabled external route changes monitoring due to sync issues - which is bad :) - refresh from url will not work\r\n // until i come up with a solution...\r\n\r\n this.routeSub$ = this.route$.queryParamMap.subscribe(params => {\r\n if (params.keys.length === 0) {\r\n return;\r\n }\r\n\r\n // changing the view mode does not require reloading...\r\n this.view = params.get('view') || ListViewType.Tiles;\r\n //console.log('route changes ', this.view);\r\n\r\n // if (params.get('search') !== this.search) {\r\n // this.searchChanged(params.get('search'));\r\n // }\r\n\r\n // const page = +(params.get('page') || 1);\r\n // if (page !== this.page) {\r\n // this.page = page;\r\n // }\r\n\r\n // const size = +(params.get('pagesize') || 20);\r\n // if (this.pageSize !== size) {\r\n // this.pageSize = size;\r\n // }\r\n\r\n // if (params.get('search') !== this.search) {\r\n // this.search = params.get('search');\r\n // }\r\n\r\n // if (params.get('sort') !== this.sort) {\r\n // this.sort = params.get('sort');\r\n // }\r\n\r\n // if (params.get('sortdir') !== this.sortdir) {\r\n // this.sortdir = params.get('sortdir');\r\n // }\r\n\r\n });\r\n\r\n // just to sync params in query\r\n this.setRouteParams(true);\r\n this.load();\r\n }\r\n\r\n private setRouteParams(locationChange: boolean = false): void {\r\n this.router$.navigate([], {\r\n relativeTo: this.route$, queryParams: {\r\n view: this.view,\r\n page: this.page,\r\n pagesize: this.pageSize,\r\n search: this.search,\r\n sort: this.sort,\r\n dir: this.sortdir\r\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\r\n });\r\n }\r\n\r\n public actionHandler($event: ViewAction): void {\r\n //console.log('BaseListComponent actionHandler', $event);\r\n if ($event.key === 'refresh') {\r\n this.refresh();\r\n }\r\n }\r\n\r\n private load(): void {\r\n //console.log('BaseListComponent LOAD');\r\n this.count = 0;\r\n this.items = null;\r\n this.loadItems().subscribe(result => {\r\n this.count = result ? result.count : 0;\r\n this.items = result?.items;\r\n this.updateHeaderMeta();\r\n }, err => {\r\n this.count = 0;\r\n this.items = null;\r\n this.updateHeaderMeta();\r\n });\r\n }\r\n\r\n private updateHeaderMeta(): void {\r\n const count = this.metaItems?.filter(m => m.key === 'count')[0];\r\n if (count) {\r\n this.count === 1 ? count.text = `${this.count} αποτέλεσμα` : count.text = `${this.count} αποτελέσματα`;\r\n }\r\n }\r\n\r\n public abstract loadItems(): Observable<IResultSet<T> | null | undefined>;\r\n\r\n public clear(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public refresh(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public pageChanged(page: number): void {\r\n if (this.page !== page) {\r\n this.page = page;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n }\r\n\r\n public pageSizeChanged(pageSize: number): void {\r\n if (this.pageSize !== pageSize) {\r\n this.pageSize = pageSize;\r\n this.page = 1;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortChanged(sort: string): void {\r\n //console.log('base-list sortChanged', sort);\r\n if (this.sort !== sort) {\r\n this.page = 1;\r\n this.sort = sort;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortdirChanged(sortdir: string): void {\r\n if (this.sortdir !== sortdir) {\r\n this.page = 1;\r\n this.sortdir = sortdir;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public searchChanged(searchText: string | null): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = searchText;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n}\r\n","import { SidePaneOverlayType, SidePaneSize } from './../../types';\r\nimport { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-pane',\r\n templateUrl: './side-pane.component.html'\r\n})\r\nexport class SidePaneComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('visible') showPane = false;\r\n public sizeContainerStyle = 'side-pane-box-size';\r\n public overlayStyle = 'side-pane-overlay';\r\n constructor(private router: Router, @Inject(DOCUMENT) private document: any,) { }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated(component: any): void {\r\n this.document.body.classList.add('modal-active');\r\n let sizeStyleSuffix = '';\r\n const state = this.router.getCurrentNavigation()?.extras.state;\r\n if (state) {\r\n if (state.paneSize) {\r\n if (state.paneSize === SidePaneSize.Small25) {\r\n sizeStyleSuffix = '-25';\r\n } else if (state.paneSize === SidePaneSize.Medium50) {\r\n sizeStyleSuffix = '-50';\r\n } else if (state.paneSize === SidePaneSize.Large75) {\r\n sizeStyleSuffix = '-75';\r\n }\r\n }\r\n if (state.paneOverlay) {\r\n if (state.paneOverlay === SidePaneOverlayType.None) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-0';\r\n } else if (state.paneOverlay === SidePaneOverlayType.Dark) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-50';\r\n } else {\r\n this.overlayStyle = 'side-pane-overlay';\r\n }\r\n }\r\n }\r\n this.sizeContainerStyle = `side-pane-box-size${sizeStyleSuffix}`;\r\n this.showPane = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.document.body.classList.remove('modal-active');\r\n this.showPane = false;\r\n }\r\n\r\n}\r\n","import { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\r\nimport { ToasterService } from './services/toaster.service';\r\nimport { ToasterComponent } from './controls/toaster/toaster.component';\r\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\r\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\r\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\r\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\r\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\r\nimport { ErrorComponent } from './pages/http-status/error/error.component';\r\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\r\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\r\nimport { IndiceAuthModule } from '@indice/ng-auth';\r\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\r\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\r\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\r\nimport { ListViewComponent } from './controls/list-view/list-view.component';\r\nimport { PagerComponent } from './controls/pager/pager.component';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.component';\r\nimport { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';\r\nimport { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';\r\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\r\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\r\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\r\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\r\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\r\nimport { AddressPipe } from './pipes/address.pipe';\r\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\r\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\r\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\r\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\r\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\r\nimport { ToggleComponent } from './controls/toggle/toggle.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n // diectives\r\n ClickOutsideDirective,\r\n DynamicComponentHostDirective,\r\n // controls\r\n DropDownMenuComponent,\r\n PagerComponent,\r\n ListViewComponent,\r\n ListColumnComponent,\r\n ListTileComponent,\r\n ListDetailsSectionComponent,\r\n ListViewEmptyStateComponent,\r\n SkeletonLoaderComponent,\r\n CollapsiblePanelComponent,\r\n KpiTileComponent,\r\n SidePaneComponent,\r\n DatepickerComponent,\r\n AvatarInitialsComponent,\r\n ToggleComponent,\r\n // Toaster\r\n ToasterContainerComponent,\r\n ToasterComponent,\r\n // shell layout\r\n ShellLayoutComponent,\r\n ShellHeaderComponent,\r\n ShellFooterComponent,\r\n // view layouts\r\n ViewLayoutComponent,\r\n SideViewLayoutComponent,\r\n ModelViewLayoutComponent,\r\n FormLayoutComponent,\r\n // pages (common)\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n LoggedOutComponent,\r\n ErrorComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n // pipes\r\n AddressPipe,\r\n DurationFormatPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n IndiceAuthModule\r\n ],\r\n exports: [\r\n ClickOutsideDirective,\r\n DropDownMenuComponent,\r\n PagerComponent,\r\n ListViewComponent,\r\n ListColumnComponent,\r\n ListTileComponent,\r\n ListDetailsSectionComponent,\r\n ListViewEmptyStateComponent,\r\n KpiTileComponent,\r\n SkeletonLoaderComponent,\r\n ShellLayoutComponent,\r\n ShellHeaderComponent,\r\n ShellFooterComponent,\r\n ViewLayoutComponent,\r\n SideViewLayoutComponent,\r\n ModelViewLayoutComponent,\r\n FormLayoutComponent,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n LoggedOutComponent,\r\n ErrorComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n AddressPipe,\r\n DurationFormatPipe,\r\n CollapsiblePanelComponent,\r\n SidePaneComponent,\r\n DatepickerComponent,\r\n ToasterContainerComponent,\r\n ToasterComponent,\r\n AvatarInitialsComponent,\r\n ToggleComponent\r\n ]\r\n})\r\nexport class IndiceComponentsModule {\r\n // tslint:disable-next-line:typedef\r\n static forRoot() {\r\n return {\r\n ngModule: IndiceComponentsModule,\r\n providers: [ToasterService]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of @indice/ng-components\r\n */\r\n\r\n// directives\r\nexport * from './lib/directives/click-outside.directive';\r\n\r\n// controls\r\nexport * from './lib/controls/drop-down-menu/drop-down-menu.component';\r\nexport * from './lib/controls/pager/pager.component';\r\nexport * from './lib/controls/list-view/list-view.component';\r\nexport * from './lib/controls/list-view/list-column.component';\r\nexport * from './lib/controls/list-view/list-tile.component';\r\nexport * from './lib/controls/list-view/list-details-section.component';\r\nexport * from './lib/controls/list-view/list-view-empty-state.component';\r\nexport * from './lib/controls/skeleton-loader/skeleton-loader.component';\r\nexport * from './lib/controls/collapsible-panel/collapsible-panel.component';\r\nexport * from './lib/controls/kpi-tile/kpi-tile.component';\r\nexport * from './lib/controls/date-picker/date-picker.component';\r\nexport * from './lib/controls/toaster/toaster-container.component';\r\nexport * from './lib/controls/toaster/toaster.component';\r\nexport * from './lib/controls/avatar-initials/avatar-initials.component';\r\nexport * from './lib/controls/toggle/toggle.component';\r\n\r\n// shell layout\r\nexport * from './lib/layouts/shell/shell-layout/shell-layout.component';\r\nexport * from './lib/layouts/shell/shell-header/shell-header.component';\r\nexport * from './lib/layouts/shell/shell-footer/shell-footer.component';\r\n\r\n// view layouts\r\nexport * from './lib/layouts/views/view-layout/view-layout.component';\r\nexport * from './lib/layouts/views/model-view-layout/model-view-layout.component';\r\nexport * from './lib/layouts/views/side-view-layout/side-view-layout.component';\r\nexport * from './lib/layouts/views/form-layout/form-layout.component';\r\n\r\n// pages\r\nexport * from './lib/pages/auth/auth-callback/auth-callback.component';\r\nexport * from './lib/pages/auth/auth-renew/auth-renew.component';\r\nexport * from './lib/pages/auth/logged-out/logged-out.component';\r\nexport * from './lib/pages/http-status/error/error.component';\r\nexport * from './lib/pages/http-status/page-not-found/page-not-found.component';\r\nexport * from './lib/pages/http-status/unauthorized/unauthorized.component';\r\n\r\n// pipes\r\nexport * from './lib/pipes/address.pipe';\r\nexport * from './lib/pipes/duration-format.pipe';\r\n\r\n// common stuff (tokens, types, helper classes)\r\nexport * from './lib/tokens';\r\nexport * from './lib/types';\r\nexport * from './lib/icons';\r\nexport * from './lib/helpers/base-list.component';\r\n\r\n// services\r\nexport * from './lib/services/component-loader.service';\r\nexport * from './lib/services/toaster.service';\r\n\r\nexport * from './lib/ng-components.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SidePaneComponent as ɵb} from './lib/controls/side-pane/side-pane.component';\nexport {DynamicComponentHostDirective as ɵa} from './lib/directives/dynamic-component-host.directive';"],"names":[],"mappings":"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"}