@indice/ng-components 0.2.165 → 0.2.166
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/indice-ng-components.umd.js +4 -1
- package/bundles/indice-ng-components.umd.js.map +1 -1
- package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +5 -2
- package/fesm2015/indice-ng-components.js +4 -1
- package/fesm2015/indice-ng-components.js.map +1 -1
- package/lib/controls/kpi-tile/kpi-tile.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -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/controls/drop-down-menu/drop-down-menu.component.html","../../../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/pager/pager.component.html","../../../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/advanced-search/models.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.html","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.ts","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.html","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.html","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.html","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.html","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.html","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.html","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.html","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.html","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.html","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.ts","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.html","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.ts","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.html","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.html","../../../projects/ng-components/src/lib/controls/stepper/lib-step-info.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step-label.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step.component.ts","../../../projects/ng-components/src/lib/controls/stepper/types/stepper-type.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.html","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/services/component-loader/content-ref.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.factory.ts","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.ts","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.html","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.ts","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.html","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.ts","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.html","../../../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/auth/logged-out/logged-out.component.html","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.html","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.html","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.html","../../../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/services/modal-service/modal-styles.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-backdrop-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-options.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-container-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-service.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 @Input() placeholder: string = 'Παρακαλώ επιλέξτε...';\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 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","<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\"\r\n >\r\n <span class=\"dropdown-selected-text\">\r\n {{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n {{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\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 Delete = `ms-Icon ms-Icon--Delete`;\r\n public static SendEmail = `ms-Icon ms-Icon--NewMail`;\r\n public static Filter = `ms-Icon ms-Icon--Filter`;\r\n public static Export = `ms-Icon ms-Icon--ExcelDocument`;\r\n public static Import = `ms-Icon ms-Icon--PeopleAdd`;\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 public static Messages = ' ms-Icon ms-Icon--Message';\r\n public static MessagesUnread = ' ms-Icon ms-Icon--MessageFill';\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\n\r\nexport interface IAppNotifications {\r\n messages: Observable<IResultSet<NavLink>>;\r\n getMessage?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\r\n markMessageRead?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\r\n refresh?: () => void | undefined;\r\n inboxAction?: () => void | undefined;\r\n}\r\n\r\nexport interface IAppLanguagesService {\r\n options: Observable<MenuOption[]> | undefined;\r\n selected?: string;\r\n default?: string;\r\n setSelected?: (lang: string) => void | undefined;\r\n}\r\n\r\nexport interface IAppLinks {\r\n public: Observable<NavLink[]>;\r\n main: Observable<NavLink[]>;\r\n profile: Observable<NavLink[]>;\r\n profileActions: Observable<NavLink[]>;\r\n legal: Observable<NavLink[]>;\r\n brand: Observable<NavLink[]>;\r\n notifications?: Observable<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, data?: any) {\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 this.data = data;\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 public type = 'router';\r\n public data: any | undefined;\r\n}\r\n\r\nexport class ExternalNavLink extends NavLink {\r\n constructor(text: string, path: string, openInNewTab?: boolean, icon?: string) {\r\n super(text, path, true, openInNewTab, icon);\r\n }\r\n public type = 'external';\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 public type = 'fragment';\r\n}\r\n\r\nexport class NotificationNavLink extends NavLink {\r\n constructor(text: string, path: string, public isRead: boolean, public creationDate?: Date) {\r\n super(text, path, true, false, undefined);\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 public static Gallery = 'gallery';\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 enum PagerPosition {\r\n Top = 'top',\r\n Bottom = 'bottom',\r\n Both = 'both'\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 layout?: ShellLayoutType;\r\n appLogo: string;\r\n appLogoAlt: string;\r\n showHeader: boolean;\r\n showUserNameOnHeader?: boolean;\r\n showAlertsOnHeader?: boolean;\r\n customHeaderComponent?: any;\r\n showFooter: boolean;\r\n customFooterComponent?: any;\r\n fluid: boolean;\r\n showLangsOnHeader?: boolean;\r\n}\r\n\r\nexport enum ShellLayoutType {\r\n Stacked = 'Stacked',\r\n Sidebar = 'Sidebar'\r\n}\r\n\r\nexport class DefaultShellConfig implements IShellConfig {\r\n layout = ShellLayoutType.Stacked;\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 showUserNameOnHeader = false;\r\n showAlertsOnHeader = false;\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\r\nexport interface IValidationProblemDetails {\r\n type?: string | undefined;\r\n title?: string | undefined;\r\n status?: number | undefined;\r\n detail?: string | undefined;\r\n instance?: string | undefined;\r\n errors?: { [key: string]: string[]; } | undefined;\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 // BUSY STATE\r\n @Input() busy = false;\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 }\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 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","<div class=\"pager-container\">\r\n <div class=\"pager-container-inner\">\r\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\r\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\r\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\r\n <span class=\"sr-only\">sort direction</span>\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"sortdirIcon\"></i>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"pager-pages-container\">\r\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\r\n <div class=\"mx-2\" *ngIf=\"count !== null && count > pageSize\">\r\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\r\n class=\"pager-arrow-button-left\">\r\n <span class=\"sr-only\">Previous</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\r\n class=\"pager-arrow-button-right\">\r\n <span class=\"sr-only\">Next</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-drop-down-menu *ngIf=\"(pages && pages.length > 0) && (count !== null && count > pageSize)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n</div>\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 { formatDate } from \"@angular/common\";\r\n\r\nexport namespace Operators {\r\n export const EQUALS = { label: '=', value: 'eq', description: 'Ίσο με' };\r\n export const NOT_EQUALS = { label: '≠', value: 'neq', description: 'Διάφορο του' };\r\n export const GREATER_THAN = { label: '>', value: 'gt', description: 'Μεγαλύτερο από' };\r\n export const LESS_THAN = { label: '<', value: 'lt', description: 'Μικρότερο από' };\r\n export const GREATER_THAN_EQUAL = { label: '≥', value: 'gte', description: 'Μεγαλύτερο ή ίσο με' };\r\n export const LESS_THAN_EQUAL = { label: '≤', value: 'lte', description: 'Μικρότερο ή ίσο με' };\r\n export const CONTAINS = { label: '∋', value: 'contains', description: 'Περιέχει' };\r\n export const IN = { label: '1..n', value: 'in', description: 'Μέσα σε' };\r\n}\r\n\r\nexport enum QueryParameters {\r\n VIEW = 'view',\r\n PAGE_SIZE = 'pagesize',\r\n PAGE = 'page',\r\n SEARCH = 'search',\r\n SORT_FIELD = 'sort',\r\n SORT_DIRECTION = 'dir',\r\n FILTER = 'filter',\r\n FILTER_FROM = 'from',\r\n FILTER_TO = 'to'\r\n}\r\n\r\nexport interface SearchOption {\r\n name: string;\r\n field: string;\r\n dataType: FilterClause.Dt;\r\n array?: boolean;\r\n multiTerm?: boolean;\r\n options?: SelectInputOption[];\r\n placeholder?: string;\r\n}\r\n\r\nexport interface SelectInputOption {\r\n value: any;\r\n label: string;\r\n description?: string;\r\n}\r\n\r\nexport namespace FilterClause {\r\n export type Op = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'contains' | 'in';\r\n export type Dt = 'string' | 'integer' | 'number' | 'boolean' | 'datetime' | 'array' | 'daterange' | undefined;\r\n}\r\n\r\nexport class FilterClause {\r\n // Member path to compare\r\n public member: string;\r\n // Value to compare against\r\n public value: any;\r\n // The operator to apply between the Indice.Types.FilterClause.Member and Indice.Types.FilterClause.Value\r\n public operator: FilterClause.Op;\r\n // The Indice.Types.JsonDataType of the data Indice.Types.FilterClause.Member\r\n public dataType: FilterClause.Dt;\r\n\r\n public uiName: string | undefined;\r\n public uiOperator: string | undefined;\r\n public uiValue: string | undefined;\r\n\r\n public constructor(member: string, value: any, operator?: FilterClause.Op, dataType?: FilterClause.Dt, searchOptions?: SearchOption[]) { // yeap, we do need searchOptions for the ui view model\r\n this.member = member;\r\n this.value = value;\r\n this.operator = operator || Operators.EQUALS.value as FilterClause.Op;\r\n this.dataType = dataType === undefined ? 'string' : dataType;\r\n // uiName\r\n if (this.dataType === 'datetime') { // special treatment for dates\r\n this.uiName = this.member === QueryParameters.FILTER_FROM ? 'Από' : 'Έως';\r\n } else {\r\n this.uiName = this.member;\r\n let fo = <any>{};\r\n if (searchOptions && searchOptions.length > 0) {\r\n fo = searchOptions.find((f) => {\r\n return f.field === this.member;\r\n });\r\n }\r\n\r\n if (fo) {\r\n this.uiName = fo.name;\r\n }\r\n }\r\n // uiOperator\r\n this.uiOperator = this.dataType === 'datetime' ? '' : Operators.EQUALS.label; // that's fine (for now)...\r\n // uiValue\r\n this.uiValue = this.value;\r\n if ((this.dataType === 'datetime')) {\r\n this.uiValue = formatDate(new Date(this.value), 'dd/MM/yyyy', 'en-US');\r\n }\r\n let fo: SearchOption | undefined;\r\n if (searchOptions && searchOptions.length > 0) {\r\n fo = searchOptions.find((f) => {\r\n return f.field === this.member;\r\n });\r\n }\r\n if (fo && fo.options) { // special treatment for arrays, if there is an options property then it is an array\r\n this.dataType = 'array';\r\n this.uiValue = fo!.options!.find((option) => {\r\n return option.value === this.value;\r\n })?.label;\r\n }\r\n }\r\n\r\n public static parse(text: string): FilterClause | undefined {\r\n const pattern = /^\\s*([A-Za-z_][A-Za-z0-9_\\.]+)::(eq|neq|gt|lt|gte|lte|contains|in)::(\\((string|integer|number|boolean|datetime)\\))?(.+)\\s*$/gi;\r\n if (text != null) {\r\n const matches = pattern.exec(text);\r\n if (matches != null) {\r\n const path = matches[1];\r\n const op = <FilterClause.Op>matches[2];\r\n const dt = <FilterClause.Dt>matches[4];\r\n const v = matches[5];\r\n\r\n return new FilterClause(path, v, op, dt);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n public toString(): string {\r\n if (this.dataType !== 'string' && this.dataType !== 'array') {\r\n return `${this.member}::${this.operator}::(${this.dataType})${this.value}`;\r\n } else {\r\n return `${this.member}::${this.operator}::${this.value}`;\r\n }\r\n }\r\n\r\n}\r\n","import { getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, forwardRef, Inject, Input, LOCALE_ID, 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 = false;\r\n @Input() disabled: boolean = false;\r\n @Input() inline: 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 @Input() minDate: Date | undefined = undefined;\r\n @Input() maxDate: Date | undefined = undefined;\r\n public showCalendar = false;\r\n public showYears = false;\r\n public monthNames = getLocaleMonthNames(this.locale, FormStyle.Standalone, TranslationWidth.Wide);\r\n public dayNames = getLocaleDayNames(this.locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\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 constructor(@Inject(LOCALE_ID) public locale: string) { }\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 this.getDateFromInput();\r\n }\r\n\r\n public selectDateValue(date: any): void {\r\n // This should be in UTC\r\n if (!this.outOfRangeDate(date.day)) {\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.calcDays();\r\n this.showCalendar = false;\r\n }\r\n }\r\n\r\n public selectYearValue(year: any): void {\r\n // This should be in UTC\r\n const tempYear = this.year;\r\n this.year = year.year;\r\n if (!this.outOfRangeDate(this.calendarDates?.find(x => x.selected == true) ?? { day: 1 })) {\r\n let selectedDate = new Date(year.year, this.month ?? 1, this.calendarDates?.find(x => x.selected == true).day ?? 1, 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.showYears = false;\r\n this.showCalendar = true;\r\n this.calcDays();\r\n } else {\r\n this.year = tempYear;\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n }\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\r\n ? ++this.calendarYearPage\r\n : this.calendarYearPage);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n private 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 private 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 = new Array<number>();\r\n for (var i = 1; i <= dayOfWeek; i++) {\r\n // check if month is February\r\n blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));\r\n blankdaysArray.reverse().sort();\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 ?? today, 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 private 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 private getDateFromInput() {\r\n if (this.dateInput?.nativeElement.value !== '' && !this.inline) {\r\n var dateParts = this.dateInput?.nativeElement.value.split(\"/\");\r\n let dateInGrFormat = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], 3, 0, 0);\r\n if (dateInGrFormat.toString() !== 'Invalid Date') {\r\n this.writeValue(dateInGrFormat)\r\n this.calcDays();\r\n this.valueChange.emit(dateInGrFormat);\r\n }\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 }\r\n this.showCalendar = false;\r\n }\r\n\r\n public openYears() {\r\n this.showYears = !this.showYears;\r\n this.calendarYearPage = Math.ceil(this.calendarYears.map(x => x.year).indexOf(this.year) / this.yearsPerPage);\r\n this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 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 public closeCalendar() {\r\n this.showCalendar = false;\r\n this.getDateFromInput();\r\n }\r\n\r\n outOfRangeDate(date: any): boolean {\r\n let outOfRange: boolean = false;\r\n if (this.minDate || this.maxDate) {\r\n const d = new Date(this.year, this.month, date.day);\r\n const dateInMillis = d.getTime();\r\n if (this.minDate) {\r\n let minDate: number = this.minDate.getTime();\r\n if (dateInMillis < minDate && this.minDate.toDateString() !== d.toDateString()) {\r\n outOfRange = true;\r\n }\r\n }\r\n if (this.maxDate) {\r\n let maxDate: number = this.maxDate.getTime();\r\n if (dateInMillis > maxDate && this.maxDate.toDateString() !== d.toDateString()) {\r\n outOfRange = true;\r\n }\r\n }\r\n }\r\n return outOfRange;\r\n }\r\n}","<div class=\"flex\"\r\n [ngClass]=\"{'relative': !inline}\"\r\n (clickOutside)=\"closeCalendar()\">\r\n\r\n <input type=\"text\"\r\n *ngIf=\"!inline\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n (focus)=\"showCalendar = false\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"detapicker-input\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!inline\"\r\n class=\"datepicker-button\"\r\n [disabled]=\"disabled\"\r\n (click)=\"openCalendar()\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\r\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"showCalendar || inline\"\r\n [ngClass]=\"{'absolute': !inline}\"\r\n class=\"datepicker-background\"\r\n style=\"height:18rem;min-width:16rem;\"\r\n name=\"calendar\">\r\n <div class=\"datepicker-btn-wrapper\">\r\n <div>\r\n <button type=\"button\"\r\n (click)=\"openYears()\">\r\n <span class=\"datepicker-selected-month\">\r\n {{monthNames[month]}}\r\n </span>\r\n <span class=\"datepicker-selected-year\">\r\n {{year}}</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousMonth();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextMonth()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <ng-template #showYearsPickerTmpl>\r\n <div>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousYear();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextYear()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"datepicker-wrapper\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"datepicker-day-name\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"datepicker-content-wrapper\">\r\n <div *ngFor=\"let year of showCalendarYears\"\r\n style=\"width: 18.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectYearValue(year)\"\r\n class=\"datepicker-year\"\r\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\r\n {{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"datepicker-content-wrapper\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"datepicker-blank-days\">{{blankday}}</div>\r\n <div *ngFor=\"let date of calendarDates;\"\r\n style=\"width: 14.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectDateValue(date)\"\r\n class=\"datepicker-days\"\r\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\r\n {{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\nimport { SearchOption, FilterClause, QueryParameters, Operators } from './models';\r\n\r\n@Component({\r\n selector: 'lib-advanced-search',\r\n templateUrl: './advanced-search.component.html'\r\n})\r\nexport class AdvancedSearchComponent implements OnInit {\r\n @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\r\n @Input('search-options') searchOptions: SearchOption[] = [];\r\n @Input() filters: FilterClause[] = [];\r\n public menuOptions: MenuOption[] = [];\r\n public selectedField?: SearchOption;\r\n public fieldValue?: string;\r\n public fieldValueDateFrom: any;\r\n public fieldValueDateTo: any;\r\n public menuOptionsDictionary: { [key: string]: MenuOption[] } = {};\r\n\r\n constructor() { }\r\n\r\n public ngOnInit(): void {\r\n this.searchOptions.forEach((searchOption) => {\r\n this.menuOptions.push({\r\n text: searchOption.name,\r\n value: searchOption.field,\r\n data: searchOption.dataType,\r\n description: searchOption.placeholder,\r\n icon: undefined\r\n });\r\n if (searchOption.dataType === 'array') {\r\n let menuOpts: MenuOption[] = [];\r\n searchOption.options?.forEach((selectInputOption) => {\r\n menuOpts.push({\r\n text: selectInputOption.label,\r\n value: selectInputOption.value,\r\n data: undefined,\r\n description: selectInputOption.description,\r\n icon: undefined\r\n });\r\n })\r\n this.menuOptionsDictionary[searchOption.field] = menuOpts;\r\n }\r\n });\r\n }\r\n\r\n public selectedFieldChanged(field: string) {\r\n this.selectedField = this.searchOptions.find((searchOption) => searchOption.field === field);\r\n this.fieldValue = undefined;\r\n }\r\n\r\n public selectedFieldValueChanged(fieldValue: string) {\r\n this.fieldValue = fieldValue;\r\n }\r\n\r\n public search() {\r\n if (!this.selectedField || !this.selectedField.dataType) {\r\n return;\r\n }\r\n // the filter is of type 'daterange'\r\n if (this.selectedField.dataType === 'daterange') {\r\n if (!this.selectedField.multiTerm) {\r\n this.filters = this.filters.filter((f) => {\r\n return f.member !== QueryParameters.FILTER_FROM && f.member !== QueryParameters.FILTER_TO;\r\n });\r\n }\r\n if (this.fieldValueDateFrom) {\r\n const filterClauseFrom = new FilterClause(QueryParameters.FILTER_FROM, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\r\n this.filters.push(filterClauseFrom);\r\n }\r\n\r\n if (this.fieldValueDateTo) {\r\n const filterClauseTo = new FilterClause(QueryParameters.FILTER_TO, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\r\n this.filters.push(filterClauseTo);\r\n }\r\n }\r\n // the filter isn't of type 'daterange' (everything else)\r\n else {\r\n if (this.fieldValue === undefined) { // handle empty field value\r\n return;\r\n }\r\n // create the filterClause\r\n const filterClause = new FilterClause(this.selectedField.field, this.fieldValue, Operators.EQUALS.value as FilterClause.Op, this.selectedField.dataType, this.searchOptions); // operator is always 'equals'...\r\n\r\n if (!this.selectedField.multiTerm) { // multiTerm means that we can have multiple filter values of the SAME filter clause (eg \"filter case types that are Phone OR Address\")\r\n this.filters = this.filters.filter((f) => {\r\n return f.member !== this.selectedField!.field;\r\n });\r\n }\r\n\r\n this.filters.push(filterClause);\r\n this.fieldValue = undefined;\r\n }\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n\r\n public removeFilter(index: number) {\r\n if (this.filters && this.filters.length >= index) {\r\n this.filters.splice(index, 1);\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n }\r\n\r\n public clear() {\r\n this.fieldValueDateFrom = undefined;\r\n this.fieldValueDateTo = undefined;\r\n this.selectedField = undefined;\r\n this.fieldValue = undefined;\r\n this.filters = [];\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n\r\n}\r\n","<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n Αναζήτηση ανά:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"Αναζήτηση\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n Από:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n Έως:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined}\"\r\n [disabled]=\"fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>","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","<!-- <h1>SKELETON LOADER!</h1> -->\r\n<ng-container *ngSwitch=\"type\">\r\n <div class=\"cards-deck-4\" *ngSwitchCase=\"'tiles'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-32 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-3\" *ngSwitchCase=\"'large-tiles'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-52 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-1\" *ngSwitchCase=\"'table'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"border border-light-blue-300 shadow rounded-sm p-4 max-w-sm w-full mx-auto mb-4\">\r\n <div class=\"animate-pulse flex space-x-4\">\r\n <div class=\"rounded-full bg-light-blue-400 h-12 w-12\"> </div>\r\n <div class=\"flex-1 space-y-4 py-1\">\r\n <div class=\"h-4 bg-light-blue-400 rounded w-3/4\"> </div>\r\n <div class=\"space-y-2\">\r\n <div class=\"h-4 bg-light-blue-400 rounded\"> </div>\r\n <div class=\"h-4 bg-light-blue-400 rounded w-5/6\"> </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-3\" *ngSwitchDefault>\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-52 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</ng-container>\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","<div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { MenuOption, ListViewType, PagerPosition } 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\nimport { FilterClause, SearchOption } from '../advanced-search/models';\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 @Input('search-options') searchOptions: SearchOption[] = [];\r\n @Input() filters: FilterClause[] = [];\r\n // BUSY STATE\r\n @Input() busy = false;\r\n // DATA SOURCE!\r\n @Input() items: any[] | null | undefined;\r\n // PAGING - pass through for pager component\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n @Input() view = ListViewType.Table;\r\n @Input() sort: string | null = null;\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 // 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-dir') sortdir: string | null = '-';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('tiles-count') tilesCount = 4;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-pager') showPager = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('pager-position') pagerPosition: any | undefined = PagerPosition.Top;\r\n // DETAILS SECTION\r\n // Check if details section and button should be displayed according to the count of the value given\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('details-section-property-count') detailsSectionPropertyCount: string | null = null;\r\n // COLUMNS\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 // tslint:disable-next-line:no-input-rename\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 @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 @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 @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\r\n\r\n private multipleFullWidth = false;\r\n public expandIcon = Icons.Expand;\r\n public collapseIcon = Icons.Collapse;\r\n public tableViewSupported = 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 public loaderItems: any[] = [];\r\n public columns: any[] = [];\r\n public tilesDeckClass = 'cards-deck-4';\r\n public tileTemplate: any | null | undefined = null;\r\n public detailsTemplate: any | null | undefined = null;\r\n\r\n constructor() {\r\n for (let i = 0; i < 5; i++) {\r\n this.loaderItems.push({});\r\n }\r\n if (this.pagerPosition) {\r\n this.pagerPosition = this.pagerPosition as PagerPosition;\r\n }\r\n }\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 public emitAdvancedSearchChanged($event: FilterClause[]): void {\r\n this.advancedSearchChanged.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 =\r\n this.view !== ListViewType.Gallery\r\n ? `cards-deck-${tiles}`\r\n : this.items && this.items.length > 0\r\n ? `gallery-deck-${tiles}`\r\n : 'gallery-deck';\r\n } else {\r\n this.tilesDeckClass =\r\n this.view !== ListViewType.Gallery\r\n ? 'cards-deck-3'\r\n : this.items && this.items.length > 0\r\n ? 'gallery-deck-3'\r\n : 'gallery-deck';\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"px-2\">\r\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\r\n [search-options]=\"searchOptions\"\r\n [filters]=\"filters\"\r\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\"></lib-advanced-search>\r\n\r\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>\r\n\r\n<ng-container [ngSwitch]=\"view\">\r\n\r\n <ng-container *ngSwitchCase=\"'tiles'\">\r\n <div [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\"\r\n [count]=\"5\"\r\n [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- *ngSwitchCase=\"'gallery'\" -->\r\n <ng-container *ngSwitchCase=\"'gallery'\">\r\n <ul role=\"list\"\r\n [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\"\r\n [count]=\"5\"\r\n [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n\r\n <!-- *ngSwitchCase=\"'table'\" -->\r\n <ng-container *ngSwitchDefault>\r\n\r\n <div class=\"list-view-container\">\r\n <div class=\"list-view-container-inner\">\r\n <table class=\"list-view-table\">\r\n <thead class=\"list-view-thead\">\r\n <tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <th class=\"list-view-th-details\"></th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\"\r\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\r\n {{col.title}}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"busy\">\r\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button disabled\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"!busy\">\r\n <ng-container *ngFor=\"let item of items;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button (click)=\"toggleDetails(item)\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <ng-template [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\r\n <div class=\"cards-deck-1\">\r\n <lib-list-view-empty-state></lib-list-view-empty-state>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div class=\"px-2 mt-2\"\r\n *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\">\r\n <lib-pager [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>","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","<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\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","<div class=\"card\"\r\n [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">Περισσότερα</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","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, 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","<div aria-live=\"assertive\"\r\n [ngClass]=\"closed ? 'toast-closed': 'toast z-50'\"\r\n [ngStyle]=\"isMobile ? { 'margin-bottom.px': i * 85 } : {'margin-top.px': i * 85 }\">\r\n <div class=\"toast-container\">\r\n <div class=\"toast-pill\">\r\n <div class=\"toast-context-padding\">\r\n <div class=\"toast-context\"\r\n [ngSwitch]=\"toast?.type\">\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'info'\">\r\n <svg class=\"h-5 w-5 text-blue-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'success'\">\r\n <svg class=\"h-5 w-5 text-green-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'error'\">\r\n <svg class=\"h-5 w-5 text-red-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'warning'\">\r\n <svg class=\"h-5 w-5 text-yellow-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchDefault>\r\n <svg class=\"h-5 w-5 text-green-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"ml-3 w-0 flex-1\">\r\n <p class=\"toast-title\"\r\n *ngIf=\"toast?.title\">\r\n {{toast?.title}}\r\n </p>\r\n <p class=\"toast-body\">\r\n {{toast?.body}}\r\n </p>\r\n </div>\r\n <div class=\"toast-close-icon\">\r\n <button class=\"toast-close-button\"\r\n (click)=\"closeToast(i)\">\r\n <span class=\"sr-only\">Close</span>\r\n <!-- Heroicon name: solid/x -->\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","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","<lib-toaster *ngFor=\"let toast of toasts; let i=index\" [toast]=\"toast\" [i]=\"i\" (remove)=\"remove($event)\"></lib-toaster>\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","<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'lib-toggle',\r\n templateUrl: './toggle.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ToggleComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\r\n @Input()\r\n public value: boolean | null | undefined;\r\n @Input()\r\n public disabled:boolean | null | undefined;\r\n @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n constructor() { }\r\n \r\n writeValue(obj: any): void {\r\n if(obj) {\r\n this.value = obj || false;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange$ = fn;\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 ngOnInit(): void {\r\n }\r\n\r\n public changeValue(){\r\n this.value = !this.value;\r\n this.valueChange.emit(this.value);\r\n if(this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n}","<button type=\"button\"\r\n [ngClass]=\"value ? (disabled ? 'on disabled' : 'on') : 'off'\"\r\n class=\"toggle-button\"\r\n role=\"switch\"\r\n aria-checked=\"false\"\r\n aria-labelledby=\"isPrivate\"\r\n (click)=\"changeValue()\"\r\n (blur)=\"onBlur($event)\"\r\n value=\"{{value}}\"\r\n [disabled]=\"disabled\"\r\n [title]=\"disabled ? 'Το αρχείο πρέπει να είναι ιδωτικό' : 'Ιδιωτικό'\">\r\n <span aria-hidden=\"true\"\r\n [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\r\n class=\"toggle-span\"></span>\r\n</button>","import { SidePaneOverlayType, SidePaneSize } from './../../types';\r\nimport { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, OnDestroy, Inject, EventEmitter, Output } 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 @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n \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 this.onComplete.emit(true);\r\n }\r\n\r\n}\r\n","<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\r\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\r\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\r\n <div [class]=\"sizeContainerStyle\">\r\n <div class=\"side-pane\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavLink } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-nav-links-list',\r\n templateUrl: './nav-links-list.component.html'\r\n})\r\nexport class NavLinksListComponent implements OnInit, OnDestroy {\r\n\r\n @Input() links: Observable<NavLink[]> | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('active-fragment') activeFragment: Observable<string> | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('link-class') navLinkClass: string | string = 'nav-link';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('link-active-class') navLinkActiveClass: string | string[] = 'nav-link-active';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('container-class') containerClass: string | string[] | undefined = undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-icons') showIcons: boolean | undefined = false;\r\n public fragmentValue: string | undefined;\r\n private fragmentSub$: Subscription | undefined;\r\n constructor() { }\r\n \r\n ngOnDestroy(): void {\r\n this.fragmentSub$?.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fragmentSub$ = this.activeFragment?.subscribe( fragment => this.fragmentValue = fragment);\r\n }\r\n\r\n}\r\n","\r\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\r\n <div class=\"nav-link-list-container-inner\">\r\n <ng-container *ngFor=\"let link of links | async\">\r\n <ng-container [ngSwitch]=\"link.type\">\r\n <a *ngSwitchCase=\"'router'\"\r\n href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [routerLinkActive]=\"navLinkActiveClass\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n [class]=\"navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [class]=\"navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n <a *ngSwitchCase=\"'fragment'\"\r\n routerLink=\".\"\r\n [fragment]=\"link.path\"\r\n [class]=\"fragmentValue === link.path ? navLinkClass + ' ' + navLinkActiveClass : navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'lib-combobox',\r\n templateUrl: './combobox.component.html'\r\n})\r\nexport class ComboboxComponent implements OnInit {\r\n private _debouncer: Subject<string> = new Subject<string>();\r\n private _items: any[] = [];\r\n\r\n private _defaultItemsFilter = (item: any) => {\r\n const selectedItem = this.selectedItems.find(x => x == item);\r\n return selectedItem == null || selectedItem == undefined;\r\n };\r\n\r\n constructor() { }\r\n\r\n @Input() public id: string = 'combobox';\r\n\r\n @Input('items') public set items(items: any[]) {\r\n if (!this.itemTemplate) {\r\n this._items = items.filter(this._defaultItemsFilter);\r\n } else {\r\n this._items = items.filter(this.selectedItemsFilter);\r\n }\r\n }\r\n\r\n public get items(): any[] {\r\n if (!this.itemTemplate) {\r\n return this._items.filter(this._defaultItemsFilter);\r\n } else {\r\n return this._items.filter(this.selectedItemsFilter);\r\n }\r\n }\r\n\r\n @Input() public itemTemplate: TemplateRef<HTMLElement> | null = null;\r\n @Input() public selectedItemsFilter: (item: any) => boolean | null = () => true;\r\n @Input() public selectedItemTemplate: TemplateRef<HTMLElement> | null = null;\r\n @Input() public busy: boolean = false;\r\n @Input() public debounceMs: number = 1000;\r\n @Output() public onSearch: EventEmitter<string | undefined> = new EventEmitter();\r\n @Output() public onItemSelected: EventEmitter<any> = new EventEmitter();\r\n public showOptions: boolean = false;\r\n public selectedItems: any[] = [];\r\n\r\n public ngOnInit(): void {\r\n this.emitSearchEvent();\r\n this._debouncer\r\n .pipe(\r\n debounceTime(this.debounceMs),\r\n distinctUntilChanged()\r\n )\r\n .subscribe((value: string) => this.emitSearchEvent(value));\r\n }\r\n\r\n public onInputClick(): void {\r\n this.showOptions = true;\r\n }\r\n\r\n public onInputClickOutside(): void {\r\n this.showOptions = false;\r\n }\r\n\r\n public onInputKeyUp(event: any): void {\r\n this._debouncer.next(event.currentTarget.value);\r\n }\r\n\r\n public onListItemSelected(item: any): void {\r\n this.onItemSelected.emit(item);\r\n this.selectedItems.push(item);\r\n }\r\n\r\n public removeSelectedItem(item: any): void {\r\n const index = this.selectedItems.indexOf(item);\r\n if (index > -1) {\r\n this.selectedItems.splice(index, 1);\r\n }\r\n }\r\n\r\n private emitSearchEvent(searchTerm: string | undefined = undefined): void {\r\n this.onSearch.emit(searchTerm);\r\n }\r\n}\r\n","<div class=\"relative mt-1\">\r\n <form autocomplete=\"off\" [id]=\"id + '-form'\">\r\n <input [id]=\"id + '-input'\" type=\"text\" (click)=\"onInputClick()\" (clickOutside)=\"onInputClickOutside()\" (keyup)=\"onInputKeyUp($event)\"\r\n class=\"w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-12 shadow-sm focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm\" role=\"combobox\" aria-controls=\"options\"\r\n aria-expanded=\"false\" autocomplete=\"off\" list=\"autocomplete\">\r\n </form>\r\n <div class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\">\r\n <svg *ngIf=\"!busy\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\" class=\"animate-spin h-6 w-6 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-options'\" *ngIf=\"showOptions\" class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\" role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\" [id]=\"'option-'+ i\" (click)=\"onListItemSelected(item)\" role=\"option\" tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\" role=\"list\" class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\" class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultItemTemplate let-item>\r\n <span class=\"hover:bg-gray-100 relative cursor-pointer select-none py-2 pl-3 pr-3 block truncate\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:border-gray-400\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\" aria-hidden=\"true\"></span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\" (click)=\"removeSelectedItem(item)\" class=\"cursor-pointer bg-white rounded-md inline-flex text-gray-400 hover:text-gray-500\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { InjectionToken } from '@angular/core';\r\n\r\nimport { IAppLinks, IAppLanguagesService, IAppNotifications, IShellConfig } from './types';\r\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\r\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\r\n\r\nexport const APP_LANGUAGES = new InjectionToken<IAppLanguagesService>('APP_LANGUAGES');\r\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\r\nexport const APP_NOTIFICATIONS = new InjectionToken<IAppNotifications>('APP_NOTIFICATIONS');\r\nexport const LIBSTEPPER_ACCESSOR = new InjectionToken<LibStepperComponent>('LibStepperAccessor');\r\nexport const LIBTABGROUP_ACCESSOR = new InjectionToken<LibTabGroupComponent>('LibTabGroupAccessor');\r\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\r\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnInit, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\r\n\r\n@Component({\r\n selector: 'lib-tab',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibTabComponent implements OnInit {\r\n private _isActive: boolean = false;\r\n\r\n constructor(\r\n @Optional() @Inject(LIBTABGROUP_ACCESSOR) public readonly _tabGroup?: any\r\n ) { }\r\n\r\n /** The content provided for the tab. */\r\n @ViewChild(TemplateRef, { static: true }) public content!: TemplateRef<any>;\r\n /** A label for the tab header. */\r\n @Input() public label: string | undefined;\r\n /** Indicates the unique id assigned in the tab. */\r\n @Input() public id!: string;\r\n\r\n /** Indicates the index of the tab. */\r\n public get index(): number | undefined {\r\n return this._tabGroup?.tabs?.toArray().indexOf(this) || undefined;\r\n }\r\n\r\n /** Indicates whether the tab is active. */\r\n public get isActive(): boolean {\r\n return this._isActive;\r\n }\r\n\r\n /** Setter for LibTabComponent isActive property. */\r\n public set isActive(isActive: boolean) {\r\n this._isActive = isActive;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.id = this.id || uuid.v4();\r\n }\r\n}","import { AfterContentChecked, AfterContentInit, Component, ContentChildren, EventEmitter, forwardRef, OnInit, Output, QueryList } from '@angular/core';\r\n\r\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\r\nimport { LibTabComponent } from './lib-tab.component';\r\n\r\n@Component({\r\n selector: 'lib-tab-group',\r\n templateUrl: './lib-tab-group.component.html',\r\n providers: [\r\n { provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }\r\n ]\r\n})\r\nexport class LibTabGroupComponent implements OnInit, AfterContentInit, AfterContentChecked {\r\n constructor() { }\r\n\r\n /** The inner tabs of the group. */\r\n @ContentChildren(LibTabComponent, { descendants: true }) public tabs: QueryList<LibTabComponent> | undefined = undefined;\r\n /** Emmited when a step change occurs. */\r\n @Output() public tabChanged: EventEmitter<LibTabComponent> = new EventEmitter<LibTabComponent>();\r\n\r\n /** The current tab. */\r\n public get currentTab(): LibTabComponent | undefined {\r\n return this.tabs?.find(x => x.isActive);\r\n }\r\n\r\n /** The index (starting from zero) of the current tab. */\r\n public get currentΤabIndex(): number | undefined {\r\n return this.currentTab?.index || undefined;\r\n }\r\n\r\n public ngOnInit(): void { }\r\n\r\n public ngAfterContentInit(): void {\r\n if (!this.tabs) {\r\n return;\r\n }\r\n }\r\n\r\n public ngAfterContentChecked(): void {\r\n if (this.tabs && this.tabs.length > 0) {\r\n const anyActive = this.tabs.filter(x => x.isActive).length > 0;\r\n if (!anyActive) {\r\n this.tabs.get(0)!.isActive = true;\r\n }\r\n }\r\n }\r\n\r\n public onTabChanged(selectedTab: LibTabComponent): void {\r\n this.tabs!.forEach((tab: LibTabComponent) => tab.isActive = tab.id === selectedTab.id);\r\n this.tabChanged.emit(selectedTab);\r\n }\r\n\r\n public onTabSelectChanged(selectedTabIndex: number): void {\r\n this.tabs!.forEach((tab: LibTabComponent, index: number) => tab.isActive = index === selectedTabIndex);\r\n this.tabChanged.emit(this.tabs?.get(selectedTabIndex));\r\n }\r\n}","<div class=\"tab-group-select-hidden\">\r\n <label for=\"tabs\" class=\"sr-only\">Select a tab</label>\r\n <select id=\"tabs\" name=\"tabs\" (change)=\"onTabSelectChanged(+tabsSelect.value)\" class=\"tab-group-select\" #tabsSelect>\r\n <option [value]=\"i\" *ngFor=\"let tab of tabs; let i = index\">{{ tab.label }}</option>\r\n </select>\r\n</div>\r\n<div class=\"tab-group-container-hidden\">\r\n <div class=\"tab-group-container\">\r\n <nav class=\"tab-group-container-nav\" aria-label=\"Tabs\">\r\n <a *ngFor=\"let tab of tabs\" href=\"javascript:void(0)\" [class.tab]=\"!tab.isActive\" [class.tab-active]=\"tab.isActive\" (click)=\"onTabChanged(tab)\">\r\n {{ tab.label }}\r\n </a>\r\n </nav>\r\n </div>\r\n</div>\r\n<div *ngIf=\"currentTab?.content\">\r\n <ng-container [ngTemplateOutlet]=\"currentTab!.content\"></ng-container>\r\n</div>","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libStepInfo]',\r\n})\r\nexport class LibStepInfoDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libStepLabel]',\r\n})\r\nexport class LibStepLabelDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\r\nimport { LibStepInfoDirective } from './lib-step-info.directive';\r\nimport { LibStepLabelDirective } from './lib-step-label.directive';\r\n\r\nexport enum StepState {\r\n Active = 'Active',\r\n Completed = 'Completed',\r\n Upcoming = 'Upcoming'\r\n};\r\n\r\n@Component({\r\n selector: 'lib-step',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibStepComponent {\r\n constructor(\r\n @Optional() @Inject(LIBSTEPPER_ACCESSOR) public readonly _stepper?: any\r\n ) { }\r\n\r\n /** The content provided for the step. */\r\n @ViewChild(TemplateRef, { static: true }) public content!: TemplateRef<any>;\r\n /** The label of the step displayed in header, if applicable. */\r\n @ContentChild(LibStepLabelDirective) public stepLabel: LibStepLabelDirective | undefined;\r\n /** The info of the step displayed in header, if applicable. */\r\n @ContentChild(LibStepInfoDirective) public stepInfo: LibStepInfoDirective | undefined;\r\n /** An optional CSS class for the step header. */\r\n @Input() public class: string | undefined;\r\n /** The abstract control of the step. */\r\n @Input() public stepControl: AbstractControl | undefined;\r\n\r\n /** Indicates the index of the step. */\r\n public get index(): number {\r\n return this._stepper ? this._stepper.steps.toArray().indexOf(this) : -1;\r\n }\r\n\r\n /** Indicates whether this step is the last step. */\r\n public get isLast(): boolean {\r\n return this._stepper ? this._stepper.steps.length - 1 === this.index : false;\r\n }\r\n\r\n /** Indicates whether you can navigate to the step or not. */\r\n public get isValid(): boolean {\r\n if (!this.stepControl) {\r\n return true;\r\n }\r\n return this.stepControl.valid;\r\n }\r\n\r\n /** Shows the current state of the step. */\r\n public get state(): StepState {\r\n const currentIndex = this._stepper?.currentStepIndex;\r\n if (currentIndex === this.index) {\r\n return StepState.Active;\r\n }\r\n if (currentIndex > this.index) {\r\n return StepState.Completed;\r\n }\r\n return StepState.Upcoming;\r\n }\r\n}\r\n","export enum StepperType {\r\n Bullets = 'Bullets',\r\n BulletsAndText = 'BulletsAndText',\r\n Circles = 'Circles',\r\n CirclesWithText = 'CirclesWithText',\r\n Panels = 'Panels',\r\n PanelsWithBorder = 'PanelsWithBorder',\r\n Progress = 'Progress',\r\n Simple = 'Simple'\r\n}","import { AfterViewChecked, ChangeDetectorRef, Component, ContentChildren, EventEmitter, forwardRef, Input, OnInit, Output, QueryList } from '@angular/core';\r\n\r\nimport { LibStepComponent, StepState } from './lib-step.component';\r\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\r\nimport { StepperType } from './types/stepper-type';\r\nimport { StepSelectedEvent } from './types/step-selected-event';\r\n\r\n@Component({\r\n selector: 'lib-stepper',\r\n templateUrl: './lib-stepper.component.html',\r\n providers: [\r\n { provide: LIBSTEPPER_ACCESSOR, useExisting: forwardRef(() => LibStepperComponent) }\r\n ]\r\n})\r\nexport class LibStepperComponent implements OnInit, AfterViewChecked {\r\n // Private properties.\r\n private _currentStepIndex: number = 0;\r\n private _isCompleted = false;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n /** The inner steps of the wizard. */\r\n @ContentChildren(LibStepComponent, { descendants: true }) public steps!: QueryList<LibStepComponent>;\r\n /** Emmited when a step change occurs. */\r\n @Output() public readonly stepChanged = new EventEmitter<StepSelectedEvent>();\r\n /** Emmited when the stepper navigates away from the final step. Only emits once. */\r\n @Output() public readonly completed = new EventEmitter<void>();\r\n /** Indicates whether each step has to be validated before proceeding to the next. */\r\n @Input() public linear: boolean = false;\r\n /** The type of the stepper. */\r\n @Input() public type: StepperType = StepperType.Panels;\r\n public StepState = StepState;\r\n public StepperType = StepperType;\r\n\r\n /** The current wizard step. */\r\n public get currentStep(): LibStepComponent | undefined {\r\n return this.steps?.get(this._currentStepIndex);\r\n }\r\n\r\n /** The index (starting from zero) of the current wizard step. */\r\n public get currentStepIndex(): number {\r\n return this._currentStepIndex;\r\n }\r\n\r\n /** Indicates whether stepper can go a step back. */\r\n public get canGoBack(): boolean {\r\n return this._currentStepIndex > 0;\r\n }\r\n\r\n /** Indicates whether stepper can go a step forward. */\r\n public get canGoForward(): boolean {\r\n return this._currentStepIndex < this.steps?.length - 1;\r\n }\r\n\r\n /** Indicates whether */\r\n public get isCompleted(): boolean {\r\n return this._isCompleted;\r\n }\r\n\r\n public ngOnInit(): void { }\r\n\r\n public ngAfterViewChecked(): void {\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n /** Proceeds to the next step, if any. */\r\n public goToNextStep(): void {\r\n if (this.currentStep?.isLast && !this._isCompleted) {\r\n this._isCompleted = true;\r\n this.completed.emit();\r\n }\r\n if (!this.canGoForward) {\r\n return;\r\n }\r\n this.updateCurrentStepIndex(this._currentStepIndex + 1);\r\n }\r\n\r\n /** Proceeds to the previous step, if any. */\r\n public goToPreviousStep(): void {\r\n if (!this.canGoBack) {\r\n return;\r\n }\r\n this.updateCurrentStepIndex(this._currentStepIndex - 1);\r\n }\r\n\r\n public onSelectStep(selectedStep: LibStepComponent): void {\r\n this.updateCurrentStepIndex(selectedStep.index);\r\n }\r\n\r\n private updateCurrentStepIndex(newIndex: number): void {\r\n const stepsArray = this.steps.toArray();\r\n const currentStep = stepsArray[this.currentStepIndex];\r\n const shouldStop = this.linear && (\r\n (!currentStep.isValid && newIndex >= this.currentStepIndex) || // If current step is invalid and want to go forward, then stop.\r\n (currentStep.isValid && newIndex > this.currentStepIndex + 1 && stepsArray.slice(this.currentStepIndex + 1, newIndex).some(x => !x.isValid)) // If going forward (more than 1 steps), check if there are any invalid steps in between.\r\n );\r\n if (shouldStop) {\r\n return;\r\n }\r\n this.stepChanged.emit({\r\n selectedIndex: newIndex,\r\n previouslySelectedIndex: this.currentStepIndex,\r\n selectedStep: stepsArray[newIndex],\r\n previouslySelectedStep: currentStep\r\n });\r\n this._currentStepIndex = newIndex;\r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"type\">\r\n <!-- Bullets -->\r\n <nav class=\"stepper-bullets-container\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Bullets\">\r\n <p class=\"stepper-bullets-counter\">Step {{ currentStepIndex + 1 }} of {{ steps.length }}</p>\r\n <ol role=\"list\" class=\"stepper-bullets-ol\">\r\n <li class=\"cursor-pointer\" *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\">\r\n <!-- Completed Step -->\r\n <div class=\"stepper-bullets-completed-step\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-active-step\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-active-step-level1\" aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-active-step-level1\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-active-step-bullet\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div href=\"#\" class=\"stepper-bullets-upcoming-step\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Bullets & Text -->\r\n <div class=\"stepper-bullets-and-text-container\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.BulletsAndText\">\r\n <nav aria-label=\"Progress\">\r\n <ol role=\"list\" class=\"stepper-bullets-and-text-ol\">\r\n <li class=\"cursor-pointer\" *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\">\r\n <!-- Complete Step -->\r\n <div class=\"group\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"stepper-bullets-and-text-completed-step\">\r\n <span class=\"stepper-bullets-and-text-completed-step-level1\">\r\n <svg class=\"h-full w-full text-blue-600 group-hover:text-blue-800\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-completed-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-and-text-active-step\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-and-text-active-step-level1\" aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-and-text-active-step-level11\"></span>\r\n <span class=\"stepper-bullets-and-text-active-step-level12\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-active-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level1\" aria-hidden=\"true\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level2\"></div>\r\n </div>\r\n <p class=\"stepper-bullets-and-text-upcoming-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Circles -->\r\n <nav class=\"flex justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Circles\">\r\n <ol class=\"flex items-center\" role=\"list\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative pr-8 sm:pr-20 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-blue-600\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full hover:bg-blue-900\">\r\n <svg class=\"w-5 h-5 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\" aria-current=\"step\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"group relative w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Circles With Text -->\r\n <nav class=\"flex items-center justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.CirclesWithText\">\r\n <ol role=\"list\" class=\"overflow-hidden\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative pb-10 cursor-pointer\">\r\n <!-- Complete Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-blue-600\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-5 h-5 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\" aria-current=\"step\">\r\n <span class=\"h-9 flex items-center\" aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div href=\"#\" class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\" aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-gray-500\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels -->\r\n <nav aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Panels\">\r\n <ol role=\"list\" class=\"border border-gray-300 rounded-md divide-y divide-gray-300 md:flex md:divide-y-0\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative md:flex-1 md:flex cursor-pointer\">\r\n <!-- Completed step -->\r\n <div class=\"group flex items-center w-full\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-6 h-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active step -->\r\n <div class=\"px-6 py-4 flex items-center text-sm font-medium\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-blue-600 rounded-full\">\r\n <span class=\"text-blue-600\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming step -->\r\n <div class=\"group flex items-center\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"text-gray-500 group-hover:text-gray-900\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-500 group-hover:text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Arrow separator for lg screens and up -->\r\n <div *ngIf=\"!step.isLast\" class=\"hidden md:block absolute top-0 right-0 h-full w-5\" aria-hidden=\"true\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 22 80\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0 -2L20 40L0 82\" vector-effect=\"non-scaling-stroke\" stroke=\"currentcolor\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels With Border -->\r\n <div class=\"panels-with-border-container\" *ngSwitchCase=\"StepperType.PanelsWithBorder\">\r\n <nav class=\"panels-with-border-nav\" aria-label=\"Progress\">\r\n <ol role=\"list\" class=\"panels-with-border-ol\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"panels-with-border-li\">\r\n <!-- Completed Step -->\r\n <div class=\"panels-with-border-completed-step\" *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-completed-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-completed-step-level2\">\r\n <span class=\"panels-with-border-completed-step-level21\">\r\n <span class=\"panels-with-border-completed-step-level211\">\r\n <svg class=\"w-6 h-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level22\">\r\n <span class=\"panels-with-border-completed-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level222\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"panels-with-border-active-step\" *ngIf=\"step.state === StepState.Active\">\r\n <div aria-current=\"step\">\r\n <span class=\"panels-with-border-active-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-active-step-level2\">\r\n <span class=\"panels-with-border-active-step-level21\">\r\n <span class=\"panels-with-border-active-step-level211\">\r\n <span class=\"panels-with-border-active-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level22\">\r\n <span class=\"panels-with-border-active-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level222\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\" aria-hidden=\"true\" *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 12 82\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\" stroke=\"currentcolor\" vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"panels-with-border-upcoming-step\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-upcoming-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-upcoming-step-level2\">\r\n <span class=\"panels-with-border-upcoming-step-level21\">\r\n <span class=\"panels-with-border-upcoming-step-level211\">\r\n <span class=\"panels-with-border-upcoming-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-upcoming-step-level22\">\r\n <span class=\"panels-with-border-upcoming-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm font-medium text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\" aria-hidden=\"true\" *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 12 82\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\" stroke=\"currentcolor\" vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Progress -->\r\n <div *ngSwitchCase=\"StepperType.Progress\">\r\n <div class=\"mt-6\" aria-hidden=\"true\">\r\n <div class=\"bg-gray-200 rounded-full overflow-hidden\">\r\n <div class=\"h-2 bg-blue-600 rounded-full\" [style.width]=\"(((currentStepIndex + 1) / steps.length) * 100) + '%'\"></div>\r\n </div>\r\n <div class=\"hidden sm:grid grid-cols-4 text-sm font-medium text-gray-600 mt-6\">\r\n <div *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"text-blue-600 cursor-pointer\">\r\n <ng-container *ngIf=\"step.stepLabel\" [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Simple -->\r\n <nav aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Simple\">\r\n <ol role=\"list\" class=\"space-y-4 md:flex md:space-y-0 md:space-x-8\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"md:flex-1 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-blue-600 hover:border-blue-800 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase group-hover:text-blue-800\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"pl-4 py-2 flex flex-col border-l-4 border-blue-600 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-gray-200 hover:border-gray-300 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"text-xs text-gray-500 font-semibold tracking-wide uppercase group-hover:text-gray-700\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n</ng-container>\r\n<ng-container *ngFor=\"let step of steps\">\r\n <ng-container *ngIf=\"step.state === StepState.Active\" [ngTemplateOutlet]=\"step.content\"></ng-container>\r\n</ng-container>","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 { ComponentRef, ViewRef } from '@angular/core';\r\n\r\n/**\r\n * Holds information about the dynamic content.\r\n * @remarks\r\n * `ComponentRef` is undefined in the case content is of `TemplateRef` type.\r\n */\r\nexport class ContentRef {\r\n constructor(public nodes: any[], public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {}\r\n}\r\n","import {\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n ComponentFactory,\r\n Type,\r\n ElementRef,\r\n StaticProvider,\r\n TemplateRef,\r\n ComponentRef,\r\n ApplicationRef,\r\n Injector,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentLoaderOptions } from './component-loader-options.class';\r\nimport { ContentRef } from './content-ref.class';\r\n\r\n/**\r\n * Provides ways of loading and handling dynamic content.\r\n *\r\n * @remarks\r\n * Do NOT use this directly, create an instance through {@link ComponentLoaderFactory}\r\n * You can use this loader in two ways:\r\n * - Attaches a component to `ViewContainerRef`.\r\n * - Attaches a component to `ViewContainerRef`. The attached component has a `<ng-content>` tag inside its view. The {@link ComponentLoaderOptions.content} will be drawn inside this tag.\r\n *\r\n * @internal\r\n */\r\nexport class ComponentLoader<T> {\r\n /**\r\n * Before content is shown event.\r\n */\r\n onBeforeShow = new Subject();\r\n /**\r\n * After show content event.\r\n * @returns The id of newly created component ref.\r\n */\r\n onShown = new Subject();\r\n /**\r\n * Before content is hidden event.\r\n * @returns The instance of attached component;\r\n */\r\n onBeforeHide = new Subject();\r\n /**\r\n * After content is hidden event.\r\n * @returns The id of destroyed component ref.\r\n */\r\n onHidden = new Subject();\r\n\r\n public instance?: T;\r\n public componentRef?: ComponentRef<T>;\r\n private componentFactory?: ComponentFactory<T>;\r\n private container: string | ElementRef | any;\r\n private providers: StaticProvider[] = [];\r\n private contentRef?: ContentRef;\r\n private containerDefaultSelector = 'body';\r\n private innerComponent?: ComponentRef<T>;\r\n constructor(\r\n private vcr: ViewContainerRef | undefined,\r\n private cfr: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector\r\n ) {}\r\n\r\n /**\r\n * Attaches component.\r\n * @param componentType - The type component to attach.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public attach(componentType: Type<T>): ComponentLoader<T> {\r\n this.componentFactory = this.cfr.resolveComponentFactory<T>(componentType);\r\n return this;\r\n }\r\n\r\n /**\r\n * Body will be used in nothing is provided.\r\n * @param container - The element in which dynamic content will be drawn inside to. For string case a query to the dom will be executed to find the element.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public to(container?: string | ElementRef): ComponentLoader<T> {\r\n this.container = container || this.container;\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds provider to the providers array. These providers will be injected to the attached component.\r\n *\r\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\r\n *\r\n * @param provider - Provider to inject.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public provide(provider: StaticProvider): ComponentLoader<T> {\r\n this.providers.push(provider);\r\n return this;\r\n }\r\n\r\n /**\r\n * Attaches attached component to dom and any dynamic content if provided.\r\n * @remarks\r\n * Also triggers the {@link ComponentLoader.onBeforeShow} and {@link ComponentLoader.onShown} events.\r\n *\r\n * @param options - {@link ComponentLoaderOptions}.\r\n * @returns A reference to the created content.\r\n */\r\n public show(options: ComponentLoaderOptions = {}): ComponentRef<T> | undefined {\r\n if (this.componentRef) {\r\n throw Error('Component is already shown');\r\n }\r\n if (!this.componentFactory) {\r\n throw Error('You must attach a component');\r\n }\r\n this.onBeforeShow.next();\r\n\r\n if (options.content) {\r\n this.contentRef = this.getContentRef(options.content, options.context, options.initialState);\r\n }\r\n this.createComponentAndAttachToView(options);\r\n this.appendContentToContainer();\r\n this.markComponentsForCheck();\r\n\r\n this.onShown.next(options.id);\r\n\r\n return this.componentRef;\r\n }\r\n\r\n /**\r\n * Removes attached component from dom.\r\n * @remarks\r\n * Also triggers the {@link ComponentLoader.onBeforeHide} and {@link ComponentLoader.onHidden} events.\r\n *\r\n * @param id - If provided it is returned through the {@link ComponentLoader.onHidden}.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public hide(id?: number | string, result?: any): ComponentLoader<T> {\r\n if (!this.componentRef) {\r\n throw Error('No attached component found to hide');\r\n }\r\n\r\n this.onBeforeHide.next(this.componentRef.instance);\r\n\r\n const componentEl = this.componentRef.location.nativeElement;\r\n componentEl.parentNode.removeChild(componentEl);\r\n if (this.contentRef?.componentRef) {\r\n this.contentRef.componentRef.destroy();\r\n }\r\n if (this.vcr && this.contentRef?.viewRef) {\r\n this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));\r\n }\r\n if (this.contentRef?.viewRef) {\r\n this.contentRef.viewRef.destroy();\r\n }\r\n this.contentRef = void 0;\r\n this.componentRef = void 0;\r\n\r\n this.onHidden.next(id ? { id, result } : null);\r\n\r\n return this;\r\n }\r\n\r\n getInnerComponent(): ComponentRef<T> | undefined {\r\n return this.innerComponent;\r\n }\r\n\r\n private markComponentsForCheck() {\r\n if (this.contentRef?.componentRef) {\r\n this.innerComponent = this.contentRef.componentRef.instance;\r\n this.contentRef.componentRef.changeDetectorRef.markForCheck();\r\n this.contentRef.componentRef.changeDetectorRef.detectChanges();\r\n }\r\n this.componentRef!.changeDetectorRef.markForCheck();\r\n this.componentRef!.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private createComponentAndAttachToView(options: ComponentLoaderOptions) {\r\n const injector = Injector.create({\r\n providers: this.providers,\r\n parent: this.injector,\r\n });\r\n this.componentRef = this.componentFactory!.create(injector, this.contentRef?.nodes);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.instance = this.componentRef.instance;\r\n Object.assign(this.componentRef.instance, options);\r\n }\r\n\r\n private appendContentToContainer() {\r\n if (this.container instanceof ElementRef) {\r\n this.container.nativeElement.appendChild(this.componentRef?.location.nativeElement);\r\n }\r\n if (typeof this.container === 'string' && typeof document !== 'undefined') {\r\n const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);\r\n if (!selectedElement) {\r\n return;\r\n }\r\n selectedElement.appendChild(this.componentRef?.location.nativeElement);\r\n }\r\n }\r\n\r\n private getContentRef(content?: string | TemplateRef<any>, context?: any, initialState?: any): ContentRef {\r\n //TemplateRef case\r\n if (content instanceof TemplateRef) {\r\n if (this.vcr) {\r\n const viewRef = this.vcr.createEmbeddedView<TemplateRef<T>>(content, context);\r\n viewRef.markForCheck();\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n const viewRef = content.createEmbeddedView({});\r\n this.applicationRef.attachView(viewRef);\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n\r\n //Component case\r\n if (typeof content === 'function') {\r\n const contentCf = this.cfr.resolveComponentFactory(content);\r\n const injector = Injector.create({\r\n providers: this.providers,\r\n parent: this.injector,\r\n });\r\n const componentRef = contentCf.create(injector);\r\n Object.assign(componentRef.instance, initialState);\r\n this.applicationRef.attachView(componentRef.hostView);\r\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\r\n }\r\n\r\n throw Error('Unsupported content type');\r\n }\r\n}\r\n","import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, ViewContainerRef } from '@angular/core';\r\nimport { ComponentLoader } from './component-loader.class';\r\n\r\n/**\r\n * Use to create instances of {@link ComponentLoader}.\r\n *\r\n * @public\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class ComponentLoaderFactory {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private applicationRef: ApplicationRef\r\n ) {}\r\n\r\n /**\r\n * Returns a new instance of {@link ComponentLoader}\r\n * @param viewContainerRef - The view container the dynamic content will be attached to.\r\n * @returns A new instance of {@link ComponentLoader}.\r\n *\r\n * @public\r\n */\r\n createLoader<T>(viewContainerRef?: ViewContainerRef): ComponentLoader<T> {\r\n return new ComponentLoader<T>(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);\r\n }\r\n}\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { User } from 'oidc-client';\r\nimport { Subscription } from 'rxjs';\r\nimport { APP_LINKS } from '../../tokens';\r\n\r\n@Component({\r\n selector: 'lib-user-profile-menu',\r\n templateUrl: './user-profile-menu.component.html'\r\n})\r\nexport class UserProfileMenuComponent implements OnInit {\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-user-name') showUserName: boolean | undefined = false;\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 public userMenuExpanded = false;\r\n\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(APP_LINKS) public links: any) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.loadUser().subscribe((user) => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n console.error(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\r\n // console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\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.signinRedirect();\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)}`.toUpperCase();\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}\r\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <div class=\"inline-flex\">\r\n <!-- Username -->\r\n <div [ngClass]=\"{'shell-header-profile': showUserName}\">\r\n <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n </div>\r\n\r\n <div [class.ml-2]=\"showUserName\">\r\n <button type=\"button\" \r\n *ngIf=\"user\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin($event)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"userMenuExpanded ?\r\n 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\r\n :\r\n 'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\"\r\n role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [link-class]=\"'nav-link-profile'\"\r\n [link-active-class]=\"'nav-link-profile-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n\r\n</div>\r\n\r\n","import { IAppNotifications, NavLink } from './../../types';\r\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, of, Subscription } from 'rxjs';\r\nimport { APP_LINKS, APP_NOTIFICATIONS } from '../../tokens';\r\n\r\n@Component({\r\n selector: 'lib-notifications-indicator',\r\n templateUrl: './notifications-indicator.component.html'\r\n})\r\nexport class NotificationsIndicatorComponent implements OnInit, OnDestroy {\r\n\r\n public menuExpanded = false;\r\n public unreadCount = 0;\r\n public items: any[] = [];\r\n public allNotificationsLink?: NavLink;\r\n private notificationsSub$: Subscription | undefined;\r\n private inboxAction: any | undefined = undefined;\r\n public newArrival = false;\r\n constructor(@Inject(APP_NOTIFICATIONS) public notifications?: IAppNotifications, @Inject(APP_LINKS) public links?: any) { }\r\n\r\n ngOnDestroy(): void {\r\n if (this.notificationsSub$) {\r\n this.notificationsSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.links && this.links['notifications']) {\r\n (this.links['notifications'] as Observable<NavLink>).subscribe(notificationsLink => {\r\n this.allNotificationsLink = notificationsLink;\r\n });\r\n }\r\n if(this.notifications) {\r\n this.notificationsSub$ = this.notifications?.messages.subscribe(result => {\r\n if (result.items){\r\n this.newArrival = true;\r\n this.unreadCount = result.count;\r\n this.items = result.items;\r\n setTimeout( () => { this.newArrival = false; }, 1000 );\r\n }\r\n });\r\n }\r\n }\r\n\r\n public doInboxAction(): void {\r\n if (this.notifications?.inboxAction) {\r\n this.notifications.inboxAction();\r\n } else {\r\n this.menuExpanded = !this.menuExpanded;\r\n }\r\n this.unreadCount = 0;\r\n }\r\n\r\n public removeItem(index:number){\r\n this.items.splice(index,1);\r\n }\r\n\r\n // this.notificationsSub$ = this.links.notifications?.pipe(map(result => {\r\n // this.allItemsLink = result.allNotifications;\r\n // this.items = result.items;\r\n // this.unreadCount = result.count;\r\n // }));\r\n\r\n // [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;\r\n // this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;\r\n // this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;\r\n // this.getUnreadNotificationsCount();\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.menuExpanded = false;\r\n }\r\n\r\n}\r\n","<div class=\"relative\"\r\n(clickOutside)=\"onClickOutside($event)\">\r\n <!-- Notifications Button -->\r\n <button type=\"button\"\r\n (click)=\"doInboxAction()\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">\r\n <i class=\"ms-Icon hover:text-blue-400\"\r\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\r\n [class.text-sky-400]=\"unreadCount > 0\"\r\n [class.animate-notification]=\"newArrival\"\r\n [class.ms-Icon--Message]=\"unreadCount === 0\">\r\n </i>\r\n </span>\r\n <span\r\n *ngIf=\"unreadCount > 0\"\r\n [class.animate-pulse]=\"newArrival\"\r\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\r\n {{ unreadCount }}\r\n </span>\r\n </span>\r\n </button>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\r\n </ng-container>\r\n <ng-template #messagesDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"items; else loading\">\r\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let message of items; let i = index\">\r\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\r\n <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a\r\n [routerLink]=\"message.path\"\r\n (click)=\"removeItem(i)\"\r\n class=\"notifications-nav-link grid\"\r\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\r\n >\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ message.data.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"allNotificationsLink!.path\">\r\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n","import { MenuOption } from './../../types';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { APP_LANGUAGES } from '../../tokens';\r\nimport { IAppLanguagesService } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-language-selection',\r\n templateUrl: './language-selection.component.html'\r\n})\r\nexport class LanguageSelectionComponent implements OnInit {\r\n\r\n public menuExpanded = false;\r\n constructor(@Inject(APP_LANGUAGES) public langsService: IAppLanguagesService | undefined) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public selectLang(option: MenuOption): void {\r\n if (this.langsService?.setSelected) {\r\n this.langsService.setSelected(option.value);\r\n }\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.menuExpanded = false;\r\n }\r\n}\r\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"text-blue-300 hover:text-blue-400\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <span>{{langsService?.selected || langsService?.default}}</span>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none':'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ShellLayoutType } from './../../../types';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\r\nimport { User } from 'oidc-client';\r\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\r\nimport { filter, share } from 'rxjs/operators';\r\nimport { NavLink } from '../../../types';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { BehaviorSubject, isObservable, observable, Observable, of } 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 // tslint:disable-next-line:no-input-rename\r\n @Input('show-userName') showUserNameOnHeader: boolean | undefined = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-alerts') showAlerts: boolean | undefined = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-langs') showLangs: boolean | undefined = false;\r\n @Input() border = true;\r\n public sectionLinks: Observable<NavLink[]> = of([]);\r\n public mobileMenuExpanded = false;\r\n public userMenuExpanded = false;\r\n protected routeSubject: Observable<Event>;\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 public activeFragment: any | null = null;\r\n\r\n constructor(\r\n @Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\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 }\r\n\r\n ngOnInit(): void {\r\n this.activeFragment = this.route.fragment.pipe(share());\r\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<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().subscribe((user) => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n console.error(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\r\n // console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\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 // 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.signinRedirect();\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)}`.toUpperCase();\r\n }\r\n }\r\n\r\n}\r\n\r\n","<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-logo-container\">\r\n <div>\r\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <div class=\"shell-header-link-container-inner\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link'\"\r\n [link-active-class]=\"'nav-link-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profileActions\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'shell-header-menu-rounded-button'\"\r\n [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\r\n </lib-nav-links-list>\r\n\r\n\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n\r\n <div *ngIf=\"!user\">\r\n <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>Σύνδεση\r\n </a>\r\n </div>\r\n\r\n <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <!--\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n -->\r\n </div>\r\n </div>\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</nav>\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","<footer class=\"shell-footer-component-container\">\r\n <div class=\"shell-footer-paddings\">\r\n <div class=\"shell-footer-component-container-inner\">\r\n <div class=\"shell-footer-sections-container\">\r\n <div class=\"shell-footer-section\">\r\n <img class=\"shell-footer-logo-h\" src=\"assets/images/branding/indice.png\" alt=\"INDICE logo\" />\r\n <nav class=\"mt-4\">\r\n <ul class=\"space-y-2\">\r\n <ng-container *ngFor=\"let link of links.brand | async\">\r\n <li>\r\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"shell-footer-section-links\">\r\n <h5 class=\"shell-footer-section-title\">Legal</h5>\r\n <nav class=\"mt-4\">\r\n <ul class=\"grid lg:grid-cols-2\">\r\n <ng-container *ngFor=\"let link of links.legal | async\">\r\n <li class=\"mb-2\">\r\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"shell-footer-section-links\">\r\n <h5 class=\"shell-footer-section-title\">Follow us</h5>\r\n <nav class=\"mt-4\">\r\n <ul class=\"grid lg:grid-cols-2\">\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path d=\"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84\"/>\r\n </svg>\r\n <span> Twitter </span>\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fill-rule=\"evenodd\" d=\"M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span> Instagram </span>\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\" >\r\n <path fill-rule=\"evenodd\" d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span> Facebook </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"shell-footer-copyright\">\r\n <!--<nav class=\"flex flex-wrap justify-center space-x-6\">\r\n <a href=\"#\" class=\"font-normal text-sm hover:text-gray-100 mb-2\">Cookie settings</a>\r\n </nav>-->\r\n <p class=\"text-sm text-center sm:text-right\">\r\n © 2021 INDICE. All rights reserved.\r\n </p>\r\n </div>\r\n </div>\r\n</footer>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IShellConfig } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-stacked-layout',\r\n templateUrl: './shell-stacked-layout.component.html'\r\n})\r\nexport class ShellStackedLayoutComponent implements OnInit {\r\n @Input() config: IShellConfig | undefined;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"shell-header-container\" *ngIf=\"config?.showHeader\">\r\n <div [class]=\"config?.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n <ng-container *ngIf=\"config?.customHeaderComponent\">\r\n <div appDynamicComponentHost =\"Header\"></div>\r\n </ng-container>\r\n <lib-shell-header *ngIf=\"!config?.customHeaderComponent\" [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\" [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-header>\r\n </div>\r\n</div>\r\n\r\n<main [class]=\"config?.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"config?.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet *ngIf=\"(!config || config.layout === 'Stacked' || !config.layout)\"></router-outlet>\r\n </div>\r\n</main>\r\n\r\n<div class=\"shell-footer-container\" *ngIf=\"config?.showFooter\">\r\n <div [class]=\"config?.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"config?.customFooterComponent\">\r\n <div appDynamicComponentHost hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!config?.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n</div>","import { IShellConfig, NavLink } from './../../../types';\r\nimport { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { of } from 'rxjs';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { share } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar',\r\n templateUrl: './shell-sidebar.component.html'\r\n})\r\nexport class ShellSidebarComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('section-links') sectionLinksPath = 'main';\r\n public sectionLinks: Observable<NavLink[]> = of([]);\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('config') shellConfig: IShellConfig | undefined = undefined;\r\n public activeFragment: any | null = null;\r\n constructor(@Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(APP_LINKS) public links: any) { }\r\n\r\n ngOnInit(): void {\r\n this.activeFragment = this.route.fragment.pipe(share());\r\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\r\n }\r\n\r\n}\r\n","<!-- Sidebar component, swap this element with another sidebar if you like -->\r\n<div class=\"shell-sidebar-component-container\">\r\n <div class=\"shell-sidebar-component-links-container sidebar\">\r\n <lib-nav-links-list\r\n [show-icons]=\"true\"\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'sidebar nav-link group'\"\r\n [link-active-class]=\"'sidebar nav-link-active group'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</div>\r\n","\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { Component, Inject, Input } from '@angular/core';\r\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { ShellHeaderComponent } from '../shell-header/shell-header.component';\r\nimport { ShellLayoutType } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar-header',\r\n templateUrl: './shell-sidebar-header.component.html'\r\n})\r\nexport class ShellSidebarHeaderComponent extends ShellHeaderComponent {\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n super(authService, router, route, config, links);\r\n }\r\n\r\n}\r\n","<div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IShellConfig } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar-layout',\r\n templateUrl: './shell-sidebar-layout.component.html'\r\n})\r\nexport class ShellSidebarLayoutComponent implements OnInit {\r\n \r\n @Input() config: IShellConfig | undefined;\r\n public showMobileSidebar = true;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public toggleMobileSidebar(): void {\r\n this.showMobileSidebar = !this.showMobileSidebar;\r\n }\r\n\r\n}\r\n","<div>\r\n <!-- Off-canvas menu for mobile, show/hide based on off-canvas menu state. -->\r\n <div class=\"sidebar-off-canvas-menu-container\" role=\"dialog\" aria-modal=\"true\">\r\n <!-- Off-canvas menu backdrop, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-menu-backdrop\" \r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"showMobileSidebar\">\r\n </div>\r\n \r\n <div class=\"sidebar-off-canvas-menu-container-inner\" \r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"showMobileSidebar\" \r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"!showMobileSidebar\">\r\n <!-- Off-canvas menu, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <!--Close button, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\" class=\"sidebar-off-canvas-toggle-button\" (click)=\"showMobileSidebar = !showMobileSidebar\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"h-6 w-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n \r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n \r\n </div>\r\n \r\n <div class=\"sidebar-dummy-element\" aria-hidden=\"true\">\r\n <!-- Dummy element to force sidebar to shrink to fit close icon -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- Static sidebar for desktop -->\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n \r\n <div class=\"sidebar-static-menu-container\" \r\n [class.sidebar-static-menu-container-active]=\"showMobileSidebar\" \r\n [class.sidebar-static-menu-container-not-active]=\"!showMobileSidebar\">\r\n <!-- Sidebar component, swap this element with another sidebar if you like -->\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"sidebar-static-menu-wrapper\" [class.sidebar-static-menu-wrapper-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-toggle-button-container\">\r\n <button type=\"button\" class=\"sidebar-static-menu-toggle-button\" (click)=\"showMobileSidebar = !showMobileSidebar\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <!-- Heroicon name: outline/menu-alt-2 -->\r\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n \r\n <!-- sidebar-static-menu-header-container -->\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\" *ngIf=\"!showMobileSidebar\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header \r\n [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\" \r\n [show-langs]=\"config?.showLangsOnHeader\"></lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <div class=\"shell-content-container-inner\">\r\n <!-- YOU NEED TO ADD/REMOVE THIS FROM DOM DEPENDING ON THE SELECTED LAYOUT ESPECIALLY IN THE CASE OF LAYOUT SWITCHING!!! -->\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n </div>","import { SHELL_CONFIG } from './../../../tokens';\r\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\r\nimport { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, QueryList, AfterViewChecked } 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, timer } from 'rxjs';\r\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\r\nimport { ComponentLoaderFactory } from '../../../services/component-loader/component-loader.factory';\r\n\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, AfterViewChecked {\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 public loaded = false;\r\n public hideSidebar = false;\r\n constructor(\r\n @Inject(DOCUMENT) private document: any,\r\n private router: Router,\r\n private location: Location,\r\n @Inject(SHELL_CONFIG) private config: IShellConfig | undefined,\r\n private componentLoaderFactory: ComponentLoaderFactory\r\n ) {\r\n if (!config) {\r\n config = new DefaultShellConfig();\r\n }\r\n this.activeConfig = config;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n setTimeout(() => { this.loaded = true; }, 200);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routerSub$ = this.router.events.pipe(filter((event) => event instanceof ActivationStart)).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 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 const clf = this.componentLoaderFactory.createLoader(viewContainerRef);\r\n const headerCompRef = clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();\r\n }\r\n }\r\n }\r\n}\r\n","<div [class.none]=\"!loaded\" [class.block]=\"loaded\">\r\n\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\" class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\" class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"></lib-shell-sidebar-layout>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>","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 // 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 if (this.searchInput$?.nativeElement){\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 }\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 this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n }\r\n\r\n public handleClear(event: any): void {\r\n console.log('handle clear!!!');\r\n event.stopPropagation();\r\n this.onSearch.emit(event.target?.value);\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","<header *ngIf=\"header\" class=\"view-layout-paddings\">\r\n\r\n <div class=\"view-layout-title-container\">\r\n\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex items-center justify-end\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"ml-1 disabled:opacity-50 btn-view-header\" (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\" class=\"selected-view-indicator\"></span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\" #search class=\"search-input\" [placeholder]=\"searchPlaceholder\"\r\n type=\"search\" name=\"search\" (input)=\"searchActionType(search.value)\" (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\" href=\"#\" class=\"btn-view-header rounded-l-none\" [title]=\"action.tooltip\" (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\" href=\"#\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n\r\n<!-- component -->\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>\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 this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\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","<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\">\r\n <main class=\"model-view-container\">\r\n <div class=\"model-view-container-inner\">\r\n <aside class=\"model-view-aside\">\r\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\r\n <div class=\"model-view-aside-header-container\">\r\n <div class=\"model-view-aside-header-container-inner\">\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container\">\r\n <nav class=\"model-view-menu-nav\">\r\n <div class=\"model-view-menu-item\">\r\n <ng-container *ngFor=\"let section of primary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"model-view-menu-item-far\">\r\n <ng-container *ngFor=\"let section of secondary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </nav>\r\n </div>\r\n </div>\r\n </section>\r\n </aside>\r\n <div class=\"model-view-details-container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </main>\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 // tslint:disable-next-line:no-input-rename\r\n @Input('force-location-back') forceLocationBack = false;\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 if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {\r\n this.router.navigateByUrl(this.router.url.split('/(')[0]);\r\n } else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {\r\n this.router.navigateByUrl(this.router.url.split('(')[0]);\r\n } else {\r\n this.location.back();\r\n }\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","<div class=\"side-view-layout-size-box\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\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\r\n constructor(private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.searchInput$?.nativeElement){\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 }\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.onComplete.emit(true);\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 this.onSearch.emit(this.searchInput$?.nativeElement.value);\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","<div class=\"form-layout-container\">\r\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">\r\n {{ title }}\r\n </h3>\r\n <p class=\"form-subtitle\">\r\n {{ subTitle }}\r\n </p>\r\n </div>\r\n <div class=\"form-header-actions\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"form-search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\">\r\n </div>\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"btn-form-view-header-search\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"form-content-container\">\r\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\r\n <router-outlet name=\"formRightPane\"\r\n (activate)=\"formPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n</div>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n selector: 'lib-auth-callback',\r\n templateUrl: './auth-callback.component.html'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n public status = 'παρακαλώ περιμένετε...';\r\n\r\n public ngOnInit(): void {\r\n this.authService.signinRedirectCallback().subscribe((user) => {\r\n if (user) {\r\n this.router.navigateByUrl(user.state?.url || '/');\r\n }\r\n });\r\n }\r\n}\r\n","<lib-view-layout [title]=\"status\" [busy]=\"true\"></lib-view-layout>","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n selector: 'lib-auth-renew',\r\n template: ''\r\n})\r\nexport class AuthRenewComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n public ngOnInit(): void {\r\n this.authService.signinSilentCallback().subscribe(user => {\r\n if (!user) {\r\n this.router.navigate(['/unauthorized']);\r\n }\r\n });\r\n }\r\n}\r\n","import { AuthService } from '@indice/ng-auth';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\n\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 constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n public status = 'working on it, please give me a sec...';\r\n public finished = false;\r\n\r\n public ngOnInit(): void {\r\n this.authService.removeUser().subscribe(() => {\r\n this.status = 'Thank you!';\r\n this.finished = true;\r\n });\r\n }\r\n}\r\n","<lib-view-layout title=\"Έχετε αποσυνδεθεί με επιτυχία!\"></lib-view-layout>","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","<lib-view-layout [show-header]=\"false\" title=\"500 - παρουσιάστηκε σφάλμα!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">500</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">σφάλμα, κατι δεν πήγε καλά...!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\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","<lib-view-layout [show-header]=\"false\" title=\"404 - δεν βρέθηκε!\">\r\n <div class=\"text-gray-900\">\r\n <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\r\n <span class=\"block\">404</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-800\">δεν βρέθηκε η σελίδα που ζητήσατε!</p>\r\n <a href=\"/\"\r\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-unauthorized',\r\n templateUrl: './unauthorized.component.html'\r\n})\r\nexport class UnauthorizedComponent implements OnInit {\r\n constructor() { }\r\n\r\n public ngOnInit(): void { }\r\n}\r\n","<lib-view-layout [show-header]=\"false\" title=\"401 - δεν επιτρέπεται η πρόσβαση!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">401</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">δεν έχετε τα κατάλληλα δικαιώματα πρόσβασης!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n </lib-view-layout>\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 { FilterClause, QueryParameters, SearchOption } from './../controls/advanced-search/models';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, 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 filters: FilterClause[] = [];\r\n public searchOptions: SearchOption[] = [];\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 public getViewActions(): Observable<ViewAction[]> {\r\n const 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 actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\r\n }\r\n return of(actions);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getViewActions().subscribe(actions => {\r\n this.actions = actions || [];\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') !== null && 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('dir') !== this.sortdir) {\r\n this.sortdir = params.get('dir');\r\n }\r\n // initialize filters that may reside in the query string\r\n this.filters = this.getFiltersFrom(params);\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 /**\r\n * Get filters from a querystring\r\n * @param queryParamMap\r\n * @returns filters found from a paramMap\r\n */\r\n private getFiltersFrom(queryParamMap: ParamMap): FilterClause[] {\r\n let filterResult: FilterClause[] = [];\r\n if (queryParamMap.has(QueryParameters.FILTER) && queryParamMap.get(QueryParameters.FILTER)!.length > 0) {\r\n let filterValue = queryParamMap.get(QueryParameters.FILTER);\r\n const filterValues = filterValue?.split(\",\"); // we may have multiple filters in filter query param\r\n if (filterValues && filterValues.length > 0) {\r\n // create the filterClauses derived from the query params\r\n for (var index in filterValues) {\r\n let filterClause = FilterClause.parse(filterValues[index]);\r\n const parsed = new FilterClause(filterClause!.member, filterClause!.value, filterClause!.operator, filterClause!.dataType, this.searchOptions);\r\n if (parsed !== undefined) {\r\n filterResult.push(parsed);\r\n }\r\n }\r\n }\r\n }\r\n return filterResult;\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 filter: this.filterClausesToString(this.filters)\r\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\r\n });\r\n }\r\n\r\n private filterClausesToString(filters: FilterClause[] | undefined) {\r\n return filters?.map((f: FilterClause) => {\r\n if (f.dataType === 'datetime') {\r\n f.value = (new Date(f.value)).toISOString();\r\n }\r\n return f.toString();\r\n }).join(',');\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 advancedSearchChanged(filters: FilterClause[]): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.filters = filters;\r\n this.setRouteParams();\r\n this.load();\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","export const cssClassNames = {\r\n backdrop: 'modal-backdrop',\r\n show: 'show',\r\n fade: 'fade',\r\n\tmodalOpen: 'modal-open'\r\n};\r\n\r\nexport const animationTime = {\r\n backdrop: 150,\r\n modal: 300,\r\n};\r\n","import { Component, ElementRef, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { ComponentLoader } from '../component-loader/component-loader.class';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\n\r\n/**\r\n * Background layer for modals.\r\n * Override class name to theme it.\r\n * @see {@link cssClassNames}\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'lib-modal-backdrop',\r\n encapsulation: ViewEncapsulation.None,\r\n template: '',\r\n host: {\r\n class: cssClassNames.backdrop,\r\n },\r\n})\r\nexport class ModalBackdropComponent implements OnInit {\r\n private animationsEnabled = false;\r\n private backdropLoader: ComponentLoader<ModalBackdropComponent> | undefined;\r\n constructor(private element: ElementRef, private renderer: Renderer2) {}\r\n\r\n ngOnInit(): void {\r\n if (this.animationsEnabled) {\r\n this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);\r\n this.reflow(this.element.nativeElement);\r\n }\r\n this.renderer.addClass(this.element.nativeElement, cssClassNames.show);\r\n }\r\n\r\n public hide() {\r\n this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);\r\n setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);\r\n }\r\n\r\n reflow(element: any): void {\r\n ((bs: any): void => bs)(element.offsetHeight);\r\n }\r\n}\r\n","import { Injectable, InjectionToken, StaticProvider } from '@angular/core';\r\n\r\n/**\r\n * Modals option can be passed to a specific modal from {@link ModalService.show} or\r\n * set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.\r\n * @remarks\r\n * Modal specific options are merged with global options.\r\n * @see {@link modalConfigDefaults} for defaults.\r\n * @public\r\n */\r\n@Injectable()\r\nexport class ModalOptions<T = Record<string, unknown>> {\r\n /**\r\n * Id for opened modal. If not set a random one is generated.\r\n */\r\n id?: number | string;\r\n /**\r\n * If static is set the modal will not close when clicking outside of modal.\r\n * @remarks\r\n * Keyboard event (escape key) stills applies. If you must get a result then also set keyboard to false.\r\n */\r\n backdrop?: boolean | 'static';\r\n /**\r\n * Closes the modal when escape key is pressed.\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Shows the modal when initialized.\r\n */\r\n show?: boolean;\r\n /**\r\n * Ignore the backdrop click. Pretty much the same as backdrop static.\r\n */\r\n ignoreBackdropClick?: boolean;\r\n /**\r\n * Css class for opened modal.\r\n */\r\n class?: string;\r\n /**\r\n * Toggle animation.\r\n */\r\n animated?: boolean;\r\n /**\r\n * Modal initial data.\r\n * @remarks\r\n * This data must be known properties of content component.\r\n */\r\n initialState?: Partial<T>;\r\n /**\r\n * Function to intercept the closure.\r\n * @remarks\r\n * You can use to catch the close event and even prevent it from closing.\r\n */\r\n closeInterceptor?: CloseInterceptorFn;\r\n /**\r\n * Modal static providers.\r\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\r\n */\r\n providers?: StaticProvider[];\r\n /**\r\n * aria-labelledby attribute value to set on the modal window.\r\n */\r\n ariaLabelledBy?: string;\r\n /**\r\n * aria-describedby attribute value to set on the modal window.\r\n */\r\n ariaDescribedby?: string;\r\n}\r\n\r\n/**\r\n * Default option values.\r\n */\r\nexport const modalConfigDefaults: ModalOptions = {\r\n backdrop: true,\r\n keyboard: true,\r\n show: false,\r\n ignoreBackdropClick: false,\r\n class: '',\r\n animated: true,\r\n initialState: {},\r\n closeInterceptor: void 0,\r\n};\r\n\r\n/**\r\n * Use this injection token to set global options.\r\n */\r\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> = new InjectionToken<ModalOptions>('override-default-config');\r\n\r\n/**\r\n * Close interceptor promise.\r\n */\r\nexport type CloseInterceptorFn = () => Promise<void>;\r\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer2 } from '@angular/core';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\nimport { ModalOptions } from './modal-options.class';\r\nimport { ModalService } from './modal-service';\r\n\r\n/**\r\n * Modal container component.\r\n * @remarks\r\n * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.\r\n * You can override css classes to theme it {@link cssClassNames}\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'lib-modal-container',\r\n template: `\r\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\" focusTrap>\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n host: {\r\n class: 'modal',\r\n role: 'dialog',\r\n tabindex: '-1',\r\n '[attr.aria-modal]': 'true',\r\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\r\n '[attr.aria-describedby]': 'config.ariaDescribedby',\r\n },\r\n})\r\nexport class ModalContainerComponent implements OnInit, OnDestroy {\r\n public level?: number;\r\n public config: ModalOptions;\r\n public modalService?: ModalService;\r\n private isShown = false;\r\n private animationsEnabled = false;\r\n private isModalHiding = false;\r\n private clickStartedInContent = false;\r\n constructor(options: ModalOptions, protected _element: ElementRef, private renderer: Renderer2) {\r\n this.config = Object.assign({}, options);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.animationsEnabled) {\r\n this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);\r\n }\r\n this.renderer.setStyle(this._element.nativeElement, 'display', 'block');\r\n setTimeout(\r\n () => {\r\n this.isShown = true;\r\n this.renderer.addClass(this._element.nativeElement, cssClassNames.show);\r\n },\r\n this.animationsEnabled ? animationTime.backdrop : 0\r\n );\r\n if (this._element.nativeElement) {\r\n this._element.nativeElement.focus();\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onClickStarted(event: MouseEvent): void {\r\n this.clickStartedInContent = event.target !== this._element.nativeElement;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClickStop(event: MouseEvent): void {\r\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\r\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\r\n this.clickStartedInContent = false;\r\n return;\r\n }\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:popstate')\r\n onPopState(): void {\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:keydown.esc', ['$event'])\r\n onEsc(event: KeyboardEvent): void {\r\n if (!this.isShown) {\r\n return;\r\n }\r\n if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {\r\n event.preventDefault();\r\n }\r\n if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {\r\n this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.isShown) {\r\n this._hide();\r\n }\r\n }\r\n\r\n hide(result?: any): void {\r\n if (this.isModalHiding || !this.isShown) {\r\n return;\r\n }\r\n if (this.config.closeInterceptor) {\r\n this.config.closeInterceptor().then(\r\n () => this._hide(),\r\n () => undefined\r\n );\r\n return;\r\n }\r\n this._hide(result);\r\n }\r\n\r\n private _hide(result?: any): void {\r\n this.isModalHiding = true;\r\n this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);\r\n setTimeout(\r\n () => {\r\n this.isShown = false;\r\n this.modalService?.hide(this.config.id, result);\r\n this.isModalHiding = false;\r\n },\r\n this.animationsEnabled ? animationTime.modal : 0\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n/**\r\n * Modal class.\r\n * @remarks\r\n * This is returned from {@link ModalService.show}.\r\n * @public\r\n */\r\n@Injectable()\r\nexport class Modal<T = any> {\r\n /**\r\n * Event that is fired when the modal behind the ref starts hiding.\r\n * @returns\r\n * Modal component instance.\r\n */\r\n onBeforeHide?: Subject<unknown>;\r\n /**\r\n * Event that is fired when the modal behind the ref finishes hiding.\r\n * @returns\r\n * An object containing the id of the closed modal and result.\r\n */\r\n onHidden?: Subject<unknown>;\r\n /**\r\n * Id of this modal.\r\n */\r\n id?: number | string;\r\n\r\n /**\r\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef.\r\n * @remarks\r\n * You can use this to do nasty stuff with opened modal instance.\r\n */\r\n content?: T;\r\n\r\n /**\r\n * Hides the modal\r\n * @param result - A result to the observers.\r\n */\r\n hide: (result?: any) => void = () => void 0;\r\n /**\r\n * Sets new class to modal window.\r\n */\r\n setClass: (newClass: string) => void = () => void 0;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { ComponentRef, Inject, Injectable, OnDestroy, Optional, Renderer2, RendererFactory2, TemplateRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentLoader } from '../component-loader/component-loader.class';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\nimport { ModalBackdropComponent } from './modal-backdrop-component';\r\nimport { ModalContainerComponent } from './modal-container-component';\r\nimport { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';\r\nimport { Modal } from './modal.class';\r\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\r\n\r\n/**\r\n * A service for using modals.\r\n *\r\n * @public\r\n */\r\n@Injectable()\r\nexport class ModalService implements OnDestroy {\r\n private onBeforeShow = new Subject();\r\n private onShown = new Subject();\r\n private onBeforeHide = new Subject();\r\n private onHidden = new Subject();\r\n\r\n private backdropRef?: ComponentRef<ModalBackdropComponent>;\r\n private defaultConfig: ModalOptions;\r\n private backdropLoader: ComponentLoader<ModalBackdropComponent>;\r\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\r\n private renderer: Renderer2;\r\n private modalsCount = 0;\r\n private initialPadding = '0px';\r\n constructor(\r\n private clf: ComponentLoaderFactory,\r\n rendererFactory: RendererFactory2,\r\n @Inject(DOCUMENT) private document: any,\r\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions\r\n ) {\r\n this.backdropLoader = this.clf.createLoader<ModalBackdropComponent>();\r\n this.defaultConfig = { ...modalConfigDefaults, ...modalDefaultOption };\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.loaders.forEach((loader) => loader.instance?.hide());\r\n }\r\n\r\n /**\r\n * Opens a new modal.\r\n *\r\n * @param content - `Component` or `TemplateRef` type.\r\n * @param config - Specific {@link ModalOptions | options} for this modal. Global and specific options are merged.\r\n * @returns An instance of {@link Modal}\r\n */\r\n public show<T>(content: string | TemplateRef<any> | { new (...args: any[]): T }, config?: ModalOptions<T>) {\r\n this.modalsCount++;\r\n const combinedConfig = { ...this.defaultConfig, ...config };\r\n combinedConfig.id = config?.id || new Date().getUTCMilliseconds();\r\n this.createLoaders();\r\n\r\n this.addBodyPadding();\r\n if (this.modalsCount === 1) {\r\n this.renderer.addClass(this.document.body, cssClassNames.modalOpen);\r\n }\r\n this.showBackdrop(combinedConfig);\r\n return this.showModal<T>(content, combinedConfig);\r\n }\r\n\r\n /**\r\n * Hide an active modal.\r\n * @param id - Id of modal to hide. If not provided all active modals are hidden.\r\n * @param result - A result to be sent to observers.\r\n */\r\n public hide(id?: number | string, result?: any) {\r\n if (this.modalsCount === 1 || id == null) {\r\n this.hideBackdrop();\r\n this.revertScrollbar();\r\n this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);\r\n }\r\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\r\n setTimeout(\r\n () => {\r\n this.hideModal(id, result);\r\n this.removeLoaders(id);\r\n },\r\n //Bug\r\n //Should use combined config but for the moment is not possible to pass it this parameter.\r\n //If config is an instance variable then every newly opened modal will override the config\r\n //resulting in opened modals to get a new configuration\r\n this.defaultConfig.animated ? animationTime.backdrop : 0\r\n );\r\n }\r\n\r\n public getActiveModal(): ModalContainerComponent {\r\n return this.loaders[this.modalsCount - 1].instance as ModalContainerComponent;\r\n }\r\n\r\n private showModal<T>(content: any, combinedConfig: ModalOptions): Modal<T> {\r\n const modalLoader = this.loaders[this.loaders.length - 1];\r\n if (combinedConfig && combinedConfig.providers) {\r\n combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));\r\n }\r\n\r\n const modal = new Modal<any>();\r\n const modalContainerRef = modalLoader\r\n .provide({ provide: ModalOptions, useValue: combinedConfig })\r\n .provide({ provide: Modal, useValue: modal })\r\n .attach(ModalContainerComponent)\r\n .to('body');\r\n\r\n modal.setClass = (newClass: string) => {\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.config.class = newClass;\r\n }\r\n };\r\n\r\n modal.onBeforeHide = new Subject();\r\n modal.onHidden = new Subject();\r\n this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);\r\n this.copyEvent(modalLoader.onHidden, modal.onHidden);\r\n modalContainerRef.show({\r\n content,\r\n animationsEnabled: combinedConfig.animated,\r\n initialState: combinedConfig.initialState,\r\n modalService: this,\r\n id: combinedConfig.id,\r\n });\r\n\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.level = this.modalsCount;\r\n modal.content = modalLoader.getInnerComponent();\r\n modal.id = modalContainerRef.instance.config?.id;\r\n modal.hide = (res) => modalContainerRef.instance?.hide(res);\r\n }\r\n\r\n return modal;\r\n }\r\n\r\n private hideModal(id?: number | string, result?: any): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\r\n const modalLoader = this.loaders[indexToRemove];\r\n if (modalLoader) {\r\n modalLoader.hide(id, result);\r\n }\r\n } else {\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>) => {\r\n if (loader.instance) {\r\n loader.hide(loader.instance.config.id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private showBackdrop(combinedConfig: ModalOptions): void {\r\n const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';\r\n const isBackdropInDOM = this.backdropRef != null;\r\n if (isBackdropEnabled && !isBackdropInDOM) {\r\n this.backdropLoader\r\n .attach(ModalBackdropComponent)\r\n .to('body')\r\n .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });\r\n this.backdropRef = this.backdropLoader.componentRef;\r\n }\r\n }\r\n\r\n private hideBackdrop(): void {\r\n if (!this.backdropRef) {\r\n return;\r\n }\r\n this.backdropRef.instance.hide();\r\n this.backdropRef = void 0;\r\n }\r\n\r\n private removeLoaders(id?: number | string): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\r\n if (indexToRemove >= 0) {\r\n this.loaders.splice(indexToRemove, 1);\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>, i: number) => {\r\n if (loader.instance) {\r\n loader.instance.level = i + 1;\r\n }\r\n });\r\n }\r\n } else {\r\n this.loaders.splice(0, this.loaders.length);\r\n }\r\n }\r\n\r\n private addBodyPadding() {\r\n if (this.modalsCount === 1) {\r\n const width = this.getScrollbarWidth();\r\n if (this.isScrollBarPresent(width)) {\r\n this.initialPadding = this.document.body.style.paddingRight;\r\n const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);\r\n this.document.body.style.paddingRight = `${actualPadding + width}px`;\r\n }\r\n }\r\n }\r\n\r\n private revertScrollbar() {\r\n this.document.body.style.paddingRight = this.initialPadding;\r\n }\r\n\r\n private getScrollbarWidth(): number {\r\n const measurer = this.document.createElement('div');\r\n measurer.className = 'modal-scrollbar-measure';\r\n\r\n const body = this.document.body;\r\n body.appendChild(measurer);\r\n const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\r\n body.removeChild(measurer);\r\n\r\n return width;\r\n }\r\n\r\n private isScrollBarPresent(scrollbarWidth: number) {\r\n const rect = this.document.body.getBoundingClientRect();\r\n const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);\r\n const uncertainty = 0.1 * scrollbarWidth;\r\n return bodyToViewportGap >= scrollbarWidth - uncertainty;\r\n }\r\n\r\n private createLoaders(): void {\r\n const loader = this.clf.createLoader<ModalContainerComponent>();\r\n this.copyEvent(loader.onBeforeShow, this.onBeforeShow);\r\n this.copyEvent(loader.onShown, this.onShown);\r\n this.copyEvent(loader.onBeforeHide, this.onBeforeHide);\r\n this.copyEvent(loader.onHidden, this.onHidden);\r\n this.loaders.push(loader);\r\n }\r\n\r\n private copyEvent(from: Subject<unknown>, to: Subject<unknown>) {\r\n from.subscribe((data) => {\r\n to.next(data);\r\n });\r\n }\r\n}\r\n","\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { AddressPipe } from './pipes/address.pipe';\r\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\r\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\r\nimport { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\r\nimport { ComboboxComponent } from './controls/combobox/combobox.component';\r\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\r\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\r\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\r\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\r\nimport { ErrorComponent } from './pages/http-status/error/error.component';\r\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\r\nimport { IndiceAuthModule } from '@indice/ng-auth';\r\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\r\nimport { LanguageSelectionComponent } from './controls/language-selection/language-selection.component';\r\nimport { LibStepComponent } from './controls/stepper/lib-step.component';\r\nimport { LibStepInfoDirective } from './controls/stepper/lib-step-info.directive';\r\nimport { LibStepLabelDirective } from './controls/stepper/lib-step-label.directive';\r\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\r\nimport { LibTabComponent } from './controls/tabs/lib-tab.component';\r\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\r\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\r\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\r\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\r\nimport { ListViewComponent } from './controls/list-view/list-view.component';\r\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\r\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\r\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\r\nimport { NavLinksListComponent } from './controls/nav-links-list/nav-links-list.component';\r\nimport { NotificationsIndicatorComponent } from './controls/notifications-indicator/notifications-indicator.component';\r\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\r\nimport { PagerComponent } from './controls/pager/pager.component';\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 { ShellSidebarComponent } from './layouts/shell/shell-sidebar/shell-sidebar.component';\r\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\r\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\r\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\r\nimport { ToasterComponent } from './controls/toaster/toaster.component';\r\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\r\nimport { ToasterService } from './services/toaster.service';\r\nimport { ToggleComponent } from './controls/toggle/toggle.component';\r\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\r\nimport { UserProfileMenuComponent } from './controls/user-profile-menu/user-profile-menu.component';\r\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\r\nimport { ShellSidebarHeaderComponent } from './layouts/shell/shell-sidebar-header/shell-sidebar-header.component';\r\nimport { ShellSidebarLayoutComponent } from './layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component';\r\nimport { ShellStackedLayoutComponent } from './layouts/shell/shell-stacked-layout/shell-stacked-layout.component';\r\nimport { AdvancedSearchComponent } from './controls/advanced-search/advanced-search.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [\r\n // Directives\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 ComboboxComponent,\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 NavLinksListComponent,\r\n NotificationsIndicatorComponent,\r\n LanguageSelectionComponent,\r\n UserProfileMenuComponent,\r\n ShellSidebarComponent,\r\n // Tab Group Component\r\n LibTabComponent,\r\n LibTabGroupComponent,\r\n // Stepper Component\r\n LibStepperComponent,\r\n LibStepComponent,\r\n LibStepLabelDirective,\r\n LibStepInfoDirective,\r\n ShellSidebarHeaderComponent,\r\n ShellSidebarLayoutComponent,\r\n ShellStackedLayoutComponent,\r\n AdvancedSearchComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n IndiceAuthModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n AddressPipe,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n AvatarInitialsComponent,\r\n ClickOutsideDirective,\r\n CollapsiblePanelComponent,\r\n ComboboxComponent,\r\n DatepickerComponent,\r\n DropDownMenuComponent,\r\n DurationFormatPipe,\r\n ErrorComponent,\r\n FormLayoutComponent,\r\n KpiTileComponent,\r\n LibStepComponent,\r\n LibStepInfoDirective,\r\n LibStepLabelDirective,\r\n LibStepperComponent,\r\n LibTabComponent,\r\n LibTabGroupComponent,\r\n ListColumnComponent,\r\n ListDetailsSectionComponent,\r\n ListTileComponent,\r\n ListViewComponent,\r\n ListViewEmptyStateComponent,\r\n LoggedOutComponent,\r\n ModelViewLayoutComponent,\r\n PageNotFoundComponent,\r\n PagerComponent,\r\n ShellFooterComponent,\r\n ShellHeaderComponent,\r\n ShellLayoutComponent,\r\n SidePaneComponent,\r\n SideViewLayoutComponent,\r\n SkeletonLoaderComponent,\r\n ToasterComponent,\r\n ToasterContainerComponent,\r\n ToggleComponent,\r\n UnauthorizedComponent,\r\n ViewLayoutComponent\r\n ]\r\n})\r\nexport class IndiceComponentsModule {\r\n // tslint:disable-next-line:typedef\r\n static forRoot(): ModuleWithProviders<IndiceComponentsModule> {\r\n return {\r\n ngModule: IndiceComponentsModule,\r\n providers: [ToasterService]\r\n };\r\n }\r\n}\r\n","// Public API Surface of @indice/ng-components\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\nexport * from './lib/controls/side-pane/side-pane.component';\r\nexport * from './lib/controls/nav-links-list/nav-links-list.component';\r\nexport * from './lib/controls/combobox/combobox.component';\r\nexport * from './lib/controls/tabs/lib-tab.component';\r\nexport * from './lib/controls/tabs/lib-tab-group.component';\r\nexport * from './lib/controls/stepper/lib-stepper.component';\r\nexport * from './lib/controls/stepper/lib-step.component';\r\nexport * from './lib/controls/stepper/lib-step-label.directive';\r\nexport * from './lib/controls/stepper/lib-step-info.directive';\r\nexport * from './lib/controls/stepper/types/stepper-type';\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\nexport * from './lib/layouts/shell/shell-sidebar/shell-sidebar.component';\r\nexport * from './lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.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\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/component-loader.factory';\r\nexport * from './lib/services/modal-service/modal-service';\r\nexport { ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE, CloseInterceptorFn } from './lib/services/modal-service/modal-options.class';\r\nexport * from './lib/services/modal-service/modal.class';\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"],"names":["i1.ClickOutsideDirective","i2","i1","i2.DropDownMenuComponent","i3","i2.ClickOutsideDirective","i1.DropDownMenuComponent","i2.DatepickerComponent","i1.AdvancedSearchComponent","i2.PagerComponent","i3.SkeletonLoaderComponent","i4.ListViewEmptyStateComponent","i5","i1.ToasterService","i2.ToasterComponent","i1.NavLinksListComponent","i2.UserProfileMenuComponent","i3.NotificationsIndicatorComponent","i4.LanguageSelectionComponent","i6.ClickOutsideDirective","i7","i1.ShellHeaderComponent","i2.ShellFooterComponent","i4.DynamicComponentHostDirective","i1.UserProfileMenuComponent","i2.NotificationsIndicatorComponent","i3.LanguageSelectionComponent","i4.ClickOutsideDirective","i1.ShellSidebarComponent","i2.ShellSidebarHeaderComponent","i4","i3.ComponentLoaderFactory","i4.ShellStackedLayoutComponent","i5.ShellSidebarLayoutComponent","i6.SidePaneComponent","i7.ToasterContainerComponent","i2.ViewLayoutComponent","i2.SidePaneComponent","i1.ViewLayoutComponent","i1.ModalOptions","i1.ComponentLoaderFactory"],"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/controls/drop-down-menu/drop-down-menu.component.html","../../../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/pager/pager.component.html","../../../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/advanced-search/models.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.html","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.ts","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.html","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.html","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.html","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.html","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.html","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.html","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.html","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.html","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.html","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.ts","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.html","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.ts","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.html","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.html","../../../projects/ng-components/src/lib/controls/stepper/lib-step-info.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step-label.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step.component.ts","../../../projects/ng-components/src/lib/controls/stepper/types/stepper-type.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.html","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/services/component-loader/content-ref.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.factory.ts","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.ts","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.html","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.ts","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.html","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.ts","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.html","../../../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/auth/logged-out/logged-out.component.html","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.html","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.html","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.html","../../../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/services/modal-service/modal-styles.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-backdrop-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-options.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-container-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-service.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 @Input() placeholder: string = 'Παρακαλώ επιλέξτε...';\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 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","<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\"\r\n >\r\n <span class=\"dropdown-selected-text\">\r\n {{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n {{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\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 Delete = `ms-Icon ms-Icon--Delete`;\r\n public static SendEmail = `ms-Icon ms-Icon--NewMail`;\r\n public static Filter = `ms-Icon ms-Icon--Filter`;\r\n public static Export = `ms-Icon ms-Icon--ExcelDocument`;\r\n public static Import = `ms-Icon ms-Icon--PeopleAdd`;\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 public static Messages = ' ms-Icon ms-Icon--Message';\r\n public static MessagesUnread = ' ms-Icon ms-Icon--MessageFill';\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\n\r\nexport interface IAppNotifications {\r\n messages: Observable<IResultSet<NavLink>>;\r\n getMessage?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\r\n markMessageRead?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\r\n refresh?: () => void | undefined;\r\n inboxAction?: () => void | undefined;\r\n}\r\n\r\nexport interface IAppLanguagesService {\r\n options: Observable<MenuOption[]> | undefined;\r\n selected?: string;\r\n default?: string;\r\n setSelected?: (lang: string) => void | undefined;\r\n}\r\n\r\nexport interface IAppLinks {\r\n public: Observable<NavLink[]>;\r\n main: Observable<NavLink[]>;\r\n profile: Observable<NavLink[]>;\r\n profileActions: Observable<NavLink[]>;\r\n legal: Observable<NavLink[]>;\r\n brand: Observable<NavLink[]>;\r\n notifications?: Observable<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, data?: any) {\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 this.data = data;\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 public type = 'router';\r\n public data: any | undefined;\r\n}\r\n\r\nexport class ExternalNavLink extends NavLink {\r\n constructor(text: string, path: string, openInNewTab?: boolean, icon?: string) {\r\n super(text, path, true, openInNewTab, icon);\r\n }\r\n public type = 'external';\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 public type = 'fragment';\r\n}\r\n\r\nexport class NotificationNavLink extends NavLink {\r\n constructor(text: string, path: string, public isRead: boolean, public creationDate?: Date) {\r\n super(text, path, true, false, undefined);\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 public static Gallery = 'gallery';\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 enum PagerPosition {\r\n Top = 'top',\r\n Bottom = 'bottom',\r\n Both = 'both'\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 layout?: ShellLayoutType;\r\n appLogo: string;\r\n appLogoAlt: string;\r\n showHeader: boolean;\r\n showUserNameOnHeader?: boolean;\r\n showAlertsOnHeader?: boolean;\r\n customHeaderComponent?: any;\r\n showFooter: boolean;\r\n customFooterComponent?: any;\r\n fluid: boolean;\r\n showLangsOnHeader?: boolean;\r\n}\r\n\r\nexport enum ShellLayoutType {\r\n Stacked = 'Stacked',\r\n Sidebar = 'Sidebar'\r\n}\r\n\r\nexport class DefaultShellConfig implements IShellConfig {\r\n layout = ShellLayoutType.Stacked;\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 showUserNameOnHeader = false;\r\n showAlertsOnHeader = false;\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\r\nexport interface IValidationProblemDetails {\r\n type?: string | undefined;\r\n title?: string | undefined;\r\n status?: number | undefined;\r\n detail?: string | undefined;\r\n instance?: string | undefined;\r\n errors?: { [key: string]: string[]; } | undefined;\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 // BUSY STATE\r\n @Input() busy = false;\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 }\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 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","<div class=\"pager-container\">\r\n <div class=\"pager-container-inner\">\r\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\r\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\r\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\r\n <span class=\"sr-only\">sort direction</span>\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"sortdirIcon\"></i>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"pager-pages-container\">\r\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\r\n <div class=\"mx-2\" *ngIf=\"count !== null && count > pageSize\">\r\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\r\n class=\"pager-arrow-button-left\">\r\n <span class=\"sr-only\">Previous</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\r\n class=\"pager-arrow-button-right\">\r\n <span class=\"sr-only\">Next</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-drop-down-menu *ngIf=\"(pages && pages.length > 0) && (count !== null && count > pageSize)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n</div>\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 { formatDate } from \"@angular/common\";\r\n\r\nexport namespace Operators {\r\n export const EQUALS = { label: '=', value: 'eq', description: 'Ίσο με' };\r\n export const NOT_EQUALS = { label: '≠', value: 'neq', description: 'Διάφορο του' };\r\n export const GREATER_THAN = { label: '>', value: 'gt', description: 'Μεγαλύτερο από' };\r\n export const LESS_THAN = { label: '<', value: 'lt', description: 'Μικρότερο από' };\r\n export const GREATER_THAN_EQUAL = { label: '≥', value: 'gte', description: 'Μεγαλύτερο ή ίσο με' };\r\n export const LESS_THAN_EQUAL = { label: '≤', value: 'lte', description: 'Μικρότερο ή ίσο με' };\r\n export const CONTAINS = { label: '∋', value: 'contains', description: 'Περιέχει' };\r\n export const IN = { label: '1..n', value: 'in', description: 'Μέσα σε' };\r\n}\r\n\r\nexport enum QueryParameters {\r\n VIEW = 'view',\r\n PAGE_SIZE = 'pagesize',\r\n PAGE = 'page',\r\n SEARCH = 'search',\r\n SORT_FIELD = 'sort',\r\n SORT_DIRECTION = 'dir',\r\n FILTER = 'filter',\r\n FILTER_FROM = 'from',\r\n FILTER_TO = 'to'\r\n}\r\n\r\nexport interface SearchOption {\r\n name: string;\r\n field: string;\r\n dataType: FilterClause.Dt;\r\n array?: boolean;\r\n multiTerm?: boolean;\r\n options?: SelectInputOption[];\r\n placeholder?: string;\r\n}\r\n\r\nexport interface SelectInputOption {\r\n value: any;\r\n label: string;\r\n description?: string;\r\n}\r\n\r\nexport namespace FilterClause {\r\n export type Op = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'contains' | 'in';\r\n export type Dt = 'string' | 'integer' | 'number' | 'boolean' | 'datetime' | 'array' | 'daterange' | undefined;\r\n}\r\n\r\nexport class FilterClause {\r\n // Member path to compare\r\n public member: string;\r\n // Value to compare against\r\n public value: any;\r\n // The operator to apply between the Indice.Types.FilterClause.Member and Indice.Types.FilterClause.Value\r\n public operator: FilterClause.Op;\r\n // The Indice.Types.JsonDataType of the data Indice.Types.FilterClause.Member\r\n public dataType: FilterClause.Dt;\r\n\r\n public uiName: string | undefined;\r\n public uiOperator: string | undefined;\r\n public uiValue: string | undefined;\r\n\r\n public constructor(member: string, value: any, operator?: FilterClause.Op, dataType?: FilterClause.Dt, searchOptions?: SearchOption[]) { // yeap, we do need searchOptions for the ui view model\r\n this.member = member;\r\n this.value = value;\r\n this.operator = operator || Operators.EQUALS.value as FilterClause.Op;\r\n this.dataType = dataType === undefined ? 'string' : dataType;\r\n // uiName\r\n if (this.dataType === 'datetime') { // special treatment for dates\r\n this.uiName = this.member === QueryParameters.FILTER_FROM ? 'Από' : 'Έως';\r\n } else {\r\n this.uiName = this.member;\r\n let fo = <any>{};\r\n if (searchOptions && searchOptions.length > 0) {\r\n fo = searchOptions.find((f) => {\r\n return f.field === this.member;\r\n });\r\n }\r\n\r\n if (fo) {\r\n this.uiName = fo.name;\r\n }\r\n }\r\n // uiOperator\r\n this.uiOperator = this.dataType === 'datetime' ? '' : Operators.EQUALS.label; // that's fine (for now)...\r\n // uiValue\r\n this.uiValue = this.value;\r\n if ((this.dataType === 'datetime')) {\r\n this.uiValue = formatDate(new Date(this.value), 'dd/MM/yyyy', 'en-US');\r\n }\r\n let fo: SearchOption | undefined;\r\n if (searchOptions && searchOptions.length > 0) {\r\n fo = searchOptions.find((f) => {\r\n return f.field === this.member;\r\n });\r\n }\r\n if (fo && fo.options) { // special treatment for arrays, if there is an options property then it is an array\r\n this.dataType = 'array';\r\n this.uiValue = fo!.options!.find((option) => {\r\n return option.value === this.value;\r\n })?.label;\r\n }\r\n }\r\n\r\n public static parse(text: string): FilterClause | undefined {\r\n const pattern = /^\\s*([A-Za-z_][A-Za-z0-9_\\.]+)::(eq|neq|gt|lt|gte|lte|contains|in)::(\\((string|integer|number|boolean|datetime)\\))?(.+)\\s*$/gi;\r\n if (text != null) {\r\n const matches = pattern.exec(text);\r\n if (matches != null) {\r\n const path = matches[1];\r\n const op = <FilterClause.Op>matches[2];\r\n const dt = <FilterClause.Dt>matches[4];\r\n const v = matches[5];\r\n\r\n return new FilterClause(path, v, op, dt);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n public toString(): string {\r\n if (this.dataType !== 'string' && this.dataType !== 'array') {\r\n return `${this.member}::${this.operator}::(${this.dataType})${this.value}`;\r\n } else {\r\n return `${this.member}::${this.operator}::${this.value}`;\r\n }\r\n }\r\n\r\n}\r\n","import { getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, forwardRef, Inject, Input, LOCALE_ID, 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 = false;\r\n @Input() disabled: boolean = false;\r\n @Input() inline: 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 @Input() minDate: Date | undefined = undefined;\r\n @Input() maxDate: Date | undefined = undefined;\r\n public showCalendar = false;\r\n public showYears = false;\r\n public monthNames = getLocaleMonthNames(this.locale, FormStyle.Standalone, TranslationWidth.Wide);\r\n public dayNames = getLocaleDayNames(this.locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\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 constructor(@Inject(LOCALE_ID) public locale: string) { }\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 this.getDateFromInput();\r\n }\r\n\r\n public selectDateValue(date: any): void {\r\n // This should be in UTC\r\n if (!this.outOfRangeDate(date.day)) {\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.calcDays();\r\n this.showCalendar = false;\r\n }\r\n }\r\n\r\n public selectYearValue(year: any): void {\r\n // This should be in UTC\r\n const tempYear = this.year;\r\n this.year = year.year;\r\n if (!this.outOfRangeDate(this.calendarDates?.find(x => x.selected == true) ?? { day: 1 })) {\r\n let selectedDate = new Date(year.year, this.month ?? 1, this.calendarDates?.find(x => x.selected == true).day ?? 1, 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.showYears = false;\r\n this.showCalendar = true;\r\n this.calcDays();\r\n } else {\r\n this.year = tempYear;\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n }\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\r\n ? ++this.calendarYearPage\r\n : this.calendarYearPage);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n private 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 private 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 = new Array<number>();\r\n for (var i = 1; i <= dayOfWeek; i++) {\r\n // check if month is February\r\n blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));\r\n blankdaysArray.reverse().sort();\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 ?? today, 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 private 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 private getDateFromInput() {\r\n if (this.dateInput?.nativeElement.value !== '' && !this.inline) {\r\n var dateParts = this.dateInput?.nativeElement.value.split(\"/\");\r\n let dateInGrFormat = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], 3, 0, 0);\r\n if (dateInGrFormat.toString() !== 'Invalid Date') {\r\n this.writeValue(dateInGrFormat)\r\n this.calcDays();\r\n this.valueChange.emit(dateInGrFormat);\r\n }\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 }\r\n this.showCalendar = false;\r\n }\r\n\r\n public openYears() {\r\n this.showYears = !this.showYears;\r\n this.calendarYearPage = Math.ceil(this.calendarYears.map(x => x.year).indexOf(this.year) / this.yearsPerPage);\r\n this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 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 public closeCalendar() {\r\n this.showCalendar = false;\r\n this.getDateFromInput();\r\n }\r\n\r\n outOfRangeDate(date: any): boolean {\r\n let outOfRange: boolean = false;\r\n if (this.minDate || this.maxDate) {\r\n const d = new Date(this.year, this.month, date.day);\r\n const dateInMillis = d.getTime();\r\n if (this.minDate) {\r\n let minDate: number = this.minDate.getTime();\r\n if (dateInMillis < minDate && this.minDate.toDateString() !== d.toDateString()) {\r\n outOfRange = true;\r\n }\r\n }\r\n if (this.maxDate) {\r\n let maxDate: number = this.maxDate.getTime();\r\n if (dateInMillis > maxDate && this.maxDate.toDateString() !== d.toDateString()) {\r\n outOfRange = true;\r\n }\r\n }\r\n }\r\n return outOfRange;\r\n }\r\n}","<div class=\"flex\"\r\n [ngClass]=\"{'relative': !inline}\"\r\n (clickOutside)=\"closeCalendar()\">\r\n\r\n <input type=\"text\"\r\n *ngIf=\"!inline\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n (focus)=\"showCalendar = false\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"detapicker-input\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!inline\"\r\n class=\"datepicker-button\"\r\n [disabled]=\"disabled\"\r\n (click)=\"openCalendar()\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\r\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"showCalendar || inline\"\r\n [ngClass]=\"{'absolute': !inline}\"\r\n class=\"datepicker-background\"\r\n style=\"height:18rem;min-width:16rem;\"\r\n name=\"calendar\">\r\n <div class=\"datepicker-btn-wrapper\">\r\n <div>\r\n <button type=\"button\"\r\n (click)=\"openYears()\">\r\n <span class=\"datepicker-selected-month\">\r\n {{monthNames[month]}}\r\n </span>\r\n <span class=\"datepicker-selected-year\">\r\n {{year}}</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousMonth();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextMonth()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <ng-template #showYearsPickerTmpl>\r\n <div>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousYear();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextYear()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"datepicker-wrapper\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"datepicker-day-name\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"datepicker-content-wrapper\">\r\n <div *ngFor=\"let year of showCalendarYears\"\r\n style=\"width: 18.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectYearValue(year)\"\r\n class=\"datepicker-year\"\r\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\r\n {{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"datepicker-content-wrapper\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"datepicker-blank-days\">{{blankday}}</div>\r\n <div *ngFor=\"let date of calendarDates;\"\r\n style=\"width: 14.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectDateValue(date)\"\r\n class=\"datepicker-days\"\r\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\r\n {{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\nimport { SearchOption, FilterClause, QueryParameters, Operators } from './models';\r\n\r\n@Component({\r\n selector: 'lib-advanced-search',\r\n templateUrl: './advanced-search.component.html'\r\n})\r\nexport class AdvancedSearchComponent implements OnInit {\r\n @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\r\n @Input('search-options') searchOptions: SearchOption[] = [];\r\n @Input() filters: FilterClause[] = [];\r\n public menuOptions: MenuOption[] = [];\r\n public selectedField?: SearchOption;\r\n public fieldValue?: string;\r\n public fieldValueDateFrom: any;\r\n public fieldValueDateTo: any;\r\n public menuOptionsDictionary: { [key: string]: MenuOption[] } = {};\r\n\r\n constructor() { }\r\n\r\n public ngOnInit(): void {\r\n this.searchOptions.forEach((searchOption) => {\r\n this.menuOptions.push({\r\n text: searchOption.name,\r\n value: searchOption.field,\r\n data: searchOption.dataType,\r\n description: searchOption.placeholder,\r\n icon: undefined\r\n });\r\n if (searchOption.dataType === 'array') {\r\n let menuOpts: MenuOption[] = [];\r\n searchOption.options?.forEach((selectInputOption) => {\r\n menuOpts.push({\r\n text: selectInputOption.label,\r\n value: selectInputOption.value,\r\n data: undefined,\r\n description: selectInputOption.description,\r\n icon: undefined\r\n });\r\n })\r\n this.menuOptionsDictionary[searchOption.field] = menuOpts;\r\n }\r\n });\r\n }\r\n\r\n public selectedFieldChanged(field: string) {\r\n this.selectedField = this.searchOptions.find((searchOption) => searchOption.field === field);\r\n this.fieldValue = undefined;\r\n }\r\n\r\n public selectedFieldValueChanged(fieldValue: string) {\r\n this.fieldValue = fieldValue;\r\n }\r\n\r\n public search() {\r\n if (!this.selectedField || !this.selectedField.dataType) {\r\n return;\r\n }\r\n // the filter is of type 'daterange'\r\n if (this.selectedField.dataType === 'daterange') {\r\n if (!this.selectedField.multiTerm) {\r\n this.filters = this.filters.filter((f) => {\r\n return f.member !== QueryParameters.FILTER_FROM && f.member !== QueryParameters.FILTER_TO;\r\n });\r\n }\r\n if (this.fieldValueDateFrom) {\r\n const filterClauseFrom = new FilterClause(QueryParameters.FILTER_FROM, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\r\n this.filters.push(filterClauseFrom);\r\n }\r\n\r\n if (this.fieldValueDateTo) {\r\n const filterClauseTo = new FilterClause(QueryParameters.FILTER_TO, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\r\n this.filters.push(filterClauseTo);\r\n }\r\n }\r\n // the filter isn't of type 'daterange' (everything else)\r\n else {\r\n if (this.fieldValue === undefined) { // handle empty field value\r\n return;\r\n }\r\n // create the filterClause\r\n const filterClause = new FilterClause(this.selectedField.field, this.fieldValue, Operators.EQUALS.value as FilterClause.Op, this.selectedField.dataType, this.searchOptions); // operator is always 'equals'...\r\n\r\n if (!this.selectedField.multiTerm) { // multiTerm means that we can have multiple filter values of the SAME filter clause (eg \"filter case types that are Phone OR Address\")\r\n this.filters = this.filters.filter((f) => {\r\n return f.member !== this.selectedField!.field;\r\n });\r\n }\r\n\r\n this.filters.push(filterClause);\r\n this.fieldValue = undefined;\r\n }\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n\r\n public removeFilter(index: number) {\r\n if (this.filters && this.filters.length >= index) {\r\n this.filters.splice(index, 1);\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n }\r\n\r\n public clear() {\r\n this.fieldValueDateFrom = undefined;\r\n this.fieldValueDateTo = undefined;\r\n this.selectedField = undefined;\r\n this.fieldValue = undefined;\r\n this.filters = [];\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n\r\n}\r\n","<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n Αναζήτηση ανά:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"Αναζήτηση\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n Από:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n Έως:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined}\"\r\n [disabled]=\"fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>","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","<!-- <h1>SKELETON LOADER!</h1> -->\r\n<ng-container *ngSwitch=\"type\">\r\n <div class=\"cards-deck-4\" *ngSwitchCase=\"'tiles'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-32 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-3\" *ngSwitchCase=\"'large-tiles'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-52 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-1\" *ngSwitchCase=\"'table'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"border border-light-blue-300 shadow rounded-sm p-4 max-w-sm w-full mx-auto mb-4\">\r\n <div class=\"animate-pulse flex space-x-4\">\r\n <div class=\"rounded-full bg-light-blue-400 h-12 w-12\"> </div>\r\n <div class=\"flex-1 space-y-4 py-1\">\r\n <div class=\"h-4 bg-light-blue-400 rounded w-3/4\"> </div>\r\n <div class=\"space-y-2\">\r\n <div class=\"h-4 bg-light-blue-400 rounded\"> </div>\r\n <div class=\"h-4 bg-light-blue-400 rounded w-5/6\"> </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-3\" *ngSwitchDefault>\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-52 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</ng-container>\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","<div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { MenuOption, ListViewType, PagerPosition } 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\nimport { FilterClause, SearchOption } from '../advanced-search/models';\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 @Input('search-options') searchOptions: SearchOption[] = [];\r\n @Input() filters: FilterClause[] = [];\r\n // BUSY STATE\r\n @Input() busy = false;\r\n // DATA SOURCE!\r\n @Input() items: any[] | null | undefined;\r\n // PAGING - pass through for pager component\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n @Input() view = ListViewType.Table;\r\n @Input() sort: string | null = null;\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 // 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-dir') sortdir: string | null = '-';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('tiles-count') tilesCount = 4;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-pager') showPager = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('pager-position') pagerPosition: any | undefined = PagerPosition.Top;\r\n // DETAILS SECTION\r\n // Check if details section and button should be displayed according to the count of the value given\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('details-section-property-count') detailsSectionPropertyCount: string | null = null;\r\n // COLUMNS\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 // tslint:disable-next-line:no-input-rename\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 @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 @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 @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\r\n\r\n private multipleFullWidth = false;\r\n public expandIcon = Icons.Expand;\r\n public collapseIcon = Icons.Collapse;\r\n public tableViewSupported = 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 public loaderItems: any[] = [];\r\n public columns: any[] = [];\r\n public tilesDeckClass = 'cards-deck-4';\r\n public tileTemplate: any | null | undefined = null;\r\n public detailsTemplate: any | null | undefined = null;\r\n\r\n constructor() {\r\n for (let i = 0; i < 5; i++) {\r\n this.loaderItems.push({});\r\n }\r\n if (this.pagerPosition) {\r\n this.pagerPosition = this.pagerPosition as PagerPosition;\r\n }\r\n }\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 public emitAdvancedSearchChanged($event: FilterClause[]): void {\r\n this.advancedSearchChanged.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 =\r\n this.view !== ListViewType.Gallery\r\n ? `cards-deck-${tiles}`\r\n : this.items && this.items.length > 0\r\n ? `gallery-deck-${tiles}`\r\n : 'gallery-deck';\r\n } else {\r\n this.tilesDeckClass =\r\n this.view !== ListViewType.Gallery\r\n ? 'cards-deck-3'\r\n : this.items && this.items.length > 0\r\n ? 'gallery-deck-3'\r\n : 'gallery-deck';\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"px-2\">\r\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\r\n [search-options]=\"searchOptions\"\r\n [filters]=\"filters\"\r\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\"></lib-advanced-search>\r\n\r\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>\r\n\r\n<ng-container [ngSwitch]=\"view\">\r\n\r\n <ng-container *ngSwitchCase=\"'tiles'\">\r\n <div [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\"\r\n [count]=\"5\"\r\n [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- *ngSwitchCase=\"'gallery'\" -->\r\n <ng-container *ngSwitchCase=\"'gallery'\">\r\n <ul role=\"list\"\r\n [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\"\r\n [count]=\"5\"\r\n [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n\r\n <!-- *ngSwitchCase=\"'table'\" -->\r\n <ng-container *ngSwitchDefault>\r\n\r\n <div class=\"list-view-container\">\r\n <div class=\"list-view-container-inner\">\r\n <table class=\"list-view-table\">\r\n <thead class=\"list-view-thead\">\r\n <tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <th class=\"list-view-th-details\"></th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\"\r\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\r\n {{col.title}}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"busy\">\r\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button disabled\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"!busy\">\r\n <ng-container *ngFor=\"let item of items;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button (click)=\"toggleDetails(item)\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <ng-template [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\r\n <div class=\"cards-deck-1\">\r\n <lib-list-view-empty-state></lib-list-view-empty-state>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div class=\"px-2 mt-2\"\r\n *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\">\r\n <lib-pager [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>","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","<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\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 @Input() hideBtn: boolean | undefined = false;\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","<div class=\"card\"\r\n [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n [ngClass]=\"{'invisible': hideBtn}\"\r\n (click)=\"emitTileAction($event)\">Περισσότερα</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","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, 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","<div aria-live=\"assertive\"\r\n [ngClass]=\"closed ? 'toast-closed': 'toast z-50'\"\r\n [ngStyle]=\"isMobile ? { 'margin-bottom.px': i * 85 } : {'margin-top.px': i * 85 }\">\r\n <div class=\"toast-container\">\r\n <div class=\"toast-pill\">\r\n <div class=\"toast-context-padding\">\r\n <div class=\"toast-context\"\r\n [ngSwitch]=\"toast?.type\">\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'info'\">\r\n <svg class=\"h-5 w-5 text-blue-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'success'\">\r\n <svg class=\"h-5 w-5 text-green-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'error'\">\r\n <svg class=\"h-5 w-5 text-red-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'warning'\">\r\n <svg class=\"h-5 w-5 text-yellow-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchDefault>\r\n <svg class=\"h-5 w-5 text-green-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"ml-3 w-0 flex-1\">\r\n <p class=\"toast-title\"\r\n *ngIf=\"toast?.title\">\r\n {{toast?.title}}\r\n </p>\r\n <p class=\"toast-body\">\r\n {{toast?.body}}\r\n </p>\r\n </div>\r\n <div class=\"toast-close-icon\">\r\n <button class=\"toast-close-button\"\r\n (click)=\"closeToast(i)\">\r\n <span class=\"sr-only\">Close</span>\r\n <!-- Heroicon name: solid/x -->\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","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","<lib-toaster *ngFor=\"let toast of toasts; let i=index\" [toast]=\"toast\" [i]=\"i\" (remove)=\"remove($event)\"></lib-toaster>\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","<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'lib-toggle',\r\n templateUrl: './toggle.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ToggleComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\r\n @Input()\r\n public value: boolean | null | undefined;\r\n @Input()\r\n public disabled:boolean | null | undefined;\r\n @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n constructor() { }\r\n \r\n writeValue(obj: any): void {\r\n if(obj) {\r\n this.value = obj || false;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange$ = fn;\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 ngOnInit(): void {\r\n }\r\n\r\n public changeValue(){\r\n this.value = !this.value;\r\n this.valueChange.emit(this.value);\r\n if(this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n}","<button type=\"button\"\r\n [ngClass]=\"value ? (disabled ? 'on disabled' : 'on') : 'off'\"\r\n class=\"toggle-button\"\r\n role=\"switch\"\r\n aria-checked=\"false\"\r\n aria-labelledby=\"isPrivate\"\r\n (click)=\"changeValue()\"\r\n (blur)=\"onBlur($event)\"\r\n value=\"{{value}}\"\r\n [disabled]=\"disabled\"\r\n [title]=\"disabled ? 'Το αρχείο πρέπει να είναι ιδωτικό' : 'Ιδιωτικό'\">\r\n <span aria-hidden=\"true\"\r\n [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\r\n class=\"toggle-span\"></span>\r\n</button>","import { SidePaneOverlayType, SidePaneSize } from './../../types';\r\nimport { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, OnDestroy, Inject, EventEmitter, Output } 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 @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n \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 this.onComplete.emit(true);\r\n }\r\n\r\n}\r\n","<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\r\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\r\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\r\n <div [class]=\"sizeContainerStyle\">\r\n <div class=\"side-pane\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavLink } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-nav-links-list',\r\n templateUrl: './nav-links-list.component.html'\r\n})\r\nexport class NavLinksListComponent implements OnInit, OnDestroy {\r\n\r\n @Input() links: Observable<NavLink[]> | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('active-fragment') activeFragment: Observable<string> | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('link-class') navLinkClass: string | string = 'nav-link';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('link-active-class') navLinkActiveClass: string | string[] = 'nav-link-active';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('container-class') containerClass: string | string[] | undefined = undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-icons') showIcons: boolean | undefined = false;\r\n public fragmentValue: string | undefined;\r\n private fragmentSub$: Subscription | undefined;\r\n constructor() { }\r\n \r\n ngOnDestroy(): void {\r\n this.fragmentSub$?.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fragmentSub$ = this.activeFragment?.subscribe( fragment => this.fragmentValue = fragment);\r\n }\r\n\r\n}\r\n","\r\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\r\n <div class=\"nav-link-list-container-inner\">\r\n <ng-container *ngFor=\"let link of links | async\">\r\n <ng-container [ngSwitch]=\"link.type\">\r\n <a *ngSwitchCase=\"'router'\"\r\n href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [routerLinkActive]=\"navLinkActiveClass\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n [class]=\"navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [class]=\"navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n <a *ngSwitchCase=\"'fragment'\"\r\n routerLink=\".\"\r\n [fragment]=\"link.path\"\r\n [class]=\"fragmentValue === link.path ? navLinkClass + ' ' + navLinkActiveClass : navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'lib-combobox',\r\n templateUrl: './combobox.component.html'\r\n})\r\nexport class ComboboxComponent implements OnInit {\r\n private _debouncer: Subject<string> = new Subject<string>();\r\n private _items: any[] = [];\r\n\r\n private _defaultItemsFilter = (item: any) => {\r\n const selectedItem = this.selectedItems.find(x => x == item);\r\n return selectedItem == null || selectedItem == undefined;\r\n };\r\n\r\n constructor() { }\r\n\r\n @Input() public id: string = 'combobox';\r\n\r\n @Input('items') public set items(items: any[]) {\r\n if (!this.itemTemplate) {\r\n this._items = items.filter(this._defaultItemsFilter);\r\n } else {\r\n this._items = items.filter(this.selectedItemsFilter);\r\n }\r\n }\r\n\r\n public get items(): any[] {\r\n if (!this.itemTemplate) {\r\n return this._items.filter(this._defaultItemsFilter);\r\n } else {\r\n return this._items.filter(this.selectedItemsFilter);\r\n }\r\n }\r\n\r\n @Input() public itemTemplate: TemplateRef<HTMLElement> | null = null;\r\n @Input() public selectedItemsFilter: (item: any) => boolean | null = () => true;\r\n @Input() public selectedItemTemplate: TemplateRef<HTMLElement> | null = null;\r\n @Input() public busy: boolean = false;\r\n @Input() public debounceMs: number = 1000;\r\n @Output() public onSearch: EventEmitter<string | undefined> = new EventEmitter();\r\n @Output() public onItemSelected: EventEmitter<any> = new EventEmitter();\r\n public showOptions: boolean = false;\r\n public selectedItems: any[] = [];\r\n\r\n public ngOnInit(): void {\r\n this.emitSearchEvent();\r\n this._debouncer\r\n .pipe(\r\n debounceTime(this.debounceMs),\r\n distinctUntilChanged()\r\n )\r\n .subscribe((value: string) => this.emitSearchEvent(value));\r\n }\r\n\r\n public onInputClick(): void {\r\n this.showOptions = true;\r\n }\r\n\r\n public onInputClickOutside(): void {\r\n this.showOptions = false;\r\n }\r\n\r\n public onInputKeyUp(event: any): void {\r\n this._debouncer.next(event.currentTarget.value);\r\n }\r\n\r\n public onListItemSelected(item: any): void {\r\n this.onItemSelected.emit(item);\r\n this.selectedItems.push(item);\r\n }\r\n\r\n public removeSelectedItem(item: any): void {\r\n const index = this.selectedItems.indexOf(item);\r\n if (index > -1) {\r\n this.selectedItems.splice(index, 1);\r\n }\r\n }\r\n\r\n private emitSearchEvent(searchTerm: string | undefined = undefined): void {\r\n this.onSearch.emit(searchTerm);\r\n }\r\n}\r\n","<div class=\"relative mt-1\">\r\n <form autocomplete=\"off\" [id]=\"id + '-form'\">\r\n <input [id]=\"id + '-input'\" type=\"text\" (click)=\"onInputClick()\" (clickOutside)=\"onInputClickOutside()\" (keyup)=\"onInputKeyUp($event)\"\r\n class=\"w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-12 shadow-sm focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm\" role=\"combobox\" aria-controls=\"options\"\r\n aria-expanded=\"false\" autocomplete=\"off\" list=\"autocomplete\">\r\n </form>\r\n <div class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\">\r\n <svg *ngIf=\"!busy\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\" class=\"animate-spin h-6 w-6 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-options'\" *ngIf=\"showOptions\" class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\" role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\" [id]=\"'option-'+ i\" (click)=\"onListItemSelected(item)\" role=\"option\" tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\" role=\"list\" class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\" class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultItemTemplate let-item>\r\n <span class=\"hover:bg-gray-100 relative cursor-pointer select-none py-2 pl-3 pr-3 block truncate\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:border-gray-400\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\" aria-hidden=\"true\"></span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\" (click)=\"removeSelectedItem(item)\" class=\"cursor-pointer bg-white rounded-md inline-flex text-gray-400 hover:text-gray-500\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { InjectionToken } from '@angular/core';\r\n\r\nimport { IAppLinks, IAppLanguagesService, IAppNotifications, IShellConfig } from './types';\r\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\r\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\r\n\r\nexport const APP_LANGUAGES = new InjectionToken<IAppLanguagesService>('APP_LANGUAGES');\r\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\r\nexport const APP_NOTIFICATIONS = new InjectionToken<IAppNotifications>('APP_NOTIFICATIONS');\r\nexport const LIBSTEPPER_ACCESSOR = new InjectionToken<LibStepperComponent>('LibStepperAccessor');\r\nexport const LIBTABGROUP_ACCESSOR = new InjectionToken<LibTabGroupComponent>('LibTabGroupAccessor');\r\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\r\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnInit, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\r\n\r\n@Component({\r\n selector: 'lib-tab',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibTabComponent implements OnInit {\r\n private _isActive: boolean = false;\r\n\r\n constructor(\r\n @Optional() @Inject(LIBTABGROUP_ACCESSOR) public readonly _tabGroup?: any\r\n ) { }\r\n\r\n /** The content provided for the tab. */\r\n @ViewChild(TemplateRef, { static: true }) public content!: TemplateRef<any>;\r\n /** A label for the tab header. */\r\n @Input() public label: string | undefined;\r\n /** Indicates the unique id assigned in the tab. */\r\n @Input() public id!: string;\r\n\r\n /** Indicates the index of the tab. */\r\n public get index(): number | undefined {\r\n return this._tabGroup?.tabs?.toArray().indexOf(this) || undefined;\r\n }\r\n\r\n /** Indicates whether the tab is active. */\r\n public get isActive(): boolean {\r\n return this._isActive;\r\n }\r\n\r\n /** Setter for LibTabComponent isActive property. */\r\n public set isActive(isActive: boolean) {\r\n this._isActive = isActive;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.id = this.id || uuid.v4();\r\n }\r\n}","import { AfterContentChecked, AfterContentInit, Component, ContentChildren, EventEmitter, forwardRef, OnInit, Output, QueryList } from '@angular/core';\r\n\r\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\r\nimport { LibTabComponent } from './lib-tab.component';\r\n\r\n@Component({\r\n selector: 'lib-tab-group',\r\n templateUrl: './lib-tab-group.component.html',\r\n providers: [\r\n { provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }\r\n ]\r\n})\r\nexport class LibTabGroupComponent implements OnInit, AfterContentInit, AfterContentChecked {\r\n constructor() { }\r\n\r\n /** The inner tabs of the group. */\r\n @ContentChildren(LibTabComponent, { descendants: true }) public tabs: QueryList<LibTabComponent> | undefined = undefined;\r\n /** Emmited when a step change occurs. */\r\n @Output() public tabChanged: EventEmitter<LibTabComponent> = new EventEmitter<LibTabComponent>();\r\n\r\n /** The current tab. */\r\n public get currentTab(): LibTabComponent | undefined {\r\n return this.tabs?.find(x => x.isActive);\r\n }\r\n\r\n /** The index (starting from zero) of the current tab. */\r\n public get currentΤabIndex(): number | undefined {\r\n return this.currentTab?.index || undefined;\r\n }\r\n\r\n public ngOnInit(): void { }\r\n\r\n public ngAfterContentInit(): void {\r\n if (!this.tabs) {\r\n return;\r\n }\r\n }\r\n\r\n public ngAfterContentChecked(): void {\r\n if (this.tabs && this.tabs.length > 0) {\r\n const anyActive = this.tabs.filter(x => x.isActive).length > 0;\r\n if (!anyActive) {\r\n this.tabs.get(0)!.isActive = true;\r\n }\r\n }\r\n }\r\n\r\n public onTabChanged(selectedTab: LibTabComponent): void {\r\n this.tabs!.forEach((tab: LibTabComponent) => tab.isActive = tab.id === selectedTab.id);\r\n this.tabChanged.emit(selectedTab);\r\n }\r\n\r\n public onTabSelectChanged(selectedTabIndex: number): void {\r\n this.tabs!.forEach((tab: LibTabComponent, index: number) => tab.isActive = index === selectedTabIndex);\r\n this.tabChanged.emit(this.tabs?.get(selectedTabIndex));\r\n }\r\n}","<div class=\"tab-group-select-hidden\">\r\n <label for=\"tabs\" class=\"sr-only\">Select a tab</label>\r\n <select id=\"tabs\" name=\"tabs\" (change)=\"onTabSelectChanged(+tabsSelect.value)\" class=\"tab-group-select\" #tabsSelect>\r\n <option [value]=\"i\" *ngFor=\"let tab of tabs; let i = index\">{{ tab.label }}</option>\r\n </select>\r\n</div>\r\n<div class=\"tab-group-container-hidden\">\r\n <div class=\"tab-group-container\">\r\n <nav class=\"tab-group-container-nav\" aria-label=\"Tabs\">\r\n <a *ngFor=\"let tab of tabs\" href=\"javascript:void(0)\" [class.tab]=\"!tab.isActive\" [class.tab-active]=\"tab.isActive\" (click)=\"onTabChanged(tab)\">\r\n {{ tab.label }}\r\n </a>\r\n </nav>\r\n </div>\r\n</div>\r\n<div *ngIf=\"currentTab?.content\">\r\n <ng-container [ngTemplateOutlet]=\"currentTab!.content\"></ng-container>\r\n</div>","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libStepInfo]',\r\n})\r\nexport class LibStepInfoDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libStepLabel]',\r\n})\r\nexport class LibStepLabelDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\r\nimport { LibStepInfoDirective } from './lib-step-info.directive';\r\nimport { LibStepLabelDirective } from './lib-step-label.directive';\r\n\r\nexport enum StepState {\r\n Active = 'Active',\r\n Completed = 'Completed',\r\n Upcoming = 'Upcoming'\r\n};\r\n\r\n@Component({\r\n selector: 'lib-step',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibStepComponent {\r\n constructor(\r\n @Optional() @Inject(LIBSTEPPER_ACCESSOR) public readonly _stepper?: any\r\n ) { }\r\n\r\n /** The content provided for the step. */\r\n @ViewChild(TemplateRef, { static: true }) public content!: TemplateRef<any>;\r\n /** The label of the step displayed in header, if applicable. */\r\n @ContentChild(LibStepLabelDirective) public stepLabel: LibStepLabelDirective | undefined;\r\n /** The info of the step displayed in header, if applicable. */\r\n @ContentChild(LibStepInfoDirective) public stepInfo: LibStepInfoDirective | undefined;\r\n /** An optional CSS class for the step header. */\r\n @Input() public class: string | undefined;\r\n /** The abstract control of the step. */\r\n @Input() public stepControl: AbstractControl | undefined;\r\n\r\n /** Indicates the index of the step. */\r\n public get index(): number {\r\n return this._stepper ? this._stepper.steps.toArray().indexOf(this) : -1;\r\n }\r\n\r\n /** Indicates whether this step is the last step. */\r\n public get isLast(): boolean {\r\n return this._stepper ? this._stepper.steps.length - 1 === this.index : false;\r\n }\r\n\r\n /** Indicates whether you can navigate to the step or not. */\r\n public get isValid(): boolean {\r\n if (!this.stepControl) {\r\n return true;\r\n }\r\n return this.stepControl.valid;\r\n }\r\n\r\n /** Shows the current state of the step. */\r\n public get state(): StepState {\r\n const currentIndex = this._stepper?.currentStepIndex;\r\n if (currentIndex === this.index) {\r\n return StepState.Active;\r\n }\r\n if (currentIndex > this.index) {\r\n return StepState.Completed;\r\n }\r\n return StepState.Upcoming;\r\n }\r\n}\r\n","export enum StepperType {\r\n Bullets = 'Bullets',\r\n BulletsAndText = 'BulletsAndText',\r\n Circles = 'Circles',\r\n CirclesWithText = 'CirclesWithText',\r\n Panels = 'Panels',\r\n PanelsWithBorder = 'PanelsWithBorder',\r\n Progress = 'Progress',\r\n Simple = 'Simple'\r\n}","import { AfterViewChecked, ChangeDetectorRef, Component, ContentChildren, EventEmitter, forwardRef, Input, OnInit, Output, QueryList } from '@angular/core';\r\n\r\nimport { LibStepComponent, StepState } from './lib-step.component';\r\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\r\nimport { StepperType } from './types/stepper-type';\r\nimport { StepSelectedEvent } from './types/step-selected-event';\r\n\r\n@Component({\r\n selector: 'lib-stepper',\r\n templateUrl: './lib-stepper.component.html',\r\n providers: [\r\n { provide: LIBSTEPPER_ACCESSOR, useExisting: forwardRef(() => LibStepperComponent) }\r\n ]\r\n})\r\nexport class LibStepperComponent implements OnInit, AfterViewChecked {\r\n // Private properties.\r\n private _currentStepIndex: number = 0;\r\n private _isCompleted = false;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n /** The inner steps of the wizard. */\r\n @ContentChildren(LibStepComponent, { descendants: true }) public steps!: QueryList<LibStepComponent>;\r\n /** Emmited when a step change occurs. */\r\n @Output() public readonly stepChanged = new EventEmitter<StepSelectedEvent>();\r\n /** Emmited when the stepper navigates away from the final step. Only emits once. */\r\n @Output() public readonly completed = new EventEmitter<void>();\r\n /** Indicates whether each step has to be validated before proceeding to the next. */\r\n @Input() public linear: boolean = false;\r\n /** The type of the stepper. */\r\n @Input() public type: StepperType = StepperType.Panels;\r\n public StepState = StepState;\r\n public StepperType = StepperType;\r\n\r\n /** The current wizard step. */\r\n public get currentStep(): LibStepComponent | undefined {\r\n return this.steps?.get(this._currentStepIndex);\r\n }\r\n\r\n /** The index (starting from zero) of the current wizard step. */\r\n public get currentStepIndex(): number {\r\n return this._currentStepIndex;\r\n }\r\n\r\n /** Indicates whether stepper can go a step back. */\r\n public get canGoBack(): boolean {\r\n return this._currentStepIndex > 0;\r\n }\r\n\r\n /** Indicates whether stepper can go a step forward. */\r\n public get canGoForward(): boolean {\r\n return this._currentStepIndex < this.steps?.length - 1;\r\n }\r\n\r\n /** Indicates whether */\r\n public get isCompleted(): boolean {\r\n return this._isCompleted;\r\n }\r\n\r\n public ngOnInit(): void { }\r\n\r\n public ngAfterViewChecked(): void {\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n /** Proceeds to the next step, if any. */\r\n public goToNextStep(): void {\r\n if (this.currentStep?.isLast && !this._isCompleted) {\r\n this._isCompleted = true;\r\n this.completed.emit();\r\n }\r\n if (!this.canGoForward) {\r\n return;\r\n }\r\n this.updateCurrentStepIndex(this._currentStepIndex + 1);\r\n }\r\n\r\n /** Proceeds to the previous step, if any. */\r\n public goToPreviousStep(): void {\r\n if (!this.canGoBack) {\r\n return;\r\n }\r\n this.updateCurrentStepIndex(this._currentStepIndex - 1);\r\n }\r\n\r\n public onSelectStep(selectedStep: LibStepComponent): void {\r\n this.updateCurrentStepIndex(selectedStep.index);\r\n }\r\n\r\n private updateCurrentStepIndex(newIndex: number): void {\r\n const stepsArray = this.steps.toArray();\r\n const currentStep = stepsArray[this.currentStepIndex];\r\n const shouldStop = this.linear && (\r\n (!currentStep.isValid && newIndex >= this.currentStepIndex) || // If current step is invalid and want to go forward, then stop.\r\n (currentStep.isValid && newIndex > this.currentStepIndex + 1 && stepsArray.slice(this.currentStepIndex + 1, newIndex).some(x => !x.isValid)) // If going forward (more than 1 steps), check if there are any invalid steps in between.\r\n );\r\n if (shouldStop) {\r\n return;\r\n }\r\n this.stepChanged.emit({\r\n selectedIndex: newIndex,\r\n previouslySelectedIndex: this.currentStepIndex,\r\n selectedStep: stepsArray[newIndex],\r\n previouslySelectedStep: currentStep\r\n });\r\n this._currentStepIndex = newIndex;\r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"type\">\r\n <!-- Bullets -->\r\n <nav class=\"stepper-bullets-container\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Bullets\">\r\n <p class=\"stepper-bullets-counter\">Step {{ currentStepIndex + 1 }} of {{ steps.length }}</p>\r\n <ol role=\"list\" class=\"stepper-bullets-ol\">\r\n <li class=\"cursor-pointer\" *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\">\r\n <!-- Completed Step -->\r\n <div class=\"stepper-bullets-completed-step\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-active-step\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-active-step-level1\" aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-active-step-level1\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-active-step-bullet\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div href=\"#\" class=\"stepper-bullets-upcoming-step\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Bullets & Text -->\r\n <div class=\"stepper-bullets-and-text-container\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.BulletsAndText\">\r\n <nav aria-label=\"Progress\">\r\n <ol role=\"list\" class=\"stepper-bullets-and-text-ol\">\r\n <li class=\"cursor-pointer\" *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\">\r\n <!-- Complete Step -->\r\n <div class=\"group\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"stepper-bullets-and-text-completed-step\">\r\n <span class=\"stepper-bullets-and-text-completed-step-level1\">\r\n <svg class=\"h-full w-full text-blue-600 group-hover:text-blue-800\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-completed-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-and-text-active-step\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-and-text-active-step-level1\" aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-and-text-active-step-level11\"></span>\r\n <span class=\"stepper-bullets-and-text-active-step-level12\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-active-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level1\" aria-hidden=\"true\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level2\"></div>\r\n </div>\r\n <p class=\"stepper-bullets-and-text-upcoming-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Circles -->\r\n <nav class=\"flex justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Circles\">\r\n <ol class=\"flex items-center\" role=\"list\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative pr-8 sm:pr-20 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-blue-600\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full hover:bg-blue-900\">\r\n <svg class=\"w-5 h-5 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\" aria-current=\"step\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"group relative w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Circles With Text -->\r\n <nav class=\"flex items-center justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.CirclesWithText\">\r\n <ol role=\"list\" class=\"overflow-hidden\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative pb-10 cursor-pointer\">\r\n <!-- Complete Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-blue-600\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-5 h-5 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\" aria-current=\"step\">\r\n <span class=\"h-9 flex items-center\" aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div href=\"#\" class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\" aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-gray-500\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels -->\r\n <nav aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Panels\">\r\n <ol role=\"list\" class=\"border border-gray-300 rounded-md divide-y divide-gray-300 md:flex md:divide-y-0\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative md:flex-1 md:flex cursor-pointer\">\r\n <!-- Completed step -->\r\n <div class=\"group flex items-center w-full\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-6 h-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active step -->\r\n <div class=\"px-6 py-4 flex items-center text-sm font-medium\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-blue-600 rounded-full\">\r\n <span class=\"text-blue-600\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming step -->\r\n <div class=\"group flex items-center\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"text-gray-500 group-hover:text-gray-900\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-500 group-hover:text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Arrow separator for lg screens and up -->\r\n <div *ngIf=\"!step.isLast\" class=\"hidden md:block absolute top-0 right-0 h-full w-5\" aria-hidden=\"true\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 22 80\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0 -2L20 40L0 82\" vector-effect=\"non-scaling-stroke\" stroke=\"currentcolor\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels With Border -->\r\n <div class=\"panels-with-border-container\" *ngSwitchCase=\"StepperType.PanelsWithBorder\">\r\n <nav class=\"panels-with-border-nav\" aria-label=\"Progress\">\r\n <ol role=\"list\" class=\"panels-with-border-ol\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"panels-with-border-li\">\r\n <!-- Completed Step -->\r\n <div class=\"panels-with-border-completed-step\" *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-completed-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-completed-step-level2\">\r\n <span class=\"panels-with-border-completed-step-level21\">\r\n <span class=\"panels-with-border-completed-step-level211\">\r\n <svg class=\"w-6 h-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level22\">\r\n <span class=\"panels-with-border-completed-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level222\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"panels-with-border-active-step\" *ngIf=\"step.state === StepState.Active\">\r\n <div aria-current=\"step\">\r\n <span class=\"panels-with-border-active-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-active-step-level2\">\r\n <span class=\"panels-with-border-active-step-level21\">\r\n <span class=\"panels-with-border-active-step-level211\">\r\n <span class=\"panels-with-border-active-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level22\">\r\n <span class=\"panels-with-border-active-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level222\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\" aria-hidden=\"true\" *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 12 82\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\" stroke=\"currentcolor\" vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"panels-with-border-upcoming-step\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-upcoming-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-upcoming-step-level2\">\r\n <span class=\"panels-with-border-upcoming-step-level21\">\r\n <span class=\"panels-with-border-upcoming-step-level211\">\r\n <span class=\"panels-with-border-upcoming-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-upcoming-step-level22\">\r\n <span class=\"panels-with-border-upcoming-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm font-medium text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\" aria-hidden=\"true\" *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 12 82\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\" stroke=\"currentcolor\" vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Progress -->\r\n <div *ngSwitchCase=\"StepperType.Progress\">\r\n <div class=\"mt-6\" aria-hidden=\"true\">\r\n <div class=\"bg-gray-200 rounded-full overflow-hidden\">\r\n <div class=\"h-2 bg-blue-600 rounded-full\" [style.width]=\"(((currentStepIndex + 1) / steps.length) * 100) + '%'\"></div>\r\n </div>\r\n <div class=\"hidden sm:grid grid-cols-4 text-sm font-medium text-gray-600 mt-6\">\r\n <div *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"text-blue-600 cursor-pointer\">\r\n <ng-container *ngIf=\"step.stepLabel\" [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Simple -->\r\n <nav aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Simple\">\r\n <ol role=\"list\" class=\"space-y-4 md:flex md:space-y-0 md:space-x-8\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"md:flex-1 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-blue-600 hover:border-blue-800 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase group-hover:text-blue-800\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"pl-4 py-2 flex flex-col border-l-4 border-blue-600 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-gray-200 hover:border-gray-300 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"text-xs text-gray-500 font-semibold tracking-wide uppercase group-hover:text-gray-700\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n</ng-container>\r\n<ng-container *ngFor=\"let step of steps\">\r\n <ng-container *ngIf=\"step.state === StepState.Active\" [ngTemplateOutlet]=\"step.content\"></ng-container>\r\n</ng-container>","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 { ComponentRef, ViewRef } from '@angular/core';\r\n\r\n/**\r\n * Holds information about the dynamic content.\r\n * @remarks\r\n * `ComponentRef` is undefined in the case content is of `TemplateRef` type.\r\n */\r\nexport class ContentRef {\r\n constructor(public nodes: any[], public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {}\r\n}\r\n","import {\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n ComponentFactory,\r\n Type,\r\n ElementRef,\r\n StaticProvider,\r\n TemplateRef,\r\n ComponentRef,\r\n ApplicationRef,\r\n Injector,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentLoaderOptions } from './component-loader-options.class';\r\nimport { ContentRef } from './content-ref.class';\r\n\r\n/**\r\n * Provides ways of loading and handling dynamic content.\r\n *\r\n * @remarks\r\n * Do NOT use this directly, create an instance through {@link ComponentLoaderFactory}\r\n * You can use this loader in two ways:\r\n * - Attaches a component to `ViewContainerRef`.\r\n * - Attaches a component to `ViewContainerRef`. The attached component has a `<ng-content>` tag inside its view. The {@link ComponentLoaderOptions.content} will be drawn inside this tag.\r\n *\r\n * @internal\r\n */\r\nexport class ComponentLoader<T> {\r\n /**\r\n * Before content is shown event.\r\n */\r\n onBeforeShow = new Subject();\r\n /**\r\n * After show content event.\r\n * @returns The id of newly created component ref.\r\n */\r\n onShown = new Subject();\r\n /**\r\n * Before content is hidden event.\r\n * @returns The instance of attached component;\r\n */\r\n onBeforeHide = new Subject();\r\n /**\r\n * After content is hidden event.\r\n * @returns The id of destroyed component ref.\r\n */\r\n onHidden = new Subject();\r\n\r\n public instance?: T;\r\n public componentRef?: ComponentRef<T>;\r\n private componentFactory?: ComponentFactory<T>;\r\n private container: string | ElementRef | any;\r\n private providers: StaticProvider[] = [];\r\n private contentRef?: ContentRef;\r\n private containerDefaultSelector = 'body';\r\n private innerComponent?: ComponentRef<T>;\r\n constructor(\r\n private vcr: ViewContainerRef | undefined,\r\n private cfr: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector\r\n ) {}\r\n\r\n /**\r\n * Attaches component.\r\n * @param componentType - The type component to attach.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public attach(componentType: Type<T>): ComponentLoader<T> {\r\n this.componentFactory = this.cfr.resolveComponentFactory<T>(componentType);\r\n return this;\r\n }\r\n\r\n /**\r\n * Body will be used in nothing is provided.\r\n * @param container - The element in which dynamic content will be drawn inside to. For string case a query to the dom will be executed to find the element.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public to(container?: string | ElementRef): ComponentLoader<T> {\r\n this.container = container || this.container;\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds provider to the providers array. These providers will be injected to the attached component.\r\n *\r\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\r\n *\r\n * @param provider - Provider to inject.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public provide(provider: StaticProvider): ComponentLoader<T> {\r\n this.providers.push(provider);\r\n return this;\r\n }\r\n\r\n /**\r\n * Attaches attached component to dom and any dynamic content if provided.\r\n * @remarks\r\n * Also triggers the {@link ComponentLoader.onBeforeShow} and {@link ComponentLoader.onShown} events.\r\n *\r\n * @param options - {@link ComponentLoaderOptions}.\r\n * @returns A reference to the created content.\r\n */\r\n public show(options: ComponentLoaderOptions = {}): ComponentRef<T> | undefined {\r\n if (this.componentRef) {\r\n throw Error('Component is already shown');\r\n }\r\n if (!this.componentFactory) {\r\n throw Error('You must attach a component');\r\n }\r\n this.onBeforeShow.next();\r\n\r\n if (options.content) {\r\n this.contentRef = this.getContentRef(options.content, options.context, options.initialState);\r\n }\r\n this.createComponentAndAttachToView(options);\r\n this.appendContentToContainer();\r\n this.markComponentsForCheck();\r\n\r\n this.onShown.next(options.id);\r\n\r\n return this.componentRef;\r\n }\r\n\r\n /**\r\n * Removes attached component from dom.\r\n * @remarks\r\n * Also triggers the {@link ComponentLoader.onBeforeHide} and {@link ComponentLoader.onHidden} events.\r\n *\r\n * @param id - If provided it is returned through the {@link ComponentLoader.onHidden}.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public hide(id?: number | string, result?: any): ComponentLoader<T> {\r\n if (!this.componentRef) {\r\n throw Error('No attached component found to hide');\r\n }\r\n\r\n this.onBeforeHide.next(this.componentRef.instance);\r\n\r\n const componentEl = this.componentRef.location.nativeElement;\r\n componentEl.parentNode.removeChild(componentEl);\r\n if (this.contentRef?.componentRef) {\r\n this.contentRef.componentRef.destroy();\r\n }\r\n if (this.vcr && this.contentRef?.viewRef) {\r\n this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));\r\n }\r\n if (this.contentRef?.viewRef) {\r\n this.contentRef.viewRef.destroy();\r\n }\r\n this.contentRef = void 0;\r\n this.componentRef = void 0;\r\n\r\n this.onHidden.next(id ? { id, result } : null);\r\n\r\n return this;\r\n }\r\n\r\n getInnerComponent(): ComponentRef<T> | undefined {\r\n return this.innerComponent;\r\n }\r\n\r\n private markComponentsForCheck() {\r\n if (this.contentRef?.componentRef) {\r\n this.innerComponent = this.contentRef.componentRef.instance;\r\n this.contentRef.componentRef.changeDetectorRef.markForCheck();\r\n this.contentRef.componentRef.changeDetectorRef.detectChanges();\r\n }\r\n this.componentRef!.changeDetectorRef.markForCheck();\r\n this.componentRef!.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private createComponentAndAttachToView(options: ComponentLoaderOptions) {\r\n const injector = Injector.create({\r\n providers: this.providers,\r\n parent: this.injector,\r\n });\r\n this.componentRef = this.componentFactory!.create(injector, this.contentRef?.nodes);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.instance = this.componentRef.instance;\r\n Object.assign(this.componentRef.instance, options);\r\n }\r\n\r\n private appendContentToContainer() {\r\n if (this.container instanceof ElementRef) {\r\n this.container.nativeElement.appendChild(this.componentRef?.location.nativeElement);\r\n }\r\n if (typeof this.container === 'string' && typeof document !== 'undefined') {\r\n const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);\r\n if (!selectedElement) {\r\n return;\r\n }\r\n selectedElement.appendChild(this.componentRef?.location.nativeElement);\r\n }\r\n }\r\n\r\n private getContentRef(content?: string | TemplateRef<any>, context?: any, initialState?: any): ContentRef {\r\n //TemplateRef case\r\n if (content instanceof TemplateRef) {\r\n if (this.vcr) {\r\n const viewRef = this.vcr.createEmbeddedView<TemplateRef<T>>(content, context);\r\n viewRef.markForCheck();\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n const viewRef = content.createEmbeddedView({});\r\n this.applicationRef.attachView(viewRef);\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n\r\n //Component case\r\n if (typeof content === 'function') {\r\n const contentCf = this.cfr.resolveComponentFactory(content);\r\n const injector = Injector.create({\r\n providers: this.providers,\r\n parent: this.injector,\r\n });\r\n const componentRef = contentCf.create(injector);\r\n Object.assign(componentRef.instance, initialState);\r\n this.applicationRef.attachView(componentRef.hostView);\r\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\r\n }\r\n\r\n throw Error('Unsupported content type');\r\n }\r\n}\r\n","import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, ViewContainerRef } from '@angular/core';\r\nimport { ComponentLoader } from './component-loader.class';\r\n\r\n/**\r\n * Use to create instances of {@link ComponentLoader}.\r\n *\r\n * @public\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class ComponentLoaderFactory {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private applicationRef: ApplicationRef\r\n ) {}\r\n\r\n /**\r\n * Returns a new instance of {@link ComponentLoader}\r\n * @param viewContainerRef - The view container the dynamic content will be attached to.\r\n * @returns A new instance of {@link ComponentLoader}.\r\n *\r\n * @public\r\n */\r\n createLoader<T>(viewContainerRef?: ViewContainerRef): ComponentLoader<T> {\r\n return new ComponentLoader<T>(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);\r\n }\r\n}\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { User } from 'oidc-client';\r\nimport { Subscription } from 'rxjs';\r\nimport { APP_LINKS } from '../../tokens';\r\n\r\n@Component({\r\n selector: 'lib-user-profile-menu',\r\n templateUrl: './user-profile-menu.component.html'\r\n})\r\nexport class UserProfileMenuComponent implements OnInit {\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-user-name') showUserName: boolean | undefined = false;\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 public userMenuExpanded = false;\r\n\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(APP_LINKS) public links: any) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.loadUser().subscribe((user) => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n console.error(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\r\n // console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\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.signinRedirect();\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)}`.toUpperCase();\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}\r\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <div class=\"inline-flex\">\r\n <!-- Username -->\r\n <div [ngClass]=\"{'shell-header-profile': showUserName}\">\r\n <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n </div>\r\n\r\n <div [class.ml-2]=\"showUserName\">\r\n <button type=\"button\" \r\n *ngIf=\"user\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin($event)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"userMenuExpanded ?\r\n 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\r\n :\r\n 'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\"\r\n role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [link-class]=\"'nav-link-profile'\"\r\n [link-active-class]=\"'nav-link-profile-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n\r\n</div>\r\n\r\n","import { IAppNotifications, NavLink } from './../../types';\r\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, of, Subscription } from 'rxjs';\r\nimport { APP_LINKS, APP_NOTIFICATIONS } from '../../tokens';\r\n\r\n@Component({\r\n selector: 'lib-notifications-indicator',\r\n templateUrl: './notifications-indicator.component.html'\r\n})\r\nexport class NotificationsIndicatorComponent implements OnInit, OnDestroy {\r\n\r\n public menuExpanded = false;\r\n public unreadCount = 0;\r\n public items: any[] = [];\r\n public allNotificationsLink?: NavLink;\r\n private notificationsSub$: Subscription | undefined;\r\n private inboxAction: any | undefined = undefined;\r\n public newArrival = false;\r\n constructor(@Inject(APP_NOTIFICATIONS) public notifications?: IAppNotifications, @Inject(APP_LINKS) public links?: any) { }\r\n\r\n ngOnDestroy(): void {\r\n if (this.notificationsSub$) {\r\n this.notificationsSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.links && this.links['notifications']) {\r\n (this.links['notifications'] as Observable<NavLink>).subscribe(notificationsLink => {\r\n this.allNotificationsLink = notificationsLink;\r\n });\r\n }\r\n if(this.notifications) {\r\n this.notificationsSub$ = this.notifications?.messages.subscribe(result => {\r\n if (result.items){\r\n this.newArrival = true;\r\n this.unreadCount = result.count;\r\n this.items = result.items;\r\n setTimeout( () => { this.newArrival = false; }, 1000 );\r\n }\r\n });\r\n }\r\n }\r\n\r\n public doInboxAction(): void {\r\n if (this.notifications?.inboxAction) {\r\n this.notifications.inboxAction();\r\n } else {\r\n this.menuExpanded = !this.menuExpanded;\r\n }\r\n this.unreadCount = 0;\r\n }\r\n\r\n public removeItem(index:number){\r\n this.items.splice(index,1);\r\n }\r\n\r\n // this.notificationsSub$ = this.links.notifications?.pipe(map(result => {\r\n // this.allItemsLink = result.allNotifications;\r\n // this.items = result.items;\r\n // this.unreadCount = result.count;\r\n // }));\r\n\r\n // [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;\r\n // this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;\r\n // this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;\r\n // this.getUnreadNotificationsCount();\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.menuExpanded = false;\r\n }\r\n\r\n}\r\n","<div class=\"relative\"\r\n(clickOutside)=\"onClickOutside($event)\">\r\n <!-- Notifications Button -->\r\n <button type=\"button\"\r\n (click)=\"doInboxAction()\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">\r\n <i class=\"ms-Icon hover:text-blue-400\"\r\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\r\n [class.text-sky-400]=\"unreadCount > 0\"\r\n [class.animate-notification]=\"newArrival\"\r\n [class.ms-Icon--Message]=\"unreadCount === 0\">\r\n </i>\r\n </span>\r\n <span\r\n *ngIf=\"unreadCount > 0\"\r\n [class.animate-pulse]=\"newArrival\"\r\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\r\n {{ unreadCount }}\r\n </span>\r\n </span>\r\n </button>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\r\n </ng-container>\r\n <ng-template #messagesDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"items; else loading\">\r\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let message of items; let i = index\">\r\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\r\n <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a\r\n [routerLink]=\"message.path\"\r\n (click)=\"removeItem(i)\"\r\n class=\"notifications-nav-link grid\"\r\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\r\n >\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ message.data.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"allNotificationsLink!.path\">\r\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n","import { MenuOption } from './../../types';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { APP_LANGUAGES } from '../../tokens';\r\nimport { IAppLanguagesService } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-language-selection',\r\n templateUrl: './language-selection.component.html'\r\n})\r\nexport class LanguageSelectionComponent implements OnInit {\r\n\r\n public menuExpanded = false;\r\n constructor(@Inject(APP_LANGUAGES) public langsService: IAppLanguagesService | undefined) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public selectLang(option: MenuOption): void {\r\n if (this.langsService?.setSelected) {\r\n this.langsService.setSelected(option.value);\r\n }\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.menuExpanded = false;\r\n }\r\n}\r\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"text-blue-300 hover:text-blue-400\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <span>{{langsService?.selected || langsService?.default}}</span>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none':'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ShellLayoutType } from './../../../types';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\r\nimport { User } from 'oidc-client';\r\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\r\nimport { filter, share } from 'rxjs/operators';\r\nimport { NavLink } from '../../../types';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { BehaviorSubject, isObservable, observable, Observable, of } 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 // tslint:disable-next-line:no-input-rename\r\n @Input('show-userName') showUserNameOnHeader: boolean | undefined = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-alerts') showAlerts: boolean | undefined = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-langs') showLangs: boolean | undefined = false;\r\n @Input() border = true;\r\n public sectionLinks: Observable<NavLink[]> = of([]);\r\n public mobileMenuExpanded = false;\r\n public userMenuExpanded = false;\r\n protected routeSubject: Observable<Event>;\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 public activeFragment: any | null = null;\r\n\r\n constructor(\r\n @Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\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 }\r\n\r\n ngOnInit(): void {\r\n this.activeFragment = this.route.fragment.pipe(share());\r\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<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().subscribe((user) => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n console.error(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\r\n // console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\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 // 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.signinRedirect();\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)}`.toUpperCase();\r\n }\r\n }\r\n\r\n}\r\n\r\n","<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-logo-container\">\r\n <div>\r\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <div class=\"shell-header-link-container-inner\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link'\"\r\n [link-active-class]=\"'nav-link-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profileActions\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'shell-header-menu-rounded-button'\"\r\n [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\r\n </lib-nav-links-list>\r\n\r\n\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n\r\n <div *ngIf=\"!user\">\r\n <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>Σύνδεση\r\n </a>\r\n </div>\r\n\r\n <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <!--\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n -->\r\n </div>\r\n </div>\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</nav>\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","<footer class=\"shell-footer-component-container\">\r\n <div class=\"shell-footer-paddings\">\r\n <div class=\"shell-footer-component-container-inner\">\r\n <div class=\"shell-footer-sections-container\">\r\n <div class=\"shell-footer-section\">\r\n <img class=\"shell-footer-logo-h\" src=\"assets/images/branding/indice.png\" alt=\"INDICE logo\" />\r\n <nav class=\"mt-4\">\r\n <ul class=\"space-y-2\">\r\n <ng-container *ngFor=\"let link of links.brand | async\">\r\n <li>\r\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"shell-footer-section-links\">\r\n <h5 class=\"shell-footer-section-title\">Legal</h5>\r\n <nav class=\"mt-4\">\r\n <ul class=\"grid lg:grid-cols-2\">\r\n <ng-container *ngFor=\"let link of links.legal | async\">\r\n <li class=\"mb-2\">\r\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"shell-footer-section-links\">\r\n <h5 class=\"shell-footer-section-title\">Follow us</h5>\r\n <nav class=\"mt-4\">\r\n <ul class=\"grid lg:grid-cols-2\">\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path d=\"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84\"/>\r\n </svg>\r\n <span> Twitter </span>\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fill-rule=\"evenodd\" d=\"M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span> Instagram </span>\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\" >\r\n <path fill-rule=\"evenodd\" d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span> Facebook </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"shell-footer-copyright\">\r\n <!--<nav class=\"flex flex-wrap justify-center space-x-6\">\r\n <a href=\"#\" class=\"font-normal text-sm hover:text-gray-100 mb-2\">Cookie settings</a>\r\n </nav>-->\r\n <p class=\"text-sm text-center sm:text-right\">\r\n © 2021 INDICE. All rights reserved.\r\n </p>\r\n </div>\r\n </div>\r\n</footer>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IShellConfig } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-stacked-layout',\r\n templateUrl: './shell-stacked-layout.component.html'\r\n})\r\nexport class ShellStackedLayoutComponent implements OnInit {\r\n @Input() config: IShellConfig | undefined;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"shell-header-container\" *ngIf=\"config?.showHeader\">\r\n <div [class]=\"config?.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n <ng-container *ngIf=\"config?.customHeaderComponent\">\r\n <div appDynamicComponentHost =\"Header\"></div>\r\n </ng-container>\r\n <lib-shell-header *ngIf=\"!config?.customHeaderComponent\" [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\" [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-header>\r\n </div>\r\n</div>\r\n\r\n<main [class]=\"config?.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"config?.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet *ngIf=\"(!config || config.layout === 'Stacked' || !config.layout)\"></router-outlet>\r\n </div>\r\n</main>\r\n\r\n<div class=\"shell-footer-container\" *ngIf=\"config?.showFooter\">\r\n <div [class]=\"config?.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"config?.customFooterComponent\">\r\n <div appDynamicComponentHost hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!config?.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n</div>","import { IShellConfig, NavLink } from './../../../types';\r\nimport { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { of } from 'rxjs';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { share } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar',\r\n templateUrl: './shell-sidebar.component.html'\r\n})\r\nexport class ShellSidebarComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('section-links') sectionLinksPath = 'main';\r\n public sectionLinks: Observable<NavLink[]> = of([]);\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('config') shellConfig: IShellConfig | undefined = undefined;\r\n public activeFragment: any | null = null;\r\n constructor(@Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(APP_LINKS) public links: any) { }\r\n\r\n ngOnInit(): void {\r\n this.activeFragment = this.route.fragment.pipe(share());\r\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\r\n }\r\n\r\n}\r\n","<!-- Sidebar component, swap this element with another sidebar if you like -->\r\n<div class=\"shell-sidebar-component-container\">\r\n <div class=\"shell-sidebar-component-links-container sidebar\">\r\n <lib-nav-links-list\r\n [show-icons]=\"true\"\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'sidebar nav-link group'\"\r\n [link-active-class]=\"'sidebar nav-link-active group'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</div>\r\n","\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { Component, Inject, Input } from '@angular/core';\r\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { ShellHeaderComponent } from '../shell-header/shell-header.component';\r\nimport { ShellLayoutType } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar-header',\r\n templateUrl: './shell-sidebar-header.component.html'\r\n})\r\nexport class ShellSidebarHeaderComponent extends ShellHeaderComponent {\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n super(authService, router, route, config, links);\r\n }\r\n\r\n}\r\n","<div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IShellConfig } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar-layout',\r\n templateUrl: './shell-sidebar-layout.component.html'\r\n})\r\nexport class ShellSidebarLayoutComponent implements OnInit {\r\n \r\n @Input() config: IShellConfig | undefined;\r\n public showMobileSidebar = true;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public toggleMobileSidebar(): void {\r\n this.showMobileSidebar = !this.showMobileSidebar;\r\n }\r\n\r\n}\r\n","<div>\r\n <!-- Off-canvas menu for mobile, show/hide based on off-canvas menu state. -->\r\n <div class=\"sidebar-off-canvas-menu-container\" role=\"dialog\" aria-modal=\"true\">\r\n <!-- Off-canvas menu backdrop, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-menu-backdrop\" \r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"showMobileSidebar\">\r\n </div>\r\n \r\n <div class=\"sidebar-off-canvas-menu-container-inner\" \r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"showMobileSidebar\" \r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"!showMobileSidebar\">\r\n <!-- Off-canvas menu, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <!--Close button, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\" class=\"sidebar-off-canvas-toggle-button\" (click)=\"showMobileSidebar = !showMobileSidebar\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"h-6 w-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n \r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n \r\n </div>\r\n \r\n <div class=\"sidebar-dummy-element\" aria-hidden=\"true\">\r\n <!-- Dummy element to force sidebar to shrink to fit close icon -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- Static sidebar for desktop -->\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n \r\n <div class=\"sidebar-static-menu-container\" \r\n [class.sidebar-static-menu-container-active]=\"showMobileSidebar\" \r\n [class.sidebar-static-menu-container-not-active]=\"!showMobileSidebar\">\r\n <!-- Sidebar component, swap this element with another sidebar if you like -->\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"sidebar-static-menu-wrapper\" [class.sidebar-static-menu-wrapper-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-toggle-button-container\">\r\n <button type=\"button\" class=\"sidebar-static-menu-toggle-button\" (click)=\"showMobileSidebar = !showMobileSidebar\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <!-- Heroicon name: outline/menu-alt-2 -->\r\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n \r\n <!-- sidebar-static-menu-header-container -->\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\" *ngIf=\"!showMobileSidebar\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header \r\n [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\" \r\n [show-langs]=\"config?.showLangsOnHeader\"></lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <div class=\"shell-content-container-inner\">\r\n <!-- YOU NEED TO ADD/REMOVE THIS FROM DOM DEPENDING ON THE SELECTED LAYOUT ESPECIALLY IN THE CASE OF LAYOUT SWITCHING!!! -->\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n </div>","import { SHELL_CONFIG } from './../../../tokens';\r\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\r\nimport { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, QueryList, AfterViewChecked } 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, timer } from 'rxjs';\r\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\r\nimport { ComponentLoaderFactory } from '../../../services/component-loader/component-loader.factory';\r\n\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, AfterViewChecked {\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 public loaded = false;\r\n public hideSidebar = false;\r\n constructor(\r\n @Inject(DOCUMENT) private document: any,\r\n private router: Router,\r\n private location: Location,\r\n @Inject(SHELL_CONFIG) private config: IShellConfig | undefined,\r\n private componentLoaderFactory: ComponentLoaderFactory\r\n ) {\r\n if (!config) {\r\n config = new DefaultShellConfig();\r\n }\r\n this.activeConfig = config;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n setTimeout(() => { this.loaded = true; }, 200);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routerSub$ = this.router.events.pipe(filter((event) => event instanceof ActivationStart)).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 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 const clf = this.componentLoaderFactory.createLoader(viewContainerRef);\r\n const headerCompRef = clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();\r\n }\r\n }\r\n }\r\n}\r\n","<div [class.none]=\"!loaded\" [class.block]=\"loaded\">\r\n\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\" class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\" class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"></lib-shell-sidebar-layout>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>","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 // 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 if (this.searchInput$?.nativeElement){\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 }\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 this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n }\r\n\r\n public handleClear(event: any): void {\r\n console.log('handle clear!!!');\r\n event.stopPropagation();\r\n this.onSearch.emit(event.target?.value);\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","<header *ngIf=\"header\" class=\"view-layout-paddings\">\r\n\r\n <div class=\"view-layout-title-container\">\r\n\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex items-center justify-end\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"ml-1 disabled:opacity-50 btn-view-header\" (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\" class=\"selected-view-indicator\"></span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\" #search class=\"search-input\" [placeholder]=\"searchPlaceholder\"\r\n type=\"search\" name=\"search\" (input)=\"searchActionType(search.value)\" (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\" href=\"#\" class=\"btn-view-header rounded-l-none\" [title]=\"action.tooltip\" (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\" href=\"#\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n\r\n<!-- component -->\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>\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 this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\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","<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\">\r\n <main class=\"model-view-container\">\r\n <div class=\"model-view-container-inner\">\r\n <aside class=\"model-view-aside\">\r\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\r\n <div class=\"model-view-aside-header-container\">\r\n <div class=\"model-view-aside-header-container-inner\">\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container\">\r\n <nav class=\"model-view-menu-nav\">\r\n <div class=\"model-view-menu-item\">\r\n <ng-container *ngFor=\"let section of primary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"model-view-menu-item-far\">\r\n <ng-container *ngFor=\"let section of secondary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLinkActiveOptions]=\"{ exact: true }\"\r\n [routerLink]=\"section.link\"\r\n class=\"view-nav-link\">\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </nav>\r\n </div>\r\n </div>\r\n </section>\r\n </aside>\r\n <div class=\"model-view-details-container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </main>\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 // tslint:disable-next-line:no-input-rename\r\n @Input('force-location-back') forceLocationBack = false;\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 if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {\r\n this.router.navigateByUrl(this.router.url.split('/(')[0]);\r\n } else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {\r\n this.router.navigateByUrl(this.router.url.split('(')[0]);\r\n } else {\r\n this.location.back();\r\n }\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","<div class=\"side-view-layout-size-box\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\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\r\n constructor(private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.searchInput$?.nativeElement){\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 }\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.onComplete.emit(true);\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 this.onSearch.emit(this.searchInput$?.nativeElement.value);\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","<div class=\"form-layout-container\">\r\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">\r\n {{ title }}\r\n </h3>\r\n <p class=\"form-subtitle\">\r\n {{ subTitle }}\r\n </p>\r\n </div>\r\n <div class=\"form-header-actions\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"form-search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\">\r\n </div>\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"btn-form-view-header-search\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"form-content-container\">\r\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\r\n <router-outlet name=\"formRightPane\"\r\n (activate)=\"formPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n</div>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n selector: 'lib-auth-callback',\r\n templateUrl: './auth-callback.component.html'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n public status = 'παρακαλώ περιμένετε...';\r\n\r\n public ngOnInit(): void {\r\n this.authService.signinRedirectCallback().subscribe((user) => {\r\n if (user) {\r\n this.router.navigateByUrl(user.state?.url || '/');\r\n }\r\n });\r\n }\r\n}\r\n","<lib-view-layout [title]=\"status\" [busy]=\"true\"></lib-view-layout>","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n selector: 'lib-auth-renew',\r\n template: ''\r\n})\r\nexport class AuthRenewComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n public ngOnInit(): void {\r\n this.authService.signinSilentCallback().subscribe(user => {\r\n if (!user) {\r\n this.router.navigate(['/unauthorized']);\r\n }\r\n });\r\n }\r\n}\r\n","import { AuthService } from '@indice/ng-auth';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\n\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 constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n public status = 'working on it, please give me a sec...';\r\n public finished = false;\r\n\r\n public ngOnInit(): void {\r\n this.authService.removeUser().subscribe(() => {\r\n this.status = 'Thank you!';\r\n this.finished = true;\r\n });\r\n }\r\n}\r\n","<lib-view-layout title=\"Έχετε αποσυνδεθεί με επιτυχία!\"></lib-view-layout>","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","<lib-view-layout [show-header]=\"false\" title=\"500 - παρουσιάστηκε σφάλμα!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">500</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">σφάλμα, κατι δεν πήγε καλά...!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\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","<lib-view-layout [show-header]=\"false\" title=\"404 - δεν βρέθηκε!\">\r\n <div class=\"text-gray-900\">\r\n <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\r\n <span class=\"block\">404</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-800\">δεν βρέθηκε η σελίδα που ζητήσατε!</p>\r\n <a href=\"/\"\r\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-unauthorized',\r\n templateUrl: './unauthorized.component.html'\r\n})\r\nexport class UnauthorizedComponent implements OnInit {\r\n constructor() { }\r\n\r\n public ngOnInit(): void { }\r\n}\r\n","<lib-view-layout [show-header]=\"false\" title=\"401 - δεν επιτρέπεται η πρόσβαση!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">401</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">δεν έχετε τα κατάλληλα δικαιώματα πρόσβασης!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n </lib-view-layout>\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 { FilterClause, QueryParameters, SearchOption } from './../controls/advanced-search/models';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, 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 filters: FilterClause[] = [];\r\n public searchOptions: SearchOption[] = [];\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 public getViewActions(): Observable<ViewAction[]> {\r\n const 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 actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\r\n }\r\n return of(actions);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getViewActions().subscribe(actions => {\r\n this.actions = actions || [];\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') !== null && 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('dir') !== this.sortdir) {\r\n this.sortdir = params.get('dir');\r\n }\r\n // initialize filters that may reside in the query string\r\n this.filters = this.getFiltersFrom(params);\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 /**\r\n * Get filters from a querystring\r\n * @param queryParamMap\r\n * @returns filters found from a paramMap\r\n */\r\n private getFiltersFrom(queryParamMap: ParamMap): FilterClause[] {\r\n let filterResult: FilterClause[] = [];\r\n if (queryParamMap.has(QueryParameters.FILTER) && queryParamMap.get(QueryParameters.FILTER)!.length > 0) {\r\n let filterValue = queryParamMap.get(QueryParameters.FILTER);\r\n const filterValues = filterValue?.split(\",\"); // we may have multiple filters in filter query param\r\n if (filterValues && filterValues.length > 0) {\r\n // create the filterClauses derived from the query params\r\n for (var index in filterValues) {\r\n let filterClause = FilterClause.parse(filterValues[index]);\r\n const parsed = new FilterClause(filterClause!.member, filterClause!.value, filterClause!.operator, filterClause!.dataType, this.searchOptions);\r\n if (parsed !== undefined) {\r\n filterResult.push(parsed);\r\n }\r\n }\r\n }\r\n }\r\n return filterResult;\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 filter: this.filterClausesToString(this.filters)\r\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\r\n });\r\n }\r\n\r\n private filterClausesToString(filters: FilterClause[] | undefined) {\r\n return filters?.map((f: FilterClause) => {\r\n if (f.dataType === 'datetime') {\r\n f.value = (new Date(f.value)).toISOString();\r\n }\r\n return f.toString();\r\n }).join(',');\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 advancedSearchChanged(filters: FilterClause[]): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.filters = filters;\r\n this.setRouteParams();\r\n this.load();\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","export const cssClassNames = {\r\n backdrop: 'modal-backdrop',\r\n show: 'show',\r\n fade: 'fade',\r\n\tmodalOpen: 'modal-open'\r\n};\r\n\r\nexport const animationTime = {\r\n backdrop: 150,\r\n modal: 300,\r\n};\r\n","import { Component, ElementRef, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { ComponentLoader } from '../component-loader/component-loader.class';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\n\r\n/**\r\n * Background layer for modals.\r\n * Override class name to theme it.\r\n * @see {@link cssClassNames}\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'lib-modal-backdrop',\r\n encapsulation: ViewEncapsulation.None,\r\n template: '',\r\n host: {\r\n class: cssClassNames.backdrop,\r\n },\r\n})\r\nexport class ModalBackdropComponent implements OnInit {\r\n private animationsEnabled = false;\r\n private backdropLoader: ComponentLoader<ModalBackdropComponent> | undefined;\r\n constructor(private element: ElementRef, private renderer: Renderer2) {}\r\n\r\n ngOnInit(): void {\r\n if (this.animationsEnabled) {\r\n this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);\r\n this.reflow(this.element.nativeElement);\r\n }\r\n this.renderer.addClass(this.element.nativeElement, cssClassNames.show);\r\n }\r\n\r\n public hide() {\r\n this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);\r\n setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);\r\n }\r\n\r\n reflow(element: any): void {\r\n ((bs: any): void => bs)(element.offsetHeight);\r\n }\r\n}\r\n","import { Injectable, InjectionToken, StaticProvider } from '@angular/core';\r\n\r\n/**\r\n * Modals option can be passed to a specific modal from {@link ModalService.show} or\r\n * set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.\r\n * @remarks\r\n * Modal specific options are merged with global options.\r\n * @see {@link modalConfigDefaults} for defaults.\r\n * @public\r\n */\r\n@Injectable()\r\nexport class ModalOptions<T = Record<string, unknown>> {\r\n /**\r\n * Id for opened modal. If not set a random one is generated.\r\n */\r\n id?: number | string;\r\n /**\r\n * If static is set the modal will not close when clicking outside of modal.\r\n * @remarks\r\n * Keyboard event (escape key) stills applies. If you must get a result then also set keyboard to false.\r\n */\r\n backdrop?: boolean | 'static';\r\n /**\r\n * Closes the modal when escape key is pressed.\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Shows the modal when initialized.\r\n */\r\n show?: boolean;\r\n /**\r\n * Ignore the backdrop click. Pretty much the same as backdrop static.\r\n */\r\n ignoreBackdropClick?: boolean;\r\n /**\r\n * Css class for opened modal.\r\n */\r\n class?: string;\r\n /**\r\n * Toggle animation.\r\n */\r\n animated?: boolean;\r\n /**\r\n * Modal initial data.\r\n * @remarks\r\n * This data must be known properties of content component.\r\n */\r\n initialState?: Partial<T>;\r\n /**\r\n * Function to intercept the closure.\r\n * @remarks\r\n * You can use to catch the close event and even prevent it from closing.\r\n */\r\n closeInterceptor?: CloseInterceptorFn;\r\n /**\r\n * Modal static providers.\r\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\r\n */\r\n providers?: StaticProvider[];\r\n /**\r\n * aria-labelledby attribute value to set on the modal window.\r\n */\r\n ariaLabelledBy?: string;\r\n /**\r\n * aria-describedby attribute value to set on the modal window.\r\n */\r\n ariaDescribedby?: string;\r\n}\r\n\r\n/**\r\n * Default option values.\r\n */\r\nexport const modalConfigDefaults: ModalOptions = {\r\n backdrop: true,\r\n keyboard: true,\r\n show: false,\r\n ignoreBackdropClick: false,\r\n class: '',\r\n animated: true,\r\n initialState: {},\r\n closeInterceptor: void 0,\r\n};\r\n\r\n/**\r\n * Use this injection token to set global options.\r\n */\r\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> = new InjectionToken<ModalOptions>('override-default-config');\r\n\r\n/**\r\n * Close interceptor promise.\r\n */\r\nexport type CloseInterceptorFn = () => Promise<void>;\r\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer2 } from '@angular/core';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\nimport { ModalOptions } from './modal-options.class';\r\nimport { ModalService } from './modal-service';\r\n\r\n/**\r\n * Modal container component.\r\n * @remarks\r\n * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.\r\n * You can override css classes to theme it {@link cssClassNames}\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'lib-modal-container',\r\n template: `\r\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\" focusTrap>\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n host: {\r\n class: 'modal',\r\n role: 'dialog',\r\n tabindex: '-1',\r\n '[attr.aria-modal]': 'true',\r\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\r\n '[attr.aria-describedby]': 'config.ariaDescribedby',\r\n },\r\n})\r\nexport class ModalContainerComponent implements OnInit, OnDestroy {\r\n public level?: number;\r\n public config: ModalOptions;\r\n public modalService?: ModalService;\r\n private isShown = false;\r\n private animationsEnabled = false;\r\n private isModalHiding = false;\r\n private clickStartedInContent = false;\r\n constructor(options: ModalOptions, protected _element: ElementRef, private renderer: Renderer2) {\r\n this.config = Object.assign({}, options);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.animationsEnabled) {\r\n this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);\r\n }\r\n this.renderer.setStyle(this._element.nativeElement, 'display', 'block');\r\n setTimeout(\r\n () => {\r\n this.isShown = true;\r\n this.renderer.addClass(this._element.nativeElement, cssClassNames.show);\r\n },\r\n this.animationsEnabled ? animationTime.backdrop : 0\r\n );\r\n if (this._element.nativeElement) {\r\n this._element.nativeElement.focus();\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onClickStarted(event: MouseEvent): void {\r\n this.clickStartedInContent = event.target !== this._element.nativeElement;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClickStop(event: MouseEvent): void {\r\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\r\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\r\n this.clickStartedInContent = false;\r\n return;\r\n }\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:popstate')\r\n onPopState(): void {\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:keydown.esc', ['$event'])\r\n onEsc(event: KeyboardEvent): void {\r\n if (!this.isShown) {\r\n return;\r\n }\r\n if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {\r\n event.preventDefault();\r\n }\r\n if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {\r\n this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.isShown) {\r\n this._hide();\r\n }\r\n }\r\n\r\n hide(result?: any): void {\r\n if (this.isModalHiding || !this.isShown) {\r\n return;\r\n }\r\n if (this.config.closeInterceptor) {\r\n this.config.closeInterceptor().then(\r\n () => this._hide(),\r\n () => undefined\r\n );\r\n return;\r\n }\r\n this._hide(result);\r\n }\r\n\r\n private _hide(result?: any): void {\r\n this.isModalHiding = true;\r\n this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);\r\n setTimeout(\r\n () => {\r\n this.isShown = false;\r\n this.modalService?.hide(this.config.id, result);\r\n this.isModalHiding = false;\r\n },\r\n this.animationsEnabled ? animationTime.modal : 0\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n/**\r\n * Modal class.\r\n * @remarks\r\n * This is returned from {@link ModalService.show}.\r\n * @public\r\n */\r\n@Injectable()\r\nexport class Modal<T = any> {\r\n /**\r\n * Event that is fired when the modal behind the ref starts hiding.\r\n * @returns\r\n * Modal component instance.\r\n */\r\n onBeforeHide?: Subject<unknown>;\r\n /**\r\n * Event that is fired when the modal behind the ref finishes hiding.\r\n * @returns\r\n * An object containing the id of the closed modal and result.\r\n */\r\n onHidden?: Subject<unknown>;\r\n /**\r\n * Id of this modal.\r\n */\r\n id?: number | string;\r\n\r\n /**\r\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef.\r\n * @remarks\r\n * You can use this to do nasty stuff with opened modal instance.\r\n */\r\n content?: T;\r\n\r\n /**\r\n * Hides the modal\r\n * @param result - A result to the observers.\r\n */\r\n hide: (result?: any) => void = () => void 0;\r\n /**\r\n * Sets new class to modal window.\r\n */\r\n setClass: (newClass: string) => void = () => void 0;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { ComponentRef, Inject, Injectable, OnDestroy, Optional, Renderer2, RendererFactory2, TemplateRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentLoader } from '../component-loader/component-loader.class';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\nimport { ModalBackdropComponent } from './modal-backdrop-component';\r\nimport { ModalContainerComponent } from './modal-container-component';\r\nimport { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';\r\nimport { Modal } from './modal.class';\r\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\r\n\r\n/**\r\n * A service for using modals.\r\n *\r\n * @public\r\n */\r\n@Injectable()\r\nexport class ModalService implements OnDestroy {\r\n private onBeforeShow = new Subject();\r\n private onShown = new Subject();\r\n private onBeforeHide = new Subject();\r\n private onHidden = new Subject();\r\n\r\n private backdropRef?: ComponentRef<ModalBackdropComponent>;\r\n private defaultConfig: ModalOptions;\r\n private backdropLoader: ComponentLoader<ModalBackdropComponent>;\r\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\r\n private renderer: Renderer2;\r\n private modalsCount = 0;\r\n private initialPadding = '0px';\r\n constructor(\r\n private clf: ComponentLoaderFactory,\r\n rendererFactory: RendererFactory2,\r\n @Inject(DOCUMENT) private document: any,\r\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions\r\n ) {\r\n this.backdropLoader = this.clf.createLoader<ModalBackdropComponent>();\r\n this.defaultConfig = { ...modalConfigDefaults, ...modalDefaultOption };\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.loaders.forEach((loader) => loader.instance?.hide());\r\n }\r\n\r\n /**\r\n * Opens a new modal.\r\n *\r\n * @param content - `Component` or `TemplateRef` type.\r\n * @param config - Specific {@link ModalOptions | options} for this modal. Global and specific options are merged.\r\n * @returns An instance of {@link Modal}\r\n */\r\n public show<T>(content: string | TemplateRef<any> | { new (...args: any[]): T }, config?: ModalOptions<T>) {\r\n this.modalsCount++;\r\n const combinedConfig = { ...this.defaultConfig, ...config };\r\n combinedConfig.id = config?.id || new Date().getUTCMilliseconds();\r\n this.createLoaders();\r\n\r\n this.addBodyPadding();\r\n if (this.modalsCount === 1) {\r\n this.renderer.addClass(this.document.body, cssClassNames.modalOpen);\r\n }\r\n this.showBackdrop(combinedConfig);\r\n return this.showModal<T>(content, combinedConfig);\r\n }\r\n\r\n /**\r\n * Hide an active modal.\r\n * @param id - Id of modal to hide. If not provided all active modals are hidden.\r\n * @param result - A result to be sent to observers.\r\n */\r\n public hide(id?: number | string, result?: any) {\r\n if (this.modalsCount === 1 || id == null) {\r\n this.hideBackdrop();\r\n this.revertScrollbar();\r\n this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);\r\n }\r\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\r\n setTimeout(\r\n () => {\r\n this.hideModal(id, result);\r\n this.removeLoaders(id);\r\n },\r\n //Bug\r\n //Should use combined config but for the moment is not possible to pass it this parameter.\r\n //If config is an instance variable then every newly opened modal will override the config\r\n //resulting in opened modals to get a new configuration\r\n this.defaultConfig.animated ? animationTime.backdrop : 0\r\n );\r\n }\r\n\r\n public getActiveModal(): ModalContainerComponent {\r\n return this.loaders[this.modalsCount - 1].instance as ModalContainerComponent;\r\n }\r\n\r\n private showModal<T>(content: any, combinedConfig: ModalOptions): Modal<T> {\r\n const modalLoader = this.loaders[this.loaders.length - 1];\r\n if (combinedConfig && combinedConfig.providers) {\r\n combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));\r\n }\r\n\r\n const modal = new Modal<any>();\r\n const modalContainerRef = modalLoader\r\n .provide({ provide: ModalOptions, useValue: combinedConfig })\r\n .provide({ provide: Modal, useValue: modal })\r\n .attach(ModalContainerComponent)\r\n .to('body');\r\n\r\n modal.setClass = (newClass: string) => {\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.config.class = newClass;\r\n }\r\n };\r\n\r\n modal.onBeforeHide = new Subject();\r\n modal.onHidden = new Subject();\r\n this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);\r\n this.copyEvent(modalLoader.onHidden, modal.onHidden);\r\n modalContainerRef.show({\r\n content,\r\n animationsEnabled: combinedConfig.animated,\r\n initialState: combinedConfig.initialState,\r\n modalService: this,\r\n id: combinedConfig.id,\r\n });\r\n\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.level = this.modalsCount;\r\n modal.content = modalLoader.getInnerComponent();\r\n modal.id = modalContainerRef.instance.config?.id;\r\n modal.hide = (res) => modalContainerRef.instance?.hide(res);\r\n }\r\n\r\n return modal;\r\n }\r\n\r\n private hideModal(id?: number | string, result?: any): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\r\n const modalLoader = this.loaders[indexToRemove];\r\n if (modalLoader) {\r\n modalLoader.hide(id, result);\r\n }\r\n } else {\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>) => {\r\n if (loader.instance) {\r\n loader.hide(loader.instance.config.id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private showBackdrop(combinedConfig: ModalOptions): void {\r\n const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';\r\n const isBackdropInDOM = this.backdropRef != null;\r\n if (isBackdropEnabled && !isBackdropInDOM) {\r\n this.backdropLoader\r\n .attach(ModalBackdropComponent)\r\n .to('body')\r\n .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });\r\n this.backdropRef = this.backdropLoader.componentRef;\r\n }\r\n }\r\n\r\n private hideBackdrop(): void {\r\n if (!this.backdropRef) {\r\n return;\r\n }\r\n this.backdropRef.instance.hide();\r\n this.backdropRef = void 0;\r\n }\r\n\r\n private removeLoaders(id?: number | string): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\r\n if (indexToRemove >= 0) {\r\n this.loaders.splice(indexToRemove, 1);\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>, i: number) => {\r\n if (loader.instance) {\r\n loader.instance.level = i + 1;\r\n }\r\n });\r\n }\r\n } else {\r\n this.loaders.splice(0, this.loaders.length);\r\n }\r\n }\r\n\r\n private addBodyPadding() {\r\n if (this.modalsCount === 1) {\r\n const width = this.getScrollbarWidth();\r\n if (this.isScrollBarPresent(width)) {\r\n this.initialPadding = this.document.body.style.paddingRight;\r\n const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);\r\n this.document.body.style.paddingRight = `${actualPadding + width}px`;\r\n }\r\n }\r\n }\r\n\r\n private revertScrollbar() {\r\n this.document.body.style.paddingRight = this.initialPadding;\r\n }\r\n\r\n private getScrollbarWidth(): number {\r\n const measurer = this.document.createElement('div');\r\n measurer.className = 'modal-scrollbar-measure';\r\n\r\n const body = this.document.body;\r\n body.appendChild(measurer);\r\n const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\r\n body.removeChild(measurer);\r\n\r\n return width;\r\n }\r\n\r\n private isScrollBarPresent(scrollbarWidth: number) {\r\n const rect = this.document.body.getBoundingClientRect();\r\n const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);\r\n const uncertainty = 0.1 * scrollbarWidth;\r\n return bodyToViewportGap >= scrollbarWidth - uncertainty;\r\n }\r\n\r\n private createLoaders(): void {\r\n const loader = this.clf.createLoader<ModalContainerComponent>();\r\n this.copyEvent(loader.onBeforeShow, this.onBeforeShow);\r\n this.copyEvent(loader.onShown, this.onShown);\r\n this.copyEvent(loader.onBeforeHide, this.onBeforeHide);\r\n this.copyEvent(loader.onHidden, this.onHidden);\r\n this.loaders.push(loader);\r\n }\r\n\r\n private copyEvent(from: Subject<unknown>, to: Subject<unknown>) {\r\n from.subscribe((data) => {\r\n to.next(data);\r\n });\r\n }\r\n}\r\n","\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { AddressPipe } from './pipes/address.pipe';\r\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\r\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\r\nimport { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\r\nimport { ComboboxComponent } from './controls/combobox/combobox.component';\r\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\r\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\r\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\r\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\r\nimport { ErrorComponent } from './pages/http-status/error/error.component';\r\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\r\nimport { IndiceAuthModule } from '@indice/ng-auth';\r\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\r\nimport { LanguageSelectionComponent } from './controls/language-selection/language-selection.component';\r\nimport { LibStepComponent } from './controls/stepper/lib-step.component';\r\nimport { LibStepInfoDirective } from './controls/stepper/lib-step-info.directive';\r\nimport { LibStepLabelDirective } from './controls/stepper/lib-step-label.directive';\r\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\r\nimport { LibTabComponent } from './controls/tabs/lib-tab.component';\r\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\r\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\r\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\r\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\r\nimport { ListViewComponent } from './controls/list-view/list-view.component';\r\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\r\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\r\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\r\nimport { NavLinksListComponent } from './controls/nav-links-list/nav-links-list.component';\r\nimport { NotificationsIndicatorComponent } from './controls/notifications-indicator/notifications-indicator.component';\r\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\r\nimport { PagerComponent } from './controls/pager/pager.component';\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 { ShellSidebarComponent } from './layouts/shell/shell-sidebar/shell-sidebar.component';\r\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\r\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\r\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\r\nimport { ToasterComponent } from './controls/toaster/toaster.component';\r\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\r\nimport { ToasterService } from './services/toaster.service';\r\nimport { ToggleComponent } from './controls/toggle/toggle.component';\r\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\r\nimport { UserProfileMenuComponent } from './controls/user-profile-menu/user-profile-menu.component';\r\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\r\nimport { ShellSidebarHeaderComponent } from './layouts/shell/shell-sidebar-header/shell-sidebar-header.component';\r\nimport { ShellSidebarLayoutComponent } from './layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component';\r\nimport { ShellStackedLayoutComponent } from './layouts/shell/shell-stacked-layout/shell-stacked-layout.component';\r\nimport { AdvancedSearchComponent } from './controls/advanced-search/advanced-search.component';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [\r\n // Directives\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 ComboboxComponent,\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 NavLinksListComponent,\r\n NotificationsIndicatorComponent,\r\n LanguageSelectionComponent,\r\n UserProfileMenuComponent,\r\n ShellSidebarComponent,\r\n // Tab Group Component\r\n LibTabComponent,\r\n LibTabGroupComponent,\r\n // Stepper Component\r\n LibStepperComponent,\r\n LibStepComponent,\r\n LibStepLabelDirective,\r\n LibStepInfoDirective,\r\n ShellSidebarHeaderComponent,\r\n ShellSidebarLayoutComponent,\r\n ShellStackedLayoutComponent,\r\n AdvancedSearchComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n IndiceAuthModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n AddressPipe,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n AvatarInitialsComponent,\r\n ClickOutsideDirective,\r\n CollapsiblePanelComponent,\r\n ComboboxComponent,\r\n DatepickerComponent,\r\n DropDownMenuComponent,\r\n DurationFormatPipe,\r\n ErrorComponent,\r\n FormLayoutComponent,\r\n KpiTileComponent,\r\n LibStepComponent,\r\n LibStepInfoDirective,\r\n LibStepLabelDirective,\r\n LibStepperComponent,\r\n LibTabComponent,\r\n LibTabGroupComponent,\r\n ListColumnComponent,\r\n ListDetailsSectionComponent,\r\n ListTileComponent,\r\n ListViewComponent,\r\n ListViewEmptyStateComponent,\r\n LoggedOutComponent,\r\n ModelViewLayoutComponent,\r\n PageNotFoundComponent,\r\n PagerComponent,\r\n ShellFooterComponent,\r\n ShellHeaderComponent,\r\n ShellLayoutComponent,\r\n SidePaneComponent,\r\n SideViewLayoutComponent,\r\n SkeletonLoaderComponent,\r\n ToasterComponent,\r\n ToasterContainerComponent,\r\n ToggleComponent,\r\n UnauthorizedComponent,\r\n ViewLayoutComponent\r\n ]\r\n})\r\nexport class IndiceComponentsModule {\r\n // tslint:disable-next-line:typedef\r\n static forRoot(): ModuleWithProviders<IndiceComponentsModule> {\r\n return {\r\n ngModule: IndiceComponentsModule,\r\n providers: [ToasterService]\r\n };\r\n }\r\n}\r\n","// Public API Surface of @indice/ng-components\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\nexport * from './lib/controls/side-pane/side-pane.component';\r\nexport * from './lib/controls/nav-links-list/nav-links-list.component';\r\nexport * from './lib/controls/combobox/combobox.component';\r\nexport * from './lib/controls/tabs/lib-tab.component';\r\nexport * from './lib/controls/tabs/lib-tab-group.component';\r\nexport * from './lib/controls/stepper/lib-stepper.component';\r\nexport * from './lib/controls/stepper/lib-step.component';\r\nexport * from './lib/controls/stepper/lib-step-label.directive';\r\nexport * from './lib/controls/stepper/lib-step-info.directive';\r\nexport * from './lib/controls/stepper/types/stepper-type';\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\nexport * from './lib/layouts/shell/shell-sidebar/shell-sidebar.component';\r\nexport * from './lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.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\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/component-loader.factory';\r\nexport * from './lib/services/modal-service/modal-service';\r\nexport { ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE, CloseInterceptorFn } from './lib/services/modal-service/modal-options.class';\r\nexport * from './lib/services/modal-service/modal.class';\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"],"names":["i1.ClickOutsideDirective","i2","i1","i2.DropDownMenuComponent","i3","i2.ClickOutsideDirective","i1.DropDownMenuComponent","i2.DatepickerComponent","i1.AdvancedSearchComponent","i2.PagerComponent","i3.SkeletonLoaderComponent","i4.ListViewEmptyStateComponent","i5","i1.ToasterService","i2.ToasterComponent","i1.NavLinksListComponent","i2.UserProfileMenuComponent","i3.NotificationsIndicatorComponent","i4.LanguageSelectionComponent","i6.ClickOutsideDirective","i7","i1.ShellHeaderComponent","i2.ShellFooterComponent","i4.DynamicComponentHostDirective","i1.UserProfileMenuComponent","i2.NotificationsIndicatorComponent","i3.LanguageSelectionComponent","i4.ClickOutsideDirective","i1.ShellSidebarComponent","i2.ShellSidebarHeaderComponent","i4","i3.ComponentLoaderFactory","i4.ShellStackedLayoutComponent","i5.ShellSidebarLayoutComponent","i6.SidePaneComponent","i7.ToasterContainerComponent","i2.ViewLayoutComponent","i2.SidePaneComponent","i1.ViewLayoutComponent","i1.ModalOptions","i1.ComponentLoaderFactory"],"mappings":"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"}
|