@natec/mef-dev-ui-kit 16.2.2 → 16.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"natec-mef-dev-ui-kit.mjs","sources":["../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse-set/collapse-set.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse-set/collapse-set.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse/collapse.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse/collapse.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field.service.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtred-item.model.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/help-block/help-block.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/help-block/help-block.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/help-block/hepl-block.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/util/convert.ts","../../../projects/ui-kit-lib/src/lib/pg-components/select/option.pipe.ts","../../../projects/ui-kit-lib/src/lib/pg-components/select/select.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/select/select.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/select/option.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/select/option.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/select/select.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/datepicker/datepicker.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/progress/progress.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/progress/progress.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/card/card.components.ts","../../../projects/ui-kit-lib/src/lib/pg-components/card/card.components.html","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card/card.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card/card.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-long/cart-type-colors.enum.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-long/card-long.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-long/card-long.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-simple/card-simple.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-simple/card-simple.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/progress/progress.config.ts","../../../projects/ui-kit-lib/src/lib/pg-components/progress/progress.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/card/card.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/fill/fill.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/fill/fill.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/slide-up/slide-up.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/slide-up/slide-up.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/slide-right/slide-right.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/slide-right/slide-right.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/right-filter/right-filter.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/right-filter/right-filter.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/markup-kit.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/profile/profile.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/profile/profile.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/central-page/central-page.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/central-page/central-page.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/table-page/table-page.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/table-page/table-page.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/manage-page/manage-page.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/manage-page/manage-page.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/page-layouts.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/spec-flow-test/spec-flow-test.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/switch/switch.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/switch/switch.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/switch/switch.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab-body.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab-body.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab-label.directive.ts","../../../projects/ui-kit-lib/src/lib/pg-components/util/request-animation.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabs-ink-bar.directive.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabs-nav.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabs-nav.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabset.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabset.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabs.module.ts","../../../projects/ui-kit-lib/src/natec-mef-dev-ui-kit.ts"],"sourcesContent":["import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { CollapseComponent } from '../collapse/collapse.component';\r\n\r\n\r\n/**\r\n* Component representing a set of collapsible panels.\r\n*\r\n* Example of usage:\r\n*\r\n*```\r\n* <mefdev-collapse-set [Accordion]=\"true\" [Horizontal]=\"true\" [expandAny]=\"false\">\r\n* <mefdev-collapse [Disabled]=\"false\" [Active]=\"true\">\r\n* <!-- Content for the collapse panel -->\r\n* <h3>Panel 1</h3>\r\n* <p>Panel 1 content...</p>\r\n* </mefdev-collapse>\r\n\r\n* <mefdev-collapse [Disabled]=\"false\" [Active]=\"false\">\r\n* <!-- Content for the collapse panel -->\r\n* <h3>Panel 2</h3>\r\n* <p>Panel 2 content...</p>\r\n* </mefdev-collapse>\r\n\r\n* <mefdev-collapse [Disabled]=\"false\" [Active]=\"false\">\r\n* <!-- Content for the collapse panel -->\r\n* <h3>Panel 3</h3>\r\n* <p>Panel 3 content...</p>\r\n* </mefdev-collapse>\r\n* </mefdev-collapse-set>\r\n*```\r\n*/\r\n@Component({\r\n selector: 'mefdev-collapse-set',\r\n templateUrl: './collapse-set.component.html',\r\n styleUrls: ['./collapse-set.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CollapseSetComponent {\r\n \r\n private _accordion = false;\r\n private _horizontal = true;\r\n private _expandAny = true;\r\n panels: CollapseComponent[] = [];\r\n\r\n /**\r\n * Indicates whether multiple panels can be expanded simultaneously.\r\n * Set this to `true` to allow multiple panels to be expanded. Defaults to `false`.\r\n */\r\n @Input()\r\n set expandAny(value: boolean) {\r\n this._accordion = value;\r\n }\r\n\r\n get expandAny(): boolean {\r\n return this._accordion;\r\n }\r\n\r\n /**\r\n * Indicates whether the collapse set operates as an accordion.\r\n * Set this to `true` to enable accordion behavior. Defaults to `false`.\r\n */\r\n @Input()\r\n set Accordion(value: boolean) {\r\n this._accordion = value;\r\n }\r\n\r\n get Accordion(): boolean {\r\n return this._accordion;\r\n }\r\n\r\n /**\r\n * Indicates whether the collapse set is displayed horizontally or vertically.\r\n * Set this to `true` for horizontal display and `false` for vertical display. Defaults to `true`.\r\n */\r\n @Input()\r\n set Horizontal(value: boolean) {\r\n this._horizontal = value;\r\n }\r\n\r\n get Horizontal(): boolean {\r\n return this._horizontal;\r\n }\r\n\r\n /**\r\n * Event handler for the click event on a collapse panel.\r\n * Closes other panels if the collapse set is an accordion and does not allow multiple expansions.\r\n *\r\n * @param collapse The clicked collapse component.\r\n */\r\n pgClick(collapse: CollapseComponent): void {\r\n if (this.Accordion && !this.expandAny) {\r\n this.panels.map((item, index) => {\r\n const curIndex = this.panels.indexOf(collapse);\r\n if (index !== curIndex) {\r\n item.Active = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Adds a collapse panel to the collapse set.\r\n *\r\n * @param collapse The collapse component to be added.\r\n */\r\n addTab(collapse: CollapseComponent): void {\r\n this.panels.push(collapse);\r\n }\r\n}\r\n","<div class=\"card-group\" [class.horizontal]=\"Horizontal\">\r\n <ng-content></ng-content>\r\n</div>","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, ContentChild, ElementRef, EventEmitter, Host, HostBinding, Input, Output, TemplateRef } from '@angular/core';\r\nimport { CollapseSetComponent } from '../collapse-set/collapse-set.component';\r\n\r\n\r\n/**\r\n * Component for displaying a collapsible content.\r\n *\r\n *\r\n * Example of usage:\r\n *```\r\n * <mefdev-collapse [Disabled]=\"false\" [Active]=\"true\" (stateChange)=\"onStateChange($event)\">\r\n * <ng-template #CardTitle>\r\n * <!-- Content for the card title -->\r\n * <h3>Card Title</h3>\r\n * </ng-template>\r\n * \r\n * <!-- Content for the collapsible section -->\r\n * <div>\r\n Content inside collapse\r\n * </div>\r\n * </mefdev-collapse>\r\n *\r\n *```\r\n * <example-url>https://mef.dev/ui_kit_demo/view/collapse/collapse</example-url>\r\n\r\n */\r\n@Component({\r\n selector: 'mefdev-collapse',\r\n templateUrl: './collapse.component.html',\r\n styleUrls: ['./collapse.component.scss'],\r\n animations: [\r\n trigger('collapseState', [\r\n state(\r\n 'inactive',\r\n style({\r\n opacity: '0',\r\n height: 0\r\n })\r\n ),\r\n state(\r\n 'active',\r\n style({\r\n opacity: '1',\r\n height: '*'\r\n })\r\n ),\r\n transition('inactive => active', animate('125ms ease-in')),\r\n transition('active => inactive', animate('125ms ease-out'))\r\n ])\r\n ],\r\n host: {\r\n '[class.card]': 'true',\r\n '[class.card-default]': 'true',\r\n '[class.m-b-0]': 'true'\r\n }\r\n})\r\nexport class CollapseComponent {\r\n\r\n private _disabled = false;\r\n _active = false;\r\n _el;\r\n\r\n /**\r\n * ContentChild for the template of the card title.\r\n *\r\n * Example:\r\n * ```\r\n * <ng-template #CardTitle>\r\n * <h3>Card Title</h3>\r\n * </ng-template>\r\n * ```\r\n */\r\n @ContentChild(\"CardTitle\") CardTitle: TemplateRef<void>;\r\n\r\n /**\r\n * Indicates whether the collapse is disabled.\r\n * Set this to `true` to disable the collapse. Defaults to `false`.\r\n */\r\n @Input()\r\n @HostBinding('class.disabled')\r\n set Disabled(value: boolean) {\r\n this._disabled = value;\r\n }\r\n\r\n get Disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n /**\r\n * Indicates whether the collapse is active or not.\r\n */\r\n @Input()\r\n set Active(value: boolean) {\r\n const active = value;\r\n if (this._active === active) {\r\n return;\r\n }\r\n if (!this.Disabled) {\r\n this._active = active;\r\n }\r\n }\r\n \r\n get Active(): boolean {\r\n return this._active;\r\n }\r\n\r\n /**\r\n * Event emitter for the state change of the collapse.\r\n * Emits a boolean value indicating whether the collapse is active or not.\r\n *\r\n * Example:\r\n * ```\r\n * <mefdev-collapse (stateChange)=\"onStateChange($event)\"></mefdev-collapse>\r\n * ```\r\n */\r\n @Output() stateChange = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Event handler for the header click event.\r\n * Toggles the active state of the collapse and emits the state change event.\r\n *\r\n * @param $event The mouse event object.\r\n */\r\n clickHeader($event: MouseEvent): void {\r\n this.Active = !this.Active;\r\n this.stateChange.next(this.Active);\r\n /** trigger host collapseSet click event */\r\n this._collapseSet.pgClick(this);\r\n }\r\n\r\n constructor(@Host() private _collapseSet: CollapseSetComponent, private _elementRef: ElementRef) {\r\n this._el = this._elementRef.nativeElement;\r\n this._collapseSet.addTab(this);\r\n }\r\n}\r\n","<div class=\"row mt-2 card-title\" [attr.aria-expanded]=\"_active\" (click)=\"clickHeader($event)\" role=\"tab\"\r\nhref=\"javascript:;\" [ngClass]=\"{'collapsed':!_active}\">\r\n <div class=\"col\">\r\n <ng-template [ngTemplateOutlet]=\"CardTitle\"></ng-template>\r\n </div>\r\n <div class=\"col\">\r\n <i class=\"fa fa-angle-down float-end \" aria-hidden=\"true\" *ngIf=\"!_active\"></i>\r\n <i class=\"fa fa-angle-up float-end \" aria-hidden=\"true\" *ngIf=\"_active\"></i>\r\n </div>\r\n</div>\r\n\r\n<div class=\"collapse\" [ngClass]=\"{'show':true,'active':_active,'inactive':!_active}\" [@collapseState]=\"_active?'active':'inactive'\">\r\n <div *ngIf=\"_active\" \r\n class=\"card-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { NgModule,ModuleWithProviders } from '@angular/core';\r\nimport { CollapseSetComponent } from './collapse-set/collapse-set.component';\r\nimport { CollapseComponent } from './collapse/collapse.component';\r\n\r\nexport const mefDevCollapseModuleComponents = [CollapseSetComponent, CollapseComponent];\r\n\r\n@NgModule({\r\n declarations: mefDevCollapseModuleComponents,\r\n exports : mefDevCollapseModuleComponents,\r\n imports : [ CommonModule ]\r\n})\r\n\r\nexport class MefDevCollapseModule {\r\n static forRoot(): ModuleWithProviders<MefDevCollapseModule> {\r\n return {\r\n ngModule: MefDevCollapseModule\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { FiltredItemModel } from './filtred-item.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FilteredFieldService {\r\n\r\n private newFilterItem: Subject<FiltredItemModel> = new Subject<FiltredItemModel>();\r\n private openFilter: Subject<FiltredItemModel> = new Subject<FiltredItemModel>();\r\n\r\n constructor() {}\r\n\r\n /**\r\n * Returns an observable that emits the open filter events.\r\n */\r\n public getOpenFilter(): Observable<FiltredItemModel>{\r\n return this.openFilter;\r\n }\r\n\r\n /**\r\n * Sends an open filter event with the specified item.\r\n * @param item The filtered item model.\r\n */\r\n public sendOpenFilter(item: FiltredItemModel){\r\n this.openFilter.next(item);\r\n }\r\n\r\n /**\r\n * Returns an observable that emits the new filter item events.\r\n */\r\n public getNewFilterItem(): Observable<FiltredItemModel>{\r\n return this.newFilterItem;\r\n }\r\n\r\n /**\r\n * Sends a new filter item event with the specified item.\r\n * @param item The filtered item model.\r\n */\r\n public sendNewFilterItem(item: FiltredItemModel){\r\n this.newFilterItem.next(item);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FiltredItemModel } from '../filtred-item.model';\r\n\r\n/**\r\n * Component representing a filtered field item.\r\n * \r\n * Example of usage:\r\n * ```\r\n * <mefdev-filtered-field-item [item]=\"filterItem\" (discard)=\"onDiscardFilter($event)\" (openFilter)=\"onOpenFilter()\">\r\n * </mefdev-filtered-field-item>\r\n *``` \r\n *\r\n*/\r\n@Component({\r\n selector: 'mefdev-filtered-field-item',\r\n templateUrl: './filtered-field-item.component.html',\r\n styleUrls: ['./filtered-field-item.component.scss']\r\n})\r\nexport class FilteredFieldItemComponent implements OnInit {\r\n\r\n /**\r\n * The filtered item model.\r\n * ```\r\n * <mefdev-filtered-field-item [item]=\"filterItem\">\r\n * Content goes here...\r\n * </mefdev-filtered-field-item>\r\n * ```\r\n */\r\n @Input() item: FiltredItemModel;\r\n\r\n /**\r\n * Event emitted when the filter is discarded.\r\n * ```\r\n * <mefdev-filtered-field-item (discard)=\"onDiscardFilter($event)\">\r\n * Content goes here...\r\n * </mefdev-filtered-field-item>\r\n * ```\r\n */\r\n @Output() discard = new EventEmitter<FiltredItemModel>();\r\n\r\n /**\r\n * Event emitted when the filter is opened.\r\n * ```\r\n * <mefdev-filtered-field-item (openFilter)=\"onOpenFilter()\">\r\n * Content goes here...\r\n * </mefdev-filtered-field-item>\r\n * ```\r\n */\r\n @Output() openFilter = new EventEmitter<any>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n \r\n /**\r\n * Event handler for opening the filter.\r\n * Emits the `openFilter` event.\r\n */\r\n onOpenFilter(){\r\n this.openFilter.next({});\r\n }\r\n\r\n\r\n /**\r\n * Event handler for discarding the filter.\r\n * Emits the `discard` event with the `item` as the payload.\r\n */\r\n onDiscard(){\r\n this.discard.next(this.item);\r\n }\r\n\r\n}\r\n","<div class=\"item\">\r\n <i class=\"fa fa-times\" (click)=\"onDiscard()\" style=\"margin-right: 3px; cursor: pointer;\"></i> \r\n <span (click)=\"onOpenFilter()\">{{item.newValue}}</span>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FilteredFieldService } from '../filtered-field.service';\r\nimport { FiltredItemModel } from '../filtred-item.model';\r\n\r\n /**\r\n * A container component for filtered fields.\r\n *\r\n * Example of usage:\r\n * ```\r\n * <mefdev-filtered-field-container>\r\n * \r\n * <mefdev-filtered-field-item [item]=\"filterItem\" (discard)=\"onDiscardFilter($event)\" (openFilter)=\"onOpenFilter()\">\r\n * </mefdev-filtered-field-item>\r\n *\r\n * </mefdev-filtered-field-container>\r\n * ```\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/utils/filtered-field</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-filtered-field-container',\r\n templateUrl: './filtered-field-container.component.html',\r\n styleUrls: ['./filtered-field-container.component.scss']\r\n})\r\nexport class FilteredFieldContainerComponent implements OnInit {\r\n\r\n /**\r\n * An array of filtered item models.\r\n */\r\n items: FiltredItemModel[] = [];\r\n\r\n constructor(\r\n private service: FilteredFieldService\r\n ) { }\r\n\r\n /**\r\n * Event handler for opening the filter.\r\n *\r\n * @param item The filtered item model.\r\n */\r\n onOpenFilter(item: FiltredItemModel){\r\n this.service.sendOpenFilter(item);\r\n }\r\n\r\n /**\r\n * Event handler for discarding the filter.\r\n *\r\n * @param item The filtered item model.\r\n */\r\n onDiscard(item: FiltredItemModel){\r\n item.discard(item.standartValue);\r\n this.items.splice(this.items.findIndex(x => x.id == item.id), 1);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.service.getNewFilterItem().subscribe(item => {\r\n let i = this.items.findIndex(x => x.id == item.id)\r\n\r\n if(i != -1 && item.newValue == item.standartValue){\r\n this.items[i] = item;\r\n this.items.splice(i, 1);\r\n return;\r\n }\r\n\r\n if(i == -1 && (item.newValue == item.standartValue || item.newValue == '') ){\r\n return;\r\n }\r\n\r\n if(i != -1){\r\n this.items[i] = item;\r\n return;\r\n }\r\n\r\n this.items.push(item);\r\n\r\n })\r\n }\r\n}\r\n","<div class=\"item-container\">\r\n <mefdev-filtered-field-item *ngFor=\"let item of items\" [item]=\"item\" (discard)=\"onDiscard(item)\" (openFilter)=\"onOpenFilter(item)\"></mefdev-filtered-field-item>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilteredFieldContainerComponent } from './filtered-field-container/filtered-field-container.component';\r\nimport { FilteredFieldItemComponent } from './filtered-field-item/filtered-field-item.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n FilteredFieldContainerComponent,\r\n FilteredFieldItemComponent,\r\n ],\r\n exports:[\r\n FilteredFieldItemComponent,\r\n FilteredFieldContainerComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class MefDevFilteredFieldModule { }\r\n","export class FiltredItemModel{\r\n\r\n\r\n constructor(id:string, newValue: string, standartValue: string, discard: (standartValue: string) => any){\r\n this.id = id;\r\n this.newValue = newValue;\r\n this.standartValue = standartValue;\r\n this.discard = discard;\r\n }\r\n\r\n id:string;\r\n newValue: string;\r\n standartValue: string;\r\n discard: (standartValue: string) => any;\r\n}","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n animate,\r\n transition,\r\n} from '@angular/animations';\r\n\r\n\r\n /**\r\n * A component representing a help block with smooth expand animation.\r\n *\r\n * Example of usage:\r\n *```\r\n * <mefdev-help-block [title]=\"'Help'\">\r\n * Content goes here...\r\n * <ng-content></ng-content>\r\n * </mefdev-help-block>\r\n *```\r\n * <example-url>https://mef.dev/ui_kit_demo/view/utils/help-block</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-help-block',\r\n templateUrl: './help-block.component.html',\r\n styleUrls: ['./help-block.component.scss'],\r\n animations:[\r\n trigger('smothExpand',[\r\n state('close', style({\r\n height: '0',\r\n margin: '0',\r\n padding: '0',\r\n opacity: '0',\r\n visibility: 'hidden',\r\n })),\r\n state('open', style({})),\r\n transition('close<=>open', animate(200))\r\n ])\r\n ]\r\n})\r\nexport class HelpBlockComponent implements OnInit {\r\n\r\n /**\r\n * Indicates whether the help block is visible.\r\n */\r\n isVisible:boolean = true;\r\n\r\n /**\r\n * Indicates whether the help block is expanded.\r\n */\r\n expanded:boolean = false;\r\n\r\n\r\n /**\r\n * The title of the help block.\r\n *```\r\n * <mefdev-help-block [title]=\"'Help Block'\">\r\n * Content goes here...\r\n * </mefdev-help-block>\r\n *```\r\n */\r\n @Input('title') title:string = \"Help\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"card-simple\" *ngIf=\"isVisible\">\r\n <div class=\"row m-1 body-1\" (click)=\"expanded = !expanded\" style=\"cursor: pointer;\">\r\n <div class=\"col-10\" style=\"color: white;\">\r\n {{ title }}\r\n </div>\r\n <div class=\"col-2\">\r\n <i class=\"fa fa-window-close\" aria-hidden=\"true\" style=\"float: right; margin-left: 20px;\" (click)=\"isVisible = !isVisible;\"></i>\r\n \r\n <i class=\"fa fa-angle-down \" *ngIf=\"!expanded\" aria-hidden=\"true\" style=\"float: right;\"></i>\r\n <i class=\"fa fa-angle-up\" *ngIf=\"expanded\" aria-hidden=\"true\" style=\"float: right;\"></i> \r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body row\" [@smothExpand]=\"expanded ? 'open' : 'close'\">\r\n <div class=\"col-12\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HelpBlockComponent } from './help-block.component';\r\nimport { MefDevCollapseModule } from '../../collapse/collapse.module';\r\n\r\n@NgModule({\r\n declarations: [HelpBlockComponent],\r\n exports: [HelpBlockComponent],\r\n imports: [\r\n CommonModule,\r\n MefDevCollapseModule\r\n ]\r\n})\r\nexport class MefDevHelpBlockModule { }\r\n","export function toBoolean(value: any): boolean {\r\n return value === '' || (value && value !== 'false');\r\n}\r\n","/* tslint:disable:no-any */\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { MefDevOptionComponent } from \"./option.component\";\r\n\r\n@Pipe({ name: \"OptionPipe\" })\r\nexport class OptionPipe implements PipeTransform {\r\n // TODO: enable type checking for this method\r\n transform(options: MefDevOptionComponent[], value: any): any {\r\n if (value.searchText) {\r\n let _options = options.filter(\r\n option =>\r\n option.Label &&\r\n option.Label.toLowerCase().indexOf(value.searchText.toLowerCase()) !==\r\n -1\r\n );\r\n if (value.tags) {\r\n _options = options.filter(\r\n option =>\r\n option.Label &&\r\n option.Label.toLowerCase() === value.searchText.toLowerCase()\r\n );\r\n }\r\n if (_options.length) {\r\n return _options;\r\n } else {\r\n return [\r\n ({\r\n Value: value.value,\r\n _value: value.value,\r\n Disabled: value.disabled,\r\n _disabled: value.disabled,\r\n Label: value.notFoundContent,\r\n _label: value.notFoundContent\r\n } as any) as MefDevOptionComponent\r\n ];\r\n }\r\n } else {\r\n return options;\r\n }\r\n }\r\n}\r\n","/**\r\n * complex but work well\r\n * TODO: rebuild latter\r\n */\r\nimport { DOWN_ARROW, ENTER, TAB } from \"@angular/cdk/keycodes\";\r\nimport {\r\n CdkConnectedOverlay,\r\n ConnectedOverlayPositionChange\r\n} from \"@angular/cdk/overlay\";\r\nimport {\r\n forwardRef,\r\n AfterContentChecked,\r\n AfterContentInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation,\r\n ChangeDetectorRef\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { MefDevOptionComponent } from \"./option.component\";\r\nimport { OptionPipe } from \"./option.pipe\";\r\nimport { toBoolean } from '../util/convert';\r\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\r\n\r\n\r\n/**\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/select</example-url>\r\n */\r\n@Component({\r\n selector: \"mefdev-select\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./select.component.html\",\r\n\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MefDevSelectComponent),\r\n multi: true\r\n }\r\n ],\r\n animations: [trigger('dropDownAnimation', [\r\n state('bottom', style({\r\n opacity : 1,\r\n transform : 'scaleY(1)',\r\n transformOrigin: '0% 0%'\r\n })),\r\n transition('void => bottom', [\r\n style({\r\n opacity : 0,\r\n transform : 'scaleY(0)',\r\n transformOrigin: '0% 0%'\r\n }),\r\n animate('150ms cubic-bezier(0.25, 0.8, 0.25, 1)')\r\n ]),\r\n state('top', style({\r\n opacity : 1,\r\n transform : 'scaleY(1)',\r\n transformOrigin: '0% 100%'\r\n })),\r\n transition('void => top', [\r\n style({\r\n opacity : 0,\r\n transform : 'scaleY(0)',\r\n transformOrigin: '0% 100%'\r\n }),\r\n animate('150ms cubic-bezier(0.25, 0.8, 0.25, 1)')\r\n ]),\r\n transition('* => void', [\r\n animate('250ms 100ms linear', style({ opacity: 0 }))\r\n ])\r\n ]),\r\n\r\n trigger('tagAnimation', [\r\n state('*', style({ opacity: 1, transform: 'scale(1)' })),\r\n transition('void => *', [\r\n style({ opacity: 0, transform: 'scale(0)' }),\r\n animate('150ms linear')\r\n ]),\r\n state('void', style({ opacity: 0, transform: 'scale(0)' })),\r\n transition('* => void', [\r\n style({ opacity: 1, transform: 'scale(1)' }),\r\n animate('150ms linear')\r\n ])])]\r\n})\r\nexport class MefDevSelectComponent\r\n implements\r\n OnInit,\r\n AfterContentInit,\r\n AfterContentChecked,\r\n ControlValueAccessor {\r\n private _allowClear = false;\r\n private _disabled = false;\r\n private _isTags = false;\r\n private _isMultiple = false;\r\n private _keepUnListOptions = false;\r\n private _showSearch = false;\r\n _el: HTMLElement;\r\n _isOpen = false;\r\n _prefixCls = \"pg-select\";\r\n _classList: string[] = [];\r\n _dropDownClassMap: any;\r\n _dropDownPrefixCls = `${this._prefixCls}-dropdown`;\r\n _selectionClassMap: any;\r\n _selectionPrefixCls = `${this._prefixCls}-selection`;\r\n _size: string;\r\n _value: string[] | string;\r\n _placeholder = \"placeholder\";\r\n _notFoundContent = \"No Content\";\r\n _searchText = \"\";\r\n _triggerWidth = 0;\r\n _selectedOption: MefDevOptionComponent;\r\n _operatingMultipleOption: MefDevOptionComponent;\r\n _selectedOptions: Set<MefDevOptionComponent> = new Set();\r\n _options: MefDevOptionComponent[] = [];\r\n _cacheOptions: MefDevOptionComponent[] = [];\r\n _filterOptions: MefDevOptionComponent[] = [];\r\n _tagsOptions: MefDevOptionComponent[] = [];\r\n _activeFilterOption: MefDevOptionComponent;\r\n _isMultiInit = false;\r\n _dropDownPosition: \"top\" | \"center\" | \"bottom\" = \"bottom\";\r\n _composing = false;\r\n _mode: any;\r\n // ngModel Access\r\n onChange: (value: string | string[]) => void = () => null;\r\n onTouched: () => void = () => null;\r\n @ViewChild(\"searchInput\") searchInputElementRef: any;\r\n @ViewChild(\"trigger\") trigger: ElementRef;\r\n @ViewChild(\"dropdownUl\") dropdownUl: ElementRef;\r\n @Output() SearchChange: EventEmitter<string> = new EventEmitter();\r\n @Output() change: EventEmitter<string> = new EventEmitter();\r\n @Output() OpenChange: EventEmitter<boolean> = new EventEmitter();\r\n @Output() ScrollToBottom: EventEmitter<boolean> = new EventEmitter();\r\n @Input() Filter = true;\r\n @Input() MaxMultiple = Infinity;\r\n @Input() FirstDefault: boolean = false;\r\n @ViewChild(CdkConnectedOverlay) _cdkOverlay: CdkConnectedOverlay;\r\n\r\n @Input()\r\n set AllowClear(value: boolean) {\r\n this._allowClear = toBoolean(value);\r\n }\r\n\r\n get AllowClear(): boolean {\r\n return this._allowClear;\r\n }\r\n\r\n @Input()\r\n set KeepUnListOptions(value: boolean) {\r\n this._keepUnListOptions = toBoolean(value);\r\n }\r\n\r\n get KeepUnListOptions(): boolean {\r\n return this._keepUnListOptions;\r\n }\r\n\r\n @Input()\r\n set Mode(value: string) {\r\n this._mode = value;\r\n if (this._mode === \"multiple\") {\r\n this.Multiple = true;\r\n } else if (this._mode === \"tags\") {\r\n this.Tags = true;\r\n } else if (this._mode === \"combobox\") {\r\n this.ShowSearch = true;\r\n }\r\n }\r\n\r\n @Input()\r\n set Multiple(value: boolean) {\r\n this._isMultiple = toBoolean(value);\r\n if (this._isMultiple) {\r\n this.ShowSearch = true;\r\n }\r\n }\r\n\r\n get Multiple(): boolean {\r\n return this._isMultiple;\r\n }\r\n\r\n @Input()\r\n set PlaceHolder(value: string) {\r\n this._placeholder = value;\r\n }\r\n\r\n get PlaceHolder(): string {\r\n return this._placeholder;\r\n }\r\n\r\n @Input()\r\n set NotFoundContent(value: string) {\r\n this._notFoundContent = value;\r\n }\r\n\r\n get NotFoundContent(): string {\r\n return this._notFoundContent;\r\n }\r\n\r\n @Input()\r\n set Size(value: string) {\r\n // @ts-ignore\r\n this._size = { large: \"lg\", small: \"sm\" }[value];\r\n this.setClassMap();\r\n }\r\n\r\n get Size(): string {\r\n return this._size;\r\n }\r\n\r\n @Input()\r\n set ShowSearch(value: boolean) {\r\n this._showSearch = toBoolean(value);\r\n }\r\n\r\n get ShowSearch(): boolean {\r\n return this._showSearch;\r\n }\r\n\r\n @Input()\r\n set Tags(value: boolean) {\r\n const isTags = toBoolean(value);\r\n this._isTags = isTags;\r\n this.Multiple = isTags;\r\n }\r\n\r\n get Tags(): boolean {\r\n return this._isTags;\r\n }\r\n\r\n @Input()\r\n set Disabled(value: boolean) {\r\n this._disabled = toBoolean(value);\r\n this.closeDropDown();\r\n this.setClassMap();\r\n }\r\n\r\n get Disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @Input()\r\n set Open(value: boolean) {\r\n const isOpen = toBoolean(value);\r\n if (this._isOpen === isOpen) {\r\n return;\r\n }\r\n if (isOpen) {\r\n this.scrollToActive();\r\n this._setTriggerWidth();\r\n }\r\n this._isOpen = isOpen;\r\n this.OpenChange.emit(this._isOpen);\r\n this.setClassMap();\r\n if (this._isOpen) {\r\n setTimeout(() => {\r\n this.checkDropDownScroll();\r\n });\r\n }\r\n }\r\n\r\n get Open(): boolean {\r\n return this._isOpen;\r\n }\r\n\r\n /** new -option insert or new tags insert */\r\n // @ts-ignore\r\n addOption = option => {\r\n this._options.push(option);\r\n if (!this._isTags) {\r\n if (option.Value) {\r\n this.updateSelectedOption(this._value);\r\n } else {\r\n this.forceUpdateSelectedOption(this._value);\r\n }\r\n }\r\n };\r\n\r\n /** -option remove or tags remove */\r\n removeOption(option: MefDevOptionComponent): void {\r\n this._options.splice(this._options.indexOf(option), 1);\r\n if (!this._isTags) {\r\n this.forceUpdateSelectedOption(this._value);\r\n }\r\n }\r\n\r\n /** dropdown position changed */\r\n onPositionChange(position: ConnectedOverlayPositionChange): void {\r\n this._dropDownPosition = position.connectionPair.originY;\r\n }\r\n\r\n compositionStart(): void {\r\n this._composing = true;\r\n }\r\n\r\n compositionEnd(): void {\r\n this._composing = false;\r\n }\r\n\r\n /** clear single selected option */\r\n clearSelect($event?: MouseEvent): void {\r\n if ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n } // @ts-ignore\r\n this._selectedOption = null; // @ts-ignore\r\n this.Value = null; // @ts-ignore\r\n this.onChange(null);\r\n }\r\n\r\n /** click dropdown option by user */\r\n clickOption(option: MefDevOptionComponent, $event?: MouseEvent): void {\r\n if (!option) {\r\n return;\r\n }\r\n this.chooseOption(option, true, $event);\r\n this.clearSearchText();\r\n if (!this._isMultiple) {\r\n this.Open = false;\r\n }\r\n }\r\n\r\n /** choose option */\r\n chooseOption(\r\n option: MefDevOptionComponent,\r\n isUserClick: boolean = false,\r\n $event?: MouseEvent\r\n ): void {\r\n if ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n this._activeFilterOption = option;\r\n if (option && !option.Disabled) {\r\n if (!this.Multiple) {\r\n this._selectedOption = option;\r\n this._value = option.Value;\r\n if (isUserClick) {\r\n this.change.next(this._value);\r\n this.onChange(option.Value);\r\n }\r\n } else {\r\n if (isUserClick) {\r\n this.isInSet(this._selectedOptions, option)\r\n ? this.unSelectMultipleOption(option)\r\n : this.selectMultipleOption(option);\r\n }\r\n }\r\n }\r\n }\r\n\r\n updateWidth(element: HTMLInputElement, text: string): void {\r\n if (text) {\r\n /** wait for scroll width change */ // @ts-ignore\r\n setTimeout(_ => {\r\n this._renderer.setStyle(element, \"width\", `${element.scrollWidth}px`);\r\n });\r\n } else {\r\n this._renderer.removeStyle(element, \"width\");\r\n }\r\n }\r\n\r\n /** determine if option in set */\r\n isInSet(\r\n set: Set<MefDevOptionComponent>,\r\n option: MefDevOptionComponent\r\n ): MefDevOptionComponent { // @ts-ignore\r\n return (Array.from(set) as MefDevOptionComponent[]).find(\r\n (data: MefDevOptionComponent) => data.Value === option.Value\r\n );\r\n }\r\n\r\n /** cancel select multiple option */ // @ts-ignore\r\n unSelectMultipleOption = (option, $event?, emitChange = true) => {\r\n this._operatingMultipleOption = option;\r\n this._selectedOptions.delete(option);\r\n if (emitChange) {\r\n this.emitMultipleOptions();\r\n }\r\n\r\n // 对Tag进行特殊处理\r\n if (\r\n this._isTags &&\r\n this._options.indexOf(option) !== -1 &&\r\n this._tagsOptions.indexOf(option) !== -1\r\n ) {\r\n this.removeOption(option);\r\n this._tagsOptions.splice(this._tagsOptions.indexOf(option), 1);\r\n }\r\n if ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n };\r\n\r\n /** select multiple option */\r\n selectMultipleOption(option: MefDevOptionComponent, $event?: MouseEvent): void {\r\n /** if tags do push to tag option */\r\n if (\r\n this._isTags &&\r\n this._options.indexOf(option) === -1 &&\r\n this._tagsOptions.indexOf(option) === -1\r\n ) {\r\n this.addOption(option);\r\n this._tagsOptions.push(option);\r\n }\r\n this._operatingMultipleOption = option;\r\n if (this._selectedOptions.size < this.MaxMultiple) {\r\n this._selectedOptions.add(option);\r\n }\r\n this.emitMultipleOptions();\r\n\r\n if ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n }\r\n\r\n /** emit multiple options */\r\n emitMultipleOptions(): void {\r\n if (this._isMultiInit) {\r\n return;\r\n }\r\n const arrayOptions = Array.from(this._selectedOptions);\r\n this._value = arrayOptions.map(item => item.Value);\r\n this.onChange(this._value);\r\n }\r\n\r\n /** update selected option when add remove option etc */\r\n updateSelectedOption(\r\n currentModelValue: string | string[],\r\n triggerByNgModel: boolean = false\r\n ): void {\r\n if (currentModelValue == null) {\r\n return;\r\n }\r\n if (this.Multiple) {\r\n const selectedOptions = this._options.filter(item => {\r\n return item != null && currentModelValue.indexOf(item.Value) !== -1;\r\n });\r\n if ((this.KeepUnListOptions || this.Tags) && !triggerByNgModel) {\r\n const _selectedOptions = Array.from(this._selectedOptions);\r\n selectedOptions.forEach(option => {\r\n const _exist = _selectedOptions.some(\r\n item => item._value == option._value\r\n );\r\n if (!_exist) {\r\n this._selectedOptions.add(option);\r\n }\r\n });\r\n } else {\r\n this._selectedOptions = new Set();\r\n selectedOptions.forEach(option => {\r\n this._selectedOptions.add(option);\r\n });\r\n }\r\n } else {\r\n const selectedOption = this._options.filter(item => {\r\n return item != null && item.Value == currentModelValue;\r\n });\r\n this.chooseOption(selectedOption[0]);\r\n }\r\n }\r\n\r\n forceUpdateSelectedOption(value: string | string[]): void {\r\n /** trigger dirty check */ // @ts-ignore\r\n setTimeout(_ => {\r\n this.updateSelectedOption(value);\r\n });\r\n }\r\n\r\n get Value(): string | string[] {\r\n return this._value;\r\n }\r\n\r\n set Value(value: string | string[]) {\r\n this._updateValue(value);\r\n }\r\n\r\n clearAllSelectedOption(emitChange: boolean = true): void {\r\n this._selectedOptions.forEach(item => {\r\n this.unSelectMultipleOption(item, null, emitChange);\r\n });\r\n }\r\n\r\n handleKeyEnterEvent(event: KeyboardEvent): void {\r\n /** when composing end */\r\n if (!this._composing && this._isOpen) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.updateFilterOption(false);\r\n this.clickOption(this._activeFilterOption);\r\n }\r\n }\r\n\r\n handleKeyBackspaceEvent(event: KeyboardEvent): void {\r\n if (!this._searchText && !this._composing && this._isMultiple) {\r\n event.preventDefault();\r\n const lastOption = Array.from(this._selectedOptions).pop();\r\n this.unSelectMultipleOption(lastOption);\r\n }\r\n }\r\n\r\n handleKeyDownEvent($event: MouseEvent): void {\r\n if (this._isOpen) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this._activeFilterOption = this.nextOption(\r\n this._activeFilterOption,\r\n this._filterOptions.filter(w => !w.Disabled)\r\n );\r\n this.scrollToActive();\r\n }\r\n }\r\n\r\n handleKeyUpEvent($event: MouseEvent): void {\r\n if (this._isOpen) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this._activeFilterOption = this.preOption(\r\n this._activeFilterOption,\r\n this._filterOptions.filter(w => !w.Disabled)\r\n );\r\n this.scrollToActive();\r\n }\r\n }\r\n\r\n preOption(\r\n option: MefDevOptionComponent,\r\n options: MefDevOptionComponent[]\r\n ): MefDevOptionComponent {\r\n return options[options.indexOf(option) - 1] || options[options.length - 1];\r\n }\r\n\r\n nextOption(\r\n option: MefDevOptionComponent,\r\n options: MefDevOptionComponent[]\r\n ): MefDevOptionComponent {\r\n return options[options.indexOf(option) + 1] || options[0];\r\n }\r\n\r\n clearSearchText(): void {\r\n this._searchText = \"\";\r\n this.updateFilterOption();\r\n }\r\n\r\n updateFilterOption(updateActiveFilter: boolean = true): void {\r\n if (this.Filter) {\r\n this._filterOptions = new OptionPipe().transform(this._options, {\r\n searchText: this._searchText,\r\n tags: this._isTags,\r\n notFoundContent: this._isTags\r\n ? this._searchText\r\n : this._notFoundContent,\r\n disabled: !this._isTags,\r\n value: this._isTags ? this._searchText : \"disabled\"\r\n });\r\n } else {\r\n this._filterOptions = this._options;\r\n }\r\n\r\n /** TODO: cause pre & next key selection not work */\r\n if (updateActiveFilter && !this._selectedOption) {\r\n this._activeFilterOption = this._filterOptions[0];\r\n }\r\n }\r\n\r\n onSearchChange(searchValue: string): void {\r\n this.SearchChange.emit(searchValue);\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n onClick(e: MouseEvent): void {\r\n e.preventDefault();\r\n if (!this._disabled) {\r\n this.Open = !this.Open;\r\n if (this.ShowSearch) {\r\n /** wait for search display */ // @ts-ignore\r\n setTimeout(_ => {\r\n this.searchInputElementRef.nativeElement.focus();\r\n });\r\n }\r\n }\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown(e: KeyboardEvent): void {\r\n const keyCode = e.keyCode;\r\n if (keyCode === TAB && this.Open) {\r\n this.Open = false;\r\n return;\r\n }\r\n if ((keyCode !== DOWN_ARROW && keyCode !== ENTER) || this.Open) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (!this._disabled) {\r\n this.Open = true;\r\n if (this.ShowSearch) {\r\n /** wait for search display */ // @ts-ignore\r\n setTimeout(_ => {\r\n this.searchInputElementRef.nativeElement.focus();\r\n });\r\n }\r\n }\r\n }\r\n\r\n closeDropDown(): void {\r\n if (!this.Open) {\r\n return;\r\n }\r\n this.onTouched();\r\n if (this.Multiple) {\r\n this._renderer.removeStyle(\r\n this.searchInputElementRef.nativeElement,\r\n \"width\"\r\n );\r\n }\r\n this.clearSearchText();\r\n this.Open = false;\r\n }\r\n\r\n setClassMap(): void {\r\n this._classList.forEach(_className => {\r\n this._renderer.removeClass(this._el, _className);\r\n }); // @ts-ignore\r\n this._classList = [\r\n this._prefixCls,\r\n this._mode === \"combobox\" && `${this._prefixCls}-combobox`,\r\n !this._disabled && `${this._prefixCls}-enabled`,\r\n this._disabled && `${this._prefixCls}-disabled`,\r\n this._isOpen && `${this._prefixCls}-open`,\r\n this._showSearch && `${this._prefixCls}-show-search`,\r\n this._size && `${this._prefixCls}-${this._size}`\r\n ].filter(item => {\r\n return !!item;\r\n });\r\n this._classList.forEach(_className => {\r\n this._renderer.addClass(this._el, _className);\r\n });\r\n this._selectionClassMap = {\r\n [this._selectionPrefixCls]: true,\r\n [`${this._selectionPrefixCls}--single`]: !this.Multiple,\r\n [`${this._selectionPrefixCls}--multiple`]: this.Multiple\r\n };\r\n }\r\n\r\n setDropDownClassMap(): void {\r\n this._dropDownClassMap = {\r\n [this._dropDownPrefixCls]: true,\r\n [\"component-select\"]: this._mode === \"combobox\",\r\n [`${this._dropDownPrefixCls}--single`]: !this.Multiple,\r\n [`${this._dropDownPrefixCls}--multiple`]: this.Multiple,\r\n [`${this._dropDownPrefixCls}-placement-bottomLeft`]:\r\n this._dropDownPosition === \"bottom\",\r\n [`${this._dropDownPrefixCls}-placement-topLeft`]:\r\n this._dropDownPosition === \"top\"\r\n };\r\n }\r\n\r\n scrollToActive(): void {\r\n /** wait for dropdown display */ // @ts-ignore\r\n setTimeout(_ => {\r\n if (this._activeFilterOption && this._activeFilterOption.Value) {\r\n const index = this._filterOptions.findIndex(\r\n option => option.Value === this._activeFilterOption.Value\r\n );\r\n try {\r\n const scrollPane = this.dropdownUl.nativeElement.children[\r\n index\r\n ] as HTMLLIElement;\r\n // TODO: scrollIntoViewIfNeeded is not a standard API, why doing so?\r\n /* tslint:disable-next-line:no-any */\r\n (scrollPane as any).scrollIntoViewIfNeeded(false);\r\n } catch (e) {}\r\n }\r\n });\r\n }\r\n\r\n flushComponentState(): void {\r\n this.updateFilterOption();\r\n if (!this.Multiple) {\r\n this.updateSelectedOption(this._value);\r\n } else {\r\n if (this._value) {\r\n this.updateSelectedOption(this._value);\r\n }\r\n }\r\n }\r\n\r\n _setTriggerWidth(): void {\r\n this._triggerWidth = this._getTriggerRect().width;\r\n /** should remove after after https://github.com/angular/material2/pull/8765 merged **/\r\n if (this._cdkOverlay && this._cdkOverlay.overlayRef) {\r\n this._cdkOverlay.overlayRef.updateSize({\r\n width: this._triggerWidth\r\n });\r\n }\r\n }\r\n\r\n _getTriggerRect(): ClientRect {\r\n return this.trigger.nativeElement.getBoundingClientRect();\r\n }\r\n\r\n writeValue(value: string | string[]): void {\r\n this._updateValue(value, false);\r\n }\r\n\r\n registerOnChange(fn: (value: string | string[]) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.Disabled = isDisabled;\r\n }\r\n\r\n dropDownScroll(ul: HTMLUListElement): void {\r\n if (ul && ul.scrollHeight - ul.scrollTop === ul.clientHeight) {\r\n this.ScrollToBottom.emit(true);\r\n }\r\n }\r\n\r\n checkDropDownScroll(): void {\r\n if (\r\n this.dropdownUl &&\r\n this.dropdownUl.nativeElement.scrollHeight ===\r\n this.dropdownUl.nativeElement.clientHeight\r\n ) {\r\n this.ScrollToBottom.emit(true);\r\n }\r\n }\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2,\r\n private cDRef: ChangeDetectorRef\r\n ) {\r\n this._el = this._elementRef.nativeElement;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (this._value != null) {\r\n this.flushComponentState();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateFilterOption();\r\n this.setClassMap();\r\n this.setDropDownClassMap();\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n if (this._cacheOptions !== this._options) {\r\n /** update filter option after every content check cycle */\r\n this.updateFilterOption();\r\n this._cacheOptions = this._options;\r\n } else {\r\n this.updateFilterOption(false);\r\n }\r\n\r\n if (this.FirstDefault) {\r\n if (!this._value && this._options) {\r\n if (this._options[0] !== undefined && this._options[0].Value) {\r\n this.chooseOption(this._options[0], false);\r\n setTimeout(() => {\r\n this.onChange(this._options[0].Value);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _updateValue(\r\n value: string[] | string,\r\n emitChange: boolean = true\r\n ): void {\r\n if (this._value === value) {\r\n return;\r\n }\r\n if (value == null && this.Multiple) {\r\n this._value = [];\r\n } else {\r\n this._value = value;\r\n }\r\n if (!this.Multiple) {\r\n if (value == null) { // @ts-ignore\r\n this._selectedOption = null;\r\n } else {\r\n this.updateSelectedOption(value);\r\n }\r\n } else {\r\n if (value) {\r\n if (value.length === 0) {\r\n this.clearAllSelectedOption(emitChange);\r\n } else {\r\n this.updateSelectedOption(value, true);\r\n }\r\n } else if (value == null) {\r\n this.clearAllSelectedOption(emitChange);\r\n }\r\n }\r\n }\r\n}\r\n","<div tabindex=\"0\" #trigger cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" [ngClass]=\"_selectionClassMap\"\r\n (keydown.Enter)=\"handleKeyEnterEvent($event)\" (keydown.Backspace)=\"handleKeyBackspaceEvent($event)\"\r\n (keydown.ArrowUp)=\"handleKeyUpEvent($event)\" (keydown.ArrowDown)=\"handleKeyDownEvent($event)\">\r\n\r\n <!-- Увесь селект-->\r\n <div class=\"pg-select-selection__rendered\" *ngIf=\"!ShowSearch\">\r\n <div class=\"pg-select-selection__placeholder\">\r\n <ng-template [ngIf]=\"!_selectedOption\">\r\n {{ PlaceHolder }}\r\n </ng-template>\r\n </div>\r\n <div class=\"pg-select-selection-selected-value\">\r\n {{ _selectedOption?.Label }}\r\n </div>\r\n </div>\r\n <!--Cписок options-->\r\n <div class=\"pg-select-selection__rendered\" *ngIf=\"ShowSearch\">\r\n <div [hidden]=\"_searchText||(!Open&&_selectedOption)||_selectedOptions.size\"\r\n class=\"pg-select-selection__placeholder\">\r\n <ng-template [ngIf]=\"(!_composing)&&_selectedOption\">\r\n {{ _selectedOption.Label }}\r\n </ng-template>\r\n <ng-template [ngIf]=\"(!_composing)&&(!_selectedOption)\">\r\n {{ PlaceHolder }}\r\n </ng-template>\r\n </div>\r\n\r\n\r\n <!--Мультиселект-->\r\n <ul *ngIf=\"Multiple\"> \r\n <li *ngFor=\"let option of _selectedOptions\" [@tagAnimation] [attr.title]=\"option?.Label || option?.Value\"\r\n class=\"pg-select-selection__choice\" style=\"-webkit-user-select: none;\">\r\n <span class=\"pg-select-selection__choice__remove\" (click)=\"unSelectMultipleOption(option,$event)\"></span>\r\n <div class=\"pg-select-selection__choice__content\">{{ option?.Label }}</div>\r\n </li>\r\n <li class=\"pg-select-search pg-select-search--inline\">\r\n <div class=\"pg-select-search__field__wrap\">\r\n <input class=\"pg-select-search__field\" (compositionstart)=\"compositionStart()\"\r\n (compositionend)=\"compositionEnd();updateWidth(searchInput,_searchText);\" [(ngModel)]=\"_searchText\"\r\n (ngModelChange)=\"updateFilterOption();onSearchChange($event);\"\r\n (keydown)=\"updateWidth(searchInput,_searchText)\" (input)=\"updateWidth(searchInput,_searchText)\"\r\n (blur)=\"onTouched()\" #searchInput>\r\n <span class=\"pg-select-search__field__mirror\"></span></div>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"!Multiple\" class=\"pg-select-selection-selected-value\" [hidden]=\"!(_selectedOption?.Label)||Open\">\r\n {{ _selectedOption?.Label }}\r\n </div>\r\n <div *ngIf=\"!Multiple\" [hidden]=\"!Open\" class=\"pg-select-search pg-select-search--inline\">\r\n <div class=\"pg-select-search__field__wrap\">\r\n <input class=\"pg-select-search__field\" (blur)=\"onTouched()\" (compositionstart)=\"compositionStart()\"\r\n (compositionend)=\"compositionEnd()\" [(ngModel)]=\"_searchText\"\r\n (ngModelChange)=\"updateFilterOption();onSearchChange($event);\" #searchInput>\r\n <span class=\"pg-select-search__field__mirror\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n <span (click)=\"onTouched();clearSelect($event)\" class=\"pg-select-selection__clear\" style=\"-webkit-user-select: none;\"\r\n *ngIf=\"_selectedOption?.Label&&AllowClear&&!Multiple\">\r\n </span>\r\n <span class=\"pg-select-arrow\"><b></b></span>\r\n</div>\r\n<ng-template cdkConnectedOverlay cdkConnectedOverlayHasBackdrop [cdkConnectedOverlayOrigin]=\"origin\"\r\n (backdropClick)=\"closeDropDown()\" (detach)=\"closeDropDown();\" (positionChange)=\"onPositionChange($event)\"\r\n [cdkConnectedOverlayWidth]=\"_triggerWidth\" [cdkConnectedOverlayOpen]=\"_isOpen\">\r\n <div [ngClass]=\"_dropDownClassMap\" [@dropDownAnimation]=\"_dropDownPosition\">\r\n <div style=\"overflow: auto;\">\r\n <ul class=\"pg-select-dropdown-menu pg-select-dropdown-menu-vertical pg-select-dropdown-menu-root\" #dropdownUl\r\n (scroll)=\"dropDownScroll(dropdownUl)\">\r\n <li *ngFor=\"let option of _filterOptions\" [class.pg-select-dropdown-menu-item-disabled]=\"option.Disabled\"\r\n [class.pg-select-dropdown-menu-item-active]=\"option.Value == _activeFilterOption?.Value\"\r\n [class.pg-select-dropdown-menu-item-selected]=\"(option.Value==(_selectedOption?.Value))||(isInSet(_selectedOptions,option))\"\r\n class=\"pg-select-dropdown-menu-item\" (click)=\"clickOption(option,$event)\">\r\n <ng-template *ngIf=\"option.OptionTemplate\" [ngTemplateOutlet]=\"option.OptionTemplate\">\r\n </ng-template>\r\n <ng-template [ngIf]=\"!option.OptionTemplate\">\r\n {{ option.Label }}\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</ng-template>","import {\r\n\tComponent,\r\n\tContentChild,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tViewEncapsulation\r\n} from \"@angular/core\";\r\n\r\n//import { toBoolean } from \"@shared/utils/convert\";\r\nimport { MefDevSelectComponent } from \"./select.component\";\r\nimport { toBoolean } from \"./../util/convert\";\r\n\r\n\r\n/**\r\n * @skipTemplateDoc true\r\n * Component for representing an option in a dropdown list.\r\n *\r\n *```\r\n * <mefdev-select>\r\n * <mefdev-option Value=\"1\" Label=\"Option 1\"></mefdev-option>\r\n * <mefdev-option Value=\"2\" Label=\"Option 2\"></mefdev-option>\r\n * <mefdev-option Value=\"3\" Label=\"Option 3\"></mefdev-option>\r\n * </mefdev-select>\r\n *```\r\n *\r\n */\r\n@Component({\r\n\tselector: \"mefdev-option\",\r\n\tencapsulation: ViewEncapsulation.None,\r\n\ttemplateUrl: \"./option.component.html\",\r\n\tstyleUrls: []\r\n})\r\nexport class MefDevOptionComponent implements OnDestroy, OnInit {\r\n\tprivate _disabled = false;\r\n\r\n\t_value: string;\r\n\t_label: string;\r\n\r\n\t/**\r\n \t* Template for the content of the option.\r\n \t*/\r\n\t@ContentChild(\"OptionTemplate\") OptionTemplate: any;\r\n\r\n\t /**\r\n * The value of the option.\r\n */\r\n\t@Input()\r\n\tset Value(value: string) {\r\n\t\tif (this._value === value) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._value = value;\r\n\t}\r\n\r\n\tget Value(): string {\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t/**\r\n * The label of the option.\r\n */\r\n\t@Input()\r\n\tset Label(value: string) {\r\n\t\tif (this._label === value) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._label = value;\r\n\t}\r\n\r\n\tget Label(): string {\r\n\t\treturn this._label;\r\n\t}\r\n\r\n\t/**\r\n * Indicates whether the option is disabled.\r\n */\r\n\t@Input()\r\n\tset Disabled(value: boolean) {\r\n\t\tthis._disabled = toBoolean(value);\r\n\t}\r\n\r\n\tget Disabled(): boolean {\r\n\t\treturn this._disabled;\r\n\t}\r\n\r\n\tconstructor(private _Select: MefDevSelectComponent) {}\r\n\r\n\t/**\r\n * Initialization lifecycle hook.\r\n * Adds the option to the dropdown list.\r\n */\r\n\tngOnInit(): void {\r\n\t\tthis._Select.addOption(this);\r\n\t}\r\n\r\n\t/**\r\n * Destruction lifecycle hook.\r\n * Removes the option from the dropdown list.\r\n */\r\n\tngOnDestroy(): void {\r\n\t\tthis._Select.removeOption(this);\r\n\t}\r\n}\r\n","<ng-content></ng-content>","import { Component, ViewChild, ElementRef, HostListener, OnDestroy, Input, OnChanges, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n\r\n/**\r\n * Datepicker Component for selecting dates.\r\n *\r\n * This component allows users to pick a date from a calendar interface.\r\n * It supports various configuration options such as language, date format, and date range.\r\n *\r\n * @example\r\n * <mefdev-datepicker\r\n * [lang]=\"'uk'\"\r\n * [dateFormat]=\"'dd/MM/yyyy'\"\r\n * [range]=\"{startYear: 1900, toYear: 300}\"\r\n * [disabled]=\"false\"\r\n * (dateChanged)=\"onDateChanged($event)\"\r\n * [topOffset]=\"'20'\"\r\n * [leftOffset]=\"'10'\">\r\n * </mefdev-datepicker>\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/utils/datepicker</example-url>\r\n*/\r\n\r\n@Component({\r\n selector: 'mefdev-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss']\r\n})\r\n\r\nexport class DatepickerComponent implements OnChanges, OnInit {\r\n\r\n/**\r\n * Flag to determine if the calendar is open or closed.\r\n * Default value: false (closed).\r\n*/\r\nisCalendarOpen: boolean = false; \r\n\r\n/**\r\n * Flag to determine if the component is in editing mode.\r\n * Default value: false (not in editing mode).\r\n*/\r\nisEditing: boolean = false; \r\n\r\n/**\r\n * The currently selected date.\r\n * Default value: Today's date.\r\n*/\r\nselectedDate: Date = new Date(); \r\n\r\n /**\r\n * The formatted date for display in the input.\r\n * Default value: Formatted representation of the selected date.\r\n*/\r\nformattedDate: any ; \r\n\r\n /**\r\n * Track the edited date separately when in editing mode.\r\n * Default value: An empty string.\r\n*/\r\neditedDate: string = ''; \r\n\r\n/**\r\n * Flag to determine if the month dropdown is open or closed.\r\n * Default value: true (open).\r\n*/\r\nisMonthDropdownOpen: boolean = true; \r\n\r\n/**\r\n * Flag to determine if the year dropdown is open or closed.\r\n * Default value: true (open).\r\n*/\r\nisYearDropdownOpen: boolean = true; \r\n\r\n/**\r\n * The selected month (0-11).\r\n * Default value: The month of the selected date.\r\n*/\r\nselectedDateMonth: number = this.selectedDate.getMonth(); \r\n\r\n/**\r\n * The selected year.\r\n * Default value: The year of the selected date.\r\n*/\r\nselectedDateYear: number = this.selectedDate.getFullYear(); \r\n\r\n /**\r\n * An array of years for the year dropdown.\r\n * Default value: An array of years within the specified range.\r\n*/\r\nyears: number[] \r\n\r\n/**\r\n * The language/locale for the datepicker.\r\n * Default value: 'en' (English).\r\n * @example\r\n * <mefdev-datepicker\r\n * [lang] = \"'uk'\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() lang: string = 'en'; \r\n\r\n/**\r\n * The date format for displaying the selected date.\r\n * Default value: 'EEE MMM dd yyyy'.\r\n * @example\r\n * <mefdev-datepicker\r\n * [dateFormat]=\"'dd/MM/yyyy'\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() dateFormat: string = 'EEE MMM dd yyyy'; \r\n\r\n/**\r\n * The range of years available in the year dropdown.\r\n * Default value: { startYear: 1900, toYear: 300 }.\r\n * @example\r\n * <mefdev-datepicker\r\n * [range]=\"{startYear: 1900, toYear: 300}\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input('range') yearsRange:{startYear:number, toYear:number} = {startYear:1900, toYear:300}; \r\n\r\n/**\r\n * Whether the datepicker is disabled or not.\r\n * Default value: false (enabled).\r\n * @example\r\n * <mefdev-datepicker\r\n * [disabled]=\"false\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() disabled: boolean = false; \r\n\r\n/**\r\n * The top offset for positioning the datepicker.\r\n * Default value: '20'.\r\n * @example\r\n * <mefdev-datepicker\r\n * [topOffset]=\"'20'\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() topOffset: string = '20';\r\n\r\n/**\r\n * The left offset for positioning the datepicker.\r\n * Default value: '10'.\r\n * @example\r\n * <mefdev-datepicker\r\n * [leftOffset]=\"'10'\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() leftOffset: string = '10'; //Default value\r\n\r\n/**\r\n * Event emitted when the selected date in the datepicker changes.\r\n * It emits a `Date` object representing the selected date.\r\n * @example\r\n * <mefdev-datepicker\r\n * (dateChanged)=\"onDateChanged($event)\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Output() dateChanged: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n/**\r\n * Regular expression to validate user input for date in the format \"dd/MM/yyyy\".\r\n * - The day (dd) should be between 01 and 31.\r\n * - The month (MM) should be between 01 and 12.\r\n * - The year (yyyy) should be a 4-digit number.\r\n*/\r\n private dateRegExp: RegExp = /^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n\r\n/**\r\n * The string entered by the user for date input.\r\n * This variable stores the user's input as they type in the date field.\r\n*/\r\n userInput: string = '';\r\n \r\n/**\r\n * Host listener for document click events to handle calendar interaction.\r\n * This function checks if a click event occurred within the calendar or input elements.\r\n * - If the click occurred within the calendar, no action is taken.\r\n * - If the click occurred within the input element and the component is not in editing mode,\r\n * it opens the calendar.\r\n * - If the click occurred outside the calendar and input, it closes the calendar.\r\n * @param event The MouseEvent object representing the click event.\r\n*/\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const targetElement = event.target as HTMLElement;\r\n const calendarElement = this.elementRef.nativeElement.querySelector('.calendar');\r\n const inputElement = this.elementRef.nativeElement.querySelector('input');\r\n\r\n if (calendarElement && calendarElement.contains(targetElement)) {\r\n // Клік відбувся на елементі календаря, нічого не робимо\r\n return;\r\n }\r\n\r\n if (inputElement && inputElement.contains(targetElement) && !this.isEditing) {\r\n // Клік відбувся на елементі input, відкриваємо календар\r\n this.isCalendarOpen = true;\r\n } else {\r\n // Клік відбувся поза календарем та input, закриваємо календар\r\n this.isCalendarOpen = false;\r\n }\r\n }\r\n\r\n/**\r\n * Constructor for the DatepickerComponent class.\r\n * @param datePipe A service for formatting and parsing dates.\r\n * @param elementRef A reference to the element on which this component is attached.\r\n * It is used to access DOM elements.\r\n*/\r\n constructor(private datePipe: DatePipe, private elementRef: ElementRef) {\r\n this.updateInputValue()\r\n }\r\n \r\n/**\r\n * Lifecycle hook called after the component is initialized.\r\n * It initializes the years for the year select dropdown.\r\n*/\r\n ngOnInit(){\r\n this.initializeYears();\r\n }\r\n/**\r\n * Lifecycle hook called whenever the input properties of the component change.\r\n * It updates the input value.\r\n*/\r\n ngOnChanges() {\r\n this.updateInputValue();\r\n }\r\n\r\n/**\r\n * An array of month names based on the selected language.\r\n * It provides localized month names for display in the datepicker.\r\n*/\r\n private get months(){\r\n return this.getMonthList(this.lang);\r\n } \r\n\r\n/**\r\n * An array of weekday names based on the selected language.\r\n * It provides localized weekday names for display in the datepicker.\r\n*/\r\n private get weekdays() {\r\n return this.getWeekdayList(this.lang);\r\n }\r\n\r\n/**\r\n * Initialize the list of years to be displayed in the year dropdown.\r\n * This method populates the 'years' array with a range of years based on the provided 'yearsRange' configuration.\r\n * @example\r\n * ```\r\n * // Assuming 'yearsRange' is { startYear: 1900, toYear: 300 }\r\n * // After calling initializeYears(), 'years' might contain [1900, 1901, ..., 300]\r\n * this.initializeYears();\r\n * ```\r\n*/\r\n private initializeYears() {\r\n this.years = Array.from({ length: this.yearsRange.toYear }, (_, index) => index + this.yearsRange.startYear);\r\n }\r\n\r\n/**\r\n * Toggle the editing mode for the date input. When enabled, the user can edit the date directly in the input field.\r\n * This method sets the 'isEditing' flag to true and stores the current formatted date for editing.\r\n*/\r\n toggleEdit() {\r\n this.isEditing = true;\r\n this.editedDate = this.formatSelectedDate(); // Store the current formatted date for editing\r\n }\r\n\r\n/**\r\n * Get a list of month names in the specified language and format.\r\n * @param locales - An optional parameter specifying the locale or locales to use for formatting.\r\n * @param format - The format for month names, either \"long\" (default) or \"short\".\r\n * @returns An array of month names based on the provided format and locale.\r\n * ```\r\n * // Get a list of month names in the default language and long format\r\n * const months = this.getMonthList(this.lang);\r\n * ```\r\n*/\r\n private getMonthList( locales?: string | string[], format: \"long\" | \"short\" = \"long\"): string[] { \r\n const year = new Date().getFullYear();\r\n const monthList = [...Array(12).keys()];\r\n const formatter = new Intl.DateTimeFormat(locales, { month: format });\r\n const getMonthName = (monthIndex: number) => formatter.format(new Date(year, monthIndex));\r\n return monthList.map(getMonthName);\r\n }\r\n \r\n/**\r\n * Get a list of weekday names in the specified language and format.\r\n * @param locales - An optional parameter specifying the locale or locales to use for formatting.\r\n * @param format - The format for weekday names, either \"short\" (default) or \"long\".\r\n * @returns An array of weekday names based on the provided format and locale.\r\n * ```\r\n * // Get a list of weekday names in the default language and short format\r\n * const weekdays = this.getWeekdayList();\r\n * ```\r\n*/\r\n private getWeekdayList(locales?: string | string[], format: \"short\" | \"long\" = \"short\"): string[] {\r\n const weekdays = [...Array(7).keys()];\r\n const mondayIndex = weekdays.indexOf(0);\r\n weekdays.splice(mondayIndex, 1); \r\n weekdays.push(0); \r\n const formatter = new Intl.DateTimeFormat(locales, { weekday: format }); \r\n const getWeekdayName = (weekdayIndex: number) => {\r\n return formatter.format(new Date(2023, 9, weekdayIndex + 1)); \r\n };\r\n return weekdays.map(getWeekdayName);\r\n }\r\n \r\n \r\n/**\r\n * Toggle the visibility of the calendar component. When called, this method changes the 'isCalendarOpen' flag\r\n * to show or hide the calendar interface.\r\n * ```\r\n * // Toggle the visibility of the calendar\r\n * this.toggleCalendar();\r\n * ```\r\n*/\r\n private toggleCalendar() {\r\n this.isCalendarOpen = !this.isCalendarOpen\r\n }\r\n\r\n/**\r\n * Save the edited date input by the user, provided it matches the specified date format.\r\n * This method checks if the entered date is in a valid format, disables the editing mode, and applies\r\n * the edited date to the 'selectedDate'. It then reformats the selected date and closes the calendar.\r\n * ```\r\n * // Save the edited date and update the selected date\r\n * this.saveEditedDate();\r\n * ```\r\n*/\r\n private saveEditedDate() {\r\n if (this.isDateValid(this.editedDate)) {\r\n this.isEditing = false; \r\n const [day, month, year] = this.editedDate.split('/');\r\n this.selectedDate = new Date(+year, +month - 1, +day);\r\n this.formatDate(); \r\n this.toggleCalendar(); \r\n } \r\n }\r\n\r\n/**\r\n * Handle user input in the editable input field for date editing. This method captures the input value\r\n * and stores it in the 'editedDate' variable. If the input matches the valid date format, it updates\r\n * 'selectedDateMonth' and 'selectedDateYear' accordingly.\r\n * @param event - The input event containing the user's input.\r\n * ```\r\n * // Handle user input in the editable input field\r\n * this.onDateInput(event);\r\n * ```\r\n*/\r\n private onDateInput(event: any) {\r\n const inputDate: string = event.target.value;\r\n if (this.isDateValid(inputDate)) {\r\n this.editedDate = inputDate;\r\n const parsedDate = inputDate.split('/');\r\n this.selectedDateMonth = +parsedDate[1] - 1;\r\n this.selectedDateYear = +parsedDate[2];\r\n }\r\n }\r\n\r\n/**\r\n * Toggle the visibility of the month dropdown in the calendar interface.\r\n * This method is used to open or close the dropdown for selecting months.\r\n * @param event - The event triggering the toggle action (e.g., a click event).\r\n * ```\r\n * // Toggle the visibility of the month dropdown\r\n * this.toggleMonthDropdown(event);\r\n * ```\r\n*/\r\n private toggleMonthDropdown(event: Event) {\r\n this.isMonthDropdownOpen = !this.isMonthDropdownOpen;\r\n }\r\n\r\n/**\r\n * Toggle the visibility of the year dropdown in the calendar interface.\r\n * This method is used to open or close the dropdown for selecting years.\r\n * @param event - The event triggering the toggle action (e.g., a click event).\r\n * ```\r\n * // Toggle the visibility of the year dropdown\r\n * this.toggleYearDropdown(event);\r\n * ```\r\n*/\r\n private toggleYearDropdown(event: Event) {\r\n this.isYearDropdownOpen = !this.isYearDropdownOpen;\r\n }\r\n\r\n/**\r\n * Handle the change of the selected month in the calendar interface.\r\n * This method updates the input value, sets the selected date to the first day of the chosen month,\r\n * and recalculates the calendar display accordingly.\r\n * ```\r\n * // Handle the change of the selected month\r\n * this.onMonthChange();\r\n * ```\r\n*/\r\n private onMonthChange() {\r\n this.updateInputValue();\r\n this.selectedDate = new Date(this.selectedDateYear, this.selectedDateMonth, 1);\r\n this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Handle the change of the selected year in the calendar interface.\r\n * This method updates the input value, sets the selected date to the first day of the chosen year,\r\n * reformats the selected date, and recalculates the calendar display.\r\n * ```\r\n * // Handle the change of the selected year\r\n * this.onYearChange();\r\n * ```\r\n*/\r\n private onYearChange() {\r\n this.updateInputValue();\r\n this.selectedDate = new Date(this.selectedDateYear, this.selectedDateMonth, 1);\r\n this.formatDate();\r\n this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Select a date in the calendar interface and perform necessary updates.\r\n * This method sets the selected date, formats it, closes the calendar, and emits a dateChanged event.\r\n * It also updates the selected month and year dropdown values.\r\n * @param date - The date to be selected in the calendar.\r\n*/\r\n selectDate(date: Date) {\r\n this.selectedDate = date;\r\n this.formatDate();\r\n this.isCalendarOpen = false;\r\n this.dateChanged.next(this.selectedDate);\r\n this.selectedDateMonth = this.selectedDate.getMonth();\r\n this.selectedDateYear = this.selectedDate.getFullYear();\r\n }\r\n\r\n/**\r\n * Format the selected date based on the chosen date format and language.\r\n * This method uses the Angular DatePipe to format the selected date and updates the formattedDate variable.\r\n * ```\r\n * // Format the selected date\r\n * this.formatDate();\r\n * ```\r\n*/\r\n private formatDate() {\r\n this.formattedDate = this.datePipe.transform(this.selectedDate, this.dateFormat) || '';\r\n }\r\n\r\n/**\r\n * Format the selected date based on the chosen date format, language, and locale.\r\n * This method uses the Angular DatePipe to format the selected date with the specified language and updates the formatted date as a string.\r\n * @returns A formatted date string.\r\n * ```\r\n * // Format the selected date with language\r\n * const formatted = this.formatSelectedDate();\r\n * ```\r\n*/\r\n private formatSelectedDate(): string {\r\n return this.datePipe.transform(this.selectedDate, this.dateFormat, this.lang) || '';\r\n }\r\n\r\n/**\r\n * Update the input value displayed in the calendar interface.\r\n * This method updates the input value to either the edited date or the formatted selected date,\r\n * depending on whether the user is in edit mode or not.\r\n * ```\r\n * // Update the input value\r\n * this.updateInputValue();\r\n * ```\r\n*/\r\n private updateInputValue() {\r\n this.formattedDate = this.isEditing ? this.editedDate : this.formatSelectedDate();\r\n }\r\n\r\n/**\r\n * Get an array of arrays representing the days of the current month.\r\n * Each sub-array contains the day data for a week, and each day data object includes the date and whether it belongs to the current month.\r\n * @returns An array of arrays representing the days of the current month.\r\n * ```\r\n * // Get an array of arrays representing the days of the current month\r\n * const calendar = this.calendarDays;\r\n * ```\r\n*/\r\n private get calendarDays() {\r\n return this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Get the date of the previous month to display in empty cells of the current month.\r\n * This method returns the date of the previous month if the provided date is not in the current month.\r\n * If the provided date is in the current month, it returns the date's day as a string.\r\n * @param date - The date to evaluate.\r\n * @returns The date of the previous month or a day string.\r\n * ```\r\n * // Get the previous month's date to display in empty cells\r\n * const previousMonthDate = this.getPreviousMonthDate(new Date(2023, 8, 1));\r\n * ```\r\n*/\r\n private getPreviousMonthDate(date: Date): any {\r\n if (!date) {\r\n return '';\r\n }\r\n const currentDate = new Date();\r\n if (date.getMonth() === currentDate.getMonth() && date.getFullYear() === currentDate.getFullYear()) {\r\n return date.getDate().toString();\r\n } else {\r\n return this.datePipe.transform(date, 'dd');\r\n }\r\n }\r\n\r\n/**\r\n * Navigate to the previous month in the calendar interface.\r\n * This method updates the selectedDate, formats it, and recalculates the first day of the calendar.\r\n * ```\r\n * // Navigate to the previous month\r\n * this.getPreviousMonth();\r\n * ```\r\n*/\r\n private getPreviousMonth() {\r\n const currentMonth = this.selectedDate.getMonth();\r\n this.selectedDate = new Date(this.selectedDate.getFullYear(), currentMonth - 1, 1);\r\n this.formatDate();\r\n this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Navigate to the next month in the calendar interface.\r\n * This method updates the selectedDate, formats it, and recalculates the first day of the calendar.\r\n * ```\r\n * // Navigate to the next month\r\n * this.getNextMonth();\r\n * ```\r\n*/\r\n private getNextMonth() {\r\n const currentMonth = this.selectedDate.getMonth();\r\n this.selectedDate = new Date(this.selectedDate.getFullYear(), currentMonth + 1, 1);\r\n this.formatDate();\r\n this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Get the number of days in a given month of a specific year.\r\n * @param year - The year for which you want to determine the number of days.\r\n * @param month - The month (0-based index) for which you want to determine the number of days.\r\n * @returns The number of days in the specified month of the given year.\r\n*/\r\n private daysInMonth(year: number, month: number): number {\r\n return new Date(year, month + 1, 0).getDate();\r\n }\r\n\r\n/**\r\n * Calculate the structure of days in a month for the calendar display.\r\n * This method generates a matrix of day data objects representing the days in the calendar.\r\n * Each day data object contains the date and whether it belongs to the current month.\r\n * @returns A matrix of day data objects for the calendar display.\r\n*/\r\n private calculateFirstDayOfCalendar() {\r\n const year = this.selectedDate.getFullYear();\r\n const month = this.selectedDate.getMonth();\r\n const firstDayOfMonth = new Date(year, month, 1);\r\n const firstWeekday = firstDayOfMonth.getDay();\r\n const startDay = firstWeekday === 0 ? -5 : 2 - firstWeekday;\r\n const calendarDays = [];\r\n let currentDay = startDay;\r\n for (let i = 0; i < 6; i++) {\r\n const week = [];\r\n for (let j = 0; j < 7; j++) {\r\n const day = new Date(year, month, currentDay);\r\n const dayData = {\r\n date: day,\r\n isCurrentMonth: currentDay >= 1 && currentDay <= this.daysInMonth(year, month),\r\n };\r\n week.push(dayData);\r\n currentDay++;\r\n }\r\n calendarDays.push(week);\r\n }\r\n return calendarDays;\r\n }\r\n \r\n/**\r\n * Check if a given date is the currently selected date in the calendar.\r\n * @param date - The date to check.\r\n * @returns `true` if the provided date matches the selected date, otherwise `false`.\r\n * ```\r\n * // Check if a date is selected\r\n * const isSelected = this.isDateSelected(someDate);\r\n * ```\r\n*/\r\n private isDateSelected(date: Date) {\r\n return date.toDateString() === this.selectedDate.toDateString();\r\n }\r\n\r\n/**\r\n * Check if a date string is valid based on the specified date format.\r\n * @param inputDate - The date string to validate.\r\n * @returns `true` if the input date string is valid, otherwise `false`.\r\n * ```\r\n * // Check if a date string is valid\r\n * const isValidDate = this.isDateValid('05/25/2023');\r\n * ```\r\n*/\r\n private isDateValid(inputDate: string): boolean {\r\n return this.dateRegExp.test(inputDate);\r\n }\r\n \r\n/**\r\n * Check if a given date is today's date.\r\n * @param date - The date to check.\r\n * @returns `true` if the provided date is today's date, otherwise `false`.\r\n * ```\r\n * // Check if a date is today's date\r\n * const isToday = this.isDateToday(someDate);\r\n * ```\r\n*/\r\n private isDateToday(date: Date) {\r\n const today = new Date();\r\n return date.toDateString() === today.toDateString();\r\n }\r\n}","<div class=\"datepicker-container\"\r\n[class.disabled]=\"disabled\"\r\n>\r\n\r\n <!-- Input, save & edit buttons -->\r\n <div class=\"input-container\">\r\n\r\n <div *ngIf=\"!isEditing\">\r\n\r\n <input\r\n type=\"text\"\r\n (click)=\"toggleCalendar()\"\r\n [value]=\"formattedDate\"\r\n [readOnly]=\"true\"\r\n [disabled]=\"isEditing\"\r\n >\r\n </div>\r\n <!-- Edit -->\r\n <i class=\"fa fa-pencil-square-o edit-button\" aria-hidden=\"true\" (click)=\"toggleEdit()\"></i> \r\n\r\n <div *ngIf=\"isEditing\">\r\n <input\r\n type=\"text\"\r\n [value]=\"editedDate\"\r\n (input)=\"onDateInput($event)\"\r\n class=\"border-3\"\r\n (click)=\"toggleCalendar()\"\r\n >\r\n <i class=\"fa fa-floppy-o edit-button\" (click)=\"saveEditedDate()\" aria-hidden=\"true\"></i>\r\n </div> \r\n </div>\r\n\r\n<!-- Calendar(Dropdowns, dates) -->\r\n <div *ngIf=\"isCalendarOpen\" class=\"calendar\" #calendarContainer \r\n [style.top]=\"topOffset\"\r\n [style.left]=\"leftOffset\">\r\n <div class=\"calendar-header\">\r\n <div class=\"monthButtonContainer\">\r\n <!-- Month dropdown -->\r\n <ng-container *ngIf=\"isMonthDropdownOpen; else monthLabel\">\r\n <mefdev-select \r\n class=\"monthDropdown\"\r\n [(ngModel)]=\"selectedDateMonth\" \r\n (ngModelChange)=\"onMonthChange()\"\r\n [PlaceHolder]=\"'month'\"\r\n >\r\n <mefdev-option \r\n *ngFor=\"let month of months; let i = index\" \r\n [Value]=\"i\"\r\n [Label] = \"month\" \r\n \r\n >{{ month }}</mefdev-option>\r\n </mefdev-select>\r\n </ng-container>\r\n <ng-template #monthLabel>\r\n <span (click)=\"toggleMonthDropdown($event)\"></span>\r\n </ng-template>\r\n\r\n <!-- Year dropdown -->\r\n <ng-container *ngIf=\"isYearDropdownOpen; else yearLabel\">\r\n <mefdev-select \r\n class=\"yearDropdown\" \r\n [(ngModel)]=\"selectedDateYear\" \r\n (ngModelChange)=\"onYearChange()\"\r\n [PlaceHolder]=\"'year'\"\r\n >\r\n <mefdev-option \r\n *ngFor=\"let year of years\" \r\n [Label] = \"year\" \r\n [Value]=\"year\" \r\n >{{year}}</mefdev-option>\r\n </mefdev-select>\r\n </ng-container>\r\n <ng-template #yearLabel>\r\n <span (click)=\"toggleYearDropdown($event)\">{{ selectedDateYear }}</span>\r\n </ng-template>\r\n </div>\r\n <!-- Calendar exit button -->\r\n <div>\r\n <i class=\"fa fa-times toggleCalendarButton\" (click)=\"toggleCalendar()\" aria-hidden=\"true\"></i>\r\n </div>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n <table>\r\n <tr>\r\n <th class=\"align-items-center\" *ngFor=\"let weekday of weekdays\">{{ weekday }}</th>\r\n </tr>\r\n <tr *ngFor=\"let week of calendarDays\">\r\n <td *ngFor=\"let dayData of week\" \r\n (click)=\"selectDate(dayData.date)\"\r\n [ngClass]=\"{ 'selected': isDateSelected(dayData.date), 'prev-month': !dayData.isCurrentMonth }\">\r\n\r\n <span class=\"date\" \r\n [class.prev-month]=\"!dayData.isCurrentMonth\"\r\n >\r\n {{ dayData.date.getDate() }}\r\n </span>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MefDevOptionComponent } from \"./option.component\";\r\nimport { OptionPipe } from \"./option.pipe\";\r\nimport { MefDevSelectComponent } from \"./select.component\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule, OverlayModule],\r\n declarations: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent],\r\n exports: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent]\r\n})\r\nexport class MefDevSelectModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { DatepickerComponent } from './datepicker/datepicker.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MefDevSelectModule } from '../../../pg-components/select';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [DatepickerComponent],\r\n exports: [DatepickerComponent],\r\n imports: [CommonModule, FormsModule, DatePipe, MefDevSelectModule],\r\n providers:[DatePipe]\r\n})\r\nexport class MefDevDatepickerModule { }\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n/**\r\n * Component representing a progress bar.\r\n * \r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-progress type=\"linear\" color=\"blue\" [thick]=\"true\"></mefdev-progress>\r\n * <mefdev-progress type=\"circle\" color=\"red\" [indeterminate]=\"true\"></mefdev-progress>\r\n * ```\r\n */\r\n@Component({\r\n selector: \"mefdev-progress\",\r\n templateUrl: \"./progress.component.html\"\r\n})\r\nexport class MefDevProgressComponent {\r\n _value: number;\r\n _value2: any;\r\n\r\n /**\r\n * The type of progress bar.\r\n * Possible values: \"linear\" | \"circle\".\r\n * Default value: \"linear\".\r\n */\r\n @Input() type: string;\r\n\r\n /**\r\n * The color of the progress bar.\r\n * Possible values: any valid CSS color value.\r\n * Default value: none.\r\n */\r\n\r\n @Input() color: string;\r\n\r\n /**\r\n * Determines whether the progress bar is thick.\r\n * Default value: false.\r\n */\r\n @Input() thick: boolean;\r\n\r\n /**\r\n * Determines whether the progress bar is indeterminate.\r\n * Default value: false.\r\n */\r\n @Input() indeterminate: boolean;\r\n\r\n\r\n /**\r\n * The value of the progress bar.\r\n * For the \"circle\" type, it should be a number between 0 and 100.\r\n */\r\n @Input() set value(value: number) {\r\n if (this.type == \"circle\") {\r\n this._value = (value / 100) * 360;\r\n if (this.value >= 50) {\r\n this._value2 = true;\r\n }\r\n } else this._value = value;\r\n }\r\n get value() {\r\n return this._value;\r\n }\r\n\r\n /**\r\n * Additional value property.\r\n */\r\n get value2() {\r\n return this._value2;\r\n }\r\n constructor() {}\r\n}\r\n","<div *ngIf=\"type === 'bar'; else circleBlock\">\r\n <div *ngIf=\"indeterminate; else determineBarBlock\">\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar-{{ color }}\" [class.progress-bar-indeterminate]=\"indeterminate\"></div>\r\n </div>\r\n </div>\r\n <ng-template #determineBarBlock>\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar progress-bar-{{ color }}\" [ngStyle]=\"{ width: value + '%' }\"></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<ng-template #circleBlock>\r\n <div class=\"progress-circle-{{ color }}\" [class.progress-circle-indeterminate]=\"indeterminate\"\r\n [class.progress-circle]=\"!indeterminate\" [class.progress-circle-thick]=\"thick\">\r\n <div *ngIf=\"indeterminate; else determineBlock\"></div>\r\n <ng-template #determineBlock>\r\n <div class=\"pie\" [ngStyle]=\"_value2 && { clip: 'rect(auto, auto, auto, auto)' }\">\r\n <div class=\"left-side half-circle\" [ngStyle]=\"_value2 && { transform: 'rotate(' + value + 'deg)' }\"></div>\r\n <div class=\"right-side half-circle\" [ngStyle]=\"{\r\n transform:\r\n _value2 === true ? 'rotate(180deg)' : 'rotate(' + value + 'deg)'\r\n }\"></div>\r\n </div>\r\n <div class=\"shadow\"></div>\r\n </ng-template>\r\n </div>\r\n</ng-template>","import {\r\n Component,\r\n Input,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ViewChild,\r\n TemplateRef,\r\n ContentChild,\r\n EventEmitter,\r\n Output\r\n} from \"@angular/core\";\r\n\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from \"@angular/animations\";\r\n\r\n/**\r\n * Component representing a custom card.\r\n * It provides various styling and animation options for the card layout.\r\n *\r\n * Example usage:\r\n * ```\r\n * <pgcard [Title]=\"'Card Title'\" [Type]=\"'default'\" [MinimalHeader]=\"false\" [ProgressType]=\"'circle'\">\r\n * Card content goes here...\r\n * </pgcard>\r\n * ```\r\n */\r\n@Component({\r\n selector: \"pgcard\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./card.components.html\",\r\n animations: [\r\n trigger(\"collapseState\", [\r\n state(\r\n \"inactive\",\r\n style({\r\n opacity: \"0\",\r\n height: 0,\r\n paddingBottom: \"0\"\r\n })\r\n ),\r\n state(\r\n \"active\",\r\n style({\r\n opacity: \"1\",\r\n height: \"*\",\r\n paddingBottom: \"*\"\r\n })\r\n ),\r\n transition(\"inactive => active\", animate(\"125ms ease-in\")),\r\n transition(\"active => inactive\", animate(\"125ms ease-out\"))\r\n ]),\r\n trigger(\"fadeAnimation\", [\r\n state(\r\n \"false\",\r\n style({\r\n opacity: \"0\",\r\n visibility: \"hidden\"\r\n })\r\n ),\r\n state(\r\n \"true\",\r\n style({\r\n opacity: \"1\",\r\n visibility: \"visible\"\r\n })\r\n ),\r\n transition(\"false => true\", animate(\"500ms ease-in\")),\r\n transition(\"true => false\", animate(\"500ms ease-out\"))\r\n ])\r\n ]\r\n})\r\nexport class pgCard {\r\n /**\r\n * Indicates whether the card is collapsed or not.\r\n * Default: false\r\n */\r\n _isCollapsed: boolean = false;\r\n\r\n /**\r\n * Indicates whether the card is maximized or not.\r\n * Default: false\r\n */\r\n _isMaximixed: boolean = false;\r\n\r\n /**\r\n * Indicates whether the card is in loading state or not.\r\n * Default: false\r\n */\r\n _isLoading: boolean = false;\r\n\r\n /**\r\n * Indicates whether the card has a minimal header or not.\r\n * Default: false\r\n */\r\n _minimalHeader: boolean = false;\r\n\r\n /**\r\n * The message to be displayed in the card.\r\n */\r\n _message: string = \"\";\r\n\r\n /**\r\n * The type of message to be displayed in the card (e.g., success, danger, warning).\r\n * Default: \"danger\"\r\n */\r\n _messageType: string = \"danger\";\r\n\r\n /**\r\n * Indicates whether the message in the card is visible or not.\r\n * Default: false\r\n */\r\n _messageVisible: boolean = false;\r\n\r\n /**\r\n * The type of progress indicator to be displayed in the card (e.g., circle, bar, none).\r\n * Default: \"circle\"\r\n */\r\n _progressType: string = \"circle\";\r\n\r\n /**\r\n * The color of the progress indicator in the card.\r\n */\r\n _progressColor: string = \"\";\r\n\r\n /**\r\n * Indicates whether the tools (e.g., refresh, close, maximize) are shown in the card header or not.\r\n * Default: true\r\n */\r\n _showTools: boolean = true;\r\n\r\n \r\n _close_card: boolean = false;\r\n _refresh: boolean = false;\r\n _refreshColor: string = \"light\";\r\n\r\n /**\r\n * Indicates whether the close button in the card is visible or not.\r\n * Default: true\r\n */\r\n _close: boolean = true;\r\n\r\n /**\r\n * Indicates whether the toggle button in the card is visible or not.\r\n * Default: true\r\n */\r\n _toggle: boolean = true;\r\n\r\n /**\r\n * Indicates whether the maximize button in the card is visible or not.\r\n * Default: true\r\n */\r\n _maximize: boolean = true;\r\n\r\n /**\r\n * The timeout value in milliseconds for the loading state of the card.\r\n * If set to 0, the loading state will not automatically turn off.\r\n * Default: 0\r\n */\r\n _timeout: number = 0;\r\n\r\n /**\r\n * The title text to be displayed in the card header.\r\n */\r\n _titleText: string = \"\";\r\n\r\n /**\r\n * The border style of the card.\r\n */\r\n _card_border_style: string = \"\";\r\n\r\n /**\r\n * The type of the card (e.g., default, bordered, minimal).\r\n * Default: \"default\"\r\n */\r\n _type: string = \"default\";\r\n\r\n\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card header.\r\n */\r\n _extraHeaderClass = \"\";\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card body.\r\n */\r\n _extraBodyClass = \"\";\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card.\r\n */\r\n _additionalClasses = \"\";\r\n\r\n /**\r\n * ViewChild reference to the host content element.\r\n */\r\n @ViewChild(\"hostContent\") _hostContent: ElementRef;\r\n /**\r\n * ViewChild reference to the minimal circle loading element.\r\n */\r\n @ViewChild(\"minimalCircleLoading\") minimalCircleLoading: ElementRef;\r\n /**\r\n * ViewChild reference to the minimal circle loading trigger element.\r\n */\r\n @ViewChild(\"minimalCircleLoadingTrigger\")\r\n minimalCircleLoadingTrigger: ElementRef;\r\n /**\r\n * ContentChild reference to the CardTitle template.\r\n */\r\n @ContentChild(\"CardTitle\") CardTitle: TemplateRef<void>;\r\n /**\r\n * ContentChild reference to the CardExtraControls template.\r\n */\r\n @ContentChild(\"CardExtraControls\") CardExtraControls: TemplateRef<void>;\r\n\r\n\r\n // Input properties\r\n\r\n /**\r\n * The title text to be displayed in the card header.\r\n */\r\n @Input()\r\n set Title(value: string) {\r\n this._titleText = value;\r\n }\r\n get Title() {\r\n return this._titleText;\r\n }\r\n\r\n /**\r\n * The type of the card (e.g., default, bordered, minimal).\r\n * Default: \"default\"\r\n */\r\n @Input()\r\n set Type(value: string) {\r\n this._type = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card has a minimal header or not.\r\n * Default: false\r\n */\r\n @Input()\r\n set MinimalHeader(value: boolean) {\r\n this._minimalHeader = value;\r\n }\r\n\r\n /**\r\n * The type of progress indicator to be displayed in the card (e.g., circle, bar, none).\r\n * Default: \"circle\"\r\n */\r\n @Input()\r\n set ProgressType(value: string) {\r\n this._progressType = value;\r\n }\r\n\r\n /**\r\n * The color of the progress indicator in the card.\r\n */\r\n @Input()\r\n set ProgressColor(value: string) {\r\n this._progressColor = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card should have a refresh button or not.\r\n */\r\n @Input()\r\n set Refresh(value: boolean) {\r\n this._refresh = value;\r\n }\r\n\r\n /**\r\n * The color of the refresh button in the card (e.g., light, dark).\r\n * Default: \"light\"\r\n */\r\n @Input()\r\n set RefreshColor(value: string) {\r\n this._refreshColor = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card should have a maximize button or not.\r\n */\r\n @Input()\r\n set Maximize(value: boolean) {\r\n this._maximize = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card should have a close button or not.\r\n */\r\n @Input()\r\n set Close(value: boolean) {\r\n this._close = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card should have a toggle button or not.\r\n */\r\n @Input()\r\n set Toggle(value: boolean) {\r\n this._toggle = value;\r\n }\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card header.\r\n */\r\n @Input()\r\n set HeaderClass(value: string) {\r\n this._extraHeaderClass = value;\r\n }\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card body.\r\n */\r\n @Input()\r\n set BodyClass(value: string) {\r\n this._extraBodyClass = value;\r\n }\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card.\r\n */\r\n @Input()\r\n set AdditionalClasses(value: string) {\r\n this._additionalClasses = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the tools (e.g., refresh, close, maximize) are shown in the card header or not.\r\n */\r\n @Input()\r\n set Controls(value: boolean) {\r\n this._showTools = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the message in the card is visible or not.\r\n */\r\n @Input()\r\n set ShowMessage(value: boolean) {\r\n this._messageVisible = value;\r\n }\r\n\r\n /**\r\n * The message text to be displayed in the card.\r\n */\r\n @Input()\r\n set Message(value: string) {\r\n this._message = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the loading indicator is shown in the card or not.\r\n */\r\n @Input()\r\n set Loading(value: boolean) {\r\n this._isLoading = value;\r\n }\r\n\r\n /**\r\n * The timeout duration for the loading indicator (in milliseconds).\r\n * If set to 0, the loading indicator will be displayed indefinitely until manually dismissed.\r\n * Default: 0\r\n */\r\n @Input()\r\n set TimeOut(value: number) {\r\n this._timeout = value;\r\n }\r\n\r\n /**\r\n * The border style of the card.\r\n */\r\n @Input()\r\n set CardBorderStyle(value: string) {\r\n this._card_border_style = value;\r\n }\r\n\r\n\r\n // Output properties\r\n\r\n /**\r\n * Event emitted when the refresh button is clicked.\r\n */\r\n @Output() onRefresh: EventEmitter<void> = new EventEmitter();\r\n\r\n // Other methods and lifecycle hooks\r\n\r\n /**\r\n * Toggles the collapsed state of the card.\r\n */\r\n toggle(): void {\r\n this._isCollapsed = this._isCollapsed === true ? false : true;\r\n }\r\n\r\n /**\r\n * Maximizes or restores the card to its original position.\r\n */\r\n maximize(): void {\r\n let nativeElement = this._hostContent.nativeElement;\r\n if (this._isMaximixed) {\r\n this._isMaximixed = false;\r\n nativeElement.style.left = null;\r\n nativeElement.style.top = null;\r\n } else {\r\n this._isMaximixed = true;\r\n let pagecontainer: Element = document.querySelector(\".content\") ?? new Element();\r\n console.log(pagecontainer);\r\n let rect = pagecontainer.getBoundingClientRect();\r\n let elementRect = nativeElement.getBoundingClientRect();\r\n let style = window.getComputedStyle(pagecontainer);\r\n\r\n nativeElement.style.left =\r\n parseFloat(style[\"marginLeft\"]) +\r\n parseFloat(style[\"paddingLeft\"]) +\r\n rect.left +\r\n \"px\";\r\n nativeElement.style.top =\r\n parseFloat(style[\"padding-top\"]) + rect.top + \"px\";\r\n }\r\n }\r\n\r\n /**\r\n * Dismisses the message in the card.\r\n */\r\n alertDismiss(): void {\r\n this._messageVisible = false;\r\n }\r\n\r\n /**\r\n * Triggers the refresh action of the card.\r\n */\r\n refresh(): void {\r\n if (!this._isLoading) {\r\n this._isLoading = true;\r\n this.onRefresh.emit();\r\n }\r\n if (this._timeout > 0) {\r\n setTimeout(() => {\r\n this._isLoading = false;\r\n }, this._timeout);\r\n }\r\n }\r\n\r\n /**\r\n * Closes the card.\r\n */\r\n close(): void {\r\n this._close_card = true;\r\n }\r\n}\r\n","<div class=\"card card-{{ _type }} {{ _additionalClasses }}\" *ngIf=\"!_close_card\" [class.card-collapsed]=\"_isCollapsed\"\r\n [class.card-maximized]=\"_isMaximixed\" #hostContent class=\"col-sm-12 col-md-6 col-lg-4\"\r\n [ngStyle]=\"{'border': _card_border_style}\">\r\n <div class=\"card-header {{ _extraHeaderClass }}\">\r\n <div class=\"card-title\">\r\n <ng-template [ngTemplateOutlet]=\"CardTitle\"></ng-template>\r\n </div>\r\n <div class=\"card-controls\" *ngIf=\"_showTools == true\">\r\n <ng-template [ngTemplateOutlet]=\"CardExtraControls\"></ng-template>\r\n <ul *ngIf=\"_minimalHeader == false; else minimalBlock\">\r\n <li *ngIf=\"_toggle == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-collapse\" (click)=\"toggle()\"><i\r\n class=\"pg pg-arrow_maximize\" [class.pg-arrow_minimize]=\"_isCollapsed\"></i></a>\r\n </li>\r\n <li *ngIf=\"_refresh == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-refresh\" (click)=\"refresh()\"><i\r\n class=\"card-icon card-icon-refresh\"></i></a>\r\n </li>\r\n <li *ngIf=\"_maximize == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-maximize\" (click)=\"maximize()\"><i\r\n class=\"card-icon card-icon-maximize\"></i></a>\r\n </li>\r\n <li *ngIf=\"_close == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-close\" (click)=\"close()\"><i\r\n class=\"card-icon card-icon-close\"></i></a>\r\n </li>\r\n </ul>\r\n <!-- <ng-template #minimalBlock>\r\n <ul>\r\n <li>\r\n <a href=\"javascript:void(0);\" (click)=\"refresh()\" class=\"card-refresh minimal\"\r\n [class.refreshing]=\"_isLoading\">\r\n <i #minimalCircleLoadingTrigger class=\"card-icon card-icon-refresh-lg-{{\r\n _refreshColor == 'light' ? 'white' : 'master'\r\n }}\" [class.fade]=\"_isLoading\"></i>\r\n <i #minimalCircleLoading class=\"card-icon-refresh-lg-white-animated\"\r\n style=\"position: absolute;top:0;left:0\" [class.active]=\"_isLoading\"\r\n [class.hide]=\"_isLoading != true\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n </ng-template> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body {{ _extraBodyClass }}\" [@collapseState]=\"_isCollapsed == true ? 'inactive' : 'active'\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"_messageVisible == true\" class=\"pgn-wrapper\" data-position=\"top\">\r\n <div class=\"pgn pgn-bar push-on-sidebar-open\">\r\n <div class=\"alert alert-danger\">\r\n <span>{{ _message }}</span><button class=\"close\" (click)=\"alertDismiss()\" type=\"button\">\r\n <span aria-hidden=\"true\">×</span><span class=\"sr-only\">{{ 'Close' }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"_messageVisible == true\" class=\"card-progress\" [style.backgroundColor]=\"\r\n _minimalHeader ? 'rgba(0,0,0, 0.6)' : 'rgba(255, 255, 255, 0.8)'\r\n \" style=\" display: block;\"></div>\r\n <div [@fadeAnimation]=\"_isLoading\" class=\"card-progress\" [style.backgroundColor]=\"\r\n _minimalHeader ? 'rgba(0,0,0, 0.6)' : 'rgba(255, 255, 255, 0.8)'\r\n \" style=\"display: block;pointer-events: none\">\r\n <mefdev-progress *ngIf=\"_minimalHeader == false\" type=\"{{ _progressType }}\" color=\"{{ _progressColor }}\"\r\n indeterminate=\"true\" class=\"\"></mefdev-progress>\r\n </div>\r\n</div>","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n/**\r\n * Component for displaying a card with a title, image, and description.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-card>\r\n * <ng-template #card_title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n * <ng-template #card_footer>\r\n * <!-- Content for the card footer -->\r\n * </ng-template>\r\n * </mefdev-card>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/card</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss']\r\n})\r\nexport class CardComponent implements OnInit {\r\n\r\n /**\r\n * The template reference to the content of the card title.\r\n *\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card>\r\n * <ng-template #card_title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n * </mefdev-card>\r\n * ```\r\n */\r\n @ContentChild(\"card_title\") card_title: TemplateRef<void>; \r\n\r\n /**\r\n * The template reference to the content of the card footer.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card>\r\n * <ng-template #card_footer>\r\n * <!-- Content for the card footer -->\r\n * </ng-template>\r\n * </mefdev-card>\r\n * ```\r\n */\r\n @ContentChild(\"card_footer\") card_footer: TemplateRef<void>;\r\n\r\n /**\r\n * The type of the card.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card [card_type] = \"'type'\"></mefdev-card>\r\n * ```\r\n */\r\n @Input() card_type: string;\r\n\r\n /**\r\n * The path to the image.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card [img] = \"'img/path/img.png'\"></mefdev-card>\r\n * ```\r\n */\r\n @Input() img: string;\r\n\r\n /**\r\n * The path, where user goes after click at the image.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card [imgUrl] = \"'Img.url'\"></mefdev-card>\r\n * ```\r\n */\r\n @Input() imgUrl: string;\r\n\r\n /**\r\n * The description of the card.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card [description] = \"'description'\"></mefdev-card>\r\n * ```\r\n */\r\n @Input() description: string;\r\n\r\n\r\n constructor(\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Event handler for image click.\r\n * Navigates to the specified URL.\r\n */\r\n public imgClick(){\r\n this.router.navigate(['/', this.imgUrl.toString()])\r\n }\r\n\r\n}\r\n","\r\n <pgcard\r\n MinimalHeader=\"true\"\r\n TimeOut=\"2500\"\r\n [Refresh]=\"false\"\r\n [Close]=\"false\">\r\n\r\n <ng-template #CardTitle>\r\n <ng-template class=\"card-title body-1\" [ngTemplateOutlet]=\"card_title\"></ng-template>\r\n </ng-template>\r\n\r\n <div class=\"plugin-type\">\r\n {{ card_type }}\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"m-l-2 card-description\">\r\n <div *ngIf=\"!description || description == ''\" class=\"card-no-description\"> {{'No plugin description'}}</div>\r\n <p>\r\n {{description}}\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mt-3 text-center card-img\"\r\n [ngStyle]=\"{'background-color': img ? 'transparent' : '#fff'}\">\r\n <div *ngIf=\"!img || img == ''\" >\r\n <img src=\"assets/images/md_icon.png\"\r\n style=\"max-width: 110px; max-height: 110px;\"/>\r\n </div>\r\n <div *ngIf=\"img\" >\r\n <img src=\"{{img}}\" alt=\"\" class=\"image-responsive-height img-middle\"\r\n style=\"max-width: 260px; max-height: 150px;\"\r\n onclick=\"imgClick()\"\r\n />\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"row mb-3 mt-3\">\r\n <div class=\"col-12\">\r\n <ng-template [ngTemplateOutlet]=\"card_footer\"></ng-template>\r\n </div>\r\n </div>\r\n </pgcard>\r\n","export enum CartTypeColors {\r\n UNSET = 'UNSET',\r\n RED = 'RED',\r\n GREEN = 'GREEN'\r\n }","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { CartTypeColors } from './cart-type-colors.enum';\r\n\r\n /**\r\n * Component for displaying a long card with a title, parameters, and description.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <medev-card-long\r\n * [type_text]=\"'Type Text'\"\r\n * [type_color]=\"CartTypeColors.RED\"\r\n * [img]=\"'path/to/image.jpg'\"\r\n * [imgUrl]=\"'path/to/image'\"\r\n * [description]=\"'Card description'\">\r\n * \r\n * <ng-template #title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n\r\n * <ng-template #params>\r\n * <!-- Content for the card parameters -->\r\n * </ng-template>\r\n\r\n * <ng-template #second_col>\r\n * <!-- Content for the second column -->\r\n * </ng-template>\r\n \r\n * <ng-template #third_col>\r\n * <!-- Content for the third column -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/card/card-long</example-url>\r\n */\r\n\r\n@Component({\r\n selector: 'medev-card-long',\r\n templateUrl: './card-long.component.html',\r\n styleUrls: ['./card-long.component.scss']\r\n})\r\nexport class CardLongComponent implements OnInit {\r\n\r\n /**\r\n * Template for displaying the title of the card.\r\n * ```\r\n * <medev-card-long>\r\n * <ng-template #title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n */\r\n @ContentChild(\"title\") title: TemplateRef<void>;\r\n\r\n /**\r\n * Template for displaying the parameters of the card.\r\n * ```\r\n * <medev-card-long>\r\n * <ng-template #params>\r\n * <!-- Content for the card params -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n */\r\n @ContentChild(\"params\") params: TemplateRef<void>; \r\n\r\n /**\r\n * Template for displaying the content of the second column.\r\n * ```\r\n * <medev-card-long>\r\n * <ng-template #second_col>\r\n * <!-- Content for the card second column -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n */\r\n @ContentChild(\"second_col\") second_col: TemplateRef<void>;\r\n\r\n /**\r\n * Template for displaying the content of the third column.\r\n * ```\r\n * <medev-card-long>\r\n * <ng-template #third_col>\r\n * <!-- Content for the card third column -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n */\r\n @ContentChild(\"third_col\") third_col: TemplateRef<void>;\r\n\r\n\r\n /**\r\n * The text for the card type.\r\n * @usageNotes\r\n * ```\r\n * <medev-card-long type_text = \"'Type'\"></<medev-card-long>\r\n * ```\r\n */\r\n @Input() type_text: string;\r\n\r\n /**\r\n * The color of the card type.\r\n * @usageNotes\r\n * ```\r\n * <medev-card-long type_color = \"'RED'\"></<medev-card-long>\r\n * ```\r\n * Colors: RED, UNSET, GREEN\r\n \r\n */\r\n @Input() type_color: CartTypeColors = CartTypeColors.UNSET;\r\n\r\n /**\r\n * The path to the image.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card-long [img] = \"'img/path/img.png'\"></mefdev-card-long>\r\n * ```\r\n */\r\n @Input() img: string;\r\n\r\n /**\r\n * The path, where user goes after click at the image.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card-long [imgUrl] = \"'Img.url'\"></mefdev-card-long>\r\n * ```\r\n */\r\n @Input() imgUrl: string;\r\n\r\n /**\r\n * The description of the card.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card-long [description] = \"'description'\"></mefdev-card-long>\r\n * ```\r\n */\r\n @Input() description: string;\r\n\r\n constructor(\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n /**\r\n * Event handler for image click.\r\n * Navigates to the specified URL.\r\n */\r\n public imgClick(){\r\n this.router.navigate(['/', this.imgUrl.toString()])\r\n }\r\n\r\n}\r\n","\r\n <pgcard \r\n MinimalHeader=\"true\" \r\n TimeOut=\"2500\" \r\n [Refresh]=\"false\" \r\n [Close]=\"false\"\r\n >\r\n \r\n <ng-template #CardTitle>\r\n <ng-template class=\"card-title\" [ngTemplateOutlet]=\"title\"></ng-template>\r\n </ng-template>\r\n\r\n <ng-template #CardExtraControls>\r\n <div class=\"plugin-type\" \r\n [ngClass] = \"{\r\n 'b-color-Light-Gray-1': type_color === 'UNSET',\r\n 'b-color-Red': type_color === 'RED',\r\n 'b-color-Green': type_color === 'GREEN'}\">\r\n {{type_text}}\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"row h-100 m-b-10\">\r\n <div class=\"col-lg-3 col-12 card-col\">\r\n <div class=\"row\">\r\n <div class=\"col-12 card-img m-b-10\">\r\n <div *ngIf=\"!img || img == ''\" >\r\n <img src=\"assets/images/md_icon.png\"\r\n style=\"max-width: 110px; max-height: 110px;\"/>\r\n </div>\r\n <div *ngIf=\"img\">\r\n <img src=\"{{img}}\" alt=\"\" class=\"image-responsive-height img-middle\"\r\n height=\"110px\" \r\n style=\"max-width: 110px; max-height: 110px;\"\r\n onclick=\"imgClick()\"\r\n />\r\n </div> \r\n </div>\r\n <div class=\"col-12 m-t-2 body-6 text-dark params-block\">\r\n <ng-template [ngTemplateOutlet]=\"params\"></ng-template> \r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-5 col-12 card-col\">\r\n <ng-template [ngTemplateOutlet]=\"second_col\"></ng-template> \r\n </div>\r\n \r\n <div class=\"col-lg-4 col-12 card-col mt-lg-0 mt-5\">\r\n <ng-template [ngTemplateOutlet]=\"third_col\"></ng-template> \r\n </div> \r\n\r\n </div>\r\n </pgcard>","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n\r\n/**\r\n * Component for displaying a simple card with a title.\r\n *\r\n * Example of usage:\r\n *```\r\n * <medev-card-simple [disabled]=\"true\">\r\n * <ng-template #card_title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n * </medev-card-simple>\r\n *```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/card/card-simple</example-url>\r\n */\r\n@Component({\r\n selector: 'medev-card-simple',\r\n templateUrl: './card-simple.component.html',\r\n styleUrls: ['./card-simple.component.scss']\r\n})\r\nexport class CardSimpleComponent implements OnInit {\r\n\r\n /**\r\n * Determines whether the card is disabled or not.\r\n */\r\n @Input(\"disabled\") isDisabled: boolean = false;\r\n\r\n /**\r\n * Template for displaying the title of the card.\r\n *```\r\n * <medev-card-simple>\r\n * <ng-template #card_title>\r\n * <h3>Card Title</h3>\r\n * </ng-template>\r\n * </medev-card-simple>\r\n *``` \r\n */\r\n @ContentChild(\"card_title\") card_title: TemplateRef<void>;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"card-simple\" [ngClass]=\"{ 'unused-block':isDisabled }\">\r\n <div class=\"row m-2 body-1\" *ngIf=\"card_title\">\r\n <div class=\"col-12\">\r\n <ng-template [ngTemplateOutlet]=\"card_title\"></ng-template>\r\n </div>\r\n </div>\r\n <div class=\"row m-2\">\r\n <div class=\"col-12\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class ProgressConfig {\r\n color = \"primary\";\r\n thickness = 1;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\r\n\r\nimport { MefDevProgressComponent } from \"./progress.component\";\r\nimport { ProgressConfig } from \"./progress.config\";\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [MefDevProgressComponent],\r\n exports: [MefDevProgressComponent]\r\n})\r\nexport class MefDevProgressModule {\r\n static forRoot(): ModuleWithProviders<MefDevProgressModule> {\r\n return { ngModule: MefDevProgressModule, providers: [ProgressConfig] };\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\r\nimport { pgCard } from \"./card.components\";\r\nimport { MefDevProgressModule } from \"../progress/progress.module\";\r\n\r\n@NgModule({\r\n declarations: [pgCard],\r\n exports: [pgCard],\r\n imports: [CommonModule, MefDevProgressModule]\r\n})\r\nexport class pgCardModule {\r\n static forRoot(): ModuleWithProviders<pgCardModule> {\r\n return {\r\n ngModule: pgCardModule\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardComponent } from './card/card.component';\r\nimport { MefDevSelectModule } from '../../pg-components/select/select.module';\r\nimport { pgCardModule } from \"./../../pg-components/card/card.module\";\r\nimport { MefDevCollapseModule } from '../collapse/collapse.module';\r\nimport { CardLongComponent } from './card-long/card-long.component';\r\nimport { CardSimpleComponent } from './card-simple/card-simple.component';\r\n\r\nexport const mefDevCardComponents = [CardComponent, CardLongComponent, CardSimpleComponent];\r\n@NgModule({\r\n declarations: mefDevCardComponents,\r\n exports: mefDevCardComponents,\r\n imports: [\r\n CommonModule,\r\n MefDevCollapseModule,\r\n\t\tMefDevSelectModule,\r\n pgCardModule,\r\n ]\r\n})\r\nexport class MefDevCardModule { }\r\n","import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\"; // add for static analizer bug fix\r\nimport { animate, style, transition, trigger } from '@angular/animations';\r\n\r\n\r\n/**\r\n * Fill Component for a modal window.\r\n *\r\n * Example of usage:\r\n * ```\r\n * <mefdev-fill-modal #pin_modal>\r\n * <!-- Modal header content -->\r\n * <ng-template #modal_header>\r\n * <!-- Header content goes here -->\r\n * </ng-template>\r\n *\r\n * <!-- Modal footer content -->\r\n * <ng-template #modal_footer>\r\n * <!-- Footer content goes here -->\r\n * </ng-template>\r\n * </mefdev-fill-modal>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/modals/fill</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-fill-modal',\r\n templateUrl: './fill.component.html',\r\n styleUrls: ['./fill.component.scss'],\r\n animations: [\r\n trigger('dialog', [\r\n transition('void => *', [\r\n style({ transform: 'scale3d(.3, .3, .3)' }),\r\n animate(100)\r\n ]),\r\n transition('* => void', [\r\n animate(100, style({ transform: 'scale3d(.0, .0, .0)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class FillComponent implements OnInit {\r\n protected visible: boolean = false;\r\n\r\n @ViewChild('dialog', { static: false }) protected dialog?: ElementRef;\r\n\r\n\r\n /**\r\n * The header template of the modal window.\r\n * ```\r\n * <mefdev-fill-modal #pin_modal>\r\n * <ng-template #modal_header>\r\n * <!-- Header content goes here -->\r\n * </ng-template>\r\n * </mefdev-fill-modal>\r\n * ```\r\n */\r\n @ContentChild(\"modal_header\") modal_header: TemplateRef<void>;\r\n\r\n /**\r\n * The footer template of the modal window.\r\n * ```\r\n * <mefdev-fill-modal #pin_modal>\r\n * <ng-template #modal_footer>\r\n * <!-- Footer content goes here -->\r\n * </ng-template>\r\n * </mefdev-fill-modal>\r\n * ```\r\n */\r\n @ContentChild(\"modal_footer\") modal_footer: TemplateRef<void>;\r\n\r\n /**\r\n * Input parameter that determines whether to show the modal window.\r\n */\r\n @Input() set show(val: boolean){\r\n if(val){\r\n this.showModal();\r\n }\r\n else{\r\n this.hideModal();\r\n }\r\n };\r\n\r\n /**\r\n * Event emitted when the modal is change state.\r\n * Emits a boolean value indicating if the modal is closed(false), or open(true).\r\n * Example:\r\n * ```\r\n * <mefdev-fill-modal (visibleChange)=\"onModalClosed($event)\"></mefdev-fill-modal>\r\n * ```\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Shows the modal state.\r\n * Return a boolean value indicating if the modal is closed(false), or open(true)\r\n */\r\n getModalState(): boolean{\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * Shows the modal.\r\n * Call this method to open the modal window.\r\n */\r\n public showModal(){\r\n this.visible = true;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n\r\n /**\r\n * Hides the modal.\r\n * Call this method to close the modal window.\r\n */\r\n public hideModal(){\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n}\r\n","<button *ngIf=\"visible\" (click)=\"hideModal()\" aria-label=\"Close\" class=\"dialog__close-btn\">X</button>\r\n<div [@dialog] *ngIf=\"visible\" class=\"dialog\" #dialog>\r\n\t<div class=\"modal-content\">\r\n <div class=\"modal-header clearfix text-left\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n","import { Component, ContentChild, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalSize } from '../modal-size.enum';\r\nimport { CommonModule } from \"@angular/common\"; // add for static analizer bug fix\r\nimport { animate, style, transition, trigger } from '@angular/animations';\r\n\r\n /**\r\n * A component representing a slide-up modal window.\r\n *\r\n * Example of usage:\r\n *\r\n * ```\r\n * <mefdev-slide-up-modal [show]=\"showModal\">\r\n * <ng-template #modal_header>\r\n * <h4>Modal Header</h4>\r\n * </ng-template>\r\n * <ng-template #modal_footer>\r\n * <button (click)=\"closeModal()\">Close</button>\r\n * </ng-template>\r\n * <div class=\"modal-body\">\r\n * Content goes here...\r\n * </div>\r\n * </mefdev-slide-up-modal>\r\n * ```\r\n * <example-url>https://mef.dev/ui_kit_demo/view/modals/slide-up</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-slide-up-modal',\r\n templateUrl: './slide-up.component.html',\r\n styleUrls: ['./slide-up.component.scss'],\r\n animations: [\r\n trigger('dialog', [\r\n transition('void => *', [\r\n style({ transform: 'scale3d(.3, .3, .3)' }),\r\n animate(100)\r\n ]),\r\n transition('* => void', [\r\n animate(100, style({ transform: 'scale3d(.0, .0, .0)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class SlideUpComponent implements OnInit {\r\n protected visible: boolean = false;\r\n /**\r\n * Reference to the template for the modal header.\r\n * Use this template to customize the header of the modal.\r\n */\r\n @ContentChild(\"modal_header\") modal_header: TemplateRef<void>;\r\n\r\n /**\r\n * Reference to the template for the modal footer.\r\n * Use this template to customize the footer of the modal.\r\n */\r\n @ContentChild(\"modal_footer\") modal_footer: TemplateRef<void>;\r\n /**\r\n * Flag indicating whether the modal should be shown or hidden.\r\n * Set it to `true` to show the modal and `false` to hide it.\r\n */\r\n @Input() set show(val: boolean){\r\n if(val){\r\n this.showModal();\r\n }\r\n else{\r\n this.hideModal();\r\n }\r\n };\r\n\r\n /**\r\n * Event emitted when the modal is change state.\r\n * Emits a boolean value indicating if the modal is closed(false), or open(true).\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Shows the modal state.\r\n * Return a boolean value indicating if the modal is closed(false), or open(true)\r\n */\r\n getModalState(): boolean{\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * Shows the modal.\r\n * Call this method to open the modal window.\r\n */\r\n public showModal(){\r\n this.visible = true;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n\r\n /**\r\n * Hides the modal.\r\n * Call this method to close the modal window.\r\n */\r\n public hideModal(){\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n}\r\n","<div [@dialog] *ngIf=\"visible\" class=\"dialog\">\r\n\t<button (click)=\"hideModal()\" aria-label=\"Close\" class=\"dialog__close-btn\">X</button>\r\n\t<div class=\"modal-content\">\r\n <div class=\"modal-header clearfix text-left\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n","import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalSize } from '../modal-size.enum';\r\nimport { CommonModule } from \"@angular/common\"; // add for static analizer bug fix\r\nimport { animate, style, transition, trigger } from '@angular/animations';\r\n\r\n\r\n/**\r\n * A component representing a slide-right modal window.\r\n *\r\n * Example of usage:\r\n *\r\n * ```\r\n * <mefdev-slide-right-modal [size]=\"ModalSize.lg\" [show]=\"showModal\">\r\n * <ng-template #modal_header>\r\n * <h4>Modal Header</h4>\r\n * </ng-template>\r\n * <ng-template #modal_footer>\r\n * <button (click)=\"closeModal()\">Close</button>\r\n * </ng-template>\r\n * <div class=\"modal-body\">\r\n * Content goes here...\r\n * </div>\r\n * </mefdev-slide-right-modal>\r\n * ```\r\n * <example-url>https://mef.dev/ui_kit_demo/view/modals/slide-right</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-slide-right-modal',\r\n templateUrl: './slide-right.component.html',\r\n styleUrls: ['./slide-right.component.scss'],\r\n animations: [\r\n trigger('dialog', [\r\n transition('void => *', [\r\n style({ transform: 'translate3d(100%,0,0)' }),\r\n animate(100)\r\n ]),\r\n transition('* => void', [\r\n animate(100, style({ transform: 'translate3d(100%, 0, 0)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class SlideRightComponent implements OnInit {\r\n protected visible: boolean = false;\r\n\r\n @ViewChild('dialog') protected dialog: ElementRef;\r\n\r\n /**\r\n * Reference to the template for the modal header.\r\n * Use this template to customize the header of the modal.\r\n */\r\n @ContentChild(\"modal_header\") modal_header: TemplateRef<void>;\r\n\r\n /**\r\n * Reference to the template for the modal footer.\r\n * Use this template to customize the footer of the modal.\r\n */\r\n @ContentChild(\"modal_footer\") modal_footer: TemplateRef<void>;\r\n\r\n /**\r\n * Size of the modal.\r\n * Defaults to `ModalSize.md`.\r\n * Possible values: `ModalSize.sm`, `ModalSize.md`, `ModalSize.lg`, `ModalSize.xl`.\r\n */\r\n @Input() size:ModalSize = ModalSize.md;\r\n\r\n /**\r\n * Flag indicating whether the modal should be shown or hidden.\r\n * Set it to `true` to show the modal and `false` to hide it.\r\n */\r\n @Input() set show(val: boolean){\r\n if(val){\r\n this.showModal();\r\n }\r\n else{\r\n this.hideModal();\r\n }\r\n };\r\n\r\n /**\r\n * Event emitted when the modal is change state.\r\n * Emits a boolean value indicating if the modal is closed(false), or open(true).\r\n * Example:\r\n * ```\r\n * <mefdev-fill-modal (visibleChange)=\"onModalClosed($event)\"></mefdev-fill-modal>\r\n * ```\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Shows the modal state.\r\n * Return a boolean value indicating if the modal is closed(false), or open(true)\r\n */\r\n getModalState(): boolean{\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * Shows the modal.\r\n * Call this method to open the modal window.\r\n */\r\n public showModal(){\r\n this.visible = true;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n\r\n /**\r\n * Hides the modal.\r\n * Call this method to close the modal window.\r\n */\r\n public hideModal(){\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n}\r\n","<div [@dialog] *ngIf=\"visible\" class=\"dialog\" #dialog>\r\n\r\n <div *ngIf=\"modal_header\" class=\"header\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"modal_footer\" class=\"footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FilteredFieldService } from '../../utils/filtered-field/filtered-field.service';\r\n\r\n\r\n/**\r\n * Component representing the right filter.\r\n */\r\n@Component({\r\n selector: 'mefdev-right-filter',\r\n templateUrl: './right-filter.component.html',\r\n styleUrls: ['./right-filter.component.scss']\r\n})\r\nexport class RightFilterComponent implements OnInit {\r\n\r\n /**\r\n * Flag indicating whether the right filter is open or closed.\r\n */\r\n isOpen: boolean = false;\r\n\r\n constructor(\r\n private filteredFieldService: FilteredFieldService,) { }\r\n\r\n ngOnInit(): void {\r\n // Subscribe to the open filter event from the FilteredFieldService\r\n // and update the isOpen flag accordingly.\r\n this.filteredFieldService.getOpenFilter().subscribe(() => {\r\n this.isOpen = true;\r\n });\r\n }\r\n\r\n /**\r\n * Opens or closes the right filter modal.\r\n */\r\n openModal(){\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n /**\r\n * Event handler for when the modal is closed.\r\n * Sets the isOpen flag to false.\r\n */\r\n modalIsCloused(){\r\n this.isOpen = false;\r\n }\r\n \r\n}\r\n","<div class=\"filter-btn\">\r\n <button class=\"btn btn-secondary text-danger\" (click)=\"openModal()\"><i class=\"fa fa-filter\" aria-hidden=\"true\"></i></button>\r\n</div>\r\n\r\n<mefdev-slide-right-modal [show]=\"isOpen\" (isClouse)=\"modalIsCloused()\">\r\n <ng-content></ng-content>\r\n</mefdev-slide-right-modal>","import { NgModule } from \"@angular/core\";\r\nimport { FillComponent } from './fill/fill.component';\r\nimport { SlideUpComponent } from './slide-up/slide-up.component';\r\nimport { SlideRightComponent } from './slide-right/slide-right.component';\r\n\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RightFilterComponent } from \"./right-filter/right-filter.component\";\r\nimport { MefDevSelectModule } from '../../pg-components/select/select.module';\r\n\r\n\r\nlet mefDevModalModuleComponents = [\r\n FillComponent,\r\n SlideUpComponent,\r\n SlideRightComponent,\r\n RightFilterComponent\r\n];\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MefDevSelectModule\r\n ],\r\n exports: mefDevModalModuleComponents,\r\n declarations: mefDevModalModuleComponents\r\n})\r\nexport class MefDevModalModule {}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n\r\n/**\r\n * A component representing a user profile.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-profile\r\n * [name]=\"'John Doe'\"\r\n * [img]=\"'assets/profile.png'\"\r\n * [shortDescription]=\"'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'\"\r\n * [header]=\"'User Profile'\"\r\n * [circleImg]=\"'true'\">\r\n * <ng-template #first_colum>\r\n * <!-- Content for the first column -->\r\n * </ng-template>\r\n * <ng-template #second_colum>\r\n * <!-- Content for the second column -->\r\n * </ng-template>\r\n * <ng-template #footer>\r\n * <!-- Content for the footer -->\r\n * </ng-template>\r\n * </mefdev-profile>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/page-layouts/profile</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.scss']\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n\r\n /**\r\n * The template reference to the content of the first column.\r\n *```\r\n * <ng-template #first_colum>\r\n * <!-- Content for the first column -->\r\n * </ng-template>\r\n *```\r\n */\r\n @ContentChild(\"first_colum\") first_colum: TemplateRef<void>;\r\n\r\n /**\r\n * The template reference to the content of the second column.\r\n *```\r\n * <ng-template #second_colum>\r\n * <!-- Content for the second column -->\r\n * </ng-template>\r\n *```\r\n */\r\n @ContentChild(\"second_colum\") second_colum: TemplateRef<void>;\r\n\r\n /**\r\n * The template reference to the content of the footer.\r\n *```\r\n * <ng-template #footer>\r\n * <!-- Content for the footer -->\r\n * </ng-template>\r\n *```\r\n */\r\n @ContentChild(\"footer\") footer: TemplateRef<void>;\r\n\r\n /**\r\n * The name of the user.\r\n * ```\r\n * <mefdev-profile [name]=\"'John Doe'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() name:string;\r\n\r\n /**\r\n * The URL of the user's profile image.\r\n * ```\r\n * <mefdev-profile [img]=\"'assets/profile.png'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() img: string = '';\r\n\r\n /**\r\n * A short description of the user.\r\n * ```\r\n * <mefdev-profile [shortDescription]=\"'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() shortDescription: string;\r\n\r\n /**\r\n * The header title of the profile component.\r\n * ```\r\n * <mefdev-profile [header]=\"'User Profile'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() header: string;\r\n\r\n /**\r\n * A flag indicating whether to display the profile image as a circle. Default \"false\".\r\n * ```\r\n * <mefdev-profile [circleImg]=\"'true'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() circleImg: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n get sizeStyle(){\r\n // return { 'width.px': this.width, 'height.px': this.height };\r\n /**\r\n * Returns the CSS style for the profile image size and shape.\r\n */\r\n if(!this.circleImg){\r\n return {};\r\n }\r\n\r\n return {\r\n 'border-top-left-radius': `50%`,\r\n 'border-top-right-radius': `50%`,\r\n 'border-bottom-right-radius': `50%`,\r\n 'border-bottom-left-radius': `50%`,\r\n };\r\n }\r\n}\r\n","<div class=\"row profile-page\">\r\n <div class=\"col-12 h3 mt-3\">\r\n {{header}}\r\n </div>\r\n <div class=\"col-xl-3 col-lg-3 col-md-4 col-sm-12\">\r\n <div *ngIf=\"!img || img == ''\" >\r\n <img src=\"assets/images/md_icon.png\" height=\"124\" width=\"220\" />\r\n </div>\r\n <div *ngIf=\"img\" >\r\n <img src=\"{{img}}\" alt=\"\" class=\"custom-img\" [ngStyle]=\"sizeStyle\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xl-3 col-lg-4 col-md-5 col-sm-12 mt-4 mt-md-0\" >\r\n <div class=\"row profile-name\">\r\n <div class=\"col\">\r\n {{name}}\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col profile-description\">\r\n {{shortDescription}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xl-3 col-lg-4 col-md-5 col-sm-12 body-6 mt-4 mt-md-0\">\r\n <ng-template [ngTemplateOutlet]=\"first_colum\"></ng-template>\r\n </div>\r\n\r\n <div class=\"col-xl-3 col-lg-4 col-md-5 col-sm-12 body-6 mt-4 mt-md-0\" >\r\n <ng-template [ngTemplateOutlet]=\"second_colum\"></ng-template>\r\n </div>\r\n\r\n</div>\r\n<div style=\"position: relative;\">\r\n <div class=\"row profile-page-tabs\">\r\n <ng-template [ngTemplateOutlet]=\"footer\">\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import { AfterViewChecked, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\n\r\n/**\r\n * A component representing a central page layout.\r\n *\r\n * Example of usage:\r\n *\r\n * ```\r\n * <mefdev-central-page [width]=\"'80%'\">\r\n * Content goes here...\r\n * </mefdev-central-page>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/page-layouts/central-page</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-central-page',\r\n templateUrl: './central-page.component.html',\r\n styleUrls: ['./central-page.component.scss']\r\n})\r\nexport class CentralPageComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n /**\r\n * The width of the central page.\r\n * Defaults to '100%'.\r\n * You can specify the width using CSS units (e.g., '80%', '500px').\r\n */\r\n @Input() width: string = '100%';\r\n\r\n /**\r\n * Lifecycle hook called just before the component is destroyed.\r\n * Removes the height style from the main content element.\r\n */\r\n ngOnDestroy(): void {\r\n try{\r\n document.getElementById('dataMainContent')!.style.height = '';\r\n }catch(ex){};\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Lifecycle hook called after the component's view has been checked.\r\n * Sets the height of the main content element to '100%'.\r\n */\r\n ngAfterViewChecked(): void {\r\n try{\r\n document.getElementById('dataMainContent')!.style.height = '100%'\r\n }catch(ex){};\r\n }\r\n\r\n}\r\n","<div class=\"row align-items-center\" style=\"height: 100%;\" [ngStyle]=\"{'width': width}\">\r\n <div class=\"col\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n ","import { Component, OnInit } from '@angular/core';\r\n\r\n\r\n/**\r\n * A component representing a central page layout.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-central-page>\r\n * <mefdev-central-page-row>\r\n * Content goes here...\r\n * </mefdev-central-page-row>\r\n * </mefdev-central-page>\r\n * ```\r\n*/\r\n@Component({\r\n selector: 'mefdev-central-page-row',\r\n templateUrl: './central-page-row.component.html',\r\n styleUrls: ['./central-page-row.component.scss']\r\n})\r\nexport class CentralPageRowComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"row justify-content-center\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, ContentChild, OnInit, TemplateRef } from '@angular/core';\r\n\r\n\r\n /**\r\n * A component representing a table page layout.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-table-page>\r\n * <ng-template #filter_colum>\r\n * <!-- Content for the filter column -->\r\n * </ng-template>\r\n * </mefdev-table-page>\r\n * ```\r\n * \r\n * <example-url>https://mef.dev/ui_kit_demo/view/page-layouts/table-page</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-table-page',\r\n templateUrl: './table-page.component.html',\r\n styleUrls: ['./table-page.component.scss']\r\n})\r\nexport class TablePageComponent implements OnInit {\r\n\r\n /**\r\n * The template reference to the content of the filter column.\r\n * ```\r\n * <ng-template #filter_colum>\r\n * <!-- Content for the filter column -->\r\n * </ng-template>\r\n * ```\r\n */\r\n @ContentChild(\"filter_colum\") filter_colum: TemplateRef<void>;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12 filter-colum\">\r\n <ng-template [ngTemplateOutlet]=\"filter_colum\"></ng-template> \r\n </div>\r\n</div>\r\n\r\n<div class=\"table-responsive\" >\r\n <ng-content></ng-content>\r\n</div>\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n\r\n /**\r\n * A component representing a manage page layout.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-manage-page [startTabInd]=\"0\">\r\n * <ng-template #card_title>\r\n * Title of the card\r\n * </ng-template>\r\n * <ng-template #tabs_block>\r\n * Content of the tabs block\r\n * </ng-template>\r\n * </mefdev-manage-page>\r\n * ```\r\n *\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/page-layouts/menage-page</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-manage-page',\r\n templateUrl: './manage-page.component.html',\r\n styleUrls: ['./manage-page.component.scss']\r\n})\r\nexport class ManagePageComponent implements OnInit {\r\n\r\n /**\r\n * The template reference to the card title.\r\n * ```\r\n * <mefdev-manage-page>\r\n * <ng-template #card_title>\r\n * Title of the card\r\n * </ng-template>\r\n * </mefdev-manage-page>\r\n * ```\r\n */\r\n @ContentChild(\"card_title\") card_title: TemplateRef<void>;\r\n\r\n /**\r\n * The template reference to the tabs block.\r\n * ```\r\n * <mefdev-manage-page>\r\n * <ng-template #tabs_block>\r\n * Content of the tabs block\r\n * </ng-template>\r\n * </mefdev-manage-page>\r\n * ```\r\n */\r\n @ContentChild(\"tabs_block\") tabs_block: TemplateRef<void>;\r\n\r\n /**\r\n * The index of the starting tab.\r\n * ```\r\n * <mefdev-manage-page [startTabInd]=\"0\">\r\n * Content goes here...\r\n * </mefdev-manage-page>\r\n * ```\r\n */\r\n @Input() startTabInd = 0;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"card-tabs\">\r\n <div class=\"row body-1 card-header\" *ngIf=\"card_title\">\r\n <div class=\"m-2\">\r\n <ng-template [ngTemplateOutlet]=\"card_title\"></ng-template>\r\n </div>\r\n </div>\r\n <div class=\"row profile-page-tabs\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProfileComponent } from './profile/profile.component';\r\n// import { pgTabsModule } from '../../pg-components/tabs/tabs.module';\r\nimport { CentralPageComponent } from './central-page/central-page.component';\r\nimport { CentralPageRowComponent } from './central-page-row/central-page-row.component';\r\nimport { TablePageComponent } from './table-page/table-page.component';\r\nimport { ManagePageComponent } from './manage-page/manage-page.component';\r\n\r\nlet mefDevPageLayoutsModuleComponents = [\r\n ProfileComponent,\r\n CentralPageComponent,\r\n CentralPageRowComponent,\r\n TablePageComponent,\r\n ManagePageComponent\r\n];\r\n\r\n@NgModule({\r\n declarations: mefDevPageLayoutsModuleComponents,\r\n exports: mefDevPageLayoutsModuleComponents,\r\n imports: [\r\n CommonModule,\r\n\t\t// pgTabsModule,\r\n ],\r\n})\r\nexport class MefDevPageLayoutsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mefdev-spec-flow-test',\r\n templateUrl: './spec-flow-test.component.html',\r\n styleUrls: ['./spec-flow-test.component.scss']\r\n})\r\nexport class MefDevSpecFlowTestComponent implements OnInit {\r\n /**\r\n * UTC datetime\r\n */\r\n ResponseTimestamp: any;\r\n /**\r\n * 0/1 1 - ошибка, 0 - успех (200, 201 и тд)\r\n */\r\n ResponseError: any;\r\n /**\r\n * string для ResponseError=1\r\n */\r\n ReportError: any;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n public setError(error:any) {\r\n this.ResponseTimestamp = Date.now();\r\n this.ResponseError = 1;\r\n this.ReportError = error;\r\n }\r\n public setSuccess(){\r\n this.ResponseTimestamp = Date.now();\r\n this.ResponseError = 0;\r\n this.ReportError = undefined;\r\n }\r\n\r\n}\r\n","<!-- Block for test -->\r\n<div style=\"display: none;\">\r\n <input id=\"ResponseTimestamp\" type=\"hidden\" value=\"{{ResponseTimestamp}}\" />\r\n <input id=\"ResponseError\" type=\"hidden\" value=\"{{ResponseError}}\" />\r\n <input id=\"ReportError\" type=\"hidden\" value=\"{{ReportError}}\" />\r\n</div>","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MefDevSpecFlowTestComponent } from './spec-flow-test/spec-flow-test.component';\r\n\r\n@NgModule({\r\n declarations: [MefDevSpecFlowTestComponent],\r\n exports: [MefDevSpecFlowTestComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class MefDevSpecFlowTestModule {\r\n static forRoot(): ModuleWithProviders<MefDevSpecFlowTestModule> {\r\n return {\r\n ngModule: MefDevSpecFlowTestModule\r\n };\r\n }\r\n }\r\n","import {\r\n\tforwardRef,\r\n\tComponent,\r\n\tHostListener,\r\n\tInput,\r\n\tOnInit,\r\n\tViewEncapsulation,\r\n\tOutput\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { toBoolean } from \"../util/convert\";\r\n\r\n\r\n/**\r\n * @component\r\n * @skipTemplateDoc: true\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/switch</example-url>\r\n*/\r\n@Component({\r\n\tselector: \"mefdev-switch\",\r\n\tencapsulation: ViewEncapsulation.None,\r\n\ttemplateUrl: \"./switch.component.html\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => MefDevSwitchComponent),\r\n\t\t\tmulti: true\r\n\t\t}\r\n\t]\r\n})\r\nexport class MefDevSwitchComponent implements OnInit, ControlValueAccessor {\r\n\t // Private variables\r\n\tprivate _disabled = false;\r\n\t_prefixCls = \"toggle-switch\";\r\n\t_color = \"primary\";\r\n\t_innerPrefixCls = `${this._prefixCls}-inner `;\r\n\t_classMap:any;\r\n\t_size: string;\r\n\t_checked = false;\r\n\r\n\t// ngModel Access\r\n\t// Output event triggered when the switch value changes\r\n\t@Output()\r\n\t/**\r\n * Event emitted when the value of the switch changes.\r\n * \r\n * @output\r\n * @param value The new value of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch (onChange)=\"handleSwitchChange($event)\"></mefdev-switch>\r\n * ```\r\n */\r\n\tonChange: (value: boolean) => void = () => null;\r\n\tonTouched: () => void = () => null;\r\n\r\n\t// Input properties\r\n\r\n\t/**\r\n * Sets the value of the switch.\r\n * \r\n * @input\r\n * @param value The value of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch [Value]=\"true\"></mefdev-switch>\r\n * ```\r\n */\r\n @Input()\r\n\tset Value(value: boolean) {\r\n\t\tthis.updateValue(value);\r\n\t}\r\n\r\n\t/**\r\n * Sets the size of the switch.\r\n * \r\n * @input\r\n * @param value The size of the switch (e.g., \"small\", \"large\").\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch [Size]=\"'small'\"></mefdev-switch>\r\n * ```\r\n */\r\n\t@Input()\r\n\tset Size(value: string) {\r\n\t\tthis._size = value;\r\n\t\tthis.setClassMap();\r\n\t}\r\n\r\n\t/**\r\n * Sets the color of the switch.\r\n * \r\n * @input\r\n * @param value The color of the switch (e.g., \"primary\", \"secondary\").\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch [Color]=\"'primary'\"></mefdev-switch>\r\n * ```\r\n */\r\n\t@Input()\r\n\tset Color(value: string) {\r\n\t\tthis._color = value;\r\n\t\tthis.setClassMap();\r\n\t}\r\n\r\n\t/**\r\n * Gets the current size of the switch.\r\n * \r\n * @input\r\n * @returns The size of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * const size = mySwitchComponent.Size;\r\n * ```\r\n */\r\n\tget Size(): string {\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\t/**\r\n * Sets the disabled state of the switch.\r\n * \r\n * @input\r\n * @param value The disabled state of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch [Disabled]=\"true\"></mefdev-switch>\r\n * ```\r\n */\r\n\t@Input()\r\n\tset Disabled(value: boolean) {\r\n\t\tthis._disabled = toBoolean(value);\r\n\t\tthis.setClassMap();\r\n\t}\r\n\r\n\t /**\r\n * Gets the current disabled state of the switch.\r\n * \r\n * @input\r\n * @returns The disabled state of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * const disabled = mySwitchComponent.Disabled;\r\n * ```\r\n */\r\n\tget Disabled(): boolean {\r\n\t\treturn this._disabled;\r\n\t}\r\n\r\n\t // Host listener for click event\r\n\t@HostListener(\"click\", [\"$event\"])\r\n\r\n\t/**\r\n * Handles the click event of the switch.\r\n * \r\n * @param e The click event object.\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch (click)=\"handleSwitchClick($event)\"></mefdev-switch>\r\n * ```\r\n */\r\n\tonClick(e: MouseEvent): void {\r\n\t\te.preventDefault();\r\n\t\tif (!this._disabled) {\r\n\t\t\tthis.updateValue(!this._checked);\r\n\t\t\tthis.onChange(this._checked);\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n\t// Helper functions\r\n\r\n /**\r\n * Updates the value of the switch.\r\n * \r\n * @param value The new value of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.updateValue(true);\r\n * ```\r\n */\r\n\tupdateValue(value: boolean): void {\r\n\t\tif (this._checked === value) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._checked = value;\r\n\t\tthis.setClassMap();\r\n\t}\r\n\r\n\t/**\r\n * Sets the class map for the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.setClassMap();\r\n * ```\r\n */\r\n\tsetClassMap(): void {\r\n\t\tthis._classMap = {\r\n\t\t\t[this._prefixCls]: true,\r\n\t\t\t[`${this._prefixCls}-checked`]: this._checked,\r\n\t\t\t[`${this._prefixCls}-disabled`]: this._disabled,\r\n\t\t\t[`${this._prefixCls}-small`]: this._size === \"small\",\r\n\t\t\t[this._color]: this._color\r\n\t\t};\r\n\t}\r\n\r\n\t\r\n\t// ControlValueAccessor interface implementation\r\n\r\n /**\r\n * Writes a new value to the switch.\r\n * \r\n * @param value The new value of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.writeValue(true);\r\n * ```\r\n */\r\n\tpublic writeValue(value: boolean): void {\r\n\t\tthis.updateValue(value);\r\n\t}\r\n\r\n\t/**\r\n * Registers a callback function to be executed when the switch value changes.\r\n * \r\n * @param fn The callback function.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.registerOnChange(value => {\r\n * // Do something with the new value\r\n * });\r\n * ```\r\n */\r\n\tregisterOnChange(fn: (_: boolean) => void): void {\r\n\t\tthis.onChange = fn;\r\n\t}\r\n\r\n\t/**\r\n * Registers a callback function to be executed when the switch is touched.\r\n * \r\n * @param fn The callback function.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.registerOnTouched(() => {\r\n * // Do something when the switch is touched\r\n * });\r\n * ```\r\n */\r\n\tregisterOnTouched(fn: () => void): void {\r\n\t\tthis.onTouched = fn;\r\n\t}\r\n\r\n\t/**\r\n * Sets the disabled state of the switch.\r\n * \r\n * @param isDisabled The disabled state of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.setDisabledState(true);\r\n * ```\r\n */\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tthis.Disabled = isDisabled;\r\n\t}\r\n\r\n\t // OnInit lifecycle hook\r\n\tngOnInit(): void {\r\n\t\tthis.setClassMap();\r\n\t}\r\n}\r\n","<span [ngClass]=\"_classMap\" tabindex=\"0\">\r\n <span [ngClass]=\"_innerPrefixCls\">\r\n <ng-template [ngIf]=\"_checked\">\r\n <ng-content select=\"[checked]\"></ng-content>\r\n </ng-template>\r\n <ng-template [ngIf]=\"!_checked\">\r\n <ng-content select=\"[unchecked]\"></ng-content>\r\n </ng-template>\r\n </span>\r\n</span>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MefDevSwitchComponent } from './switch.component';\r\n\r\n@NgModule({\r\n exports : [ MefDevSwitchComponent ],\r\n declarations: [ MefDevSwitchComponent ],\r\n imports : [ CommonModule ]\r\n})\r\nexport class MefDevSwitchModule {\r\n}\r\n","import { Component, Input, TemplateRef, ViewEncapsulation } from '@angular/core';\r\n\r\n/**\r\n * Component representing the body of a tab, which displays the tab's content.\r\n */\r\n@Component({\r\n selector: 'mefdev-tab-body',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl:\"./tab-body.component.html\",\r\n})\r\nexport class MefDevTabBodyComponent {\r\n /**\r\n * The content of the tab, which can be passed as a template.\r\n */\r\n @Input() content: TemplateRef<void>;\r\n}\r\n","<ng-template [ngTemplateOutlet]=\"content\"></ng-template>","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\r\nimport { toBoolean } from '../util/convert';\r\n\r\n@Directive({\r\n selector: '[mefdev-tab-label]',\r\n host: {\r\n '[class.nav-item]': 'true'\r\n }\r\n})\r\nexport class MefDevTabLabelDirective {\r\n private _disabled = false;\r\n\r\n @Input()\r\n @HostBinding('class.nav-item-disabled')\r\n set disabled(value: boolean) {\r\n this._disabled = toBoolean(value);\r\n }\r\n\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n constructor(public elementRef: ElementRef) {}\r\n\r\n getOffsetLeft(): number {\r\n return this.elementRef.nativeElement.offsetLeft;\r\n }\r\n\r\n getOffsetWidth(): number {\r\n return this.elementRef.nativeElement.offsetWidth;\r\n }\r\n\r\n getOffsetTop(): number {\r\n return this.elementRef.nativeElement.offsetTop;\r\n }\r\n\r\n getOffsetHeight(): number {\r\n return this.elementRef.nativeElement.offsetHeight;\r\n }\r\n}\r\n","\r\nconst availablePrefixs = ['moz', 'ms', 'webkit'];\r\n\r\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n let lastTime = 0;\r\n return function (callback: FrameRequestCallback): number {\r\n const currTime = new Date().getTime();\r\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n const id = window.setTimeout(() => { callback(currTime + timeToCall); }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n if (typeof window === 'undefined') {\r\n //@ts-ignore\r\n return () => null;\r\n }\r\n if (window.requestAnimationFrame) {\r\n return window.requestAnimationFrame.bind(window);\r\n }\r\n\r\n const prefix = availablePrefixs.filter(key => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n return prefix\r\n ? window[`${prefix}RequestAnimationFrame`]\r\n : requestAnimationFramePolyfill();\r\n}\r\n\r\nexport const reqAnimFrame = getRequestAnimationFrame();\r\n","import { Directive, ElementRef, HostBinding, Input, NgZone, Renderer2 } from '@angular/core';\r\nimport { reqAnimFrame } from '../util/request-animation';\r\nimport { toBoolean } from '../util/convert';\r\n\r\nexport type TabPositionMode = 'horizontal' | 'vertical';\r\n\r\n@Directive({\r\n selector: '[mefdev-tabs-ink-bar]',\r\n host: {\r\n '[class.nav-item]': 'true'\r\n }\r\n})\r\nexport class MefDevTabsInkBarDirective {\r\n private _animated = false;\r\n\r\n @Input()\r\n @HostBinding('class.nav-item-animated')\r\n set Animated(value: boolean) {\r\n this._animated = toBoolean(value);\r\n }\r\n\r\n get Animated(): boolean {\r\n return this._animated;\r\n }\r\n\r\n @Input() PositionMode: TabPositionMode = 'horizontal';\r\n\r\n constructor(private _renderer: Renderer2, private _elementRef: ElementRef, private _ngZone: NgZone) {}\r\n\r\n alignToElement(element: HTMLElement): void {\r\n this.show();\r\n\r\n this._ngZone.runOutsideAngular(() => {\r\n reqAnimFrame(() => {\r\n /** when horizontal remove height style and add transfrom left **/\r\n if (this.PositionMode === 'horizontal') {\r\n this._renderer.removeStyle(this._elementRef.nativeElement, 'height');\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'transform', `translate3d(${this._getLeftPosition(element)}, 0px, 0px)`);\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'width', this._getElementWidth(element));\r\n } else {\r\n /** when vertical remove width style and add transfrom top **/\r\n this._renderer.removeStyle(this._elementRef.nativeElement, 'width');\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'transform', `translate3d(0px, ${this._getTopPosition(element)}, 0px)`);\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'height', this._getElementHeight(element));\r\n }\r\n });\r\n });\r\n }\r\n\r\n show(): void {\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'visibility', 'visible');\r\n }\r\n\r\n setDisplay(value: string): void {\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'display', value);\r\n }\r\n\r\n hide(): void {\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'visibility', 'hidden');\r\n }\r\n\r\n _getLeftPosition(element: HTMLElement): string {\r\n return element ? element.offsetLeft + 'px' : '0';\r\n }\r\n\r\n _getElementWidth(element: HTMLElement): string {\r\n return element ? element.offsetWidth + 'px' : '0';\r\n }\r\n\r\n _getTopPosition(element: HTMLElement): string {\r\n return element ? element.offsetTop + 'px' : '0';\r\n }\r\n\r\n _getElementHeight(element: HTMLElement): string {\r\n return element ? element.offsetHeight + 'px' : '0';\r\n }\r\n}\r\n","/** code from https://github.com/angular/material2 */\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n AfterContentChecked,\r\n AfterContentInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n NgZone,\r\n Optional,\r\n QueryList,\r\n Renderer2,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Subscription, fromEvent, merge, of as observableOf } from 'rxjs';\r\nimport { auditTime, startWith } from 'rxjs/operators';\r\nimport { toBoolean } from '../util/convert';\r\nimport { MefDevTabLabelDirective } from './tab-label.directive';\r\nimport { MefDevTabsInkBarDirective } from './tabs-ink-bar.directive';\r\n\r\nconst EXAGGERATED_OVERSCROLL = 64;\r\nexport type ScrollDirection = 'after' | 'before';\r\n\r\n/** duplicated defined https://github.com/angular/angular-cli/issues/2034 **/\r\nexport type TabPositionMode = 'horizontal' | 'vertical';\r\n\r\n@Component({\r\n selector: 'mefdev-tabs-nav',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./tabs-nav.component.html\"\r\n})\r\nexport class MefDevTabsNavComponent implements AfterContentChecked, AfterContentInit {\r\n private _animated = true;\r\n private _hideBar = false;\r\n private _showPagination = true;\r\n\r\n _showPaginationControls = false;\r\n _disableScrollAfter = true;\r\n _disableScrollBefore = true;\r\n _scrollDistance = 0;\r\n _selectedIndexChanged = false;\r\n _realignInkBar: Subscription | null = null;\r\n _tabLabelCount: number;\r\n _scrollDistanceChanged: boolean;\r\n _selectedIndex = 0;\r\n _tabPositionMode: TabPositionMode = 'horizontal';\r\n _tabPosition = 'top';\r\n @Input() Size = 'default';\r\n _type = 'line';\r\n\r\n @Input()\r\n set Animated(value: boolean) {\r\n this._animated = toBoolean(value);\r\n }\r\n\r\n get Animated(): boolean {\r\n return this._animated;\r\n }\r\n\r\n @Input()\r\n set Position(value: string) {\r\n this._tabPosition = value;\r\n }\r\n\r\n get Position(): string {\r\n return this._tabPosition;\r\n }\r\n\r\n @Input()\r\n set HideBar(value: boolean) {\r\n this._hideBar = toBoolean(value);\r\n }\r\n\r\n get HideBar(): boolean {\r\n return this._hideBar;\r\n }\r\n\r\n @Input()\r\n set Type(value: string) {\r\n this._type = value;\r\n }\r\n\r\n get Type(): string {\r\n return this._type;\r\n }\r\n\r\n @ContentChild('tabBarExtraContent', { static: true }) _tabBarExtraContent: TemplateRef<void>;\r\n @ContentChildren(MefDevTabLabelDirective) _labelWrappers: QueryList<MefDevTabLabelDirective>;\r\n @ViewChild(MefDevTabsInkBarDirective, { static: true }) _inkBar: MefDevTabsInkBarDirective;\r\n @ViewChild('tabListContainer', { static: true }) _tabListContainer: ElementRef;\r\n @ViewChild('tabList', { static: true }) _tabList: ElementRef;\r\n\r\n @Input()\r\n set ShowPagination(value: boolean) {\r\n this._showPagination = toBoolean(value);\r\n }\r\n\r\n get ShowPagination(): boolean {\r\n return this._showPagination;\r\n }\r\n\r\n @Input()\r\n set PositionMode(value: TabPositionMode) {\r\n this._tabPositionMode = value;\r\n this._alignInkBarToSelectedTab();\r\n if (this.ShowPagination) {\r\n this._updatePagination();\r\n }\r\n }\r\n\r\n get PositionMode(): TabPositionMode {\r\n return this._tabPositionMode;\r\n }\r\n\r\n @Input()\r\n set selectedIndex(value: number) {\r\n this._selectedIndexChanged = this._selectedIndex !== value;\r\n\r\n this._selectedIndex = value;\r\n }\r\n\r\n get selectedIndex(): number {\r\n return this._selectedIndex;\r\n }\r\n\r\n constructor(\r\n public _elementRef: ElementRef,\r\n private _ngZone: NgZone,\r\n private _renderer: Renderer2,\r\n @Optional() private _dir: Directionality\r\n ) {}\r\n\r\n _onContentChanges(): void {\r\n if (this.ShowPagination) {\r\n this._updatePagination();\r\n }\r\n this._alignInkBarToSelectedTab();\r\n }\r\n\r\n _scrollHeader(scrollDir: ScrollDirection): void {\r\n // Move the scroll distance one-third the length of the tab list's viewport.\r\n this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * this.viewWidthHeightPix) / 3;\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n if (this._tabLabelCount !== this._labelWrappers.length) {\r\n if (this.ShowPagination) {\r\n this._updatePagination();\r\n }\r\n this._tabLabelCount = this._labelWrappers.length;\r\n }\r\n if (this._selectedIndexChanged) {\r\n this._scrollToLabel(this._selectedIndex);\r\n if (this.ShowPagination) {\r\n this._checkScrollingControls();\r\n }\r\n this._alignInkBarToSelectedTab();\r\n this._selectedIndexChanged = false;\r\n }\r\n if (this._scrollDistanceChanged) {\r\n if (this.ShowPagination) {\r\n this._updateTabScrollPosition();\r\n }\r\n this._scrollDistanceChanged = false;\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this._realignInkBar = this._ngZone.runOutsideAngular(() => {\r\n const dirChange = this._dir ? this._dir.change : observableOf(null);\r\n const resize = typeof window !== 'undefined' ? fromEvent(window, 'resize').pipe(auditTime(10)) : observableOf(null);\r\n //@ts-ignore\r\n return merge(dirChange, resize)\r\n .pipe(startWith(null))\r\n .subscribe(() => {\r\n if (this.ShowPagination) {\r\n this._updatePagination();\r\n }\r\n this._alignInkBarToSelectedTab();\r\n });\r\n });\r\n }\r\n\r\n _updateTabScrollPosition(): void {\r\n const scrollDistance = this.scrollDistance;\r\n if (this.PositionMode === 'horizontal') {\r\n const translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\r\n this._renderer.setStyle(this._tabList.nativeElement, 'transform', `translate3d(${translateX}px, 0, 0)`);\r\n } else {\r\n this._renderer.setStyle(this._tabList.nativeElement, 'transform', `translate3d(0,${-scrollDistance}px, 0)`);\r\n }\r\n }\r\n\r\n _updatePagination(): void {\r\n this._checkPaginationEnabled();\r\n this._checkScrollingControls();\r\n this._updateTabScrollPosition();\r\n }\r\n\r\n _checkPaginationEnabled(): void {\r\n this._showPaginationControls = this.tabListScrollWidthHeightPix > this.elementRefOffSetWidthHeight;\r\n\r\n if (!this._showPaginationControls) {\r\n this.scrollDistance = 0;\r\n }\r\n }\r\n\r\n _scrollToLabel(labelIndex: number): void {\r\n const selectedLabel = this._labelWrappers ? this._labelWrappers.toArray()[labelIndex] : null;\r\n\r\n if (!selectedLabel) {\r\n return;\r\n }\r\n\r\n // The view length is the visible width of the tab labels.\r\n\r\n let labelBeforePos: number;\r\n let labelAfterPos: number;\r\n if (this.PositionMode === 'horizontal') {\r\n if (this._getLayoutDirection() === 'ltr') {\r\n labelBeforePos = selectedLabel.getOffsetLeft();\r\n labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();\r\n } else {\r\n labelAfterPos = this._tabList.nativeElement.offsetWidth - selectedLabel.getOffsetLeft();\r\n labelBeforePos = labelAfterPos - selectedLabel.getOffsetWidth();\r\n }\r\n } else {\r\n labelBeforePos = selectedLabel.getOffsetTop();\r\n labelAfterPos = labelBeforePos + selectedLabel.getOffsetHeight();\r\n }\r\n const beforeVisiblePos = this.scrollDistance;\r\n const afterVisiblePos = this.scrollDistance + this.viewWidthHeightPix;\r\n\r\n if (labelBeforePos < beforeVisiblePos) {\r\n // Scroll header to move label to the before direction\r\n this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\r\n } else if (labelAfterPos > afterVisiblePos) {\r\n // Scroll header to move label to the after direction\r\n this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\r\n }\r\n }\r\n\r\n _checkScrollingControls(): void {\r\n // Check if the pagination arrows should be activated.\r\n this._disableScrollBefore = this.scrollDistance === 0;\r\n this._disableScrollAfter = this.scrollDistance === this._getMaxScrollDistance();\r\n }\r\n\r\n /**\r\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\r\n * is equal to the difference in width between the tab list container and tab header container.\r\n *\r\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\r\n * should be called sparingly.\r\n */\r\n _getMaxScrollDistance(): number {\r\n return this.tabListScrollWidthHeightPix - this.viewWidthHeightPix || 0;\r\n }\r\n\r\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\r\n set scrollDistance(v: number) {\r\n this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));\r\n\r\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\r\n // transformation can move the header.\r\n this._scrollDistanceChanged = true;\r\n\r\n this._checkScrollingControls();\r\n }\r\n\r\n get scrollDistance(): number {\r\n return this._scrollDistance;\r\n }\r\n\r\n get viewWidthHeightPix(): number {\r\n let PAGINATION_PIX = 0;\r\n if (this._showPaginationControls) {\r\n PAGINATION_PIX = 64;\r\n }\r\n if (this.PositionMode === 'horizontal') {\r\n return this._tabListContainer.nativeElement.offsetWidth - PAGINATION_PIX;\r\n } else {\r\n return this._tabListContainer.nativeElement.offsetHeight - PAGINATION_PIX;\r\n }\r\n }\r\n\r\n get tabListScrollWidthHeightPix(): number {\r\n if (this.PositionMode === 'horizontal') {\r\n return this._tabList.nativeElement.scrollWidth;\r\n } else {\r\n return this._tabList.nativeElement.scrollHeight;\r\n }\r\n }\r\n\r\n get elementRefOffSetWidthHeight(): number {\r\n if (this.PositionMode === 'horizontal') {\r\n return this._elementRef.nativeElement.offsetWidth;\r\n } else {\r\n return this._elementRef.nativeElement.offsetHeight;\r\n }\r\n }\r\n\r\n _getLayoutDirection(): Direction {\r\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\r\n }\r\n\r\n _alignInkBarToSelectedTab(): void {\r\n if (this.Type !== 'fillup') {\r\n const selectedLabelWrapper =\r\n this._labelWrappers && this._labelWrappers.length\r\n ? this._labelWrappers.toArray()[this.selectedIndex].elementRef.nativeElement\r\n : null;\r\n if (this._inkBar) {\r\n this._inkBar.alignToElement(selectedLabelWrapper);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"nav-tabs-wrapper\" [class.scrolling]=\"_showPaginationControls\" #tabListContainer>\r\n <div class=\"nav-wrap\">\r\n <ul\r\n class=\"nav nav-tabs nav-tabs-{{ _type }} nav-tabs-{{ _tabPosition }}\"\r\n [class.tabs-nav-animated]=\"Animated\"\r\n #tabList\r\n (cdkObserveContent)=\"_onContentChanges()\"\r\n >\r\n <div\r\n class=\"active-bar\"\r\n mefdev-tabs-ink-bar\r\n [hidden]=\"HideBar\"\r\n [Animated]=\"Animated\"\r\n [PositionMode]=\"PositionMode\"\r\n style=\"display: block;\"\r\n ></div>\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>","/** code from https://github.com/angular/material2 */\r\n\r\nimport {\r\n AfterContentChecked,\r\n AfterViewInit,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MefDevTabComponent } from './tab.component';\r\nimport { MefDevTabsNavComponent } from './tabs-nav.component';\r\n\r\nexport interface AnimatedInterface {\r\n inkBar: boolean;\r\n tabPane: boolean;\r\n}\r\n\r\nexport class TabChangeEvent {\r\n index: number;\r\n tab: MefDevTabComponent;\r\n}\r\n\r\nexport type TabPosition = 'top' | 'bottom' | 'left' | 'right';\r\nexport type TabPositionMode = 'horizontal' | 'vertical';\r\nexport type TabType = 'line' | 'fillup' | 'linetriangle';\r\n\r\n\r\n/**\r\n * Represents a tab set or tab group component.\r\n * @example\r\n * <mefdev-tabset TabPosition=\"top\" Animated=\"true\" ShowPagination=\"true\">\r\n * <mefdev-tab label=\"Tab 1\">Tab 1 content</mefdev-tab>\r\n * <mefdev-tab label=\"Tab 2\">Tab 2 content</mefdev-tab>\r\n * </mefdev-tabset>\r\n *\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/tabset</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-tabset',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./tabset.component.html\",\r\n})\r\nexport class MefDevTabSetComponent implements AfterContentChecked, OnInit, AfterViewInit {\r\n _el:any;\r\n _classMap:any;\r\n _prefixCls = 'nav-tabs';\r\n _width:any;\r\n _tabPosition: TabPosition = 'top';\r\n _tabPositionMode: TabPositionMode = 'horizontal';\r\n _indexToSelect: number | null = 0;\r\n _selectedIndex: number | null = null;\r\n _isViewInit = false;\r\n _tabs: MefDevTabComponent[] = [];\r\n _tabAnimation = '';\r\n _extra_tab_class = '';\r\n _extra_tabcontent_class = '';\r\n\r\n /**\r\n * Template reference for additional content to be displayed in the tab bar.\r\n */\r\n @Input() TabBarExtraTemplate: TemplateRef<void>;\r\n @ContentChild('TabBarExtraContent', { static: true }) TabBarExtraContent: TemplateRef<void>;\r\n @ViewChild('tabNav', { static: true }) _tabNav: MefDevTabsNavComponent;\r\n @ViewChild('tabContent', { static: true }) _tabContent: ElementRef;\r\n @ViewChild('hostContent', { static: true }) _hostContent: ElementRef;\r\n\r\n /**\r\n * Whether the tab set is animated. Can be a boolean or an object of type AnimatedInterface.\r\n * @example\r\n * - true (enables animation for both ink bar and tab pane)\r\n * - { inkBar: true, tabPane: false } (enables animation for ink bar only)\r\n * Default: true\r\n */\r\n\r\n @Input() Animated: AnimatedInterface | boolean = true;\r\n\r\n /**\r\n * Whether to show pagination controls for scrolling tabs.\r\n * @example true\r\n * Default: true\r\n */\r\n @Input() ShowPagination = true;\r\n\r\n /**\r\n * Whether the tab set is hidden.\r\n * @example true\r\n * Default: false\r\n */\r\n @Input() Hide = false;\r\n\r\n /**\r\n * The index of the selected tab.\r\n */\r\n @Input()\r\n set SelectedIndex(value: number | null) {\r\n this._indexToSelect = value;\r\n }\r\n\r\n get SelectedIndex(): number | null {\r\n return this._selectedIndex;\r\n }\r\n\r\n /**\r\n * Event emitted when the selected tab index changes.\r\n * @returns An Observable emitting the index of the selected tab.\r\n */\r\n @Output()\r\n get SelectedIndexChange(): Observable<number> {\r\n //@ts-ignore\r\n return this.SelectChange.pipe(map((event:any) => event.index));\r\n }\r\n\r\n /**\r\n * Event emitted when a tab is selected.\r\n * @example\r\n * <mefdev-tabset (SelectChange)=\"onTabSelect($event)\"></mefdev-tabset>\r\n */\r\n @Output() SelectChange: EventEmitter<TabChangeEvent> = new EventEmitter<TabChangeEvent>(true);\r\n\r\n /**\r\n * Size of the tab set. Can be 'default', 'small', or 'large'.\r\n * @example 'large'\r\n * Default: 'default'\r\n */\r\n @Input() Size = 'default';\r\n _type: TabType = 'line';\r\n tabs: MefDevTabComponent[] = [];\r\n\r\n /**\r\n * Position of the tab set. Can be 'top', 'bottom', 'left', or 'right'.\r\n */\r\n @Input()\r\n set TabPosition(value: TabPosition) {\r\n this._tabPosition = value;\r\n this._tabPositionMode = (value === 'top' || value === 'bottom') ? 'horizontal' : 'vertical';\r\n }\r\n get TabPosition(): TabPosition {\r\n return this._tabPosition;\r\n }\r\n\r\n /**\r\n * Additional CSS class for the tabs.\r\n */\r\n @Input()\r\n set extraTabClass(value: string) {\r\n this._extra_tab_class = value;\r\n }\r\n\r\n /**\r\n * Additional CSS class for the tab content.\r\n */\r\n @Input()\r\n set extraTabContentClass(value: string) {\r\n this._extra_tabcontent_class = value;\r\n }\r\n\r\n /**\r\n * Type of the tab set. Can be 'line', 'fillup', or 'linetriangle'.\r\n */\r\n @Input()\r\n set Type(value: TabType) {\r\n if (this._type === value) {\r\n return;\r\n }\r\n this._type = value;\r\n this._setClassMap();\r\n }\r\n\r\n /**\r\n * Animation to apply to the tabs. Accepts CSS animation name.\r\n */\r\n @Input()\r\n set tabAnimation(value: string) {\r\n this._tabAnimation = value;\r\n }\r\n\r\n get Type(): TabType {\r\n return this._type;\r\n }\r\n\r\n _setPosition(value: TabPosition): void {}\r\n\r\n _setClassMap(): void {}\r\n\r\n // Other properties, methods, and lifecycle hooks...\r\n\r\n /**\r\n * Selects the tab at the specified index.\r\n * @param index The index of the tab to select.\r\n * ```\r\n * <button (click)=\"clickLabel(0)\">Select Tab 1</button>\r\n *```\r\n */\r\n clickLabel(index: number): void {\r\n if (this._tabs[index].Disabled) {\r\n } else {\r\n this.SelectedIndex = index;\r\n this._tabs[index].pgClick.emit();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._setClassMap();\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n // Clamp the next selected index to the bounds of 0 and the tabs length. Note the `|| 0`, which\r\n // ensures that values like NaN can't get through and which would otherwise throw the\r\n // component into an infinite loop (since Math.max(NaN, 0) === NaN).\r\n const indexToSelect = (this._indexToSelect = Math.min(this._tabs.length - 1, Math.max(this._indexToSelect || 0, 0)));\r\n\r\n // If there is a change in selected index, emit a change event. Should not trigger if\r\n // the selected index has not yet been initialized.\r\n if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {\r\n this.SelectChange.emit(this._createChangeEvent(indexToSelect));\r\n }\r\n\r\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\r\n this._tabs.forEach((tab: MefDevTabComponent, index: number) => {\r\n tab.position = index - indexToSelect;\r\n // If there is already a selected tab, then set up an origin for the next selected tab\r\n // if it doesn't have one already.\r\n if (this._selectedIndex != null && tab.position === 0 && !tab.origin) {\r\n tab.origin = indexToSelect - this._selectedIndex;\r\n }\r\n });\r\n this._selectedIndex = indexToSelect;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._isViewInit = true;\r\n }\r\n\r\n private _createChangeEvent(index: number): TabChangeEvent {\r\n const event = new TabChangeEvent();\r\n event.index = index;\r\n if (this._tabs && this._tabs.length) {\r\n event.tab = this._tabs[index];\r\n this._tabs.forEach((item, i) => {\r\n if (i !== index) {\r\n item.pgDeselect.emit();\r\n }\r\n });\r\n event.tab.pgSelect.emit();\r\n }\r\n return event;\r\n }\r\n\r\n get inkBarAnimated(): boolean {\r\n return this.Animated === true || (this.Animated as AnimatedInterface).inkBar === true;\r\n }\r\n\r\n get tabPaneAnimated(): boolean {\r\n return this.Animated === true || (this.Animated as AnimatedInterface).tabPane === true;\r\n }\r\n\r\n constructor(private _renderer: Renderer2) {}\r\n}\r\n","<div class=\"tab-wrapper tab-{{ _tabPositionMode }} {{ _tabPosition }} {{ _type }} {{ _extra_tab_class }}\" #hostContent>\r\n <mefdev-tabs-nav\r\n #tabNav\r\n [Size]=\"Size\"\r\n [Type]=\"Type\"\r\n [ShowPagination]=\"ShowPagination\"\r\n [PositionMode]=\"_tabPositionMode\"\r\n [Position]=\"_tabPosition\"\r\n [Animated]=\"inkBarAnimated\"\r\n [HideBar]=\"Hide\"\r\n [selectedIndex]=\"SelectedIndex\"\r\n >\r\n <ng-template #tabBarExtraContent>\r\n <ng-template [ngTemplateOutlet]=\"TabBarExtraTemplate || TabBarExtraContent\"></ng-template>\r\n </ng-template>\r\n <li mefdev-tab-label [disabled]=\"tab.disabled\" (click)=\"clickLabel(i)\" *ngFor=\"let tab of _tabs; let i = index\">\r\n <a href=\"javascript:void(0);\" class=\"\" [class.active]=\"SelectedIndex == i && !Hide\">\r\n <ng-template [ngTemplateOutlet]=\"tab._tabHeading\"></ng-template>\r\n </a>\r\n </mefdev-tabs-nav>\r\n <div class=\"tab-content-wrapper {{ _extra_tabcontent_class }}\">\r\n <div\r\n class=\"tab-content {{ _tabAnimation }}\"\r\n #tabContent\r\n [class.animated]=\"tabPaneAnimated\"\r\n [class.not-animated]=\"!tabPaneAnimated\"\r\n [style.margin-left.%]=\"tabPaneAnimated && -(SelectedIndex ?? -1) * 100\"\r\n >\r\n <mefdev-tab-body\r\n class=\"tab-pane\"\r\n [class.active]=\"SelectedIndex == i && !Hide\"\r\n [class.inactive]=\"SelectedIndex != i || Hide\"\r\n [content]=\"tab.content\"\r\n *ngFor=\"let tab of _tabs; let i = index\"\r\n >\r\n </mefdev-tab-body>\r\n </div>\r\n </div>\r\n </div>","import {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { toBoolean } from '../util/convert';\r\nimport { MefDevTabSetComponent } from './tabset.component';\r\n\r\n@Component({\r\n selector: 'mefdev-tab',\r\n templateUrl:\"./tab.component.html\" ,\r\n styles: [],\r\n host: {\r\n '[class.ant-tabs-tabpane]': 'true'\r\n }\r\n})\r\nexport class MefDevTabComponent implements OnDestroy, OnInit {\r\n private disabled = false;\r\n\r\n position: number | null = null;\r\n origin: number | null = null;\r\n\r\n /**\r\n * Sets the disabled state of the tab.\r\n *```html\r\n * <mefdev-tab [Disabled]=\"true\"></mefdev-tab>\r\n * ```\r\n */\r\n @Input()\r\n set Disabled(value: boolean) {\r\n this.disabled = toBoolean(value);\r\n }\r\n\r\n /**\r\n * Gets the disabled state of the tab.\r\n */\r\n get Disabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n /**\r\n * Event emitted when the tab is selected.\r\n *```html\r\n * <mefdev-tab (pgSelect)=\"onTabSelect()\"></mefdev-tab>\r\n * ```\r\n */\r\n @Output() pgSelect = new EventEmitter();\r\n\r\n /**\r\n * Event emitted when the tab is clicked.\r\n *```html\r\n * <mefdev-tab (pgClick)=\"onTabClick()\"></mefdev-tab>\r\n * ```\r\n */\r\n @Output() pgClick = new EventEmitter();\r\n\r\n /**\r\n * Event emitted when the tab is deselected.\r\n *```html\r\n * <mefdev-tab (pgDeselect)=\"onTabDeselect()\"></mefdev-tab>\r\n *```\r\n */\r\n @Output() pgDeselect = new EventEmitter();\r\n\r\n /**\r\n * Reference to the template for the tab heading.\r\n */\r\n @ContentChild('TabHeading', { static: true }) _tabHeading: TemplateRef<void>;\r\n\r\n /**\r\n * Reference to the template for the tab content.\r\n */\r\n @ViewChild(TemplateRef, { static: true }) _content: TemplateRef<void>;\r\n\r\n /**\r\n * Gets the template for the tab content.\r\n *```html\r\n * <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n *```\r\n */\r\n get content(): TemplateRef<void> | null {\r\n return this._content;\r\n }\r\n\r\n constructor(private MefDevTabSetComponent: MefDevTabSetComponent) {}\r\n\r\n /**\r\n * Initializes the tab component.\r\n */\r\n ngOnInit(): void {\r\n this.MefDevTabSetComponent._tabs.push(this);\r\n }\r\n\r\n /**\r\n * Cleans up resources when the tab component is destroyed.\r\n */\r\n ngOnDestroy(): void {\r\n // Remove the tab from the parent tabset component when destroyed\r\n this.MefDevTabSetComponent._tabs.splice(this.MefDevTabSetComponent._tabs.indexOf(this), 1);\r\n }\r\n}\r\n","<ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MefDevTabBodyComponent } from './tab-body.component';\r\nimport { MefDevTabLabelDirective } from './tab-label.directive';\r\nimport { MefDevTabComponent } from './tab.component';\r\nimport { MefDevTabsInkBarDirective } from './tabs-ink-bar.directive';\r\nimport { MefDevTabsNavComponent } from './tabs-nav.component';\r\nimport { MefDevTabSetComponent } from './tabset.component';\r\n\r\n@NgModule({\r\n declarations: [MefDevTabComponent, MefDevTabSetComponent, MefDevTabsNavComponent, MefDevTabLabelDirective, MefDevTabsInkBarDirective, MefDevTabBodyComponent],\r\n exports: [MefDevTabComponent, MefDevTabSetComponent, MefDevTabsNavComponent, MefDevTabLabelDirective, MefDevTabsInkBarDirective, MefDevTabBodyComponent],\r\n imports: [CommonModule]\r\n})\r\nexport class MefDevTabsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CollapseSetComponent","i2","i1.FilteredFieldService","i3.FilteredFieldItemComponent","i1.MefDevSelectComponent","i3.MefDevOptionComponent","i4.MefDevSelectComponent","i2.MefDevProgressComponent","i1","i3.pgCard","i2.SlideRightComponent","observableOf","i2.MefDevTabsInkBarDirective","i2.MefDevTabsNavComponent","i3.MefDevTabLabelDirective","i4.MefDevTabBodyComponent","i1.MefDevTabSetComponent"],"mappings":"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"}
1
+ {"version":3,"file":"natec-mef-dev-ui-kit.mjs","sources":["../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse-set/collapse-set.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse-set/collapse-set.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse/collapse.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse/collapse.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/collapse/collapse.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field.service.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtered-field.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/filtered-field/filtred-item.model.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/help-block/help-block.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/help-block/help-block.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/help-block/hepl-block.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/util/convert.ts","../../../projects/ui-kit-lib/src/lib/pg-components/select/option.pipe.ts","../../../projects/ui-kit-lib/src/lib/pg-components/select/select.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/select/select.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/select/option.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/select/option.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/select/select.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/utils/datepicker/datepicker.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/progress/progress.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/progress/progress.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/card/card.components.ts","../../../projects/ui-kit-lib/src/lib/pg-components/card/card.components.html","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card/card.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card/card.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-long/cart-type-colors.enum.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-long/card-long.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-long/card-long.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-simple/card-simple.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card-simple/card-simple.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/progress/progress.config.ts","../../../projects/ui-kit-lib/src/lib/pg-components/progress/progress.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/card/card.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/card/card.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/fill/fill.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/fill/fill.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/slide-up/slide-up.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/slide-up/slide-up.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/slide-right/slide-right.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/slide-right/slide-right.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/right-filter/right-filter.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/right-filter/right-filter.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/modals/markup-kit.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/profile/profile.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/profile/profile.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/central-page/central-page.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/central-page/central-page.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/table-page/table-page.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/table-page/table-page.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/manage-page/manage-page.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/manage-page/manage-page.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/page-layouts/page-layouts.module.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/executors/stage/stage.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/executors/stage/stage.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/executors/step-executor/step-executor.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/executors/step-executor/step-executor.component.html","../../../projects/ui-kit-lib/src/lib/markup-kit/executors/mefdev-executor-page/mefdev-executor-page.component.ts","../../../projects/ui-kit-lib/src/lib/markup-kit/executors/step-executor.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/spec-flow-test/spec-flow-test.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/switch/switch.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/switch/switch.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/switch/switch.module.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab-body.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab-body.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab-label.directive.ts","../../../projects/ui-kit-lib/src/lib/pg-components/util/request-animation.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabs-ink-bar.directive.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabs-nav.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabs-nav.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabset.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabset.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab.component.ts","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tab.component.html","../../../projects/ui-kit-lib/src/lib/pg-components/tabs/tabs.module.ts","../../../projects/ui-kit-lib/src/natec-mef-dev-ui-kit.ts"],"sourcesContent":["import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { CollapseComponent } from '../collapse/collapse.component';\r\n\r\n\r\n/**\r\n* Component representing a set of collapsible panels.\r\n*\r\n* Example of usage:\r\n*\r\n*```\r\n* <mefdev-collapse-set [Accordion]=\"true\" [Horizontal]=\"true\" [expandAny]=\"false\">\r\n* <mefdev-collapse [Disabled]=\"false\" [Active]=\"true\">\r\n* <!-- Content for the collapse panel -->\r\n* <h3>Panel 1</h3>\r\n* <p>Panel 1 content...</p>\r\n* </mefdev-collapse>\r\n\r\n* <mefdev-collapse [Disabled]=\"false\" [Active]=\"false\">\r\n* <!-- Content for the collapse panel -->\r\n* <h3>Panel 2</h3>\r\n* <p>Panel 2 content...</p>\r\n* </mefdev-collapse>\r\n\r\n* <mefdev-collapse [Disabled]=\"false\" [Active]=\"false\">\r\n* <!-- Content for the collapse panel -->\r\n* <h3>Panel 3</h3>\r\n* <p>Panel 3 content...</p>\r\n* </mefdev-collapse>\r\n* </mefdev-collapse-set>\r\n*```\r\n*/\r\n@Component({\r\n selector: 'mefdev-collapse-set',\r\n templateUrl: './collapse-set.component.html',\r\n styleUrls: ['./collapse-set.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CollapseSetComponent {\r\n \r\n private _accordion = false;\r\n private _horizontal = true;\r\n private _expandAny = true;\r\n panels: CollapseComponent[] = [];\r\n\r\n /**\r\n * Indicates whether multiple panels can be expanded simultaneously.\r\n * Set this to `true` to allow multiple panels to be expanded. Defaults to `false`.\r\n */\r\n @Input()\r\n set expandAny(value: boolean) {\r\n this._accordion = value;\r\n }\r\n\r\n get expandAny(): boolean {\r\n return this._accordion;\r\n }\r\n\r\n /**\r\n * Indicates whether the collapse set operates as an accordion.\r\n * Set this to `true` to enable accordion behavior. Defaults to `false`.\r\n */\r\n @Input()\r\n set Accordion(value: boolean) {\r\n this._accordion = value;\r\n }\r\n\r\n get Accordion(): boolean {\r\n return this._accordion;\r\n }\r\n\r\n /**\r\n * Indicates whether the collapse set is displayed horizontally or vertically.\r\n * Set this to `true` for horizontal display and `false` for vertical display. Defaults to `true`.\r\n */\r\n @Input()\r\n set Horizontal(value: boolean) {\r\n this._horizontal = value;\r\n }\r\n\r\n get Horizontal(): boolean {\r\n return this._horizontal;\r\n }\r\n\r\n /**\r\n * Event handler for the click event on a collapse panel.\r\n * Closes other panels if the collapse set is an accordion and does not allow multiple expansions.\r\n *\r\n * @param collapse The clicked collapse component.\r\n */\r\n pgClick(collapse: CollapseComponent): void {\r\n if (this.Accordion && !this.expandAny) {\r\n this.panels.map((item, index) => {\r\n const curIndex = this.panels.indexOf(collapse);\r\n if (index !== curIndex) {\r\n item.Active = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Adds a collapse panel to the collapse set.\r\n *\r\n * @param collapse The collapse component to be added.\r\n */\r\n addTab(collapse: CollapseComponent): void {\r\n this.panels.push(collapse);\r\n }\r\n}\r\n","<div class=\"card-group\" [class.horizontal]=\"Horizontal\">\r\n <ng-content></ng-content>\r\n</div>","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, ContentChild, ElementRef, EventEmitter, Host, HostBinding, Input, Output, TemplateRef } from '@angular/core';\r\nimport { CollapseSetComponent } from '../collapse-set/collapse-set.component';\r\n\r\n\r\n/**\r\n * Component for displaying a collapsible content.\r\n *\r\n *\r\n * Example of usage:\r\n *```\r\n * <mefdev-collapse [Disabled]=\"false\" [Active]=\"true\" (stateChange)=\"onStateChange($event)\">\r\n * <ng-template #CardTitle>\r\n * <!-- Content for the card title -->\r\n * <h3>Card Title</h3>\r\n * </ng-template>\r\n * \r\n * <!-- Content for the collapsible section -->\r\n * <div>\r\n Content inside collapse\r\n * </div>\r\n * </mefdev-collapse>\r\n *\r\n *```\r\n * <example-url>https://mef.dev/ui_kit_demo/view/collapse/collapse</example-url>\r\n\r\n */\r\n@Component({\r\n selector: 'mefdev-collapse',\r\n templateUrl: './collapse.component.html',\r\n styleUrls: ['./collapse.component.scss'],\r\n animations: [\r\n trigger('collapseState', [\r\n state(\r\n 'inactive',\r\n style({\r\n opacity: '0',\r\n height: 0\r\n })\r\n ),\r\n state(\r\n 'active',\r\n style({\r\n opacity: '1',\r\n height: '*'\r\n })\r\n ),\r\n transition('inactive => active', animate('125ms ease-in')),\r\n transition('active => inactive', animate('125ms ease-out'))\r\n ])\r\n ],\r\n host: {\r\n '[class.card]': 'true',\r\n '[class.card-default]': 'true',\r\n '[class.m-b-0]': 'true'\r\n }\r\n})\r\nexport class CollapseComponent {\r\n\r\n private _disabled = false;\r\n _active = false;\r\n _el;\r\n\r\n /**\r\n * ContentChild for the template of the card title.\r\n *\r\n * Example:\r\n * ```\r\n * <ng-template #CardTitle>\r\n * <h3>Card Title</h3>\r\n * </ng-template>\r\n * ```\r\n */\r\n @ContentChild(\"CardTitle\") CardTitle: TemplateRef<void>;\r\n\r\n /**\r\n * Indicates whether the collapse is disabled.\r\n * Set this to `true` to disable the collapse. Defaults to `false`.\r\n */\r\n @Input()\r\n @HostBinding('class.disabled')\r\n set Disabled(value: boolean) {\r\n this._disabled = value;\r\n }\r\n\r\n get Disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n /**\r\n * Indicates whether the collapse is active or not.\r\n */\r\n @Input()\r\n set Active(value: boolean) {\r\n const active = value;\r\n if (this._active === active) {\r\n return;\r\n }\r\n if (!this.Disabled) {\r\n this._active = active;\r\n }\r\n }\r\n \r\n get Active(): boolean {\r\n return this._active;\r\n }\r\n\r\n /**\r\n * Event emitter for the state change of the collapse.\r\n * Emits a boolean value indicating whether the collapse is active or not.\r\n *\r\n * Example:\r\n * ```\r\n * <mefdev-collapse (stateChange)=\"onStateChange($event)\"></mefdev-collapse>\r\n * ```\r\n */\r\n @Output() stateChange = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Event handler for the header click event.\r\n * Toggles the active state of the collapse and emits the state change event.\r\n *\r\n * @param $event The mouse event object.\r\n */\r\n clickHeader($event: MouseEvent): void {\r\n this.Active = !this.Active;\r\n this.stateChange.next(this.Active);\r\n /** trigger host collapseSet click event */\r\n this._collapseSet.pgClick(this);\r\n }\r\n\r\n constructor(@Host() private _collapseSet: CollapseSetComponent, private _elementRef: ElementRef) {\r\n this._el = this._elementRef.nativeElement;\r\n this._collapseSet.addTab(this);\r\n }\r\n}\r\n","<div class=\"row mt-2 card-title\" [attr.aria-expanded]=\"_active\" (click)=\"clickHeader($event)\" role=\"tab\"\r\nhref=\"javascript:;\" [ngClass]=\"{'collapsed':!_active}\">\r\n <div class=\"col\">\r\n <ng-template [ngTemplateOutlet]=\"CardTitle\"></ng-template>\r\n </div>\r\n <div class=\"col\">\r\n <i class=\"fa fa-angle-down float-end \" aria-hidden=\"true\" *ngIf=\"!_active\"></i>\r\n <i class=\"fa fa-angle-up float-end \" aria-hidden=\"true\" *ngIf=\"_active\"></i>\r\n </div>\r\n</div>\r\n\r\n<div class=\"collapse\" [ngClass]=\"{'show':true,'active':_active,'inactive':!_active}\" [@collapseState]=\"_active?'active':'inactive'\">\r\n <div *ngIf=\"_active\" \r\n class=\"card-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { NgModule,ModuleWithProviders } from '@angular/core';\r\nimport { CollapseSetComponent } from './collapse-set/collapse-set.component';\r\nimport { CollapseComponent } from './collapse/collapse.component';\r\n\r\nexport const mefDevCollapseModuleComponents = [CollapseSetComponent, CollapseComponent];\r\n\r\n@NgModule({\r\n declarations: mefDevCollapseModuleComponents,\r\n exports : mefDevCollapseModuleComponents,\r\n imports : [ CommonModule ]\r\n})\r\n\r\nexport class MefDevCollapseModule {\r\n static forRoot(): ModuleWithProviders<MefDevCollapseModule> {\r\n return {\r\n ngModule: MefDevCollapseModule\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { FiltredItemModel } from './filtred-item.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FilteredFieldService {\r\n\r\n private newFilterItem: Subject<FiltredItemModel> = new Subject<FiltredItemModel>();\r\n private openFilter: Subject<FiltredItemModel> = new Subject<FiltredItemModel>();\r\n\r\n constructor() {}\r\n\r\n /**\r\n * Returns an observable that emits the open filter events.\r\n */\r\n public getOpenFilter(): Observable<FiltredItemModel>{\r\n return this.openFilter;\r\n }\r\n\r\n /**\r\n * Sends an open filter event with the specified item.\r\n * @param item The filtered item model.\r\n */\r\n public sendOpenFilter(item: FiltredItemModel){\r\n this.openFilter.next(item);\r\n }\r\n\r\n /**\r\n * Returns an observable that emits the new filter item events.\r\n */\r\n public getNewFilterItem(): Observable<FiltredItemModel>{\r\n return this.newFilterItem;\r\n }\r\n\r\n /**\r\n * Sends a new filter item event with the specified item.\r\n * @param item The filtered item model.\r\n */\r\n public sendNewFilterItem(item: FiltredItemModel){\r\n this.newFilterItem.next(item);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FiltredItemModel } from '../filtred-item.model';\r\n\r\n/**\r\n * Component representing a filtered field item.\r\n * \r\n * Example of usage:\r\n * ```\r\n * <mefdev-filtered-field-item [item]=\"filterItem\" (discard)=\"onDiscardFilter($event)\" (openFilter)=\"onOpenFilter()\">\r\n * </mefdev-filtered-field-item>\r\n *``` \r\n *\r\n*/\r\n@Component({\r\n selector: 'mefdev-filtered-field-item',\r\n templateUrl: './filtered-field-item.component.html',\r\n styleUrls: ['./filtered-field-item.component.scss']\r\n})\r\nexport class FilteredFieldItemComponent implements OnInit {\r\n\r\n /**\r\n * The filtered item model.\r\n * ```\r\n * <mefdev-filtered-field-item [item]=\"filterItem\">\r\n * Content goes here...\r\n * </mefdev-filtered-field-item>\r\n * ```\r\n */\r\n @Input() item: FiltredItemModel;\r\n\r\n /**\r\n * Event emitted when the filter is discarded.\r\n * ```\r\n * <mefdev-filtered-field-item (discard)=\"onDiscardFilter($event)\">\r\n * Content goes here...\r\n * </mefdev-filtered-field-item>\r\n * ```\r\n */\r\n @Output() discard = new EventEmitter<FiltredItemModel>();\r\n\r\n /**\r\n * Event emitted when the filter is opened.\r\n * ```\r\n * <mefdev-filtered-field-item (openFilter)=\"onOpenFilter()\">\r\n * Content goes here...\r\n * </mefdev-filtered-field-item>\r\n * ```\r\n */\r\n @Output() openFilter = new EventEmitter<any>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n \r\n /**\r\n * Event handler for opening the filter.\r\n * Emits the `openFilter` event.\r\n */\r\n onOpenFilter(){\r\n this.openFilter.next({});\r\n }\r\n\r\n\r\n /**\r\n * Event handler for discarding the filter.\r\n * Emits the `discard` event with the `item` as the payload.\r\n */\r\n onDiscard(){\r\n this.discard.next(this.item);\r\n }\r\n\r\n}\r\n","<div class=\"item\">\r\n <i class=\"fa fa-times\" (click)=\"onDiscard()\" style=\"margin-right: 3px; cursor: pointer;\"></i> \r\n <span (click)=\"onOpenFilter()\">{{item.newValue}}</span>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FilteredFieldService } from '../filtered-field.service';\r\nimport { FiltredItemModel } from '../filtred-item.model';\r\n\r\n /**\r\n * A container component for filtered fields.\r\n *\r\n * Example of usage:\r\n * ```\r\n * <mefdev-filtered-field-container>\r\n * \r\n * <mefdev-filtered-field-item [item]=\"filterItem\" (discard)=\"onDiscardFilter($event)\" (openFilter)=\"onOpenFilter()\">\r\n * </mefdev-filtered-field-item>\r\n *\r\n * </mefdev-filtered-field-container>\r\n * ```\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/utils/filtered-field</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-filtered-field-container',\r\n templateUrl: './filtered-field-container.component.html',\r\n styleUrls: ['./filtered-field-container.component.scss']\r\n})\r\nexport class FilteredFieldContainerComponent implements OnInit {\r\n\r\n /**\r\n * An array of filtered item models.\r\n */\r\n items: FiltredItemModel[] = [];\r\n\r\n constructor(\r\n private service: FilteredFieldService\r\n ) { }\r\n\r\n /**\r\n * Event handler for opening the filter.\r\n *\r\n * @param item The filtered item model.\r\n */\r\n onOpenFilter(item: FiltredItemModel){\r\n this.service.sendOpenFilter(item);\r\n }\r\n\r\n /**\r\n * Event handler for discarding the filter.\r\n *\r\n * @param item The filtered item model.\r\n */\r\n onDiscard(item: FiltredItemModel){\r\n item.discard(item.standartValue);\r\n this.items.splice(this.items.findIndex(x => x.id == item.id), 1);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.service.getNewFilterItem().subscribe(item => {\r\n let i = this.items.findIndex(x => x.id == item.id)\r\n\r\n if(i != -1 && item.newValue == item.standartValue){\r\n this.items[i] = item;\r\n this.items.splice(i, 1);\r\n return;\r\n }\r\n\r\n if(i == -1 && (item.newValue == item.standartValue || item.newValue == '') ){\r\n return;\r\n }\r\n\r\n if(i != -1){\r\n this.items[i] = item;\r\n return;\r\n }\r\n\r\n this.items.push(item);\r\n\r\n })\r\n }\r\n}\r\n","<div class=\"item-container\">\r\n <mefdev-filtered-field-item *ngFor=\"let item of items\" [item]=\"item\" (discard)=\"onDiscard(item)\" (openFilter)=\"onOpenFilter(item)\"></mefdev-filtered-field-item>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FilteredFieldContainerComponent } from './filtered-field-container/filtered-field-container.component';\r\nimport { FilteredFieldItemComponent } from './filtered-field-item/filtered-field-item.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n FilteredFieldContainerComponent,\r\n FilteredFieldItemComponent,\r\n ],\r\n exports:[\r\n FilteredFieldItemComponent,\r\n FilteredFieldContainerComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class MefDevFilteredFieldModule { }\r\n","export class FiltredItemModel{\r\n\r\n\r\n constructor(id:string, newValue: string, standartValue: string, discard: (standartValue: string) => any){\r\n this.id = id;\r\n this.newValue = newValue;\r\n this.standartValue = standartValue;\r\n this.discard = discard;\r\n }\r\n\r\n id:string;\r\n newValue: string;\r\n standartValue: string;\r\n discard: (standartValue: string) => any;\r\n}","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n animate,\r\n transition,\r\n} from '@angular/animations';\r\n\r\n\r\n /**\r\n * A component representing a help block with smooth expand animation.\r\n *\r\n * Example of usage:\r\n *```\r\n * <mefdev-help-block [title]=\"'Help'\">\r\n * Content goes here...\r\n * <ng-content></ng-content>\r\n * </mefdev-help-block>\r\n *```\r\n * <example-url>https://mef.dev/ui_kit_demo/view/utils/help-block</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-help-block',\r\n templateUrl: './help-block.component.html',\r\n styleUrls: ['./help-block.component.scss'],\r\n animations:[\r\n trigger('smothExpand',[\r\n state('close', style({\r\n height: '0',\r\n margin: '0',\r\n padding: '0',\r\n opacity: '0',\r\n visibility: 'hidden',\r\n })),\r\n state('open', style({})),\r\n transition('close<=>open', animate(200))\r\n ])\r\n ]\r\n})\r\nexport class HelpBlockComponent implements OnInit {\r\n\r\n /**\r\n * Indicates whether the help block is visible.\r\n */\r\n isVisible:boolean = true;\r\n\r\n /**\r\n * Indicates whether the help block is expanded.\r\n */\r\n expanded:boolean = false;\r\n\r\n\r\n /**\r\n * The title of the help block.\r\n *```\r\n * <mefdev-help-block [title]=\"'Help Block'\">\r\n * Content goes here...\r\n * </mefdev-help-block>\r\n *```\r\n */\r\n @Input('title') title:string = \"Help\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"card-simple\" *ngIf=\"isVisible\">\r\n <div class=\"row m-1 body-1\" (click)=\"expanded = !expanded\" style=\"cursor: pointer;\">\r\n <div class=\"col-10\" style=\"color: white;\">\r\n {{ title }}\r\n </div>\r\n <div class=\"col-2\">\r\n <i class=\"fa fa-window-close\" aria-hidden=\"true\" style=\"float: right; margin-left: 20px;\" (click)=\"isVisible = !isVisible;\"></i>\r\n \r\n <i class=\"fa fa-angle-down \" *ngIf=\"!expanded\" aria-hidden=\"true\" style=\"float: right;\"></i>\r\n <i class=\"fa fa-angle-up\" *ngIf=\"expanded\" aria-hidden=\"true\" style=\"float: right;\"></i> \r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body row\" [@smothExpand]=\"expanded ? 'open' : 'close'\">\r\n <div class=\"col-12\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HelpBlockComponent } from './help-block.component';\r\nimport { MefDevCollapseModule } from '../../collapse/collapse.module';\r\n\r\n@NgModule({\r\n declarations: [HelpBlockComponent],\r\n exports: [HelpBlockComponent],\r\n imports: [\r\n CommonModule,\r\n MefDevCollapseModule\r\n ]\r\n})\r\nexport class MefDevHelpBlockModule { }\r\n","export function toBoolean(value: any): boolean {\r\n return value === '' || (value && value !== 'false');\r\n}\r\n","/* tslint:disable:no-any */\r\nimport { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { MefDevOptionComponent } from \"./option.component\";\r\n\r\n@Pipe({ name: \"OptionPipe\" })\r\nexport class OptionPipe implements PipeTransform {\r\n // TODO: enable type checking for this method\r\n transform(options: MefDevOptionComponent[], value: any): any {\r\n if (value.searchText) {\r\n let _options = options.filter(\r\n option =>\r\n option.Label &&\r\n option.Label.toLowerCase().indexOf(value.searchText.toLowerCase()) !==\r\n -1\r\n );\r\n if (value.tags) {\r\n _options = options.filter(\r\n option =>\r\n option.Label &&\r\n option.Label.toLowerCase() === value.searchText.toLowerCase()\r\n );\r\n }\r\n if (_options.length) {\r\n return _options;\r\n } else {\r\n return [\r\n ({\r\n Value: value.value,\r\n _value: value.value,\r\n Disabled: value.disabled,\r\n _disabled: value.disabled,\r\n Label: value.notFoundContent,\r\n _label: value.notFoundContent\r\n } as any) as MefDevOptionComponent\r\n ];\r\n }\r\n } else {\r\n return options;\r\n }\r\n }\r\n}\r\n","/**\r\n * complex but work well\r\n * TODO: rebuild latter\r\n */\r\nimport { DOWN_ARROW, ENTER, TAB } from \"@angular/cdk/keycodes\";\r\nimport {\r\n CdkConnectedOverlay,\r\n ConnectedOverlayPositionChange\r\n} from \"@angular/cdk/overlay\";\r\nimport {\r\n forwardRef,\r\n AfterContentChecked,\r\n AfterContentInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation,\r\n ChangeDetectorRef\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { MefDevOptionComponent } from \"./option.component\";\r\nimport { OptionPipe } from \"./option.pipe\";\r\nimport { toBoolean } from '../util/convert';\r\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\r\n\r\n\r\n/**\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/select</example-url>\r\n */\r\n@Component({\r\n selector: \"mefdev-select\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./select.component.html\",\r\n\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MefDevSelectComponent),\r\n multi: true\r\n }\r\n ],\r\n animations: [trigger('dropDownAnimation', [\r\n state('bottom', style({\r\n opacity : 1,\r\n transform : 'scaleY(1)',\r\n transformOrigin: '0% 0%'\r\n })),\r\n transition('void => bottom', [\r\n style({\r\n opacity : 0,\r\n transform : 'scaleY(0)',\r\n transformOrigin: '0% 0%'\r\n }),\r\n animate('150ms cubic-bezier(0.25, 0.8, 0.25, 1)')\r\n ]),\r\n state('top', style({\r\n opacity : 1,\r\n transform : 'scaleY(1)',\r\n transformOrigin: '0% 100%'\r\n })),\r\n transition('void => top', [\r\n style({\r\n opacity : 0,\r\n transform : 'scaleY(0)',\r\n transformOrigin: '0% 100%'\r\n }),\r\n animate('150ms cubic-bezier(0.25, 0.8, 0.25, 1)')\r\n ]),\r\n transition('* => void', [\r\n animate('250ms 100ms linear', style({ opacity: 0 }))\r\n ])\r\n ]),\r\n\r\n trigger('tagAnimation', [\r\n state('*', style({ opacity: 1, transform: 'scale(1)' })),\r\n transition('void => *', [\r\n style({ opacity: 0, transform: 'scale(0)' }),\r\n animate('150ms linear')\r\n ]),\r\n state('void', style({ opacity: 0, transform: 'scale(0)' })),\r\n transition('* => void', [\r\n style({ opacity: 1, transform: 'scale(1)' }),\r\n animate('150ms linear')\r\n ])])]\r\n})\r\nexport class MefDevSelectComponent\r\n implements\r\n OnInit,\r\n AfterContentInit,\r\n AfterContentChecked,\r\n ControlValueAccessor {\r\n private _allowClear = false;\r\n private _disabled = false;\r\n private _isTags = false;\r\n private _isMultiple = false;\r\n private _keepUnListOptions = false;\r\n private _showSearch = false;\r\n _el: HTMLElement;\r\n _isOpen = false;\r\n _prefixCls = \"pg-select\";\r\n _classList: string[] = [];\r\n _dropDownClassMap: any;\r\n _dropDownPrefixCls = `${this._prefixCls}-dropdown`;\r\n _selectionClassMap: any;\r\n _selectionPrefixCls = `${this._prefixCls}-selection`;\r\n _size: string;\r\n _value: string[] | string;\r\n _placeholder = \"placeholder\";\r\n _notFoundContent = \"No Content\";\r\n _searchText = \"\";\r\n _triggerWidth = 0;\r\n _selectedOption: MefDevOptionComponent;\r\n _operatingMultipleOption: MefDevOptionComponent;\r\n _selectedOptions: Set<MefDevOptionComponent> = new Set();\r\n _options: MefDevOptionComponent[] = [];\r\n _cacheOptions: MefDevOptionComponent[] = [];\r\n _filterOptions: MefDevOptionComponent[] = [];\r\n _tagsOptions: MefDevOptionComponent[] = [];\r\n _activeFilterOption: MefDevOptionComponent;\r\n _isMultiInit = false;\r\n _dropDownPosition: \"top\" | \"center\" | \"bottom\" = \"bottom\";\r\n _composing = false;\r\n _mode: any;\r\n // ngModel Access\r\n onChange: (value: string | string[]) => void = () => null;\r\n onTouched: () => void = () => null;\r\n @ViewChild(\"searchInput\") searchInputElementRef: any;\r\n @ViewChild(\"trigger\") trigger: ElementRef;\r\n @ViewChild(\"dropdownUl\") dropdownUl: ElementRef;\r\n @Output() SearchChange: EventEmitter<string> = new EventEmitter();\r\n @Output() change: EventEmitter<string> = new EventEmitter();\r\n @Output() OpenChange: EventEmitter<boolean> = new EventEmitter();\r\n @Output() ScrollToBottom: EventEmitter<boolean> = new EventEmitter();\r\n @Input() Filter = true;\r\n @Input() MaxMultiple = Infinity;\r\n @Input() FirstDefault: boolean = false;\r\n @ViewChild(CdkConnectedOverlay) _cdkOverlay: CdkConnectedOverlay;\r\n\r\n @Input()\r\n set AllowClear(value: boolean) {\r\n this._allowClear = toBoolean(value);\r\n }\r\n\r\n get AllowClear(): boolean {\r\n return this._allowClear;\r\n }\r\n\r\n @Input()\r\n set KeepUnListOptions(value: boolean) {\r\n this._keepUnListOptions = toBoolean(value);\r\n }\r\n\r\n get KeepUnListOptions(): boolean {\r\n return this._keepUnListOptions;\r\n }\r\n\r\n @Input()\r\n set Mode(value: string) {\r\n this._mode = value;\r\n if (this._mode === \"multiple\") {\r\n this.Multiple = true;\r\n } else if (this._mode === \"tags\") {\r\n this.Tags = true;\r\n } else if (this._mode === \"combobox\") {\r\n this.ShowSearch = true;\r\n }\r\n }\r\n\r\n @Input()\r\n set Multiple(value: boolean) {\r\n this._isMultiple = toBoolean(value);\r\n if (this._isMultiple) {\r\n this.ShowSearch = true;\r\n }\r\n }\r\n\r\n get Multiple(): boolean {\r\n return this._isMultiple;\r\n }\r\n\r\n @Input()\r\n set PlaceHolder(value: string) {\r\n this._placeholder = value;\r\n }\r\n\r\n get PlaceHolder(): string {\r\n return this._placeholder;\r\n }\r\n\r\n @Input()\r\n set NotFoundContent(value: string) {\r\n this._notFoundContent = value;\r\n }\r\n\r\n get NotFoundContent(): string {\r\n return this._notFoundContent;\r\n }\r\n\r\n @Input()\r\n set Size(value: string) {\r\n // @ts-ignore\r\n this._size = { large: \"lg\", small: \"sm\" }[value];\r\n this.setClassMap();\r\n }\r\n\r\n get Size(): string {\r\n return this._size;\r\n }\r\n\r\n @Input()\r\n set ShowSearch(value: boolean) {\r\n this._showSearch = toBoolean(value);\r\n }\r\n\r\n get ShowSearch(): boolean {\r\n return this._showSearch;\r\n }\r\n\r\n @Input()\r\n set Tags(value: boolean) {\r\n const isTags = toBoolean(value);\r\n this._isTags = isTags;\r\n this.Multiple = isTags;\r\n }\r\n\r\n get Tags(): boolean {\r\n return this._isTags;\r\n }\r\n\r\n @Input()\r\n set Disabled(value: boolean) {\r\n this._disabled = toBoolean(value);\r\n this.closeDropDown();\r\n this.setClassMap();\r\n }\r\n\r\n get Disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n @Input()\r\n set Open(value: boolean) {\r\n const isOpen = toBoolean(value);\r\n if (this._isOpen === isOpen) {\r\n return;\r\n }\r\n if (isOpen) {\r\n this.scrollToActive();\r\n this._setTriggerWidth();\r\n }\r\n this._isOpen = isOpen;\r\n this.OpenChange.emit(this._isOpen);\r\n this.setClassMap();\r\n if (this._isOpen) {\r\n setTimeout(() => {\r\n this.checkDropDownScroll();\r\n });\r\n }\r\n }\r\n\r\n get Open(): boolean {\r\n return this._isOpen;\r\n }\r\n\r\n /** new -option insert or new tags insert */\r\n // @ts-ignore\r\n addOption = option => {\r\n this._options.push(option);\r\n if (!this._isTags) {\r\n if (option.Value) {\r\n this.updateSelectedOption(this._value);\r\n } else {\r\n this.forceUpdateSelectedOption(this._value);\r\n }\r\n }\r\n };\r\n\r\n /** -option remove or tags remove */\r\n removeOption(option: MefDevOptionComponent): void {\r\n this._options.splice(this._options.indexOf(option), 1);\r\n if (!this._isTags) {\r\n this.forceUpdateSelectedOption(this._value);\r\n }\r\n }\r\n\r\n /** dropdown position changed */\r\n onPositionChange(position: ConnectedOverlayPositionChange): void {\r\n this._dropDownPosition = position.connectionPair.originY;\r\n }\r\n\r\n compositionStart(): void {\r\n this._composing = true;\r\n }\r\n\r\n compositionEnd(): void {\r\n this._composing = false;\r\n }\r\n\r\n /** clear single selected option */\r\n clearSelect($event?: MouseEvent): void {\r\n if ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n } // @ts-ignore\r\n this._selectedOption = null; // @ts-ignore\r\n this.Value = null; // @ts-ignore\r\n this.onChange(null);\r\n }\r\n\r\n /** click dropdown option by user */\r\n clickOption(option: MefDevOptionComponent, $event?: MouseEvent): void {\r\n if (!option) {\r\n return;\r\n }\r\n this.chooseOption(option, true, $event);\r\n this.clearSearchText();\r\n if (!this._isMultiple) {\r\n this.Open = false;\r\n }\r\n }\r\n\r\n /** choose option */\r\n chooseOption(\r\n option: MefDevOptionComponent,\r\n isUserClick: boolean = false,\r\n $event?: MouseEvent\r\n ): void {\r\n if ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n this._activeFilterOption = option;\r\n if (option && !option.Disabled) {\r\n if (!this.Multiple) {\r\n this._selectedOption = option;\r\n this._value = option.Value;\r\n if (isUserClick) {\r\n this.change.next(this._value);\r\n this.onChange(option.Value);\r\n }\r\n } else {\r\n if (isUserClick) {\r\n this.isInSet(this._selectedOptions, option)\r\n ? this.unSelectMultipleOption(option)\r\n : this.selectMultipleOption(option);\r\n }\r\n }\r\n }\r\n }\r\n\r\n updateWidth(element: HTMLInputElement, text: string): void {\r\n if (text) {\r\n /** wait for scroll width change */ // @ts-ignore\r\n setTimeout(_ => {\r\n this._renderer.setStyle(element, \"width\", `${element.scrollWidth}px`);\r\n });\r\n } else {\r\n this._renderer.removeStyle(element, \"width\");\r\n }\r\n }\r\n\r\n /** determine if option in set */\r\n isInSet(\r\n set: Set<MefDevOptionComponent>,\r\n option: MefDevOptionComponent\r\n ): MefDevOptionComponent { // @ts-ignore\r\n return (Array.from(set) as MefDevOptionComponent[]).find(\r\n (data: MefDevOptionComponent) => data.Value === option.Value\r\n );\r\n }\r\n\r\n /** cancel select multiple option */ // @ts-ignore\r\n unSelectMultipleOption = (option, $event?, emitChange = true) => {\r\n this._operatingMultipleOption = option;\r\n this._selectedOptions.delete(option);\r\n if (emitChange) {\r\n this.emitMultipleOptions();\r\n }\r\n\r\n // 对Tag进行特殊处理\r\n if (\r\n this._isTags &&\r\n this._options.indexOf(option) !== -1 &&\r\n this._tagsOptions.indexOf(option) !== -1\r\n ) {\r\n this.removeOption(option);\r\n this._tagsOptions.splice(this._tagsOptions.indexOf(option), 1);\r\n }\r\n if ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n };\r\n\r\n /** select multiple option */\r\n selectMultipleOption(option: MefDevOptionComponent, $event?: MouseEvent): void {\r\n /** if tags do push to tag option */\r\n if (\r\n this._isTags &&\r\n this._options.indexOf(option) === -1 &&\r\n this._tagsOptions.indexOf(option) === -1\r\n ) {\r\n this.addOption(option);\r\n this._tagsOptions.push(option);\r\n }\r\n this._operatingMultipleOption = option;\r\n if (this._selectedOptions.size < this.MaxMultiple) {\r\n this._selectedOptions.add(option);\r\n }\r\n this.emitMultipleOptions();\r\n\r\n if ($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n }\r\n\r\n /** emit multiple options */\r\n emitMultipleOptions(): void {\r\n if (this._isMultiInit) {\r\n return;\r\n }\r\n const arrayOptions = Array.from(this._selectedOptions);\r\n this._value = arrayOptions.map(item => item.Value);\r\n this.onChange(this._value);\r\n }\r\n\r\n /** update selected option when add remove option etc */\r\n updateSelectedOption(\r\n currentModelValue: string | string[],\r\n triggerByNgModel: boolean = false\r\n ): void {\r\n if (currentModelValue == null) {\r\n return;\r\n }\r\n if (this.Multiple) {\r\n const selectedOptions = this._options.filter(item => {\r\n return item != null && currentModelValue.indexOf(item.Value) !== -1;\r\n });\r\n if ((this.KeepUnListOptions || this.Tags) && !triggerByNgModel) {\r\n const _selectedOptions = Array.from(this._selectedOptions);\r\n selectedOptions.forEach(option => {\r\n const _exist = _selectedOptions.some(\r\n item => item._value == option._value\r\n );\r\n if (!_exist) {\r\n this._selectedOptions.add(option);\r\n }\r\n });\r\n } else {\r\n this._selectedOptions = new Set();\r\n selectedOptions.forEach(option => {\r\n this._selectedOptions.add(option);\r\n });\r\n }\r\n } else {\r\n const selectedOption = this._options.filter(item => {\r\n return item != null && item.Value == currentModelValue;\r\n });\r\n this.chooseOption(selectedOption[0]);\r\n }\r\n }\r\n\r\n forceUpdateSelectedOption(value: string | string[]): void {\r\n /** trigger dirty check */ // @ts-ignore\r\n setTimeout(_ => {\r\n this.updateSelectedOption(value);\r\n });\r\n }\r\n\r\n get Value(): string | string[] {\r\n return this._value;\r\n }\r\n\r\n set Value(value: string | string[]) {\r\n this._updateValue(value);\r\n }\r\n\r\n clearAllSelectedOption(emitChange: boolean = true): void {\r\n this._selectedOptions.forEach(item => {\r\n this.unSelectMultipleOption(item, null, emitChange);\r\n });\r\n }\r\n\r\n handleKeyEnterEvent(event: KeyboardEvent): void {\r\n /** when composing end */\r\n if (!this._composing && this._isOpen) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.updateFilterOption(false);\r\n this.clickOption(this._activeFilterOption);\r\n }\r\n }\r\n\r\n handleKeyBackspaceEvent(event: KeyboardEvent): void {\r\n if (!this._searchText && !this._composing && this._isMultiple) {\r\n event.preventDefault();\r\n const lastOption = Array.from(this._selectedOptions).pop();\r\n this.unSelectMultipleOption(lastOption);\r\n }\r\n }\r\n\r\n handleKeyDownEvent($event: MouseEvent): void {\r\n if (this._isOpen) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this._activeFilterOption = this.nextOption(\r\n this._activeFilterOption,\r\n this._filterOptions.filter(w => !w.Disabled)\r\n );\r\n this.scrollToActive();\r\n }\r\n }\r\n\r\n handleKeyUpEvent($event: MouseEvent): void {\r\n if (this._isOpen) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this._activeFilterOption = this.preOption(\r\n this._activeFilterOption,\r\n this._filterOptions.filter(w => !w.Disabled)\r\n );\r\n this.scrollToActive();\r\n }\r\n }\r\n\r\n preOption(\r\n option: MefDevOptionComponent,\r\n options: MefDevOptionComponent[]\r\n ): MefDevOptionComponent {\r\n return options[options.indexOf(option) - 1] || options[options.length - 1];\r\n }\r\n\r\n nextOption(\r\n option: MefDevOptionComponent,\r\n options: MefDevOptionComponent[]\r\n ): MefDevOptionComponent {\r\n return options[options.indexOf(option) + 1] || options[0];\r\n }\r\n\r\n clearSearchText(): void {\r\n this._searchText = \"\";\r\n this.updateFilterOption();\r\n }\r\n\r\n updateFilterOption(updateActiveFilter: boolean = true): void {\r\n if (this.Filter) {\r\n this._filterOptions = new OptionPipe().transform(this._options, {\r\n searchText: this._searchText,\r\n tags: this._isTags,\r\n notFoundContent: this._isTags\r\n ? this._searchText\r\n : this._notFoundContent,\r\n disabled: !this._isTags,\r\n value: this._isTags ? this._searchText : \"disabled\"\r\n });\r\n } else {\r\n this._filterOptions = this._options;\r\n }\r\n\r\n /** TODO: cause pre & next key selection not work */\r\n if (updateActiveFilter && !this._selectedOption) {\r\n this._activeFilterOption = this._filterOptions[0];\r\n }\r\n }\r\n\r\n onSearchChange(searchValue: string): void {\r\n this.SearchChange.emit(searchValue);\r\n }\r\n\r\n @HostListener(\"click\", [\"$event\"])\r\n onClick(e: MouseEvent): void {\r\n e.preventDefault();\r\n if (!this._disabled) {\r\n this.Open = !this.Open;\r\n if (this.ShowSearch) {\r\n /** wait for search display */ // @ts-ignore\r\n setTimeout(_ => {\r\n this.searchInputElementRef.nativeElement.focus();\r\n });\r\n }\r\n }\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown(e: KeyboardEvent): void {\r\n const keyCode = e.keyCode;\r\n if (keyCode === TAB && this.Open) {\r\n this.Open = false;\r\n return;\r\n }\r\n if ((keyCode !== DOWN_ARROW && keyCode !== ENTER) || this.Open) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (!this._disabled) {\r\n this.Open = true;\r\n if (this.ShowSearch) {\r\n /** wait for search display */ // @ts-ignore\r\n setTimeout(_ => {\r\n this.searchInputElementRef.nativeElement.focus();\r\n });\r\n }\r\n }\r\n }\r\n\r\n closeDropDown(): void {\r\n if (!this.Open) {\r\n return;\r\n }\r\n this.onTouched();\r\n if (this.Multiple) {\r\n this._renderer.removeStyle(\r\n this.searchInputElementRef.nativeElement,\r\n \"width\"\r\n );\r\n }\r\n this.clearSearchText();\r\n this.Open = false;\r\n }\r\n\r\n setClassMap(): void {\r\n this._classList.forEach(_className => {\r\n this._renderer.removeClass(this._el, _className);\r\n }); // @ts-ignore\r\n this._classList = [\r\n this._prefixCls,\r\n this._mode === \"combobox\" && `${this._prefixCls}-combobox`,\r\n !this._disabled && `${this._prefixCls}-enabled`,\r\n this._disabled && `${this._prefixCls}-disabled`,\r\n this._isOpen && `${this._prefixCls}-open`,\r\n this._showSearch && `${this._prefixCls}-show-search`,\r\n this._size && `${this._prefixCls}-${this._size}`\r\n ].filter(item => {\r\n return !!item;\r\n });\r\n this._classList.forEach(_className => {\r\n this._renderer.addClass(this._el, _className);\r\n });\r\n this._selectionClassMap = {\r\n [this._selectionPrefixCls]: true,\r\n [`${this._selectionPrefixCls}--single`]: !this.Multiple,\r\n [`${this._selectionPrefixCls}--multiple`]: this.Multiple\r\n };\r\n }\r\n\r\n setDropDownClassMap(): void {\r\n this._dropDownClassMap = {\r\n [this._dropDownPrefixCls]: true,\r\n [\"component-select\"]: this._mode === \"combobox\",\r\n [`${this._dropDownPrefixCls}--single`]: !this.Multiple,\r\n [`${this._dropDownPrefixCls}--multiple`]: this.Multiple,\r\n [`${this._dropDownPrefixCls}-placement-bottomLeft`]:\r\n this._dropDownPosition === \"bottom\",\r\n [`${this._dropDownPrefixCls}-placement-topLeft`]:\r\n this._dropDownPosition === \"top\"\r\n };\r\n }\r\n\r\n scrollToActive(): void {\r\n /** wait for dropdown display */ // @ts-ignore\r\n setTimeout(_ => {\r\n if (this._activeFilterOption && this._activeFilterOption.Value) {\r\n const index = this._filterOptions.findIndex(\r\n option => option.Value === this._activeFilterOption.Value\r\n );\r\n try {\r\n const scrollPane = this.dropdownUl.nativeElement.children[\r\n index\r\n ] as HTMLLIElement;\r\n // TODO: scrollIntoViewIfNeeded is not a standard API, why doing so?\r\n /* tslint:disable-next-line:no-any */\r\n (scrollPane as any).scrollIntoViewIfNeeded(false);\r\n } catch (e) {}\r\n }\r\n });\r\n }\r\n\r\n flushComponentState(): void {\r\n this.updateFilterOption();\r\n if (!this.Multiple) {\r\n this.updateSelectedOption(this._value);\r\n } else {\r\n if (this._value) {\r\n this.updateSelectedOption(this._value);\r\n }\r\n }\r\n }\r\n\r\n _setTriggerWidth(): void {\r\n this._triggerWidth = this._getTriggerRect().width;\r\n /** should remove after after https://github.com/angular/material2/pull/8765 merged **/\r\n if (this._cdkOverlay && this._cdkOverlay.overlayRef) {\r\n this._cdkOverlay.overlayRef.updateSize({\r\n width: this._triggerWidth\r\n });\r\n }\r\n }\r\n\r\n _getTriggerRect(): ClientRect {\r\n return this.trigger.nativeElement.getBoundingClientRect();\r\n }\r\n\r\n writeValue(value: string | string[]): void {\r\n this._updateValue(value, false);\r\n }\r\n\r\n registerOnChange(fn: (value: string | string[]) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.Disabled = isDisabled;\r\n }\r\n\r\n dropDownScroll(ul: HTMLUListElement): void {\r\n if (ul && ul.scrollHeight - ul.scrollTop === ul.clientHeight) {\r\n this.ScrollToBottom.emit(true);\r\n }\r\n }\r\n\r\n checkDropDownScroll(): void {\r\n if (\r\n this.dropdownUl &&\r\n this.dropdownUl.nativeElement.scrollHeight ===\r\n this.dropdownUl.nativeElement.clientHeight\r\n ) {\r\n this.ScrollToBottom.emit(true);\r\n }\r\n }\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer2,\r\n private cDRef: ChangeDetectorRef\r\n ) {\r\n this._el = this._elementRef.nativeElement;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (this._value != null) {\r\n this.flushComponentState();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateFilterOption();\r\n this.setClassMap();\r\n this.setDropDownClassMap();\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n if (this._cacheOptions !== this._options) {\r\n /** update filter option after every content check cycle */\r\n this.updateFilterOption();\r\n this._cacheOptions = this._options;\r\n } else {\r\n this.updateFilterOption(false);\r\n }\r\n\r\n if (this.FirstDefault) {\r\n if (!this._value && this._options) {\r\n if (this._options[0] !== undefined && this._options[0].Value) {\r\n this.chooseOption(this._options[0], false);\r\n setTimeout(() => {\r\n this.onChange(this._options[0].Value);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _updateValue(\r\n value: string[] | string,\r\n emitChange: boolean = true\r\n ): void {\r\n if (this._value === value) {\r\n return;\r\n }\r\n if (value == null && this.Multiple) {\r\n this._value = [];\r\n } else {\r\n this._value = value;\r\n }\r\n if (!this.Multiple) {\r\n if (value == null) { // @ts-ignore\r\n this._selectedOption = null;\r\n } else {\r\n this.updateSelectedOption(value);\r\n }\r\n } else {\r\n if (value) {\r\n if (value.length === 0) {\r\n this.clearAllSelectedOption(emitChange);\r\n } else {\r\n this.updateSelectedOption(value, true);\r\n }\r\n } else if (value == null) {\r\n this.clearAllSelectedOption(emitChange);\r\n }\r\n }\r\n }\r\n}\r\n","<div tabindex=\"0\" #trigger cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" [ngClass]=\"_selectionClassMap\"\r\n (keydown.Enter)=\"handleKeyEnterEvent($event)\" (keydown.Backspace)=\"handleKeyBackspaceEvent($event)\"\r\n (keydown.ArrowUp)=\"handleKeyUpEvent($event)\" (keydown.ArrowDown)=\"handleKeyDownEvent($event)\">\r\n\r\n <!-- Увесь селект-->\r\n <div class=\"pg-select-selection__rendered\" *ngIf=\"!ShowSearch\">\r\n <div class=\"pg-select-selection__placeholder\">\r\n <ng-template [ngIf]=\"!_selectedOption\">\r\n {{ PlaceHolder }}\r\n </ng-template>\r\n </div>\r\n <div class=\"pg-select-selection-selected-value\">\r\n {{ _selectedOption?.Label }}\r\n </div>\r\n </div>\r\n <!--Cписок options-->\r\n <div class=\"pg-select-selection__rendered\" *ngIf=\"ShowSearch\">\r\n <div [hidden]=\"_searchText||(!Open&&_selectedOption)||_selectedOptions.size\"\r\n class=\"pg-select-selection__placeholder\">\r\n <ng-template [ngIf]=\"(!_composing)&&_selectedOption\">\r\n {{ _selectedOption.Label }}\r\n </ng-template>\r\n <ng-template [ngIf]=\"(!_composing)&&(!_selectedOption)\">\r\n {{ PlaceHolder }}\r\n </ng-template>\r\n </div>\r\n\r\n\r\n <!--Мультиселект-->\r\n <ul *ngIf=\"Multiple\"> \r\n <li *ngFor=\"let option of _selectedOptions\" [@tagAnimation] [attr.title]=\"option?.Label || option?.Value\"\r\n class=\"pg-select-selection__choice\" style=\"-webkit-user-select: none;\">\r\n <span class=\"pg-select-selection__choice__remove\" (click)=\"unSelectMultipleOption(option,$event)\"></span>\r\n <div class=\"pg-select-selection__choice__content\">{{ option?.Label }}</div>\r\n </li>\r\n <li class=\"pg-select-search pg-select-search--inline\">\r\n <div class=\"pg-select-search__field__wrap\">\r\n <input class=\"pg-select-search__field\" (compositionstart)=\"compositionStart()\"\r\n (compositionend)=\"compositionEnd();updateWidth(searchInput,_searchText);\" [(ngModel)]=\"_searchText\"\r\n (ngModelChange)=\"updateFilterOption();onSearchChange($event);\"\r\n (keydown)=\"updateWidth(searchInput,_searchText)\" (input)=\"updateWidth(searchInput,_searchText)\"\r\n (blur)=\"onTouched()\" #searchInput>\r\n <span class=\"pg-select-search__field__mirror\"></span></div>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"!Multiple\" class=\"pg-select-selection-selected-value\" [hidden]=\"!(_selectedOption?.Label)||Open\">\r\n {{ _selectedOption?.Label }}\r\n </div>\r\n <div *ngIf=\"!Multiple\" [hidden]=\"!Open\" class=\"pg-select-search pg-select-search--inline\">\r\n <div class=\"pg-select-search__field__wrap\">\r\n <input class=\"pg-select-search__field\" (blur)=\"onTouched()\" (compositionstart)=\"compositionStart()\"\r\n (compositionend)=\"compositionEnd()\" [(ngModel)]=\"_searchText\"\r\n (ngModelChange)=\"updateFilterOption();onSearchChange($event);\" #searchInput>\r\n <span class=\"pg-select-search__field__mirror\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n <span (click)=\"onTouched();clearSelect($event)\" class=\"pg-select-selection__clear\" style=\"-webkit-user-select: none;\"\r\n *ngIf=\"_selectedOption?.Label&&AllowClear&&!Multiple\">\r\n </span>\r\n <span class=\"pg-select-arrow\"><b></b></span>\r\n</div>\r\n<ng-template cdkConnectedOverlay cdkConnectedOverlayHasBackdrop [cdkConnectedOverlayOrigin]=\"origin\"\r\n (backdropClick)=\"closeDropDown()\" (detach)=\"closeDropDown();\" (positionChange)=\"onPositionChange($event)\"\r\n [cdkConnectedOverlayWidth]=\"_triggerWidth\" [cdkConnectedOverlayOpen]=\"_isOpen\">\r\n <div [ngClass]=\"_dropDownClassMap\" [@dropDownAnimation]=\"_dropDownPosition\">\r\n <div style=\"overflow: auto;\">\r\n <ul class=\"pg-select-dropdown-menu pg-select-dropdown-menu-vertical pg-select-dropdown-menu-root\" #dropdownUl\r\n (scroll)=\"dropDownScroll(dropdownUl)\">\r\n <li *ngFor=\"let option of _filterOptions\" [class.pg-select-dropdown-menu-item-disabled]=\"option.Disabled\"\r\n [class.pg-select-dropdown-menu-item-active]=\"option.Value == _activeFilterOption?.Value\"\r\n [class.pg-select-dropdown-menu-item-selected]=\"(option.Value==(_selectedOption?.Value))||(isInSet(_selectedOptions,option))\"\r\n class=\"pg-select-dropdown-menu-item\" (click)=\"clickOption(option,$event)\">\r\n <ng-template *ngIf=\"option.OptionTemplate\" [ngTemplateOutlet]=\"option.OptionTemplate\">\r\n </ng-template>\r\n <ng-template [ngIf]=\"!option.OptionTemplate\">\r\n {{ option.Label }}\r\n </ng-template>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n</ng-template>","import {\r\n\tComponent,\r\n\tContentChild,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tViewEncapsulation\r\n} from \"@angular/core\";\r\n\r\n//import { toBoolean } from \"@shared/utils/convert\";\r\nimport { MefDevSelectComponent } from \"./select.component\";\r\nimport { toBoolean } from \"./../util/convert\";\r\n\r\n\r\n/**\r\n * @skipTemplateDoc true\r\n * Component for representing an option in a dropdown list.\r\n *\r\n *```\r\n * <mefdev-select>\r\n * <mefdev-option Value=\"1\" Label=\"Option 1\"></mefdev-option>\r\n * <mefdev-option Value=\"2\" Label=\"Option 2\"></mefdev-option>\r\n * <mefdev-option Value=\"3\" Label=\"Option 3\"></mefdev-option>\r\n * </mefdev-select>\r\n *```\r\n *\r\n */\r\n@Component({\r\n\tselector: \"mefdev-option\",\r\n\tencapsulation: ViewEncapsulation.None,\r\n\ttemplateUrl: \"./option.component.html\",\r\n\tstyleUrls: []\r\n})\r\nexport class MefDevOptionComponent implements OnDestroy, OnInit {\r\n\tprivate _disabled = false;\r\n\r\n\t_value: string;\r\n\t_label: string;\r\n\r\n\t/**\r\n \t* Template for the content of the option.\r\n \t*/\r\n\t@ContentChild(\"OptionTemplate\") OptionTemplate: any;\r\n\r\n\t /**\r\n * The value of the option.\r\n */\r\n\t@Input()\r\n\tset Value(value: string) {\r\n\t\tif (this._value === value) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._value = value;\r\n\t}\r\n\r\n\tget Value(): string {\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t/**\r\n * The label of the option.\r\n */\r\n\t@Input()\r\n\tset Label(value: string) {\r\n\t\tif (this._label === value) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._label = value;\r\n\t}\r\n\r\n\tget Label(): string {\r\n\t\treturn this._label;\r\n\t}\r\n\r\n\t/**\r\n * Indicates whether the option is disabled.\r\n */\r\n\t@Input()\r\n\tset Disabled(value: boolean) {\r\n\t\tthis._disabled = toBoolean(value);\r\n\t}\r\n\r\n\tget Disabled(): boolean {\r\n\t\treturn this._disabled;\r\n\t}\r\n\r\n\tconstructor(private _Select: MefDevSelectComponent) {}\r\n\r\n\t/**\r\n * Initialization lifecycle hook.\r\n * Adds the option to the dropdown list.\r\n */\r\n\tngOnInit(): void {\r\n\t\tthis._Select.addOption(this);\r\n\t}\r\n\r\n\t/**\r\n * Destruction lifecycle hook.\r\n * Removes the option from the dropdown list.\r\n */\r\n\tngOnDestroy(): void {\r\n\t\tthis._Select.removeOption(this);\r\n\t}\r\n}\r\n","<ng-content></ng-content>","import { Component, ViewChild, ElementRef, HostListener, OnDestroy, Input, OnChanges, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n\r\n/**\r\n * Datepicker Component for selecting dates.\r\n *\r\n * This component allows users to pick a date from a calendar interface.\r\n * It supports various configuration options such as language, date format, and date range.\r\n *\r\n * @example\r\n * <mefdev-datepicker\r\n * [lang]=\"'uk'\"\r\n * [dateFormat]=\"'dd/MM/yyyy'\"\r\n * [range]=\"{startYear: 1900, toYear: 300}\"\r\n * [disabled]=\"false\"\r\n * (dateChanged)=\"onDateChanged($event)\"\r\n * [topOffset]=\"'20'\"\r\n * [leftOffset]=\"'10'\">\r\n * </mefdev-datepicker>\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/utils/datepicker</example-url>\r\n*/\r\n\r\n@Component({\r\n selector: 'mefdev-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss']\r\n})\r\n\r\nexport class DatepickerComponent implements OnChanges, OnInit {\r\n\r\n/**\r\n * Flag to determine if the calendar is open or closed.\r\n * Default value: false (closed).\r\n*/\r\nisCalendarOpen: boolean = false; \r\n\r\n/**\r\n * Flag to determine if the component is in editing mode.\r\n * Default value: false (not in editing mode).\r\n*/\r\nisEditing: boolean = false; \r\n\r\n/**\r\n * The currently selected date.\r\n * Default value: Today's date.\r\n*/\r\nselectedDate: Date = new Date(); \r\n\r\n /**\r\n * The formatted date for display in the input.\r\n * Default value: Formatted representation of the selected date.\r\n*/\r\nformattedDate: any ; \r\n\r\n /**\r\n * Track the edited date separately when in editing mode.\r\n * Default value: An empty string.\r\n*/\r\neditedDate: string = ''; \r\n\r\n/**\r\n * Flag to determine if the month dropdown is open or closed.\r\n * Default value: true (open).\r\n*/\r\nisMonthDropdownOpen: boolean = true; \r\n\r\n/**\r\n * Flag to determine if the year dropdown is open or closed.\r\n * Default value: true (open).\r\n*/\r\nisYearDropdownOpen: boolean = true; \r\n\r\n/**\r\n * The selected month (0-11).\r\n * Default value: The month of the selected date.\r\n*/\r\nselectedDateMonth: number = this.selectedDate.getMonth(); \r\n\r\n/**\r\n * The selected year.\r\n * Default value: The year of the selected date.\r\n*/\r\nselectedDateYear: number = this.selectedDate.getFullYear(); \r\n\r\n /**\r\n * An array of years for the year dropdown.\r\n * Default value: An array of years within the specified range.\r\n*/\r\nyears: number[] \r\n\r\n/**\r\n * The language/locale for the datepicker.\r\n * Default value: 'en' (English).\r\n * @example\r\n * <mefdev-datepicker\r\n * [lang] = \"'uk'\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() lang: string = 'en'; \r\n\r\n/**\r\n * The date format for displaying the selected date.\r\n * Default value: 'EEE MMM dd yyyy'.\r\n * @example\r\n * <mefdev-datepicker\r\n * [dateFormat]=\"'dd/MM/yyyy'\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() dateFormat: string = 'EEE MMM dd yyyy'; \r\n\r\n/**\r\n * The range of years available in the year dropdown.\r\n * Default value: { startYear: 1900, toYear: 300 }.\r\n * @example\r\n * <mefdev-datepicker\r\n * [range]=\"{startYear: 1900, toYear: 300}\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input('range') yearsRange:{startYear:number, toYear:number} = {startYear:1900, toYear:300}; \r\n\r\n/**\r\n * Whether the datepicker is disabled or not.\r\n * Default value: false (enabled).\r\n * @example\r\n * <mefdev-datepicker\r\n * [disabled]=\"false\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() disabled: boolean = false; \r\n\r\n/**\r\n * The top offset for positioning the datepicker.\r\n * Default value: '20'.\r\n * @example\r\n * <mefdev-datepicker\r\n * [topOffset]=\"'20'\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() topOffset: string = '20';\r\n\r\n/**\r\n * The left offset for positioning the datepicker.\r\n * Default value: '10'.\r\n * @example\r\n * <mefdev-datepicker\r\n * [leftOffset]=\"'10'\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Input() leftOffset: string = '10'; //Default value\r\n\r\n/**\r\n * Event emitted when the selected date in the datepicker changes.\r\n * It emits a `Date` object representing the selected date.\r\n * @example\r\n * <mefdev-datepicker\r\n * (dateChanged)=\"onDateChanged($event)\">\r\n * </mefdev-datepicker>\r\n*/\r\n@Output() dateChanged: EventEmitter<Date> = new EventEmitter<Date>();\r\n\r\n/**\r\n * Regular expression to validate user input for date in the format \"dd/MM/yyyy\".\r\n * - The day (dd) should be between 01 and 31.\r\n * - The month (MM) should be between 01 and 12.\r\n * - The year (yyyy) should be a 4-digit number.\r\n*/\r\n private dateRegExp: RegExp = /^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n\r\n/**\r\n * The string entered by the user for date input.\r\n * This variable stores the user's input as they type in the date field.\r\n*/\r\n userInput: string = '';\r\n \r\n/**\r\n * Host listener for document click events to handle calendar interaction.\r\n * This function checks if a click event occurred within the calendar or input elements.\r\n * - If the click occurred within the calendar, no action is taken.\r\n * - If the click occurred within the input element and the component is not in editing mode,\r\n * it opens the calendar.\r\n * - If the click occurred outside the calendar and input, it closes the calendar.\r\n * @param event The MouseEvent object representing the click event.\r\n*/\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const targetElement = event.target as HTMLElement;\r\n const calendarElement = this.elementRef.nativeElement.querySelector('.calendar');\r\n const inputElement = this.elementRef.nativeElement.querySelector('input');\r\n\r\n if (calendarElement && calendarElement.contains(targetElement)) {\r\n // Клік відбувся на елементі календаря, нічого не робимо\r\n return;\r\n }\r\n\r\n if (inputElement && inputElement.contains(targetElement) && !this.isEditing) {\r\n // Клік відбувся на елементі input, відкриваємо календар\r\n this.isCalendarOpen = true;\r\n } else {\r\n // Клік відбувся поза календарем та input, закриваємо календар\r\n this.isCalendarOpen = false;\r\n }\r\n }\r\n\r\n/**\r\n * Constructor for the DatepickerComponent class.\r\n * @param datePipe A service for formatting and parsing dates.\r\n * @param elementRef A reference to the element on which this component is attached.\r\n * It is used to access DOM elements.\r\n*/\r\n constructor(private datePipe: DatePipe, private elementRef: ElementRef) {\r\n this.updateInputValue()\r\n }\r\n \r\n/**\r\n * Lifecycle hook called after the component is initialized.\r\n * It initializes the years for the year select dropdown.\r\n*/\r\n ngOnInit(){\r\n this.initializeYears();\r\n }\r\n/**\r\n * Lifecycle hook called whenever the input properties of the component change.\r\n * It updates the input value.\r\n*/\r\n ngOnChanges() {\r\n this.updateInputValue();\r\n }\r\n\r\n/**\r\n * An array of month names based on the selected language.\r\n * It provides localized month names for display in the datepicker.\r\n*/\r\n private get months(){\r\n return this.getMonthList(this.lang);\r\n } \r\n\r\n/**\r\n * An array of weekday names based on the selected language.\r\n * It provides localized weekday names for display in the datepicker.\r\n*/\r\n private get weekdays() {\r\n return this.getWeekdayList(this.lang);\r\n }\r\n\r\n/**\r\n * Initialize the list of years to be displayed in the year dropdown.\r\n * This method populates the 'years' array with a range of years based on the provided 'yearsRange' configuration.\r\n * @example\r\n * ```\r\n * // Assuming 'yearsRange' is { startYear: 1900, toYear: 300 }\r\n * // After calling initializeYears(), 'years' might contain [1900, 1901, ..., 300]\r\n * this.initializeYears();\r\n * ```\r\n*/\r\n private initializeYears() {\r\n this.years = Array.from({ length: this.yearsRange.toYear }, (_, index) => index + this.yearsRange.startYear);\r\n }\r\n\r\n/**\r\n * Toggle the editing mode for the date input. When enabled, the user can edit the date directly in the input field.\r\n * This method sets the 'isEditing' flag to true and stores the current formatted date for editing.\r\n*/\r\n toggleEdit() {\r\n this.isEditing = true;\r\n this.editedDate = this.formatSelectedDate(); // Store the current formatted date for editing\r\n }\r\n\r\n/**\r\n * Get a list of month names in the specified language and format.\r\n * @param locales - An optional parameter specifying the locale or locales to use for formatting.\r\n * @param format - The format for month names, either \"long\" (default) or \"short\".\r\n * @returns An array of month names based on the provided format and locale.\r\n * ```\r\n * // Get a list of month names in the default language and long format\r\n * const months = this.getMonthList(this.lang);\r\n * ```\r\n*/\r\n private getMonthList( locales?: string | string[], format: \"long\" | \"short\" = \"long\"): string[] { \r\n const year = new Date().getFullYear();\r\n const monthList = [...Array(12).keys()];\r\n const formatter = new Intl.DateTimeFormat(locales, { month: format });\r\n const getMonthName = (monthIndex: number) => formatter.format(new Date(year, monthIndex));\r\n return monthList.map(getMonthName);\r\n }\r\n \r\n/**\r\n * Get a list of weekday names in the specified language and format.\r\n * @param locales - An optional parameter specifying the locale or locales to use for formatting.\r\n * @param format - The format for weekday names, either \"short\" (default) or \"long\".\r\n * @returns An array of weekday names based on the provided format and locale.\r\n * ```\r\n * // Get a list of weekday names in the default language and short format\r\n * const weekdays = this.getWeekdayList();\r\n * ```\r\n*/\r\n private getWeekdayList(locales?: string | string[], format: \"short\" | \"long\" = \"short\"): string[] {\r\n const weekdays = [...Array(7).keys()];\r\n const mondayIndex = weekdays.indexOf(0);\r\n weekdays.splice(mondayIndex, 1); \r\n weekdays.push(0); \r\n const formatter = new Intl.DateTimeFormat(locales, { weekday: format }); \r\n const getWeekdayName = (weekdayIndex: number) => {\r\n return formatter.format(new Date(2023, 9, weekdayIndex + 1)); \r\n };\r\n return weekdays.map(getWeekdayName);\r\n }\r\n \r\n \r\n/**\r\n * Toggle the visibility of the calendar component. When called, this method changes the 'isCalendarOpen' flag\r\n * to show or hide the calendar interface.\r\n * ```\r\n * // Toggle the visibility of the calendar\r\n * this.toggleCalendar();\r\n * ```\r\n*/\r\n private toggleCalendar() {\r\n this.isCalendarOpen = !this.isCalendarOpen\r\n }\r\n\r\n/**\r\n * Save the edited date input by the user, provided it matches the specified date format.\r\n * This method checks if the entered date is in a valid format, disables the editing mode, and applies\r\n * the edited date to the 'selectedDate'. It then reformats the selected date and closes the calendar.\r\n * ```\r\n * // Save the edited date and update the selected date\r\n * this.saveEditedDate();\r\n * ```\r\n*/\r\n private saveEditedDate() {\r\n if (this.isDateValid(this.editedDate)) {\r\n this.isEditing = false; \r\n const [day, month, year] = this.editedDate.split('/');\r\n this.selectedDate = new Date(+year, +month - 1, +day);\r\n this.formatDate(); \r\n this.toggleCalendar(); \r\n } \r\n }\r\n\r\n/**\r\n * Handle user input in the editable input field for date editing. This method captures the input value\r\n * and stores it in the 'editedDate' variable. If the input matches the valid date format, it updates\r\n * 'selectedDateMonth' and 'selectedDateYear' accordingly.\r\n * @param event - The input event containing the user's input.\r\n * ```\r\n * // Handle user input in the editable input field\r\n * this.onDateInput(event);\r\n * ```\r\n*/\r\n private onDateInput(event: any) {\r\n const inputDate: string = event.target.value;\r\n if (this.isDateValid(inputDate)) {\r\n this.editedDate = inputDate;\r\n const parsedDate = inputDate.split('/');\r\n this.selectedDateMonth = +parsedDate[1] - 1;\r\n this.selectedDateYear = +parsedDate[2];\r\n }\r\n }\r\n\r\n/**\r\n * Toggle the visibility of the month dropdown in the calendar interface.\r\n * This method is used to open or close the dropdown for selecting months.\r\n * @param event - The event triggering the toggle action (e.g., a click event).\r\n * ```\r\n * // Toggle the visibility of the month dropdown\r\n * this.toggleMonthDropdown(event);\r\n * ```\r\n*/\r\n private toggleMonthDropdown(event: Event) {\r\n this.isMonthDropdownOpen = !this.isMonthDropdownOpen;\r\n }\r\n\r\n/**\r\n * Toggle the visibility of the year dropdown in the calendar interface.\r\n * This method is used to open or close the dropdown for selecting years.\r\n * @param event - The event triggering the toggle action (e.g., a click event).\r\n * ```\r\n * // Toggle the visibility of the year dropdown\r\n * this.toggleYearDropdown(event);\r\n * ```\r\n*/\r\n private toggleYearDropdown(event: Event) {\r\n this.isYearDropdownOpen = !this.isYearDropdownOpen;\r\n }\r\n\r\n/**\r\n * Handle the change of the selected month in the calendar interface.\r\n * This method updates the input value, sets the selected date to the first day of the chosen month,\r\n * and recalculates the calendar display accordingly.\r\n * ```\r\n * // Handle the change of the selected month\r\n * this.onMonthChange();\r\n * ```\r\n*/\r\n private onMonthChange() {\r\n this.updateInputValue();\r\n this.selectedDate = new Date(this.selectedDateYear, this.selectedDateMonth, 1);\r\n this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Handle the change of the selected year in the calendar interface.\r\n * This method updates the input value, sets the selected date to the first day of the chosen year,\r\n * reformats the selected date, and recalculates the calendar display.\r\n * ```\r\n * // Handle the change of the selected year\r\n * this.onYearChange();\r\n * ```\r\n*/\r\n private onYearChange() {\r\n this.updateInputValue();\r\n this.selectedDate = new Date(this.selectedDateYear, this.selectedDateMonth, 1);\r\n this.formatDate();\r\n this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Select a date in the calendar interface and perform necessary updates.\r\n * This method sets the selected date, formats it, closes the calendar, and emits a dateChanged event.\r\n * It also updates the selected month and year dropdown values.\r\n * @param date - The date to be selected in the calendar.\r\n*/\r\n selectDate(date: Date) {\r\n this.selectedDate = date;\r\n this.formatDate();\r\n this.isCalendarOpen = false;\r\n this.dateChanged.next(this.selectedDate);\r\n this.selectedDateMonth = this.selectedDate.getMonth();\r\n this.selectedDateYear = this.selectedDate.getFullYear();\r\n }\r\n\r\n/**\r\n * Format the selected date based on the chosen date format and language.\r\n * This method uses the Angular DatePipe to format the selected date and updates the formattedDate variable.\r\n * ```\r\n * // Format the selected date\r\n * this.formatDate();\r\n * ```\r\n*/\r\n private formatDate() {\r\n this.formattedDate = this.datePipe.transform(this.selectedDate, this.dateFormat) || '';\r\n }\r\n\r\n/**\r\n * Format the selected date based on the chosen date format, language, and locale.\r\n * This method uses the Angular DatePipe to format the selected date with the specified language and updates the formatted date as a string.\r\n * @returns A formatted date string.\r\n * ```\r\n * // Format the selected date with language\r\n * const formatted = this.formatSelectedDate();\r\n * ```\r\n*/\r\n private formatSelectedDate(): string {\r\n return this.datePipe.transform(this.selectedDate, this.dateFormat, this.lang) || '';\r\n }\r\n\r\n/**\r\n * Update the input value displayed in the calendar interface.\r\n * This method updates the input value to either the edited date or the formatted selected date,\r\n * depending on whether the user is in edit mode or not.\r\n * ```\r\n * // Update the input value\r\n * this.updateInputValue();\r\n * ```\r\n*/\r\n private updateInputValue() {\r\n this.formattedDate = this.isEditing ? this.editedDate : this.formatSelectedDate();\r\n }\r\n\r\n/**\r\n * Get an array of arrays representing the days of the current month.\r\n * Each sub-array contains the day data for a week, and each day data object includes the date and whether it belongs to the current month.\r\n * @returns An array of arrays representing the days of the current month.\r\n * ```\r\n * // Get an array of arrays representing the days of the current month\r\n * const calendar = this.calendarDays;\r\n * ```\r\n*/\r\n private get calendarDays() {\r\n return this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Get the date of the previous month to display in empty cells of the current month.\r\n * This method returns the date of the previous month if the provided date is not in the current month.\r\n * If the provided date is in the current month, it returns the date's day as a string.\r\n * @param date - The date to evaluate.\r\n * @returns The date of the previous month or a day string.\r\n * ```\r\n * // Get the previous month's date to display in empty cells\r\n * const previousMonthDate = this.getPreviousMonthDate(new Date(2023, 8, 1));\r\n * ```\r\n*/\r\n private getPreviousMonthDate(date: Date): any {\r\n if (!date) {\r\n return '';\r\n }\r\n const currentDate = new Date();\r\n if (date.getMonth() === currentDate.getMonth() && date.getFullYear() === currentDate.getFullYear()) {\r\n return date.getDate().toString();\r\n } else {\r\n return this.datePipe.transform(date, 'dd');\r\n }\r\n }\r\n\r\n/**\r\n * Navigate to the previous month in the calendar interface.\r\n * This method updates the selectedDate, formats it, and recalculates the first day of the calendar.\r\n * ```\r\n * // Navigate to the previous month\r\n * this.getPreviousMonth();\r\n * ```\r\n*/\r\n private getPreviousMonth() {\r\n const currentMonth = this.selectedDate.getMonth();\r\n this.selectedDate = new Date(this.selectedDate.getFullYear(), currentMonth - 1, 1);\r\n this.formatDate();\r\n this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Navigate to the next month in the calendar interface.\r\n * This method updates the selectedDate, formats it, and recalculates the first day of the calendar.\r\n * ```\r\n * // Navigate to the next month\r\n * this.getNextMonth();\r\n * ```\r\n*/\r\n private getNextMonth() {\r\n const currentMonth = this.selectedDate.getMonth();\r\n this.selectedDate = new Date(this.selectedDate.getFullYear(), currentMonth + 1, 1);\r\n this.formatDate();\r\n this.calculateFirstDayOfCalendar();\r\n }\r\n\r\n/**\r\n * Get the number of days in a given month of a specific year.\r\n * @param year - The year for which you want to determine the number of days.\r\n * @param month - The month (0-based index) for which you want to determine the number of days.\r\n * @returns The number of days in the specified month of the given year.\r\n*/\r\n private daysInMonth(year: number, month: number): number {\r\n return new Date(year, month + 1, 0).getDate();\r\n }\r\n\r\n/**\r\n * Calculate the structure of days in a month for the calendar display.\r\n * This method generates a matrix of day data objects representing the days in the calendar.\r\n * Each day data object contains the date and whether it belongs to the current month.\r\n * @returns A matrix of day data objects for the calendar display.\r\n*/\r\n private calculateFirstDayOfCalendar() {\r\n const year = this.selectedDate.getFullYear();\r\n const month = this.selectedDate.getMonth();\r\n const firstDayOfMonth = new Date(year, month, 1);\r\n const firstWeekday = firstDayOfMonth.getDay();\r\n const startDay = firstWeekday === 0 ? -5 : 2 - firstWeekday;\r\n const calendarDays = [];\r\n let currentDay = startDay;\r\n for (let i = 0; i < 6; i++) {\r\n const week = [];\r\n for (let j = 0; j < 7; j++) {\r\n const day = new Date(year, month, currentDay);\r\n const dayData = {\r\n date: day,\r\n isCurrentMonth: currentDay >= 1 && currentDay <= this.daysInMonth(year, month),\r\n };\r\n week.push(dayData);\r\n currentDay++;\r\n }\r\n calendarDays.push(week);\r\n }\r\n return calendarDays;\r\n }\r\n \r\n/**\r\n * Check if a given date is the currently selected date in the calendar.\r\n * @param date - The date to check.\r\n * @returns `true` if the provided date matches the selected date, otherwise `false`.\r\n * ```\r\n * // Check if a date is selected\r\n * const isSelected = this.isDateSelected(someDate);\r\n * ```\r\n*/\r\n private isDateSelected(date: Date) {\r\n return date.toDateString() === this.selectedDate.toDateString();\r\n }\r\n\r\n/**\r\n * Check if a date string is valid based on the specified date format.\r\n * @param inputDate - The date string to validate.\r\n * @returns `true` if the input date string is valid, otherwise `false`.\r\n * ```\r\n * // Check if a date string is valid\r\n * const isValidDate = this.isDateValid('05/25/2023');\r\n * ```\r\n*/\r\n private isDateValid(inputDate: string): boolean {\r\n return this.dateRegExp.test(inputDate);\r\n }\r\n \r\n/**\r\n * Check if a given date is today's date.\r\n * @param date - The date to check.\r\n * @returns `true` if the provided date is today's date, otherwise `false`.\r\n * ```\r\n * // Check if a date is today's date\r\n * const isToday = this.isDateToday(someDate);\r\n * ```\r\n*/\r\n private isDateToday(date: Date) {\r\n const today = new Date();\r\n return date.toDateString() === today.toDateString();\r\n }\r\n}","<div class=\"datepicker-container\"\r\n[class.disabled]=\"disabled\"\r\n>\r\n\r\n <!-- Input, save & edit buttons -->\r\n <div class=\"input-container\">\r\n\r\n <div *ngIf=\"!isEditing\">\r\n\r\n <input\r\n type=\"text\"\r\n (click)=\"toggleCalendar()\"\r\n [value]=\"formattedDate\"\r\n [readOnly]=\"true\"\r\n [disabled]=\"isEditing\"\r\n >\r\n </div>\r\n <!-- Edit -->\r\n <i class=\"fa fa-pencil-square-o edit-button\" aria-hidden=\"true\" (click)=\"toggleEdit()\"></i> \r\n\r\n <div *ngIf=\"isEditing\">\r\n <input\r\n type=\"text\"\r\n [value]=\"editedDate\"\r\n (input)=\"onDateInput($event)\"\r\n class=\"border-3\"\r\n (click)=\"toggleCalendar()\"\r\n >\r\n <i class=\"fa fa-floppy-o edit-button\" (click)=\"saveEditedDate()\" aria-hidden=\"true\"></i>\r\n </div> \r\n </div>\r\n\r\n<!-- Calendar(Dropdowns, dates) -->\r\n <div *ngIf=\"isCalendarOpen\" class=\"calendar\" #calendarContainer \r\n [style.top]=\"topOffset\"\r\n [style.left]=\"leftOffset\">\r\n <div class=\"calendar-header\">\r\n <div class=\"monthButtonContainer\">\r\n <!-- Month dropdown -->\r\n <ng-container *ngIf=\"isMonthDropdownOpen; else monthLabel\">\r\n <mefdev-select \r\n class=\"monthDropdown\"\r\n [(ngModel)]=\"selectedDateMonth\" \r\n (ngModelChange)=\"onMonthChange()\"\r\n [PlaceHolder]=\"'month'\"\r\n >\r\n <mefdev-option \r\n *ngFor=\"let month of months; let i = index\" \r\n [Value]=\"i\"\r\n [Label] = \"month\" \r\n \r\n >{{ month }}</mefdev-option>\r\n </mefdev-select>\r\n </ng-container>\r\n <ng-template #monthLabel>\r\n <span (click)=\"toggleMonthDropdown($event)\"></span>\r\n </ng-template>\r\n\r\n <!-- Year dropdown -->\r\n <ng-container *ngIf=\"isYearDropdownOpen; else yearLabel\">\r\n <mefdev-select \r\n class=\"yearDropdown\" \r\n [(ngModel)]=\"selectedDateYear\" \r\n (ngModelChange)=\"onYearChange()\"\r\n [PlaceHolder]=\"'year'\"\r\n >\r\n <mefdev-option \r\n *ngFor=\"let year of years\" \r\n [Label] = \"year\" \r\n [Value]=\"year\" \r\n >{{year}}</mefdev-option>\r\n </mefdev-select>\r\n </ng-container>\r\n <ng-template #yearLabel>\r\n <span (click)=\"toggleYearDropdown($event)\">{{ selectedDateYear }}</span>\r\n </ng-template>\r\n </div>\r\n <!-- Calendar exit button -->\r\n <div>\r\n <i class=\"fa fa-times toggleCalendarButton\" (click)=\"toggleCalendar()\" aria-hidden=\"true\"></i>\r\n </div>\r\n </div>\r\n \r\n <div class=\"calendar-body\">\r\n <table>\r\n <tr>\r\n <th class=\"align-items-center\" *ngFor=\"let weekday of weekdays\">{{ weekday }}</th>\r\n </tr>\r\n <tr *ngFor=\"let week of calendarDays\">\r\n <td *ngFor=\"let dayData of week\" \r\n (click)=\"selectDate(dayData.date)\"\r\n [ngClass]=\"{ 'selected': isDateSelected(dayData.date), 'prev-month': !dayData.isCurrentMonth }\">\r\n\r\n <span class=\"date\" \r\n [class.prev-month]=\"!dayData.isCurrentMonth\"\r\n >\r\n {{ dayData.date.getDate() }}\r\n </span>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MefDevOptionComponent } from \"./option.component\";\r\nimport { OptionPipe } from \"./option.pipe\";\r\nimport { MefDevSelectComponent } from \"./select.component\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule, OverlayModule],\r\n declarations: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent],\r\n exports: [OptionPipe, MefDevOptionComponent, MefDevSelectComponent]\r\n})\r\nexport class MefDevSelectModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { DatepickerComponent } from './datepicker/datepicker.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MefDevSelectModule } from '../../../pg-components/select';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [DatepickerComponent],\r\n exports: [DatepickerComponent],\r\n imports: [CommonModule, FormsModule, DatePipe, MefDevSelectModule],\r\n providers:[DatePipe]\r\n})\r\nexport class MefDevDatepickerModule { }\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n/**\r\n * Component representing a progress bar.\r\n * \r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-progress type=\"linear\" color=\"blue\" [thick]=\"true\"></mefdev-progress>\r\n * <mefdev-progress type=\"circle\" color=\"red\" [indeterminate]=\"true\"></mefdev-progress>\r\n * ```\r\n */\r\n@Component({\r\n selector: \"mefdev-progress\",\r\n templateUrl: \"./progress.component.html\"\r\n})\r\nexport class MefDevProgressComponent {\r\n _value: number;\r\n _value2: any;\r\n\r\n /**\r\n * The type of progress bar.\r\n * Possible values: \"linear\" | \"circle\".\r\n * Default value: \"linear\".\r\n */\r\n @Input() type: string;\r\n\r\n /**\r\n * The color of the progress bar.\r\n * Possible values: any valid CSS color value.\r\n * Default value: none.\r\n */\r\n\r\n @Input() color: string;\r\n\r\n /**\r\n * Determines whether the progress bar is thick.\r\n * Default value: false.\r\n */\r\n @Input() thick: boolean;\r\n\r\n /**\r\n * Determines whether the progress bar is indeterminate.\r\n * Default value: false.\r\n */\r\n @Input() indeterminate: boolean;\r\n\r\n\r\n /**\r\n * The value of the progress bar.\r\n * For the \"circle\" type, it should be a number between 0 and 100.\r\n */\r\n @Input() set value(value: number) {\r\n if (this.type == \"circle\") {\r\n this._value = (value / 100) * 360;\r\n if (this.value >= 50) {\r\n this._value2 = true;\r\n }\r\n } else this._value = value;\r\n }\r\n get value() {\r\n return this._value;\r\n }\r\n\r\n /**\r\n * Additional value property.\r\n */\r\n get value2() {\r\n return this._value2;\r\n }\r\n constructor() {}\r\n}\r\n","<div *ngIf=\"type === 'bar'; else circleBlock\">\r\n <div *ngIf=\"indeterminate; else determineBarBlock\">\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar-{{ color }}\" [class.progress-bar-indeterminate]=\"indeterminate\"></div>\r\n </div>\r\n </div>\r\n <ng-template #determineBarBlock>\r\n <div class=\"progress\" [class.progress-small]=\"!thick\">\r\n <div class=\"progress-bar progress-bar-{{ color }}\" [ngStyle]=\"{ width: value + '%' }\"></div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n<ng-template #circleBlock>\r\n <div class=\"progress-circle-{{ color }}\" [class.progress-circle-indeterminate]=\"indeterminate\"\r\n [class.progress-circle]=\"!indeterminate\" [class.progress-circle-thick]=\"thick\">\r\n <div *ngIf=\"indeterminate; else determineBlock\"></div>\r\n <ng-template #determineBlock>\r\n <div class=\"pie\" [ngStyle]=\"_value2 && { clip: 'rect(auto, auto, auto, auto)' }\">\r\n <div class=\"left-side half-circle\" [ngStyle]=\"_value2 && { transform: 'rotate(' + value + 'deg)' }\"></div>\r\n <div class=\"right-side half-circle\" [ngStyle]=\"{\r\n transform:\r\n _value2 === true ? 'rotate(180deg)' : 'rotate(' + value + 'deg)'\r\n }\"></div>\r\n </div>\r\n <div class=\"shadow\"></div>\r\n </ng-template>\r\n </div>\r\n</ng-template>","import {\r\n Component,\r\n Input,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ViewChild,\r\n TemplateRef,\r\n ContentChild,\r\n EventEmitter,\r\n Output\r\n} from \"@angular/core\";\r\n\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from \"@angular/animations\";\r\n\r\n/**\r\n * Component representing a custom card.\r\n * It provides various styling and animation options for the card layout.\r\n *\r\n * Example usage:\r\n * ```\r\n * <pgcard [Title]=\"'Card Title'\" [Type]=\"'default'\" [MinimalHeader]=\"false\" [ProgressType]=\"'circle'\">\r\n * Card content goes here...\r\n * </pgcard>\r\n * ```\r\n */\r\n@Component({\r\n selector: \"pgcard\",\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./card.components.html\",\r\n animations: [\r\n trigger(\"collapseState\", [\r\n state(\r\n \"inactive\",\r\n style({\r\n opacity: \"0\",\r\n height: 0,\r\n paddingBottom: \"0\"\r\n })\r\n ),\r\n state(\r\n \"active\",\r\n style({\r\n opacity: \"1\",\r\n height: \"*\",\r\n paddingBottom: \"*\"\r\n })\r\n ),\r\n transition(\"inactive => active\", animate(\"125ms ease-in\")),\r\n transition(\"active => inactive\", animate(\"125ms ease-out\"))\r\n ]),\r\n trigger(\"fadeAnimation\", [\r\n state(\r\n \"false\",\r\n style({\r\n opacity: \"0\",\r\n visibility: \"hidden\"\r\n })\r\n ),\r\n state(\r\n \"true\",\r\n style({\r\n opacity: \"1\",\r\n visibility: \"visible\"\r\n })\r\n ),\r\n transition(\"false => true\", animate(\"500ms ease-in\")),\r\n transition(\"true => false\", animate(\"500ms ease-out\"))\r\n ])\r\n ]\r\n})\r\nexport class pgCard {\r\n /**\r\n * Indicates whether the card is collapsed or not.\r\n * Default: false\r\n */\r\n _isCollapsed: boolean = false;\r\n\r\n /**\r\n * Indicates whether the card is maximized or not.\r\n * Default: false\r\n */\r\n _isMaximixed: boolean = false;\r\n\r\n /**\r\n * Indicates whether the card is in loading state or not.\r\n * Default: false\r\n */\r\n _isLoading: boolean = false;\r\n\r\n /**\r\n * Indicates whether the card has a minimal header or not.\r\n * Default: false\r\n */\r\n _minimalHeader: boolean = false;\r\n\r\n /**\r\n * The message to be displayed in the card.\r\n */\r\n _message: string = \"\";\r\n\r\n /**\r\n * The type of message to be displayed in the card (e.g., success, danger, warning).\r\n * Default: \"danger\"\r\n */\r\n _messageType: string = \"danger\";\r\n\r\n /**\r\n * Indicates whether the message in the card is visible or not.\r\n * Default: false\r\n */\r\n _messageVisible: boolean = false;\r\n\r\n /**\r\n * The type of progress indicator to be displayed in the card (e.g., circle, bar, none).\r\n * Default: \"circle\"\r\n */\r\n _progressType: string = \"circle\";\r\n\r\n /**\r\n * The color of the progress indicator in the card.\r\n */\r\n _progressColor: string = \"\";\r\n\r\n /**\r\n * Indicates whether the tools (e.g., refresh, close, maximize) are shown in the card header or not.\r\n * Default: true\r\n */\r\n _showTools: boolean = true;\r\n\r\n \r\n _close_card: boolean = false;\r\n _refresh: boolean = false;\r\n _refreshColor: string = \"light\";\r\n\r\n /**\r\n * Indicates whether the close button in the card is visible or not.\r\n * Default: true\r\n */\r\n _close: boolean = true;\r\n\r\n /**\r\n * Indicates whether the toggle button in the card is visible or not.\r\n * Default: true\r\n */\r\n _toggle: boolean = true;\r\n\r\n /**\r\n * Indicates whether the maximize button in the card is visible or not.\r\n * Default: true\r\n */\r\n _maximize: boolean = true;\r\n\r\n /**\r\n * The timeout value in milliseconds for the loading state of the card.\r\n * If set to 0, the loading state will not automatically turn off.\r\n * Default: 0\r\n */\r\n _timeout: number = 0;\r\n\r\n /**\r\n * The title text to be displayed in the card header.\r\n */\r\n _titleText: string = \"\";\r\n\r\n /**\r\n * The border style of the card.\r\n */\r\n _card_border_style: string = \"\";\r\n\r\n /**\r\n * The type of the card (e.g., default, bordered, minimal).\r\n * Default: \"default\"\r\n */\r\n _type: string = \"default\";\r\n\r\n\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card header.\r\n */\r\n _extraHeaderClass = \"\";\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card body.\r\n */\r\n _extraBodyClass = \"\";\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card.\r\n */\r\n _additionalClasses = \"\";\r\n\r\n /**\r\n * ViewChild reference to the host content element.\r\n */\r\n @ViewChild(\"hostContent\") _hostContent: ElementRef;\r\n /**\r\n * ViewChild reference to the minimal circle loading element.\r\n */\r\n @ViewChild(\"minimalCircleLoading\") minimalCircleLoading: ElementRef;\r\n /**\r\n * ViewChild reference to the minimal circle loading trigger element.\r\n */\r\n @ViewChild(\"minimalCircleLoadingTrigger\")\r\n minimalCircleLoadingTrigger: ElementRef;\r\n /**\r\n * ContentChild reference to the CardTitle template.\r\n */\r\n @ContentChild(\"CardTitle\") CardTitle: TemplateRef<void>;\r\n /**\r\n * ContentChild reference to the CardExtraControls template.\r\n */\r\n @ContentChild(\"CardExtraControls\") CardExtraControls: TemplateRef<void>;\r\n\r\n\r\n // Input properties\r\n\r\n /**\r\n * The title text to be displayed in the card header.\r\n */\r\n @Input()\r\n set Title(value: string) {\r\n this._titleText = value;\r\n }\r\n get Title() {\r\n return this._titleText;\r\n }\r\n\r\n /**\r\n * The type of the card (e.g., default, bordered, minimal).\r\n * Default: \"default\"\r\n */\r\n @Input()\r\n set Type(value: string) {\r\n this._type = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card has a minimal header or not.\r\n * Default: false\r\n */\r\n @Input()\r\n set MinimalHeader(value: boolean) {\r\n this._minimalHeader = value;\r\n }\r\n\r\n /**\r\n * The type of progress indicator to be displayed in the card (e.g., circle, bar, none).\r\n * Default: \"circle\"\r\n */\r\n @Input()\r\n set ProgressType(value: string) {\r\n this._progressType = value;\r\n }\r\n\r\n /**\r\n * The color of the progress indicator in the card.\r\n */\r\n @Input()\r\n set ProgressColor(value: string) {\r\n this._progressColor = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card should have a refresh button or not.\r\n */\r\n @Input()\r\n set Refresh(value: boolean) {\r\n this._refresh = value;\r\n }\r\n\r\n /**\r\n * The color of the refresh button in the card (e.g., light, dark).\r\n * Default: \"light\"\r\n */\r\n @Input()\r\n set RefreshColor(value: string) {\r\n this._refreshColor = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card should have a maximize button or not.\r\n */\r\n @Input()\r\n set Maximize(value: boolean) {\r\n this._maximize = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card should have a close button or not.\r\n */\r\n @Input()\r\n set Close(value: boolean) {\r\n this._close = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the card should have a toggle button or not.\r\n */\r\n @Input()\r\n set Toggle(value: boolean) {\r\n this._toggle = value;\r\n }\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card header.\r\n */\r\n @Input()\r\n set HeaderClass(value: string) {\r\n this._extraHeaderClass = value;\r\n }\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card body.\r\n */\r\n @Input()\r\n set BodyClass(value: string) {\r\n this._extraBodyClass = value;\r\n }\r\n\r\n /**\r\n * Additional CSS class(es) to be added to the card.\r\n */\r\n @Input()\r\n set AdditionalClasses(value: string) {\r\n this._additionalClasses = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the tools (e.g., refresh, close, maximize) are shown in the card header or not.\r\n */\r\n @Input()\r\n set Controls(value: boolean) {\r\n this._showTools = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the message in the card is visible or not.\r\n */\r\n @Input()\r\n set ShowMessage(value: boolean) {\r\n this._messageVisible = value;\r\n }\r\n\r\n /**\r\n * The message text to be displayed in the card.\r\n */\r\n @Input()\r\n set Message(value: string) {\r\n this._message = value;\r\n }\r\n\r\n /**\r\n * Indicates whether the loading indicator is shown in the card or not.\r\n */\r\n @Input()\r\n set Loading(value: boolean) {\r\n this._isLoading = value;\r\n }\r\n\r\n /**\r\n * The timeout duration for the loading indicator (in milliseconds).\r\n * If set to 0, the loading indicator will be displayed indefinitely until manually dismissed.\r\n * Default: 0\r\n */\r\n @Input()\r\n set TimeOut(value: number) {\r\n this._timeout = value;\r\n }\r\n\r\n /**\r\n * The border style of the card.\r\n */\r\n @Input()\r\n set CardBorderStyle(value: string) {\r\n this._card_border_style = value;\r\n }\r\n\r\n\r\n // Output properties\r\n\r\n /**\r\n * Event emitted when the refresh button is clicked.\r\n */\r\n @Output() onRefresh: EventEmitter<void> = new EventEmitter();\r\n\r\n // Other methods and lifecycle hooks\r\n\r\n /**\r\n * Toggles the collapsed state of the card.\r\n */\r\n toggle(): void {\r\n this._isCollapsed = this._isCollapsed === true ? false : true;\r\n }\r\n\r\n /**\r\n * Maximizes or restores the card to its original position.\r\n */\r\n maximize(): void {\r\n let nativeElement = this._hostContent.nativeElement;\r\n if (this._isMaximixed) {\r\n this._isMaximixed = false;\r\n nativeElement.style.left = null;\r\n nativeElement.style.top = null;\r\n } else {\r\n this._isMaximixed = true;\r\n let pagecontainer: Element = document.querySelector(\".content\") ?? new Element();\r\n console.log(pagecontainer);\r\n let rect = pagecontainer.getBoundingClientRect();\r\n let elementRect = nativeElement.getBoundingClientRect();\r\n let style = window.getComputedStyle(pagecontainer);\r\n\r\n nativeElement.style.left =\r\n parseFloat(style[\"marginLeft\"]) +\r\n parseFloat(style[\"paddingLeft\"]) +\r\n rect.left +\r\n \"px\";\r\n nativeElement.style.top =\r\n parseFloat(style[\"padding-top\"]) + rect.top + \"px\";\r\n }\r\n }\r\n\r\n /**\r\n * Dismisses the message in the card.\r\n */\r\n alertDismiss(): void {\r\n this._messageVisible = false;\r\n }\r\n\r\n /**\r\n * Triggers the refresh action of the card.\r\n */\r\n refresh(): void {\r\n if (!this._isLoading) {\r\n this._isLoading = true;\r\n this.onRefresh.emit();\r\n }\r\n if (this._timeout > 0) {\r\n setTimeout(() => {\r\n this._isLoading = false;\r\n }, this._timeout);\r\n }\r\n }\r\n\r\n /**\r\n * Closes the card.\r\n */\r\n close(): void {\r\n this._close_card = true;\r\n }\r\n}\r\n","<div class=\"card card-{{ _type }} {{ _additionalClasses }}\" *ngIf=\"!_close_card\" [class.card-collapsed]=\"_isCollapsed\"\r\n [class.card-maximized]=\"_isMaximixed\" #hostContent class=\"col-sm-12 col-md-6 col-lg-4\"\r\n [ngStyle]=\"{'border': _card_border_style}\">\r\n <div class=\"card-header {{ _extraHeaderClass }}\">\r\n <div class=\"card-title\">\r\n <ng-template [ngTemplateOutlet]=\"CardTitle\"></ng-template>\r\n </div>\r\n <div class=\"card-controls\" *ngIf=\"_showTools == true\">\r\n <ng-template [ngTemplateOutlet]=\"CardExtraControls\"></ng-template>\r\n <ul *ngIf=\"_minimalHeader == false; else minimalBlock\">\r\n <li *ngIf=\"_toggle == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-collapse\" (click)=\"toggle()\"><i\r\n class=\"pg pg-arrow_maximize\" [class.pg-arrow_minimize]=\"_isCollapsed\"></i></a>\r\n </li>\r\n <li *ngIf=\"_refresh == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-refresh\" (click)=\"refresh()\"><i\r\n class=\"card-icon card-icon-refresh\"></i></a>\r\n </li>\r\n <li *ngIf=\"_maximize == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-maximize\" (click)=\"maximize()\"><i\r\n class=\"card-icon card-icon-maximize\"></i></a>\r\n </li>\r\n <li *ngIf=\"_close == true\">\r\n <a href=\"javascript:void(0);\" data-toggle class=\"card-close\" (click)=\"close()\"><i\r\n class=\"card-icon card-icon-close\"></i></a>\r\n </li>\r\n </ul>\r\n <!-- <ng-template #minimalBlock>\r\n <ul>\r\n <li>\r\n <a href=\"javascript:void(0);\" (click)=\"refresh()\" class=\"card-refresh minimal\"\r\n [class.refreshing]=\"_isLoading\">\r\n <i #minimalCircleLoadingTrigger class=\"card-icon card-icon-refresh-lg-{{\r\n _refreshColor == 'light' ? 'white' : 'master'\r\n }}\" [class.fade]=\"_isLoading\"></i>\r\n <i #minimalCircleLoading class=\"card-icon-refresh-lg-white-animated\"\r\n style=\"position: absolute;top:0;left:0\" [class.active]=\"_isLoading\"\r\n [class.hide]=\"_isLoading != true\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n </ng-template> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body {{ _extraBodyClass }}\" [@collapseState]=\"_isCollapsed == true ? 'inactive' : 'active'\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"_messageVisible == true\" class=\"pgn-wrapper\" data-position=\"top\">\r\n <div class=\"pgn pgn-bar push-on-sidebar-open\">\r\n <div class=\"alert alert-danger\">\r\n <span>{{ _message }}</span><button class=\"close\" (click)=\"alertDismiss()\" type=\"button\">\r\n <span aria-hidden=\"true\">×</span><span class=\"sr-only\">{{ 'Close' }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"_messageVisible == true\" class=\"card-progress\" [style.backgroundColor]=\"\r\n _minimalHeader ? 'rgba(0,0,0, 0.6)' : 'rgba(255, 255, 255, 0.8)'\r\n \" style=\" display: block;\"></div>\r\n <div [@fadeAnimation]=\"_isLoading\" class=\"card-progress\" [style.backgroundColor]=\"\r\n _minimalHeader ? 'rgba(0,0,0, 0.6)' : 'rgba(255, 255, 255, 0.8)'\r\n \" style=\"display: block;pointer-events: none\">\r\n <mefdev-progress *ngIf=\"_minimalHeader == false\" type=\"{{ _progressType }}\" color=\"{{ _progressColor }}\"\r\n indeterminate=\"true\" class=\"\"></mefdev-progress>\r\n </div>\r\n</div>","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n/**\r\n * Component for displaying a card with a title, image, and description.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-card>\r\n * <ng-template #card_title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n * <ng-template #card_footer>\r\n * <!-- Content for the card footer -->\r\n * </ng-template>\r\n * </mefdev-card>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/card</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss']\r\n})\r\nexport class CardComponent implements OnInit {\r\n\r\n /**\r\n * The template reference to the content of the card title.\r\n *\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card>\r\n * <ng-template #card_title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n * </mefdev-card>\r\n * ```\r\n */\r\n @ContentChild(\"card_title\") card_title: TemplateRef<void>; \r\n\r\n /**\r\n * The template reference to the content of the card footer.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card>\r\n * <ng-template #card_footer>\r\n * <!-- Content for the card footer -->\r\n * </ng-template>\r\n * </mefdev-card>\r\n * ```\r\n */\r\n @ContentChild(\"card_footer\") card_footer: TemplateRef<void>;\r\n\r\n /**\r\n * The type of the card.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card [card_type] = \"'type'\"></mefdev-card>\r\n * ```\r\n */\r\n @Input() card_type: string;\r\n\r\n /**\r\n * The path to the image.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card [img] = \"'img/path/img.png'\"></mefdev-card>\r\n * ```\r\n */\r\n @Input() img: string;\r\n\r\n /**\r\n * The path, where user goes after click at the image.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card [imgUrl] = \"'Img.url'\"></mefdev-card>\r\n * ```\r\n */\r\n @Input() imgUrl: string;\r\n\r\n /**\r\n * The description of the card.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card [description] = \"'description'\"></mefdev-card>\r\n * ```\r\n */\r\n @Input() description: string;\r\n\r\n\r\n constructor(\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Event handler for image click.\r\n * Navigates to the specified URL.\r\n */\r\n public imgClick(){\r\n this.router.navigate(['/', this.imgUrl.toString()])\r\n }\r\n\r\n}\r\n","\r\n <pgcard\r\n MinimalHeader=\"true\"\r\n TimeOut=\"2500\"\r\n [Refresh]=\"false\"\r\n [Close]=\"false\">\r\n\r\n <ng-template #CardTitle>\r\n <ng-template class=\"card-title body-1\" [ngTemplateOutlet]=\"card_title\"></ng-template>\r\n </ng-template>\r\n\r\n <div class=\"plugin-type\">\r\n {{ card_type }}\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"m-l-2 card-description\">\r\n <div *ngIf=\"!description || description == ''\" class=\"card-no-description\"> {{'No plugin description'}}</div>\r\n <p>\r\n {{description}}\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"col-12 mt-3 text-center card-img\"\r\n [ngStyle]=\"{'background-color': img ? 'transparent' : '#fff'}\">\r\n <div *ngIf=\"!img || img == ''\" >\r\n <img src=\"assets/images/md_icon.png\"\r\n style=\"max-width: 110px; max-height: 110px;\"/>\r\n </div>\r\n <div *ngIf=\"img\" >\r\n <img src=\"{{img}}\" alt=\"\" class=\"image-responsive-height img-middle\"\r\n style=\"max-width: 260px; max-height: 150px;\"\r\n onclick=\"imgClick()\"\r\n />\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"row mb-3 mt-3\">\r\n <div class=\"col-12\">\r\n <ng-template [ngTemplateOutlet]=\"card_footer\"></ng-template>\r\n </div>\r\n </div>\r\n </pgcard>\r\n","export enum CartTypeColors {\r\n UNSET = 'UNSET',\r\n RED = 'RED',\r\n GREEN = 'GREEN'\r\n }","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { CartTypeColors } from './cart-type-colors.enum';\r\n\r\n /**\r\n * Component for displaying a long card with a title, parameters, and description.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <medev-card-long\r\n * [type_text]=\"'Type Text'\"\r\n * [type_color]=\"CartTypeColors.RED\"\r\n * [img]=\"'path/to/image.jpg'\"\r\n * [imgUrl]=\"'path/to/image'\"\r\n * [description]=\"'Card description'\">\r\n * \r\n * <ng-template #title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n\r\n * <ng-template #params>\r\n * <!-- Content for the card parameters -->\r\n * </ng-template>\r\n\r\n * <ng-template #second_col>\r\n * <!-- Content for the second column -->\r\n * </ng-template>\r\n \r\n * <ng-template #third_col>\r\n * <!-- Content for the third column -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/card/card-long</example-url>\r\n */\r\n\r\n@Component({\r\n selector: 'medev-card-long',\r\n templateUrl: './card-long.component.html',\r\n styleUrls: ['./card-long.component.scss']\r\n})\r\nexport class CardLongComponent implements OnInit {\r\n\r\n /**\r\n * Template for displaying the title of the card.\r\n * ```\r\n * <medev-card-long>\r\n * <ng-template #title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n */\r\n @ContentChild(\"title\") title: TemplateRef<void>;\r\n\r\n /**\r\n * Template for displaying the parameters of the card.\r\n * ```\r\n * <medev-card-long>\r\n * <ng-template #params>\r\n * <!-- Content for the card params -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n */\r\n @ContentChild(\"params\") params: TemplateRef<void>; \r\n\r\n /**\r\n * Template for displaying the content of the second column.\r\n * ```\r\n * <medev-card-long>\r\n * <ng-template #second_col>\r\n * <!-- Content for the card second column -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n */\r\n @ContentChild(\"second_col\") second_col: TemplateRef<void>;\r\n\r\n /**\r\n * Template for displaying the content of the third column.\r\n * ```\r\n * <medev-card-long>\r\n * <ng-template #third_col>\r\n * <!-- Content for the card third column -->\r\n * </ng-template>\r\n * </medev-card-long>\r\n * ```\r\n */\r\n @ContentChild(\"third_col\") third_col: TemplateRef<void>;\r\n\r\n\r\n /**\r\n * The text for the card type.\r\n * @usageNotes\r\n * ```\r\n * <medev-card-long type_text = \"'Type'\"></<medev-card-long>\r\n * ```\r\n */\r\n @Input() type_text: string;\r\n\r\n /**\r\n * The color of the card type.\r\n * @usageNotes\r\n * ```\r\n * <medev-card-long type_color = \"'RED'\"></<medev-card-long>\r\n * ```\r\n * Colors: RED, UNSET, GREEN\r\n \r\n */\r\n @Input() type_color: CartTypeColors = CartTypeColors.UNSET;\r\n\r\n /**\r\n * The path to the image.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card-long [img] = \"'img/path/img.png'\"></mefdev-card-long>\r\n * ```\r\n */\r\n @Input() img: string;\r\n\r\n /**\r\n * The path, where user goes after click at the image.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card-long [imgUrl] = \"'Img.url'\"></mefdev-card-long>\r\n * ```\r\n */\r\n @Input() imgUrl: string;\r\n\r\n /**\r\n * The description of the card.\r\n * @usageNotes\r\n * ```\r\n * <mefdev-card-long [description] = \"'description'\"></mefdev-card-long>\r\n * ```\r\n */\r\n @Input() description: string;\r\n\r\n constructor(\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n /**\r\n * Event handler for image click.\r\n * Navigates to the specified URL.\r\n */\r\n public imgClick(){\r\n this.router.navigate(['/', this.imgUrl.toString()])\r\n }\r\n\r\n}\r\n","\r\n <pgcard \r\n MinimalHeader=\"true\" \r\n TimeOut=\"2500\" \r\n [Refresh]=\"false\" \r\n [Close]=\"false\"\r\n >\r\n \r\n <ng-template #CardTitle>\r\n <ng-template class=\"card-title\" [ngTemplateOutlet]=\"title\"></ng-template>\r\n </ng-template>\r\n\r\n <ng-template #CardExtraControls>\r\n <div class=\"plugin-type\" \r\n [ngClass] = \"{\r\n 'b-color-Light-Gray-1': type_color === 'UNSET',\r\n 'b-color-Red': type_color === 'RED',\r\n 'b-color-Green': type_color === 'GREEN'}\">\r\n {{type_text}}\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"row h-100 m-b-10\">\r\n <div class=\"col-lg-3 col-12 card-col\">\r\n <div class=\"row\">\r\n <div class=\"col-12 card-img m-b-10\">\r\n <div *ngIf=\"!img || img == ''\" >\r\n <img src=\"assets/images/md_icon.png\"\r\n style=\"max-width: 110px; max-height: 110px;\"/>\r\n </div>\r\n <div *ngIf=\"img\">\r\n <img src=\"{{img}}\" alt=\"\" class=\"image-responsive-height img-middle\"\r\n height=\"110px\" \r\n style=\"max-width: 110px; max-height: 110px;\"\r\n onclick=\"imgClick()\"\r\n />\r\n </div> \r\n </div>\r\n <div class=\"col-12 m-t-2 body-6 text-dark params-block\">\r\n <ng-template [ngTemplateOutlet]=\"params\"></ng-template> \r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-5 col-12 card-col\">\r\n <ng-template [ngTemplateOutlet]=\"second_col\"></ng-template> \r\n </div>\r\n \r\n <div class=\"col-lg-4 col-12 card-col mt-lg-0 mt-5\">\r\n <ng-template [ngTemplateOutlet]=\"third_col\"></ng-template> \r\n </div> \r\n\r\n </div>\r\n </pgcard>","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n\r\n/**\r\n * Component for displaying a simple card with a title.\r\n *\r\n * Example of usage:\r\n *```\r\n * <medev-card-simple [disabled]=\"true\">\r\n * <ng-template #card_title>\r\n * <!-- Content for the card title -->\r\n * </ng-template>\r\n * </medev-card-simple>\r\n *```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/card/card-simple</example-url>\r\n */\r\n@Component({\r\n selector: 'medev-card-simple',\r\n templateUrl: './card-simple.component.html',\r\n styleUrls: ['./card-simple.component.scss']\r\n})\r\nexport class CardSimpleComponent implements OnInit {\r\n\r\n /**\r\n * Determines whether the card is disabled or not.\r\n */\r\n @Input(\"disabled\") isDisabled: boolean = false;\r\n\r\n /**\r\n * Template for displaying the title of the card.\r\n *```\r\n * <medev-card-simple>\r\n * <ng-template #card_title>\r\n * <h3>Card Title</h3>\r\n * </ng-template>\r\n * </medev-card-simple>\r\n *``` \r\n */\r\n @ContentChild(\"card_title\") card_title: TemplateRef<void>;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"card-simple\" [ngClass]=\"{ 'unused-block':isDisabled }\">\r\n <div class=\"row m-2 body-1\" *ngIf=\"card_title\">\r\n <div class=\"col-12\">\r\n <ng-template [ngTemplateOutlet]=\"card_title\"></ng-template>\r\n </div>\r\n </div>\r\n <div class=\"row m-2\">\r\n <div class=\"col-12\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class ProgressConfig {\r\n color = \"primary\";\r\n thickness = 1;\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\r\n\r\nimport { MefDevProgressComponent } from \"./progress.component\";\r\nimport { ProgressConfig } from \"./progress.config\";\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [MefDevProgressComponent],\r\n exports: [MefDevProgressComponent]\r\n})\r\nexport class MefDevProgressModule {\r\n static forRoot(): ModuleWithProviders<MefDevProgressModule> {\r\n return { ngModule: MefDevProgressModule, providers: [ProgressConfig] };\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\r\nimport { pgCard } from \"./card.components\";\r\nimport { MefDevProgressModule } from \"../progress/progress.module\";\r\n\r\n@NgModule({\r\n declarations: [pgCard],\r\n exports: [pgCard],\r\n imports: [CommonModule, MefDevProgressModule]\r\n})\r\nexport class pgCardModule {\r\n static forRoot(): ModuleWithProviders<pgCardModule> {\r\n return {\r\n ngModule: pgCardModule\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CardComponent } from './card/card.component';\r\nimport { MefDevSelectModule } from '../../pg-components/select/select.module';\r\nimport { pgCardModule } from \"./../../pg-components/card/card.module\";\r\nimport { MefDevCollapseModule } from '../collapse/collapse.module';\r\nimport { CardLongComponent } from './card-long/card-long.component';\r\nimport { CardSimpleComponent } from './card-simple/card-simple.component';\r\n\r\nexport const mefDevCardComponents = [CardComponent, CardLongComponent, CardSimpleComponent];\r\n@NgModule({\r\n declarations: mefDevCardComponents,\r\n exports: mefDevCardComponents,\r\n imports: [\r\n CommonModule,\r\n MefDevCollapseModule,\r\n\t\tMefDevSelectModule,\r\n pgCardModule,\r\n ]\r\n})\r\nexport class MefDevCardModule { }\r\n","import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\"; // add for static analizer bug fix\r\nimport { animate, style, transition, trigger } from '@angular/animations';\r\n\r\n\r\n/**\r\n * Fill Component for a modal window.\r\n *\r\n * Example of usage:\r\n * ```\r\n * <mefdev-fill-modal #pin_modal>\r\n * <!-- Modal header content -->\r\n * <ng-template #modal_header>\r\n * <!-- Header content goes here -->\r\n * </ng-template>\r\n *\r\n * <!-- Modal footer content -->\r\n * <ng-template #modal_footer>\r\n * <!-- Footer content goes here -->\r\n * </ng-template>\r\n * </mefdev-fill-modal>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/modals/fill</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-fill-modal',\r\n templateUrl: './fill.component.html',\r\n styleUrls: ['./fill.component.scss'],\r\n animations: [\r\n trigger('dialog', [\r\n transition('void => *', [\r\n style({ transform: 'scale3d(.3, .3, .3)' }),\r\n animate(100)\r\n ]),\r\n transition('* => void', [\r\n animate(100, style({ transform: 'scale3d(.0, .0, .0)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class FillComponent implements OnInit {\r\n protected visible: boolean = false;\r\n\r\n @ViewChild('dialog', { static: false }) protected dialog?: ElementRef;\r\n\r\n\r\n /**\r\n * The header template of the modal window.\r\n * ```\r\n * <mefdev-fill-modal #pin_modal>\r\n * <ng-template #modal_header>\r\n * <!-- Header content goes here -->\r\n * </ng-template>\r\n * </mefdev-fill-modal>\r\n * ```\r\n */\r\n @ContentChild(\"modal_header\") modal_header: TemplateRef<void>;\r\n\r\n /**\r\n * The footer template of the modal window.\r\n * ```\r\n * <mefdev-fill-modal #pin_modal>\r\n * <ng-template #modal_footer>\r\n * <!-- Footer content goes here -->\r\n * </ng-template>\r\n * </mefdev-fill-modal>\r\n * ```\r\n */\r\n @ContentChild(\"modal_footer\") modal_footer: TemplateRef<void>;\r\n\r\n /**\r\n * Input parameter that determines whether to show the modal window.\r\n */\r\n @Input() set show(val: boolean){\r\n if(val){\r\n this.showModal();\r\n }\r\n else{\r\n this.hideModal();\r\n }\r\n };\r\n\r\n /**\r\n * Event emitted when the modal is change state.\r\n * Emits a boolean value indicating if the modal is closed(false), or open(true).\r\n * Example:\r\n * ```\r\n * <mefdev-fill-modal (visibleChange)=\"onModalClosed($event)\"></mefdev-fill-modal>\r\n * ```\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Shows the modal state.\r\n * Return a boolean value indicating if the modal is closed(false), or open(true)\r\n */\r\n getModalState(): boolean{\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * Shows the modal.\r\n * Call this method to open the modal window.\r\n */\r\n public showModal(){\r\n this.visible = true;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n\r\n /**\r\n * Hides the modal.\r\n * Call this method to close the modal window.\r\n */\r\n public hideModal(){\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n}\r\n","<button *ngIf=\"visible\" (click)=\"hideModal()\" aria-label=\"Close\" class=\"dialog__close-btn\">X</button>\r\n<div [@dialog] *ngIf=\"visible\" class=\"dialog\" #dialog>\r\n\t<div class=\"modal-content\">\r\n <div class=\"modal-header clearfix text-left\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n","import { Component, ContentChild, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalSize } from '../modal-size.enum';\r\nimport { CommonModule } from \"@angular/common\"; // add for static analizer bug fix\r\nimport { animate, style, transition, trigger } from '@angular/animations';\r\n\r\n /**\r\n * A component representing a slide-up modal window.\r\n *\r\n * Example of usage:\r\n *\r\n * ```\r\n * <mefdev-slide-up-modal [show]=\"showModal\">\r\n * <ng-template #modal_header>\r\n * <h4>Modal Header</h4>\r\n * </ng-template>\r\n * <ng-template #modal_footer>\r\n * <button (click)=\"closeModal()\">Close</button>\r\n * </ng-template>\r\n * <div class=\"modal-body\">\r\n * Content goes here...\r\n * </div>\r\n * </mefdev-slide-up-modal>\r\n * ```\r\n * <example-url>https://mef.dev/ui_kit_demo/view/modals/slide-up</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-slide-up-modal',\r\n templateUrl: './slide-up.component.html',\r\n styleUrls: ['./slide-up.component.scss'],\r\n animations: [\r\n trigger('dialog', [\r\n transition('void => *', [\r\n style({ transform: 'scale3d(.3, .3, .3)' }),\r\n animate(100)\r\n ]),\r\n transition('* => void', [\r\n animate(100, style({ transform: 'scale3d(.0, .0, .0)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class SlideUpComponent implements OnInit {\r\n protected visible: boolean = false;\r\n /**\r\n * Reference to the template for the modal header.\r\n * Use this template to customize the header of the modal.\r\n */\r\n @ContentChild(\"modal_header\") modal_header: TemplateRef<void>;\r\n\r\n /**\r\n * Reference to the template for the modal footer.\r\n * Use this template to customize the footer of the modal.\r\n */\r\n @ContentChild(\"modal_footer\") modal_footer: TemplateRef<void>;\r\n /**\r\n * Flag indicating whether the modal should be shown or hidden.\r\n * Set it to `true` to show the modal and `false` to hide it.\r\n */\r\n @Input() set show(val: boolean){\r\n if(val){\r\n this.showModal();\r\n }\r\n else{\r\n this.hideModal();\r\n }\r\n };\r\n\r\n /**\r\n * Event emitted when the modal is change state.\r\n * Emits a boolean value indicating if the modal is closed(false), or open(true).\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Shows the modal state.\r\n * Return a boolean value indicating if the modal is closed(false), or open(true)\r\n */\r\n getModalState(): boolean{\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * Shows the modal.\r\n * Call this method to open the modal window.\r\n */\r\n public showModal(){\r\n this.visible = true;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n\r\n /**\r\n * Hides the modal.\r\n * Call this method to close the modal window.\r\n */\r\n public hideModal(){\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n}\r\n","<div [@dialog] *ngIf=\"visible\" class=\"dialog\">\r\n\t<button (click)=\"hideModal()\" aria-label=\"Close\" class=\"dialog__close-btn\">X</button>\r\n\t<div class=\"modal-content\">\r\n <div class=\"modal-header clearfix text-left\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n","import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ModalSize } from '../modal-size.enum';\r\nimport { CommonModule } from \"@angular/common\"; // add for static analizer bug fix\r\nimport { animate, style, transition, trigger } from '@angular/animations';\r\n\r\n\r\n/**\r\n * A component representing a slide-right modal window.\r\n *\r\n * Example of usage:\r\n *\r\n * ```\r\n * <mefdev-slide-right-modal [size]=\"ModalSize.lg\" [show]=\"showModal\">\r\n * <ng-template #modal_header>\r\n * <h4>Modal Header</h4>\r\n * </ng-template>\r\n * <ng-template #modal_footer>\r\n * <button (click)=\"closeModal()\">Close</button>\r\n * </ng-template>\r\n * <div class=\"modal-body\">\r\n * Content goes here...\r\n * </div>\r\n * </mefdev-slide-right-modal>\r\n * ```\r\n * <example-url>https://mef.dev/ui_kit_demo/view/modals/slide-right</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-slide-right-modal',\r\n templateUrl: './slide-right.component.html',\r\n styleUrls: ['./slide-right.component.scss'],\r\n animations: [\r\n trigger('dialog', [\r\n transition('void => *', [\r\n style({ transform: 'translate3d(100%,0,0)' }),\r\n animate(100)\r\n ]),\r\n transition('* => void', [\r\n animate(100, style({ transform: 'translate3d(100%, 0, 0)' }))\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class SlideRightComponent implements OnInit {\r\n protected visible: boolean = false;\r\n\r\n @ViewChild('dialog') protected dialog: ElementRef;\r\n\r\n /**\r\n * Reference to the template for the modal header.\r\n * Use this template to customize the header of the modal.\r\n */\r\n @ContentChild(\"modal_header\") modal_header: TemplateRef<void>;\r\n\r\n /**\r\n * Reference to the template for the modal footer.\r\n * Use this template to customize the footer of the modal.\r\n */\r\n @ContentChild(\"modal_footer\") modal_footer: TemplateRef<void>;\r\n\r\n /**\r\n * Size of the modal.\r\n * Defaults to `ModalSize.md`.\r\n * Possible values: `ModalSize.sm`, `ModalSize.md`, `ModalSize.lg`, `ModalSize.xl`.\r\n */\r\n @Input() size:ModalSize = ModalSize.md;\r\n\r\n /**\r\n * Flag indicating whether the modal should be shown or hidden.\r\n * Set it to `true` to show the modal and `false` to hide it.\r\n */\r\n @Input() set show(val: boolean){\r\n if(val){\r\n this.showModal();\r\n }\r\n else{\r\n this.hideModal();\r\n }\r\n };\r\n\r\n /**\r\n * Event emitted when the modal is change state.\r\n * Emits a boolean value indicating if the modal is closed(false), or open(true).\r\n * Example:\r\n * ```\r\n * <mefdev-fill-modal (visibleChange)=\"onModalClosed($event)\"></mefdev-fill-modal>\r\n * ```\r\n */\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Shows the modal state.\r\n * Return a boolean value indicating if the modal is closed(false), or open(true)\r\n */\r\n getModalState(): boolean{\r\n return this.visible;\r\n }\r\n\r\n /**\r\n * Shows the modal.\r\n * Call this method to open the modal window.\r\n */\r\n public showModal(){\r\n this.visible = true;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n\r\n /**\r\n * Hides the modal.\r\n * Call this method to close the modal window.\r\n */\r\n public hideModal(){\r\n this.visible = false;\r\n this.visibleChange.emit(this.visible);\r\n }\r\n}\r\n","<div [@dialog] *ngIf=\"visible\" class=\"dialog\" #dialog>\r\n\r\n <div *ngIf=\"modal_header\" class=\"header\">\r\n <ng-template [ngTemplateOutlet]=\"modal_header\"></ng-template>\r\n </div>\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"modal_footer\" class=\"footer\">\r\n <ng-template [ngTemplateOutlet]=\"modal_footer\"></ng-template>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"visible\" class=\"overlay\" (click)=\"hideModal()\"></div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FilteredFieldService } from '../../utils/filtered-field/filtered-field.service';\r\n\r\n\r\n/**\r\n * Component representing the right filter.\r\n */\r\n@Component({\r\n selector: 'mefdev-right-filter',\r\n templateUrl: './right-filter.component.html',\r\n styleUrls: ['./right-filter.component.scss']\r\n})\r\nexport class RightFilterComponent implements OnInit {\r\n\r\n /**\r\n * Flag indicating whether the right filter is open or closed.\r\n */\r\n isOpen: boolean = false;\r\n\r\n constructor(\r\n private filteredFieldService: FilteredFieldService,) { }\r\n\r\n ngOnInit(): void {\r\n // Subscribe to the open filter event from the FilteredFieldService\r\n // and update the isOpen flag accordingly.\r\n this.filteredFieldService.getOpenFilter().subscribe(() => {\r\n this.isOpen = true;\r\n });\r\n }\r\n\r\n /**\r\n * Opens or closes the right filter modal.\r\n */\r\n openModal(){\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n /**\r\n * Event handler for when the modal is closed.\r\n * Sets the isOpen flag to false.\r\n */\r\n modalIsCloused(){\r\n this.isOpen = false;\r\n }\r\n \r\n}\r\n","<div class=\"filter-btn\">\r\n <button class=\"btn btn-secondary text-danger\" (click)=\"openModal()\"><i class=\"fa fa-filter\" aria-hidden=\"true\"></i></button>\r\n</div>\r\n\r\n<mefdev-slide-right-modal [show]=\"isOpen\" (isClouse)=\"modalIsCloused()\">\r\n <ng-content></ng-content>\r\n</mefdev-slide-right-modal>","import { NgModule } from \"@angular/core\";\r\nimport { FillComponent } from './fill/fill.component';\r\nimport { SlideUpComponent } from './slide-up/slide-up.component';\r\nimport { SlideRightComponent } from './slide-right/slide-right.component';\r\n\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RightFilterComponent } from \"./right-filter/right-filter.component\";\r\nimport { MefDevSelectModule } from '../../pg-components/select/select.module';\r\n\r\n\r\nlet mefDevModalModuleComponents = [\r\n FillComponent,\r\n SlideUpComponent,\r\n SlideRightComponent,\r\n RightFilterComponent\r\n];\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MefDevSelectModule\r\n ],\r\n exports: mefDevModalModuleComponents,\r\n declarations: mefDevModalModuleComponents\r\n})\r\nexport class MefDevModalModule {}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n\r\n/**\r\n * A component representing a user profile.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-profile\r\n * [name]=\"'John Doe'\"\r\n * [img]=\"'assets/profile.png'\"\r\n * [shortDescription]=\"'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'\"\r\n * [header]=\"'User Profile'\"\r\n * [circleImg]=\"'true'\">\r\n * <ng-template #first_colum>\r\n * <!-- Content for the first column -->\r\n * </ng-template>\r\n * <ng-template #second_colum>\r\n * <!-- Content for the second column -->\r\n * </ng-template>\r\n * <ng-template #footer>\r\n * <!-- Content for the footer -->\r\n * </ng-template>\r\n * </mefdev-profile>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/page-layouts/profile</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.scss']\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n\r\n /**\r\n * The template reference to the content of the first column.\r\n *```\r\n * <ng-template #first_colum>\r\n * <!-- Content for the first column -->\r\n * </ng-template>\r\n *```\r\n */\r\n @ContentChild(\"first_colum\") first_colum: TemplateRef<void>;\r\n\r\n /**\r\n * The template reference to the content of the second column.\r\n *```\r\n * <ng-template #second_colum>\r\n * <!-- Content for the second column -->\r\n * </ng-template>\r\n *```\r\n */\r\n @ContentChild(\"second_colum\") second_colum: TemplateRef<void>;\r\n\r\n /**\r\n * The template reference to the content of the footer.\r\n *```\r\n * <ng-template #footer>\r\n * <!-- Content for the footer -->\r\n * </ng-template>\r\n *```\r\n */\r\n @ContentChild(\"footer\") footer: TemplateRef<void>;\r\n\r\n /**\r\n * The name of the user.\r\n * ```\r\n * <mefdev-profile [name]=\"'John Doe'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() name:string;\r\n\r\n /**\r\n * The URL of the user's profile image.\r\n * ```\r\n * <mefdev-profile [img]=\"'assets/profile.png'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() img: string = '';\r\n\r\n /**\r\n * A short description of the user.\r\n * ```\r\n * <mefdev-profile [shortDescription]=\"'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() shortDescription: string;\r\n\r\n /**\r\n * The header title of the profile component.\r\n * ```\r\n * <mefdev-profile [header]=\"'User Profile'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() header: string;\r\n\r\n /**\r\n * A flag indicating whether to display the profile image as a circle. Default \"false\".\r\n * ```\r\n * <mefdev-profile [circleImg]=\"'true'\"></mefdev-profile>\r\n * ```\r\n */\r\n @Input() circleImg: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n get sizeStyle(){\r\n // return { 'width.px': this.width, 'height.px': this.height };\r\n /**\r\n * Returns the CSS style for the profile image size and shape.\r\n */\r\n if(!this.circleImg){\r\n return {};\r\n }\r\n\r\n return {\r\n 'border-top-left-radius': `50%`,\r\n 'border-top-right-radius': `50%`,\r\n 'border-bottom-right-radius': `50%`,\r\n 'border-bottom-left-radius': `50%`,\r\n };\r\n }\r\n}\r\n","<div class=\"row profile-page\">\r\n <div class=\"col-12 h3 mt-3\">\r\n {{header}}\r\n </div>\r\n <div class=\"col-xl-3 col-lg-3 col-md-4 col-sm-12\">\r\n <div *ngIf=\"!img || img == ''\" >\r\n <img src=\"assets/images/md_icon.png\" height=\"124\" width=\"220\" />\r\n </div>\r\n <div *ngIf=\"img\" >\r\n <img src=\"{{img}}\" alt=\"\" class=\"custom-img\" [ngStyle]=\"sizeStyle\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xl-3 col-lg-4 col-md-5 col-sm-12 mt-4 mt-md-0\" >\r\n <div class=\"row profile-name\">\r\n <div class=\"col\">\r\n {{name}}\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col profile-description\">\r\n {{shortDescription}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xl-3 col-lg-4 col-md-5 col-sm-12 body-6 mt-4 mt-md-0\">\r\n <ng-template [ngTemplateOutlet]=\"first_colum\"></ng-template>\r\n </div>\r\n\r\n <div class=\"col-xl-3 col-lg-4 col-md-5 col-sm-12 body-6 mt-4 mt-md-0\" >\r\n <ng-template [ngTemplateOutlet]=\"second_colum\"></ng-template>\r\n </div>\r\n\r\n</div>\r\n<div style=\"position: relative;\">\r\n <div class=\"row profile-page-tabs\">\r\n <ng-template [ngTemplateOutlet]=\"footer\">\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import { AfterViewChecked, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\n\r\n/**\r\n * A component representing a central page layout.\r\n *\r\n * Example of usage:\r\n *\r\n * ```\r\n * <mefdev-central-page [width]=\"'80%'\">\r\n * Content goes here...\r\n * </mefdev-central-page>\r\n * ```\r\n *\r\n * <example-url>https://mef.dev/ui_kit_demo/view/page-layouts/central-page</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-central-page',\r\n templateUrl: './central-page.component.html',\r\n styleUrls: ['./central-page.component.scss']\r\n})\r\nexport class CentralPageComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n\r\n constructor(\r\n ) {\r\n }\r\n\r\n /**\r\n * The width of the central page.\r\n * Defaults to '100%'.\r\n * You can specify the width using CSS units (e.g., '80%', '500px').\r\n */\r\n @Input() width: string = '100%';\r\n\r\n /**\r\n * Lifecycle hook called just before the component is destroyed.\r\n * Removes the height style from the main content element.\r\n */\r\n ngOnDestroy(): void {\r\n try{\r\n document.getElementById('dataMainContent')!.style.height = '';\r\n }catch(ex){};\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n /**\r\n * Lifecycle hook called after the component's view has been checked.\r\n * Sets the height of the main content element to '100%'.\r\n */\r\n ngAfterViewChecked(): void {\r\n try{\r\n document.getElementById('dataMainContent')!.style.height = '100%'\r\n }catch(ex){};\r\n }\r\n\r\n}\r\n","<div class=\"row align-items-center\" style=\"height: 100%;\" [ngStyle]=\"{'width': width}\">\r\n <div class=\"col\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n ","import { Component, OnInit } from '@angular/core';\r\n\r\n\r\n/**\r\n * A component representing a central page layout.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-central-page>\r\n * <mefdev-central-page-row>\r\n * Content goes here...\r\n * </mefdev-central-page-row>\r\n * </mefdev-central-page>\r\n * ```\r\n*/\r\n@Component({\r\n selector: 'mefdev-central-page-row',\r\n templateUrl: './central-page-row.component.html',\r\n styleUrls: ['./central-page-row.component.scss']\r\n})\r\nexport class CentralPageRowComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"row justify-content-center\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, ContentChild, OnInit, TemplateRef } from '@angular/core';\r\n\r\n\r\n /**\r\n * A component representing a table page layout.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-table-page>\r\n * <ng-template #filter_colum>\r\n * <!-- Content for the filter column -->\r\n * </ng-template>\r\n * </mefdev-table-page>\r\n * ```\r\n * \r\n * <example-url>https://mef.dev/ui_kit_demo/view/page-layouts/table-page</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-table-page',\r\n templateUrl: './table-page.component.html',\r\n styleUrls: ['./table-page.component.scss']\r\n})\r\nexport class TablePageComponent implements OnInit {\r\n\r\n /**\r\n * The template reference to the content of the filter column.\r\n * ```\r\n * <ng-template #filter_colum>\r\n * <!-- Content for the filter column -->\r\n * </ng-template>\r\n * ```\r\n */\r\n @ContentChild(\"filter_colum\") filter_colum: TemplateRef<void>;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-12 filter-colum\">\r\n <ng-template [ngTemplateOutlet]=\"filter_colum\"></ng-template> \r\n </div>\r\n</div>\r\n\r\n<div class=\"table-responsive\" >\r\n <ng-content></ng-content>\r\n</div>\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n\r\n /**\r\n * A component representing a manage page layout.\r\n *\r\n * Example of usage:\r\n * \r\n * ```\r\n * <mefdev-manage-page [startTabInd]=\"0\">\r\n * <ng-template #card_title>\r\n * Title of the card\r\n * </ng-template>\r\n * <ng-template #tabs_block>\r\n * Content of the tabs block\r\n * </ng-template>\r\n * </mefdev-manage-page>\r\n * ```\r\n *\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/page-layouts/menage-page</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-manage-page',\r\n templateUrl: './manage-page.component.html',\r\n styleUrls: ['./manage-page.component.scss']\r\n})\r\nexport class ManagePageComponent implements OnInit {\r\n\r\n /**\r\n * The template reference to the card title.\r\n * ```\r\n * <mefdev-manage-page>\r\n * <ng-template #card_title>\r\n * Title of the card\r\n * </ng-template>\r\n * </mefdev-manage-page>\r\n * ```\r\n */\r\n @ContentChild(\"card_title\") card_title: TemplateRef<void>;\r\n\r\n /**\r\n * The template reference to the tabs block.\r\n * ```\r\n * <mefdev-manage-page>\r\n * <ng-template #tabs_block>\r\n * Content of the tabs block\r\n * </ng-template>\r\n * </mefdev-manage-page>\r\n * ```\r\n */\r\n @ContentChild(\"tabs_block\") tabs_block: TemplateRef<void>;\r\n\r\n /**\r\n * The index of the starting tab.\r\n * ```\r\n * <mefdev-manage-page [startTabInd]=\"0\">\r\n * Content goes here...\r\n * </mefdev-manage-page>\r\n * ```\r\n */\r\n @Input() startTabInd = 0;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"card-tabs\">\r\n <div class=\"row body-1 card-header\" *ngIf=\"card_title\">\r\n <div class=\"m-2\">\r\n <ng-template [ngTemplateOutlet]=\"card_title\"></ng-template>\r\n </div>\r\n </div>\r\n <div class=\"row profile-page-tabs\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProfileComponent } from './profile/profile.component';\r\n// import { pgTabsModule } from '../../pg-components/tabs/tabs.module';\r\nimport { CentralPageComponent } from './central-page/central-page.component';\r\nimport { CentralPageRowComponent } from './central-page-row/central-page-row.component';\r\nimport { TablePageComponent } from './table-page/table-page.component';\r\nimport { ManagePageComponent } from './manage-page/manage-page.component';\r\n\r\nlet mefDevPageLayoutsModuleComponents = [\r\n ProfileComponent,\r\n CentralPageComponent,\r\n CentralPageRowComponent,\r\n TablePageComponent,\r\n ManagePageComponent\r\n];\r\n\r\n@NgModule({\r\n declarations: mefDevPageLayoutsModuleComponents,\r\n exports: mefDevPageLayoutsModuleComponents,\r\n imports: [\r\n CommonModule,\r\n\t\t// pgTabsModule,\r\n ],\r\n})\r\nexport class MefDevPageLayoutsModule { }\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mefdev-stage',\r\n templateUrl: './stage.component.html',\r\n styleUrls: ['./stage.component.scss'],\r\n})\r\n\r\nexport class StageComponent {\r\n\r\n @Input() currentExecutorStep: number;\r\n @Input() isRightModal: boolean;\r\n @Input() isCompleted: boolean;\r\n @Input() title: string;\r\n\r\n}\r\n","<div class=\"step\">\r\n <ng-container *ngIf=\"!isCompleted else done\">\r\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" [ngStyle]=\"isRightModal ? { 'fill': '#FFFFFF' } : { 'fill': '#F3F3F3' }\">\r\n <rect width=\"36\" height=\"36\" rx=\"18\" />\r\n <text class=\"body-3\" x=\"50%\" y=\"50%\" dominant-baseline=\"middle\" text-anchor=\"middle\" font-size=\"16\" fill=\"black\">\r\n {{ currentExecutorStep }}\r\n </text>\r\n </svg>\r\n <div class=\"body-6 descriptionStepText\" *ngIf=\"!isRightModal\">\r\n {{ title }}\r\n </div>\r\n </ng-container>\r\n</div>\r\n<ng-template #done>\r\n <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"35\" height=\"35\" rx=\"17.5\" stroke=\"#929292\"/>\r\n <path d=\"M24.7373 10L14.5466 20.3769L11.2415 17.0114L8 20.3122L11.3051 23.6777L14.5678 27L17.8093 23.6992L28 13.3224L24.7373 10Z\"\r\n fill=\"#28B446\"/>\r\n </svg>\r\n <span class=\"body-6 descriptionStepText\" *ngIf=\"!isRightModal\">\r\n {{ title }}\r\n </span>\r\n</ng-template>\r\n","import {\r\n AfterViewInit, Component,\r\n ContentChild, ElementRef,\r\n EventEmitter, Input,\r\n Output, Renderer2,\r\n TemplateRef, ViewChild\r\n} from '@angular/core';\r\nimport { MefdevExecutorPageComponent } from '../mefdev-executor-page/mefdev-executor-page.component';\r\n\r\n@Component({\r\n selector: 'mefdev-step-executor',\r\n templateUrl: './step-executor.component.html',\r\n styleUrls: ['./step-executor.component.scss']\r\n})\r\n\r\nexport class StepExecutorComponent implements AfterViewInit {\r\n\r\n @Input({required: true}) view: string;\r\n @ViewChild('container') container: ElementRef<HTMLElement>;\r\n @ContentChild('title') title: TemplateRef<void>;\r\n @ContentChild('description') description: TemplateRef<void>;\r\n @ContentChild('footer') footer: TemplateRef<void>;\r\n @Output() onActivePageChange: EventEmitter<MefdevExecutorPageComponent> = new EventEmitter<MefdevExecutorPageComponent>();\r\n\r\n public _activePageInd: number = 0;\r\n public pages: MefdevExecutorPageComponent[] = [];\r\n\r\n constructor(private renderer: Renderer2) {}\r\n\r\n public set activePageInd(activePageNumber: number) {\r\n this._activePageInd = activePageNumber;\r\n if (activePageNumber >= 0 && this.container) {\r\n if (this.container.nativeElement.innerHTML != '') {\r\n this.container.nativeElement.innerHTML = '';\r\n }\r\n this.renderer.appendChild(this.container.nativeElement, this.activePage?.elRef.nativeElement);\r\n this.onActivePageChange.emit(this.pages.find((el: MefdevExecutorPageComponent) => el.isActive));\r\n }\r\n }\r\n\r\n public get activePageInd(): number {\r\n return this._activePageInd;\r\n }\r\n\r\n get activePage(): MefdevExecutorPageComponent | null {\r\n return this.activePageInd == -1 ? null : this.pages[this.activePageInd];\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.renderer.appendChild(this.container.nativeElement, this.activePage?.elRef.nativeElement);\r\n this.onActivePageChange.emit(this.pages.find((el: MefdevExecutorPageComponent) => el.isActive));\r\n }\r\n\r\n nextBtnIsDisabled(): boolean {\r\n return this._activePageInd === this.pages.length - 1;\r\n }\r\n\r\n prev(): void {\r\n const newPageInd = this.activePageInd - 1;\r\n if (newPageInd >= 0) {\r\n this.activePageInd = newPageInd;\r\n }\r\n }\r\n\r\n cancel(): void {\r\n this.activePageInd = 0;\r\n const newPageInd = this.activePageInd - 1;\r\n if (newPageInd >= 0) {\r\n this.activePageInd = newPageInd;\r\n }\r\n }\r\n\r\n next(): void {\r\n const newPageInd = this.activePageInd + 1;\r\n if (newPageInd < this.pages.length) {\r\n this.activePageInd = newPageInd;\r\n }\r\n }\r\n\r\n setActivePage(pageNumber: number): void {\r\n pageNumber -= 1;\r\n if (pageNumber < this.pages.length && pageNumber >= 0) {\r\n this.activePageInd = pageNumber;\r\n }\r\n }\r\n\r\n addPage(page: MefdevExecutorPageComponent): void {\r\n this.pages.push(page);\r\n }\r\n\r\n removeSpecificPage(page: MefdevExecutorPageComponent): void {\r\n const index: number = this.pages.indexOf(page);\r\n if (index !== -1) {\r\n this.pages.splice(index, 1);\r\n if (index === this.activePageInd) {\r\n this.prev();\r\n }\r\n }\r\n }\r\n\r\n removePageByIndex(index: number): void {\r\n if (index >= 0 && index < this.pages.length) {\r\n this.pages.splice(index, 1);\r\n if (index === this.activePageInd) {\r\n this.prev();\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n}\r\n","<!--view == regular-->\r\n\r\n<div class=\"stepExecutorBlock\" *ngIf=\"view === 'regular'\">\r\n <header class=\"stepExecutorHeader\">\r\n <div class=\"stepExecutorHeaderText\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"steps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n\r\n <div class=\"footerButtons\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </div>\r\n</div>\r\n\r\n\r\n<!--view == modal-->\r\n\r\n<div class=\"modalStepExecutor\" *ngIf=\"view === 'modal'\">\r\n\r\n <header class=\"modalHeader\">\r\n <div class=\"headerModalText\">\r\n <div class=\"textAndCloseButton\">\r\n <h1 class=\"title\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </h1>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <article class=\"closeBtn\">\r\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.26735 7.68135L0.610352 2.02435L2.02435 0.610352L7.68135 6.26735L13.3384 0.610352L14.7524 2.02435L9.09535 7.68135L14.7524 13.3384L13.3384 14.7524L7.68135 9.09535L2.02435 14.7524L0.610352 13.3384L6.26735 7.68135Z\" fill=\"#4D4D4D\"/>\r\n </svg>\r\n </article>\r\n </div>\r\n <div class=\"modalSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"false\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </header>\r\n\r\n <main *ngIf=\"activePage\" class=\"modalExecutorMainContent\">\r\n <div #container></div>\r\n </main>\r\n\r\n <footer class=\"modalFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n\r\n</div>\r\n\r\n<!--view == right-->\r\n\r\n<div class=\"rightExecutorBlock\" *ngIf=\"view === 'right'\">\r\n\r\n <header class=\"rightExecutorHeader\">\r\n <div class=\"rightExecutorTextAndCloseButton\">\r\n <span class=\"body-1\">\r\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\r\n </span>\r\n <p class=\"body-5\">\r\n <ng-container [ngTemplateOutlet]=\"description\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"closeButton\">\r\n <svg width=\"17\" height=\"17\" viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.0566 1.59971L14.6566 0.199707L8.05664 6.79971L1.45664 0.199707L0.0566406 1.59971L6.65664 8.19971L0.0566406 14.7997L1.45664 16.1997L8.05664 9.59971L14.6566 16.1997L16.0566 14.7997L9.45664 8.19971L16.0566 1.59971Z\" fill=\"#525252\"/>\r\n </svg>\r\n </div>\r\n </header>\r\n\r\n <div class=\"line\">\r\n <svg width=\"363\" height=\"1\" viewBox=\"0 0 363 1\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <line x1=\"-4.37114e-08\" y1=\"0.5\" x2=\"362.674\" y2=\"0.499968\" stroke=\"#4D4D4D\"/>\r\n </svg>\r\n </div>\r\n\r\n <div class=\"contentExecutor\">\r\n <div class=\"rightChangeContent\">\r\n <div *ngIf=\"activePage\" class=\"executorChangeContent\">\r\n <div #container></div>\r\n </div>\r\n <div class=\"rightSteps\">\r\n <mefdev-stage *ngFor=\"let page of pages; let pageIndex = index\"\r\n [isRightModal]=\"true\"\r\n [title]=\"page.title\"\r\n [currentExecutorStep]=\"pageIndex + 1\"\r\n [isCompleted]=\"page.isCompleted\">\r\n </mefdev-stage>\r\n </div>\r\n </div>\r\n\r\n <footer class=\"rightFooter\">\r\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\r\n </footer>\r\n </div>\r\n\r\n</div>\r\n","import {\r\n Component, ElementRef, EventEmitter, Host,\r\n Input, OnChanges, Output, SimpleChanges\r\n} from '@angular/core';\r\nimport { StepExecutorComponent } from '../step-executor/step-executor.component';\r\n\r\n@Component({\r\n selector: 'mefdev-executor-page',\r\n template: '<ng-content></ng-content>',\r\n})\r\n\r\nexport class MefdevExecutorPageComponent implements OnChanges {\r\n\r\n @Input() title: string;\r\n @Input() isActive: boolean = false;\r\n @Input() isCompleted: boolean = false;\r\n\r\n @Output() isCompletedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public elRef: ElementRef;\r\n\r\n constructor(\r\n @Host() private _mainExecutor: StepExecutorComponent,\r\n private _elementRef: ElementRef\r\n ) {\r\n this.elRef = _elementRef;\r\n _mainExecutor.pages.push(this);\r\n if (_mainExecutor.activePageInd == -1) {\r\n _mainExecutor.activePageInd = 0;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.isCompletedChange.emit(changes['isCompleted']?.currentValue);\r\n }\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StepExecutorComponent } from './step-executor/step-executor.component';\r\nimport { StageComponent } from './stage/stage.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MefdevExecutorPageComponent } from './mefdev-executor-page/mefdev-executor-page.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n StepExecutorComponent,\r\n MefdevExecutorPageComponent,\r\n StageComponent\r\n ],\r\n exports: [\r\n StepExecutorComponent,\r\n MefdevExecutorPageComponent,\r\n StageComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ]\r\n})\r\n\r\nexport class MefDevStepExecutorModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mefdev-spec-flow-test',\r\n templateUrl: './spec-flow-test.component.html',\r\n styleUrls: ['./spec-flow-test.component.scss']\r\n})\r\nexport class MefDevSpecFlowTestComponent implements OnInit {\r\n /**\r\n * UTC datetime\r\n */\r\n ResponseTimestamp: any;\r\n /**\r\n * 0/1 1 - ошибка, 0 - успех (200, 201 и тд)\r\n */\r\n ResponseError: any;\r\n /**\r\n * string для ResponseError=1\r\n */\r\n ReportError: any;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n public setError(error:any) {\r\n this.ResponseTimestamp = Date.now();\r\n this.ResponseError = 1;\r\n this.ReportError = error;\r\n }\r\n public setSuccess(){\r\n this.ResponseTimestamp = Date.now();\r\n this.ResponseError = 0;\r\n this.ReportError = undefined;\r\n }\r\n\r\n}\r\n","<!-- Block for test -->\r\n<div style=\"display: none;\">\r\n <input id=\"ResponseTimestamp\" type=\"hidden\" value=\"{{ResponseTimestamp}}\" />\r\n <input id=\"ResponseError\" type=\"hidden\" value=\"{{ResponseError}}\" />\r\n <input id=\"ReportError\" type=\"hidden\" value=\"{{ReportError}}\" />\r\n</div>","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MefDevSpecFlowTestComponent } from './spec-flow-test/spec-flow-test.component';\r\n\r\n@NgModule({\r\n declarations: [MefDevSpecFlowTestComponent],\r\n exports: [MefDevSpecFlowTestComponent],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class MefDevSpecFlowTestModule {\r\n static forRoot(): ModuleWithProviders<MefDevSpecFlowTestModule> {\r\n return {\r\n ngModule: MefDevSpecFlowTestModule\r\n };\r\n }\r\n }\r\n","import {\r\n\tforwardRef,\r\n\tComponent,\r\n\tHostListener,\r\n\tInput,\r\n\tOnInit,\r\n\tViewEncapsulation,\r\n\tOutput\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { toBoolean } from \"../util/convert\";\r\n\r\n\r\n/**\r\n * @component\r\n * @skipTemplateDoc: true\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/switch</example-url>\r\n*/\r\n@Component({\r\n\tselector: \"mefdev-switch\",\r\n\tencapsulation: ViewEncapsulation.None,\r\n\ttemplateUrl: \"./switch.component.html\",\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => MefDevSwitchComponent),\r\n\t\t\tmulti: true\r\n\t\t}\r\n\t]\r\n})\r\nexport class MefDevSwitchComponent implements OnInit, ControlValueAccessor {\r\n\t // Private variables\r\n\tprivate _disabled = false;\r\n\t_prefixCls = \"toggle-switch\";\r\n\t_color = \"primary\";\r\n\t_innerPrefixCls = `${this._prefixCls}-inner `;\r\n\t_classMap:any;\r\n\t_size: string;\r\n\t_checked = false;\r\n\r\n\t// ngModel Access\r\n\t// Output event triggered when the switch value changes\r\n\t@Output()\r\n\t/**\r\n * Event emitted when the value of the switch changes.\r\n * \r\n * @output\r\n * @param value The new value of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch (onChange)=\"handleSwitchChange($event)\"></mefdev-switch>\r\n * ```\r\n */\r\n\tonChange: (value: boolean) => void = () => null;\r\n\tonTouched: () => void = () => null;\r\n\r\n\t// Input properties\r\n\r\n\t/**\r\n * Sets the value of the switch.\r\n * \r\n * @input\r\n * @param value The value of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch [Value]=\"true\"></mefdev-switch>\r\n * ```\r\n */\r\n @Input()\r\n\tset Value(value: boolean) {\r\n\t\tthis.updateValue(value);\r\n\t}\r\n\r\n\t/**\r\n * Sets the size of the switch.\r\n * \r\n * @input\r\n * @param value The size of the switch (e.g., \"small\", \"large\").\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch [Size]=\"'small'\"></mefdev-switch>\r\n * ```\r\n */\r\n\t@Input()\r\n\tset Size(value: string) {\r\n\t\tthis._size = value;\r\n\t\tthis.setClassMap();\r\n\t}\r\n\r\n\t/**\r\n * Sets the color of the switch.\r\n * \r\n * @input\r\n * @param value The color of the switch (e.g., \"primary\", \"secondary\").\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch [Color]=\"'primary'\"></mefdev-switch>\r\n * ```\r\n */\r\n\t@Input()\r\n\tset Color(value: string) {\r\n\t\tthis._color = value;\r\n\t\tthis.setClassMap();\r\n\t}\r\n\r\n\t/**\r\n * Gets the current size of the switch.\r\n * \r\n * @input\r\n * @returns The size of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * const size = mySwitchComponent.Size;\r\n * ```\r\n */\r\n\tget Size(): string {\r\n\t\treturn this._size;\r\n\t}\r\n\r\n\t/**\r\n * Sets the disabled state of the switch.\r\n * \r\n * @input\r\n * @param value The disabled state of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch [Disabled]=\"true\"></mefdev-switch>\r\n * ```\r\n */\r\n\t@Input()\r\n\tset Disabled(value: boolean) {\r\n\t\tthis._disabled = toBoolean(value);\r\n\t\tthis.setClassMap();\r\n\t}\r\n\r\n\t /**\r\n * Gets the current disabled state of the switch.\r\n * \r\n * @input\r\n * @returns The disabled state of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * const disabled = mySwitchComponent.Disabled;\r\n * ```\r\n */\r\n\tget Disabled(): boolean {\r\n\t\treturn this._disabled;\r\n\t}\r\n\r\n\t // Host listener for click event\r\n\t@HostListener(\"click\", [\"$event\"])\r\n\r\n\t/**\r\n * Handles the click event of the switch.\r\n * \r\n * @param e The click event object.\r\n * \r\n * Usage example:\r\n * ```\r\n * <mefdev-switch (click)=\"handleSwitchClick($event)\"></mefdev-switch>\r\n * ```\r\n */\r\n\tonClick(e: MouseEvent): void {\r\n\t\te.preventDefault();\r\n\t\tif (!this._disabled) {\r\n\t\t\tthis.updateValue(!this._checked);\r\n\t\t\tthis.onChange(this._checked);\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n\t// Helper functions\r\n\r\n /**\r\n * Updates the value of the switch.\r\n * \r\n * @param value The new value of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.updateValue(true);\r\n * ```\r\n */\r\n\tupdateValue(value: boolean): void {\r\n\t\tif (this._checked === value) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._checked = value;\r\n\t\tthis.setClassMap();\r\n\t}\r\n\r\n\t/**\r\n * Sets the class map for the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.setClassMap();\r\n * ```\r\n */\r\n\tsetClassMap(): void {\r\n\t\tthis._classMap = {\r\n\t\t\t[this._prefixCls]: true,\r\n\t\t\t[`${this._prefixCls}-checked`]: this._checked,\r\n\t\t\t[`${this._prefixCls}-disabled`]: this._disabled,\r\n\t\t\t[`${this._prefixCls}-small`]: this._size === \"small\",\r\n\t\t\t[this._color]: this._color\r\n\t\t};\r\n\t}\r\n\r\n\t\r\n\t// ControlValueAccessor interface implementation\r\n\r\n /**\r\n * Writes a new value to the switch.\r\n * \r\n * @param value The new value of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.writeValue(true);\r\n * ```\r\n */\r\n\tpublic writeValue(value: boolean): void {\r\n\t\tthis.updateValue(value);\r\n\t}\r\n\r\n\t/**\r\n * Registers a callback function to be executed when the switch value changes.\r\n * \r\n * @param fn The callback function.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.registerOnChange(value => {\r\n * // Do something with the new value\r\n * });\r\n * ```\r\n */\r\n\tregisterOnChange(fn: (_: boolean) => void): void {\r\n\t\tthis.onChange = fn;\r\n\t}\r\n\r\n\t/**\r\n * Registers a callback function to be executed when the switch is touched.\r\n * \r\n * @param fn The callback function.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.registerOnTouched(() => {\r\n * // Do something when the switch is touched\r\n * });\r\n * ```\r\n */\r\n\tregisterOnTouched(fn: () => void): void {\r\n\t\tthis.onTouched = fn;\r\n\t}\r\n\r\n\t/**\r\n * Sets the disabled state of the switch.\r\n * \r\n * @param isDisabled The disabled state of the switch.\r\n * \r\n * Usage example:\r\n * ```\r\n * this.setDisabledState(true);\r\n * ```\r\n */\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tthis.Disabled = isDisabled;\r\n\t}\r\n\r\n\t // OnInit lifecycle hook\r\n\tngOnInit(): void {\r\n\t\tthis.setClassMap();\r\n\t}\r\n}\r\n","<span [ngClass]=\"_classMap\" tabindex=\"0\">\r\n <span [ngClass]=\"_innerPrefixCls\">\r\n <ng-template [ngIf]=\"_checked\">\r\n <ng-content select=\"[checked]\"></ng-content>\r\n </ng-template>\r\n <ng-template [ngIf]=\"!_checked\">\r\n <ng-content select=\"[unchecked]\"></ng-content>\r\n </ng-template>\r\n </span>\r\n</span>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MefDevSwitchComponent } from './switch.component';\r\n\r\n@NgModule({\r\n exports : [ MefDevSwitchComponent ],\r\n declarations: [ MefDevSwitchComponent ],\r\n imports : [ CommonModule ]\r\n})\r\nexport class MefDevSwitchModule {\r\n}\r\n","import { Component, Input, TemplateRef, ViewEncapsulation } from '@angular/core';\r\n\r\n/**\r\n * Component representing the body of a tab, which displays the tab's content.\r\n */\r\n@Component({\r\n selector: 'mefdev-tab-body',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl:\"./tab-body.component.html\",\r\n})\r\nexport class MefDevTabBodyComponent {\r\n /**\r\n * The content of the tab, which can be passed as a template.\r\n */\r\n @Input() content: TemplateRef<void>;\r\n}\r\n","<ng-template [ngTemplateOutlet]=\"content\"></ng-template>","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\r\nimport { toBoolean } from '../util/convert';\r\n\r\n@Directive({\r\n selector: '[mefdev-tab-label]',\r\n host: {\r\n '[class.nav-item]': 'true'\r\n }\r\n})\r\nexport class MefDevTabLabelDirective {\r\n private _disabled = false;\r\n\r\n @Input()\r\n @HostBinding('class.nav-item-disabled')\r\n set disabled(value: boolean) {\r\n this._disabled = toBoolean(value);\r\n }\r\n\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n constructor(public elementRef: ElementRef) {}\r\n\r\n getOffsetLeft(): number {\r\n return this.elementRef.nativeElement.offsetLeft;\r\n }\r\n\r\n getOffsetWidth(): number {\r\n return this.elementRef.nativeElement.offsetWidth;\r\n }\r\n\r\n getOffsetTop(): number {\r\n return this.elementRef.nativeElement.offsetTop;\r\n }\r\n\r\n getOffsetHeight(): number {\r\n return this.elementRef.nativeElement.offsetHeight;\r\n }\r\n}\r\n","\r\nconst availablePrefixs = ['moz', 'ms', 'webkit'];\r\n\r\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n let lastTime = 0;\r\n return function (callback: FrameRequestCallback): number {\r\n const currTime = new Date().getTime();\r\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n const id = window.setTimeout(() => { callback(currTime + timeToCall); }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n if (typeof window === 'undefined') {\r\n //@ts-ignore\r\n return () => null;\r\n }\r\n if (window.requestAnimationFrame) {\r\n return window.requestAnimationFrame.bind(window);\r\n }\r\n\r\n const prefix = availablePrefixs.filter(key => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n return prefix\r\n ? window[`${prefix}RequestAnimationFrame`]\r\n : requestAnimationFramePolyfill();\r\n}\r\n\r\nexport const reqAnimFrame = getRequestAnimationFrame();\r\n","import { Directive, ElementRef, HostBinding, Input, NgZone, Renderer2 } from '@angular/core';\r\nimport { reqAnimFrame } from '../util/request-animation';\r\nimport { toBoolean } from '../util/convert';\r\n\r\nexport type TabPositionMode = 'horizontal' | 'vertical';\r\n\r\n@Directive({\r\n selector: '[mefdev-tabs-ink-bar]',\r\n host: {\r\n '[class.nav-item]': 'true'\r\n }\r\n})\r\nexport class MefDevTabsInkBarDirective {\r\n private _animated = false;\r\n\r\n @Input()\r\n @HostBinding('class.nav-item-animated')\r\n set Animated(value: boolean) {\r\n this._animated = toBoolean(value);\r\n }\r\n\r\n get Animated(): boolean {\r\n return this._animated;\r\n }\r\n\r\n @Input() PositionMode: TabPositionMode = 'horizontal';\r\n\r\n constructor(private _renderer: Renderer2, private _elementRef: ElementRef, private _ngZone: NgZone) {}\r\n\r\n alignToElement(element: HTMLElement): void {\r\n this.show();\r\n\r\n this._ngZone.runOutsideAngular(() => {\r\n reqAnimFrame(() => {\r\n /** when horizontal remove height style and add transfrom left **/\r\n if (this.PositionMode === 'horizontal') {\r\n this._renderer.removeStyle(this._elementRef.nativeElement, 'height');\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'transform', `translate3d(${this._getLeftPosition(element)}, 0px, 0px)`);\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'width', this._getElementWidth(element));\r\n } else {\r\n /** when vertical remove width style and add transfrom top **/\r\n this._renderer.removeStyle(this._elementRef.nativeElement, 'width');\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'transform', `translate3d(0px, ${this._getTopPosition(element)}, 0px)`);\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'height', this._getElementHeight(element));\r\n }\r\n });\r\n });\r\n }\r\n\r\n show(): void {\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'visibility', 'visible');\r\n }\r\n\r\n setDisplay(value: string): void {\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'display', value);\r\n }\r\n\r\n hide(): void {\r\n this._renderer.setStyle(this._elementRef.nativeElement, 'visibility', 'hidden');\r\n }\r\n\r\n _getLeftPosition(element: HTMLElement): string {\r\n return element ? element.offsetLeft + 'px' : '0';\r\n }\r\n\r\n _getElementWidth(element: HTMLElement): string {\r\n return element ? element.offsetWidth + 'px' : '0';\r\n }\r\n\r\n _getTopPosition(element: HTMLElement): string {\r\n return element ? element.offsetTop + 'px' : '0';\r\n }\r\n\r\n _getElementHeight(element: HTMLElement): string {\r\n return element ? element.offsetHeight + 'px' : '0';\r\n }\r\n}\r\n","/** code from https://github.com/angular/material2 */\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n AfterContentChecked,\r\n AfterContentInit,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n ElementRef,\r\n HostBinding,\r\n Input,\r\n NgZone,\r\n Optional,\r\n QueryList,\r\n Renderer2,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Subscription, fromEvent, merge, of as observableOf } from 'rxjs';\r\nimport { auditTime, startWith } from 'rxjs/operators';\r\nimport { toBoolean } from '../util/convert';\r\nimport { MefDevTabLabelDirective } from './tab-label.directive';\r\nimport { MefDevTabsInkBarDirective } from './tabs-ink-bar.directive';\r\n\r\nconst EXAGGERATED_OVERSCROLL = 64;\r\nexport type ScrollDirection = 'after' | 'before';\r\n\r\n/** duplicated defined https://github.com/angular/angular-cli/issues/2034 **/\r\nexport type TabPositionMode = 'horizontal' | 'vertical';\r\n\r\n@Component({\r\n selector: 'mefdev-tabs-nav',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./tabs-nav.component.html\"\r\n})\r\nexport class MefDevTabsNavComponent implements AfterContentChecked, AfterContentInit {\r\n private _animated = true;\r\n private _hideBar = false;\r\n private _showPagination = true;\r\n\r\n _showPaginationControls = false;\r\n _disableScrollAfter = true;\r\n _disableScrollBefore = true;\r\n _scrollDistance = 0;\r\n _selectedIndexChanged = false;\r\n _realignInkBar: Subscription | null = null;\r\n _tabLabelCount: number;\r\n _scrollDistanceChanged: boolean;\r\n _selectedIndex = 0;\r\n _tabPositionMode: TabPositionMode = 'horizontal';\r\n _tabPosition = 'top';\r\n @Input() Size = 'default';\r\n _type = 'line';\r\n\r\n @Input()\r\n set Animated(value: boolean) {\r\n this._animated = toBoolean(value);\r\n }\r\n\r\n get Animated(): boolean {\r\n return this._animated;\r\n }\r\n\r\n @Input()\r\n set Position(value: string) {\r\n this._tabPosition = value;\r\n }\r\n\r\n get Position(): string {\r\n return this._tabPosition;\r\n }\r\n\r\n @Input()\r\n set HideBar(value: boolean) {\r\n this._hideBar = toBoolean(value);\r\n }\r\n\r\n get HideBar(): boolean {\r\n return this._hideBar;\r\n }\r\n\r\n @Input()\r\n set Type(value: string) {\r\n this._type = value;\r\n }\r\n\r\n get Type(): string {\r\n return this._type;\r\n }\r\n\r\n @ContentChild('tabBarExtraContent', { static: true }) _tabBarExtraContent: TemplateRef<void>;\r\n @ContentChildren(MefDevTabLabelDirective) _labelWrappers: QueryList<MefDevTabLabelDirective>;\r\n @ViewChild(MefDevTabsInkBarDirective, { static: true }) _inkBar: MefDevTabsInkBarDirective;\r\n @ViewChild('tabListContainer', { static: true }) _tabListContainer: ElementRef;\r\n @ViewChild('tabList', { static: true }) _tabList: ElementRef;\r\n\r\n @Input()\r\n set ShowPagination(value: boolean) {\r\n this._showPagination = toBoolean(value);\r\n }\r\n\r\n get ShowPagination(): boolean {\r\n return this._showPagination;\r\n }\r\n\r\n @Input()\r\n set PositionMode(value: TabPositionMode) {\r\n this._tabPositionMode = value;\r\n this._alignInkBarToSelectedTab();\r\n if (this.ShowPagination) {\r\n this._updatePagination();\r\n }\r\n }\r\n\r\n get PositionMode(): TabPositionMode {\r\n return this._tabPositionMode;\r\n }\r\n\r\n @Input()\r\n set selectedIndex(value: number) {\r\n this._selectedIndexChanged = this._selectedIndex !== value;\r\n\r\n this._selectedIndex = value;\r\n }\r\n\r\n get selectedIndex(): number {\r\n return this._selectedIndex;\r\n }\r\n\r\n constructor(\r\n public _elementRef: ElementRef,\r\n private _ngZone: NgZone,\r\n private _renderer: Renderer2,\r\n @Optional() private _dir: Directionality\r\n ) {}\r\n\r\n _onContentChanges(): void {\r\n if (this.ShowPagination) {\r\n this._updatePagination();\r\n }\r\n this._alignInkBarToSelectedTab();\r\n }\r\n\r\n _scrollHeader(scrollDir: ScrollDirection): void {\r\n // Move the scroll distance one-third the length of the tab list's viewport.\r\n this.scrollDistance += ((scrollDir === 'before' ? -1 : 1) * this.viewWidthHeightPix) / 3;\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n if (this._tabLabelCount !== this._labelWrappers.length) {\r\n if (this.ShowPagination) {\r\n this._updatePagination();\r\n }\r\n this._tabLabelCount = this._labelWrappers.length;\r\n }\r\n if (this._selectedIndexChanged) {\r\n this._scrollToLabel(this._selectedIndex);\r\n if (this.ShowPagination) {\r\n this._checkScrollingControls();\r\n }\r\n this._alignInkBarToSelectedTab();\r\n this._selectedIndexChanged = false;\r\n }\r\n if (this._scrollDistanceChanged) {\r\n if (this.ShowPagination) {\r\n this._updateTabScrollPosition();\r\n }\r\n this._scrollDistanceChanged = false;\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this._realignInkBar = this._ngZone.runOutsideAngular(() => {\r\n const dirChange = this._dir ? this._dir.change : observableOf(null);\r\n const resize = typeof window !== 'undefined' ? fromEvent(window, 'resize').pipe(auditTime(10)) : observableOf(null);\r\n //@ts-ignore\r\n return merge(dirChange, resize)\r\n .pipe(startWith(null))\r\n .subscribe(() => {\r\n if (this.ShowPagination) {\r\n this._updatePagination();\r\n }\r\n this._alignInkBarToSelectedTab();\r\n });\r\n });\r\n }\r\n\r\n _updateTabScrollPosition(): void {\r\n const scrollDistance = this.scrollDistance;\r\n if (this.PositionMode === 'horizontal') {\r\n const translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\r\n this._renderer.setStyle(this._tabList.nativeElement, 'transform', `translate3d(${translateX}px, 0, 0)`);\r\n } else {\r\n this._renderer.setStyle(this._tabList.nativeElement, 'transform', `translate3d(0,${-scrollDistance}px, 0)`);\r\n }\r\n }\r\n\r\n _updatePagination(): void {\r\n this._checkPaginationEnabled();\r\n this._checkScrollingControls();\r\n this._updateTabScrollPosition();\r\n }\r\n\r\n _checkPaginationEnabled(): void {\r\n this._showPaginationControls = this.tabListScrollWidthHeightPix > this.elementRefOffSetWidthHeight;\r\n\r\n if (!this._showPaginationControls) {\r\n this.scrollDistance = 0;\r\n }\r\n }\r\n\r\n _scrollToLabel(labelIndex: number): void {\r\n const selectedLabel = this._labelWrappers ? this._labelWrappers.toArray()[labelIndex] : null;\r\n\r\n if (!selectedLabel) {\r\n return;\r\n }\r\n\r\n // The view length is the visible width of the tab labels.\r\n\r\n let labelBeforePos: number;\r\n let labelAfterPos: number;\r\n if (this.PositionMode === 'horizontal') {\r\n if (this._getLayoutDirection() === 'ltr') {\r\n labelBeforePos = selectedLabel.getOffsetLeft();\r\n labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();\r\n } else {\r\n labelAfterPos = this._tabList.nativeElement.offsetWidth - selectedLabel.getOffsetLeft();\r\n labelBeforePos = labelAfterPos - selectedLabel.getOffsetWidth();\r\n }\r\n } else {\r\n labelBeforePos = selectedLabel.getOffsetTop();\r\n labelAfterPos = labelBeforePos + selectedLabel.getOffsetHeight();\r\n }\r\n const beforeVisiblePos = this.scrollDistance;\r\n const afterVisiblePos = this.scrollDistance + this.viewWidthHeightPix;\r\n\r\n if (labelBeforePos < beforeVisiblePos) {\r\n // Scroll header to move label to the before direction\r\n this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\r\n } else if (labelAfterPos > afterVisiblePos) {\r\n // Scroll header to move label to the after direction\r\n this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\r\n }\r\n }\r\n\r\n _checkScrollingControls(): void {\r\n // Check if the pagination arrows should be activated.\r\n this._disableScrollBefore = this.scrollDistance === 0;\r\n this._disableScrollAfter = this.scrollDistance === this._getMaxScrollDistance();\r\n }\r\n\r\n /**\r\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\r\n * is equal to the difference in width between the tab list container and tab header container.\r\n *\r\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\r\n * should be called sparingly.\r\n */\r\n _getMaxScrollDistance(): number {\r\n return this.tabListScrollWidthHeightPix - this.viewWidthHeightPix || 0;\r\n }\r\n\r\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\r\n set scrollDistance(v: number) {\r\n this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));\r\n\r\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\r\n // transformation can move the header.\r\n this._scrollDistanceChanged = true;\r\n\r\n this._checkScrollingControls();\r\n }\r\n\r\n get scrollDistance(): number {\r\n return this._scrollDistance;\r\n }\r\n\r\n get viewWidthHeightPix(): number {\r\n let PAGINATION_PIX = 0;\r\n if (this._showPaginationControls) {\r\n PAGINATION_PIX = 64;\r\n }\r\n if (this.PositionMode === 'horizontal') {\r\n return this._tabListContainer.nativeElement.offsetWidth - PAGINATION_PIX;\r\n } else {\r\n return this._tabListContainer.nativeElement.offsetHeight - PAGINATION_PIX;\r\n }\r\n }\r\n\r\n get tabListScrollWidthHeightPix(): number {\r\n if (this.PositionMode === 'horizontal') {\r\n return this._tabList.nativeElement.scrollWidth;\r\n } else {\r\n return this._tabList.nativeElement.scrollHeight;\r\n }\r\n }\r\n\r\n get elementRefOffSetWidthHeight(): number {\r\n if (this.PositionMode === 'horizontal') {\r\n return this._elementRef.nativeElement.offsetWidth;\r\n } else {\r\n return this._elementRef.nativeElement.offsetHeight;\r\n }\r\n }\r\n\r\n _getLayoutDirection(): Direction {\r\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\r\n }\r\n\r\n _alignInkBarToSelectedTab(): void {\r\n if (this.Type !== 'fillup') {\r\n const selectedLabelWrapper =\r\n this._labelWrappers && this._labelWrappers.length\r\n ? this._labelWrappers.toArray()[this.selectedIndex].elementRef.nativeElement\r\n : null;\r\n if (this._inkBar) {\r\n this._inkBar.alignToElement(selectedLabelWrapper);\r\n }\r\n }\r\n }\r\n}\r\n","<div class=\"nav-tabs-wrapper\" [class.scrolling]=\"_showPaginationControls\" #tabListContainer>\r\n <div class=\"nav-wrap\">\r\n <ul\r\n class=\"nav nav-tabs nav-tabs-{{ _type }} nav-tabs-{{ _tabPosition }}\"\r\n [class.tabs-nav-animated]=\"Animated\"\r\n #tabList\r\n (cdkObserveContent)=\"_onContentChanges()\"\r\n >\r\n <div\r\n class=\"active-bar\"\r\n mefdev-tabs-ink-bar\r\n [hidden]=\"HideBar\"\r\n [Animated]=\"Animated\"\r\n [PositionMode]=\"PositionMode\"\r\n style=\"display: block;\"\r\n ></div>\r\n <ng-content></ng-content>\r\n </ul>\r\n </div>\r\n </div>","/** code from https://github.com/angular/material2 */\r\n\r\nimport {\r\n AfterContentChecked,\r\n AfterViewInit,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MefDevTabComponent } from './tab.component';\r\nimport { MefDevTabsNavComponent } from './tabs-nav.component';\r\n\r\nexport interface AnimatedInterface {\r\n inkBar: boolean;\r\n tabPane: boolean;\r\n}\r\n\r\nexport class TabChangeEvent {\r\n index: number;\r\n tab: MefDevTabComponent;\r\n}\r\n\r\nexport type TabPosition = 'top' | 'bottom' | 'left' | 'right';\r\nexport type TabPositionMode = 'horizontal' | 'vertical';\r\nexport type TabType = 'line' | 'fillup' | 'linetriangle';\r\n\r\n\r\n/**\r\n * Represents a tab set or tab group component.\r\n * @example\r\n * <mefdev-tabset TabPosition=\"top\" Animated=\"true\" ShowPagination=\"true\">\r\n * <mefdev-tab label=\"Tab 1\">Tab 1 content</mefdev-tab>\r\n * <mefdev-tab label=\"Tab 2\">Tab 2 content</mefdev-tab>\r\n * </mefdev-tabset>\r\n *\r\n * Example of usage:\r\n * <example-url>https://mef.dev/ui_kit_demo/view/tabset</example-url>\r\n */\r\n@Component({\r\n selector: 'mefdev-tabset',\r\n encapsulation: ViewEncapsulation.None,\r\n templateUrl: \"./tabset.component.html\",\r\n})\r\nexport class MefDevTabSetComponent implements AfterContentChecked, OnInit, AfterViewInit {\r\n _el:any;\r\n _classMap:any;\r\n _prefixCls = 'nav-tabs';\r\n _width:any;\r\n _tabPosition: TabPosition = 'top';\r\n _tabPositionMode: TabPositionMode = 'horizontal';\r\n _indexToSelect: number | null = 0;\r\n _selectedIndex: number | null = null;\r\n _isViewInit = false;\r\n _tabs: MefDevTabComponent[] = [];\r\n _tabAnimation = '';\r\n _extra_tab_class = '';\r\n _extra_tabcontent_class = '';\r\n\r\n /**\r\n * Template reference for additional content to be displayed in the tab bar.\r\n */\r\n @Input() TabBarExtraTemplate: TemplateRef<void>;\r\n @ContentChild('TabBarExtraContent', { static: true }) TabBarExtraContent: TemplateRef<void>;\r\n @ViewChild('tabNav', { static: true }) _tabNav: MefDevTabsNavComponent;\r\n @ViewChild('tabContent', { static: true }) _tabContent: ElementRef;\r\n @ViewChild('hostContent', { static: true }) _hostContent: ElementRef;\r\n\r\n /**\r\n * Whether the tab set is animated. Can be a boolean or an object of type AnimatedInterface.\r\n * @example\r\n * - true (enables animation for both ink bar and tab pane)\r\n * - { inkBar: true, tabPane: false } (enables animation for ink bar only)\r\n * Default: true\r\n */\r\n\r\n @Input() Animated: AnimatedInterface | boolean = true;\r\n\r\n /**\r\n * Whether to show pagination controls for scrolling tabs.\r\n * @example true\r\n * Default: true\r\n */\r\n @Input() ShowPagination = true;\r\n\r\n /**\r\n * Whether the tab set is hidden.\r\n * @example true\r\n * Default: false\r\n */\r\n @Input() Hide = false;\r\n\r\n /**\r\n * The index of the selected tab.\r\n */\r\n @Input()\r\n set SelectedIndex(value: number | null) {\r\n this._indexToSelect = value;\r\n }\r\n\r\n get SelectedIndex(): number | null {\r\n return this._selectedIndex;\r\n }\r\n\r\n /**\r\n * Event emitted when the selected tab index changes.\r\n * @returns An Observable emitting the index of the selected tab.\r\n */\r\n @Output()\r\n get SelectedIndexChange(): Observable<number> {\r\n //@ts-ignore\r\n return this.SelectChange.pipe(map((event:any) => event.index));\r\n }\r\n\r\n /**\r\n * Event emitted when a tab is selected.\r\n * @example\r\n * <mefdev-tabset (SelectChange)=\"onTabSelect($event)\"></mefdev-tabset>\r\n */\r\n @Output() SelectChange: EventEmitter<TabChangeEvent> = new EventEmitter<TabChangeEvent>(true);\r\n\r\n /**\r\n * Size of the tab set. Can be 'default', 'small', or 'large'.\r\n * @example 'large'\r\n * Default: 'default'\r\n */\r\n @Input() Size = 'default';\r\n _type: TabType = 'line';\r\n tabs: MefDevTabComponent[] = [];\r\n\r\n /**\r\n * Position of the tab set. Can be 'top', 'bottom', 'left', or 'right'.\r\n */\r\n @Input()\r\n set TabPosition(value: TabPosition) {\r\n this._tabPosition = value;\r\n this._tabPositionMode = (value === 'top' || value === 'bottom') ? 'horizontal' : 'vertical';\r\n }\r\n get TabPosition(): TabPosition {\r\n return this._tabPosition;\r\n }\r\n\r\n /**\r\n * Additional CSS class for the tabs.\r\n */\r\n @Input()\r\n set extraTabClass(value: string) {\r\n this._extra_tab_class = value;\r\n }\r\n\r\n /**\r\n * Additional CSS class for the tab content.\r\n */\r\n @Input()\r\n set extraTabContentClass(value: string) {\r\n this._extra_tabcontent_class = value;\r\n }\r\n\r\n /**\r\n * Type of the tab set. Can be 'line', 'fillup', or 'linetriangle'.\r\n */\r\n @Input()\r\n set Type(value: TabType) {\r\n if (this._type === value) {\r\n return;\r\n }\r\n this._type = value;\r\n this._setClassMap();\r\n }\r\n\r\n /**\r\n * Animation to apply to the tabs. Accepts CSS animation name.\r\n */\r\n @Input()\r\n set tabAnimation(value: string) {\r\n this._tabAnimation = value;\r\n }\r\n\r\n get Type(): TabType {\r\n return this._type;\r\n }\r\n\r\n _setPosition(value: TabPosition): void {}\r\n\r\n _setClassMap(): void {}\r\n\r\n // Other properties, methods, and lifecycle hooks...\r\n\r\n /**\r\n * Selects the tab at the specified index.\r\n * @param index The index of the tab to select.\r\n * ```\r\n * <button (click)=\"clickLabel(0)\">Select Tab 1</button>\r\n *```\r\n */\r\n clickLabel(index: number): void {\r\n if (this._tabs[index].Disabled) {\r\n } else {\r\n this.SelectedIndex = index;\r\n this._tabs[index].pgClick.emit();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._setClassMap();\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n // Clamp the next selected index to the bounds of 0 and the tabs length. Note the `|| 0`, which\r\n // ensures that values like NaN can't get through and which would otherwise throw the\r\n // component into an infinite loop (since Math.max(NaN, 0) === NaN).\r\n const indexToSelect = (this._indexToSelect = Math.min(this._tabs.length - 1, Math.max(this._indexToSelect || 0, 0)));\r\n\r\n // If there is a change in selected index, emit a change event. Should not trigger if\r\n // the selected index has not yet been initialized.\r\n if (this._selectedIndex !== indexToSelect && this._selectedIndex != null) {\r\n this.SelectChange.emit(this._createChangeEvent(indexToSelect));\r\n }\r\n\r\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\r\n this._tabs.forEach((tab: MefDevTabComponent, index: number) => {\r\n tab.position = index - indexToSelect;\r\n // If there is already a selected tab, then set up an origin for the next selected tab\r\n // if it doesn't have one already.\r\n if (this._selectedIndex != null && tab.position === 0 && !tab.origin) {\r\n tab.origin = indexToSelect - this._selectedIndex;\r\n }\r\n });\r\n this._selectedIndex = indexToSelect;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this._isViewInit = true;\r\n }\r\n\r\n private _createChangeEvent(index: number): TabChangeEvent {\r\n const event = new TabChangeEvent();\r\n event.index = index;\r\n if (this._tabs && this._tabs.length) {\r\n event.tab = this._tabs[index];\r\n this._tabs.forEach((item, i) => {\r\n if (i !== index) {\r\n item.pgDeselect.emit();\r\n }\r\n });\r\n event.tab.pgSelect.emit();\r\n }\r\n return event;\r\n }\r\n\r\n get inkBarAnimated(): boolean {\r\n return this.Animated === true || (this.Animated as AnimatedInterface).inkBar === true;\r\n }\r\n\r\n get tabPaneAnimated(): boolean {\r\n return this.Animated === true || (this.Animated as AnimatedInterface).tabPane === true;\r\n }\r\n\r\n constructor(private _renderer: Renderer2) {}\r\n}\r\n","<div class=\"tab-wrapper tab-{{ _tabPositionMode }} {{ _tabPosition }} {{ _type }} {{ _extra_tab_class }}\" #hostContent>\r\n <mefdev-tabs-nav\r\n #tabNav\r\n [Size]=\"Size\"\r\n [Type]=\"Type\"\r\n [ShowPagination]=\"ShowPagination\"\r\n [PositionMode]=\"_tabPositionMode\"\r\n [Position]=\"_tabPosition\"\r\n [Animated]=\"inkBarAnimated\"\r\n [HideBar]=\"Hide\"\r\n [selectedIndex]=\"SelectedIndex\"\r\n >\r\n <ng-template #tabBarExtraContent>\r\n <ng-template [ngTemplateOutlet]=\"TabBarExtraTemplate || TabBarExtraContent\"></ng-template>\r\n </ng-template>\r\n <li mefdev-tab-label [disabled]=\"tab.disabled\" (click)=\"clickLabel(i)\" *ngFor=\"let tab of _tabs; let i = index\">\r\n <a href=\"javascript:void(0);\" class=\"\" [class.active]=\"SelectedIndex == i && !Hide\">\r\n <ng-template [ngTemplateOutlet]=\"tab._tabHeading\"></ng-template>\r\n </a>\r\n </mefdev-tabs-nav>\r\n <div class=\"tab-content-wrapper {{ _extra_tabcontent_class }}\">\r\n <div\r\n class=\"tab-content {{ _tabAnimation }}\"\r\n #tabContent\r\n [class.animated]=\"tabPaneAnimated\"\r\n [class.not-animated]=\"!tabPaneAnimated\"\r\n [style.margin-left.%]=\"tabPaneAnimated && -(SelectedIndex ?? -1) * 100\"\r\n >\r\n <mefdev-tab-body\r\n class=\"tab-pane\"\r\n [class.active]=\"SelectedIndex == i && !Hide\"\r\n [class.inactive]=\"SelectedIndex != i || Hide\"\r\n [content]=\"tab.content\"\r\n *ngFor=\"let tab of _tabs; let i = index\"\r\n >\r\n </mefdev-tab-body>\r\n </div>\r\n </div>\r\n </div>","import {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { toBoolean } from '../util/convert';\r\nimport { MefDevTabSetComponent } from './tabset.component';\r\n\r\n@Component({\r\n selector: 'mefdev-tab',\r\n templateUrl:\"./tab.component.html\" ,\r\n styles: [],\r\n host: {\r\n '[class.ant-tabs-tabpane]': 'true'\r\n }\r\n})\r\nexport class MefDevTabComponent implements OnDestroy, OnInit {\r\n private disabled = false;\r\n\r\n position: number | null = null;\r\n origin: number | null = null;\r\n\r\n /**\r\n * Sets the disabled state of the tab.\r\n *```html\r\n * <mefdev-tab [Disabled]=\"true\"></mefdev-tab>\r\n * ```\r\n */\r\n @Input()\r\n set Disabled(value: boolean) {\r\n this.disabled = toBoolean(value);\r\n }\r\n\r\n /**\r\n * Gets the disabled state of the tab.\r\n */\r\n get Disabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n /**\r\n * Event emitted when the tab is selected.\r\n *```html\r\n * <mefdev-tab (pgSelect)=\"onTabSelect()\"></mefdev-tab>\r\n * ```\r\n */\r\n @Output() pgSelect = new EventEmitter();\r\n\r\n /**\r\n * Event emitted when the tab is clicked.\r\n *```html\r\n * <mefdev-tab (pgClick)=\"onTabClick()\"></mefdev-tab>\r\n * ```\r\n */\r\n @Output() pgClick = new EventEmitter();\r\n\r\n /**\r\n * Event emitted when the tab is deselected.\r\n *```html\r\n * <mefdev-tab (pgDeselect)=\"onTabDeselect()\"></mefdev-tab>\r\n *```\r\n */\r\n @Output() pgDeselect = new EventEmitter();\r\n\r\n /**\r\n * Reference to the template for the tab heading.\r\n */\r\n @ContentChild('TabHeading', { static: true }) _tabHeading: TemplateRef<void>;\r\n\r\n /**\r\n * Reference to the template for the tab content.\r\n */\r\n @ViewChild(TemplateRef, { static: true }) _content: TemplateRef<void>;\r\n\r\n /**\r\n * Gets the template for the tab content.\r\n *```html\r\n * <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n *```\r\n */\r\n get content(): TemplateRef<void> | null {\r\n return this._content;\r\n }\r\n\r\n constructor(private MefDevTabSetComponent: MefDevTabSetComponent) {}\r\n\r\n /**\r\n * Initializes the tab component.\r\n */\r\n ngOnInit(): void {\r\n this.MefDevTabSetComponent._tabs.push(this);\r\n }\r\n\r\n /**\r\n * Cleans up resources when the tab component is destroyed.\r\n */\r\n ngOnDestroy(): void {\r\n // Remove the tab from the parent tabset component when destroyed\r\n this.MefDevTabSetComponent._tabs.splice(this.MefDevTabSetComponent._tabs.indexOf(this), 1);\r\n }\r\n}\r\n","<ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MefDevTabBodyComponent } from './tab-body.component';\r\nimport { MefDevTabLabelDirective } from './tab-label.directive';\r\nimport { MefDevTabComponent } from './tab.component';\r\nimport { MefDevTabsInkBarDirective } from './tabs-ink-bar.directive';\r\nimport { MefDevTabsNavComponent } from './tabs-nav.component';\r\nimport { MefDevTabSetComponent } from './tabset.component';\r\n\r\n@NgModule({\r\n declarations: [MefDevTabComponent, MefDevTabSetComponent, MefDevTabsNavComponent, MefDevTabLabelDirective, MefDevTabsInkBarDirective, MefDevTabBodyComponent],\r\n exports: [MefDevTabComponent, MefDevTabSetComponent, MefDevTabsNavComponent, MefDevTabLabelDirective, MefDevTabsInkBarDirective, MefDevTabBodyComponent],\r\n imports: [CommonModule]\r\n})\r\nexport class MefDevTabsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CollapseSetComponent","i2","i1.FilteredFieldService","i3.FilteredFieldItemComponent","i1.MefDevSelectComponent","i3.MefDevOptionComponent","i4.MefDevSelectComponent","i2.MefDevProgressComponent","i1","i3.pgCard","i2.SlideRightComponent","i2.StageComponent","i1.StepExecutorComponent","observableOf","i2.MefDevTabsInkBarDirective","i2.MefDevTabsNavComponent","i3.MefDevTabLabelDirective","i4.MefDevTabBodyComponent","i1.MefDevTabSetComponent"],"mappings":"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"}