ngx-sfc-components 0.0.31 → 0.0.32

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":"ngx-sfc-components.mjs","sources":["../../../projects/ngx-sfc-components/src/lib/components/tabs/service/tab.service.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/tabs-template.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/tabs.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/tabs.component.html","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-content-base.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-line/tab-label-line.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-line/tab-label-line.component.html","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-icon/tab-label-icon.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-icon/tab-label-icon.component.html","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-slider-base.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-label-icon/tab-label-icon-slider.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-label-icon/tab-label-icon-slider.component.html","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-label-line/tab-label-line-slider.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-label-line/tab-label-line-slider.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/side-menu.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/side-menu.model.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/header/side-menu-header.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/header/side-menu-header.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/item/content/side-menu-item-content.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/item/content/side-menu-item-content.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/item/side-menu-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/item/side-menu-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/title/side-menu-title.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/title/side-menu-title.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/side-menu.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/side-menu.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/dropdown/parts/item/dropdown-menu-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/dropdown/parts/item/dropdown-menu-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/dropdown/dropdown-menu.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/dropdown/dropdown-menu.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/navigation/parts/item/navigation-menu-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/navigation/parts/item/navigation-menu-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/navigation/navigation-menu.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/navigation/navigation-menu.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/router/parts/item/router-menu-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/router/parts/item/router-menu-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/router/router-menu.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/router/router-menu.component.html","../../../projects/ngx-sfc-components/src/lib/components/stars/star-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/stars/stars.component.ts","../../../projects/ngx-sfc-components/src/lib/components/stars/stars.component.html","../../../projects/ngx-sfc-components/src/lib/components/avatar/avatar.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/models/avatar-image.model.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/parts/badge/avatar-badge-position.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/parts/badge/avatar-badge.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/parts/badge/avatar-badge.component.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/parts/badge/avatar-badge.component.html","../../../projects/ngx-sfc-components/src/lib/components/avatar/avatar.component.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/avatar.component.html","../../../projects/ngx-sfc-components/src/lib/components/progress/progress-color.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/progress.utils.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/progress.component.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/line/progress-line.component.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/line/progress-line.component.html","../../../projects/ngx-sfc-components/src/lib/components/progress/semi-circle/progress-semi-circle.component.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/semi-circle/progress-semi-circle.component.html","../../../projects/ngx-sfc-components/src/lib/components/progress/circle/progress-circle.component.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/circle/progress-circle.component.html","../../../projects/ngx-sfc-components/src/lib/components/tags/tags.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tags/tags.component.html","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/button/slider-button-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/item/slider-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/item/slider-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/slider/service/slider/slider-move-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/service/slider/slider.service.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/service/automatic/slider-automatic.service.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/slider-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/button/slider-button.component.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/button/slider-button.component.html","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/pagination/slider-pagination.component.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/pagination/slider-pagination.component.html","../../../projects/ngx-sfc-components/src/lib/components/slider/slider.component.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/slider.component.html","../../../projects/ngx-sfc-components/src/lib/components/timeline/parts/item/timeline-item-position.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/timeline/parts/item/timeline-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/timeline/parts/item/timeline-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/timeline/timeline.component.ts","../../../projects/ngx-sfc-components/src/lib/components/timeline/timeline.component.html","../../../projects/ngx-sfc-components/src/lib/components/notification/enums/notification-template.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/notification/enums/notification-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/notification/parts/content/notification-content.component.ts","../../../projects/ngx-sfc-components/src/lib/components/notification/parts/content/notification-content.component.html","../../../projects/ngx-sfc-components/src/lib/components/notification/notification.component.ts","../../../projects/ngx-sfc-components/src/lib/components/notification/notification.component.html","../../../projects/ngx-sfc-components/src/lib/components/chart/chart.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/chart/service/theme/chart-theme.service.ts","../../../projects/ngx-sfc-components/src/lib/components/chart/service/settings/chart-settings.service.ts","../../../projects/ngx-sfc-components/src/lib/components/chart/chart.component.ts","../../../projects/ngx-sfc-components/src/lib/components/chart/chart.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/table-column-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/toggle/service/columns-toggle.service.ts","../../../projects/ngx-sfc-components/src/lib/components/table/service/select/table-select.service.ts","../../../projects/ngx-sfc-components/src/lib/components/table/enums/table-data-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/table/table.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/table/enums/table-template.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/default/default-table-column.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/default/default-table-column.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/selectable/selectable-table-column.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/selectable/selectable-table-column.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/selectable/selectable-table-column.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/toggle/columns-toggle.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/toggle/columns-toggle.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/toggle/columns-toggle.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/sorting/sorting-column.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/sorting/sorting-column.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/sorting/sorting-column.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/base-default-table-content.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/default/default-table-row.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/default/default-table-row.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/cards/default/default-table-card.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/cards/default/default-table-card.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/table.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/table.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/expanded/expanded-table-row-template.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.html","../../../projects/ngx-sfc-components/src/lib/components/carousel/carousel.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/directive/carousel-slide.directive.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/carousel/carousel-service.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/carousel/carousel-service.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/carousel/carousel.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/animate/carousel-animate.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/autoplay/carousel-autoplay.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/lazy/carousel-lazy-load.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/navigation/carousel-navigation.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/parts/stage/carousel-stage.component.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/parts/stage/carousel-stage.component.html","../../../projects/ngx-sfc-components/src/lib/components/carousel/carousel.component.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/carousel.component.html","../../../projects/ngx-sfc-components/src/lib/ngx-sfc-components.module.ts","../../../projects/ngx-sfc-components/src/public-api.ts","../../../projects/ngx-sfc-components/src/ngx-sfc-components.ts"],"sourcesContent":["import { Observable, Subject } from 'rxjs';\r\n\r\nexport class TabService {\r\n\r\n private selectSubject: Subject<number> = new Subject<number>();\r\n\r\n public selected$: Observable<number> = this.selectSubject.asObservable();\r\n\r\n select(index: number) {\r\n this.selectSubject.next(index);\r\n }\r\n}\r\n","export enum TabsTemplate {\r\n Label = 'label',\r\n Slider = 'slider',\r\n Body = 'body'\r\n}","import { Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, TemplateRef } from '@angular/core';\r\nimport { CommonConstants, firstOrDefault, isDefined, TemplateReferenceDirective } from 'ngx-sfc-common';\r\nimport { BehaviorSubject, combineLatest, map, Observable, startWith } from 'rxjs';\r\nimport { TabService } from './service/tab.service';\r\nimport { TabsTemplate } from './tabs-template.enum';\r\nimport { ITabsViewModel } from './models/tabs-view.model';\r\nimport { ITabModel } from './models/tab.model';\r\nimport { empty } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss'],\r\n providers: [TabService]\r\n})\r\nexport class TabsComponent implements OnInit {\r\n\r\n TabsTemplate = TabsTemplate;\r\n\r\n @Input()\r\n tabs: ITabModel[] = [];\r\n\r\n // Template references \r\n\r\n @Input()\r\n label?: TemplateRef<any>;\r\n\r\n @Input()\r\n slider?: TemplateRef<any>;\r\n\r\n @Input()\r\n body?: TemplateRef<any>;\r\n\r\n // End Template references\r\n\r\n @Output()\r\n selected: EventEmitter<ITabModel> = new EventEmitter<ITabModel>();\r\n\r\n @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n public vm$?: Observable<ITabsViewModel>;\r\n\r\n private tabsSubject?: BehaviorSubject<ITabModel[]>;\r\n\r\n public data: any | empty = null;\r\n\r\n constructor(private tabService: TabService) { }\r\n\r\n ngOnInit(): void {\r\n this.tabsSubject = new BehaviorSubject<ITabModel[]>(this.tabs)\r\n\r\n const selectedIndex = this.getSelectedIndex(this.tabs),\r\n tabs$ = this.tabsSubject.asObservable(),\r\n selected$ = this.tabService.selected$\r\n .pipe(\r\n startWith(selectedIndex)\r\n );\r\n\r\n this.vm$ = combineLatest([\r\n tabs$,\r\n selected$\r\n ]).pipe(\r\n map(([tabs, selectedIndex]) => {\r\n this.updateSelected(tabs, selectedIndex);\r\n\r\n return {\r\n tabs: tabs,\r\n selectedTab: isDefined(selectedIndex) ? tabs[selectedIndex] : null,\r\n sliderContextData: { count: tabs.length, index: selectedIndex },\r\n tabWidth: 100 / (tabs ? tabs.length : 1)\r\n }\r\n })\r\n );\r\n }\r\n\r\n public selectTab(tab: ITabModel, index: number) {\r\n if (!tab.disabled && !tab.selected) {\r\n this.tabService.select(index);\r\n this.selected.emit(tab);\r\n }\r\n }\r\n\r\n private getSelectedIndex(tabs: ITabModel[]): number {\r\n let selectedIndex = tabs.indexOf(firstOrDefault(tabs,\r\n tab => tab.selected! && !tab.disabled) as ITabModel);\r\n\r\n if (selectedIndex == CommonConstants.NOT_FOUND_INDEX) {\r\n selectedIndex = tabs.indexOf(firstOrDefault(tabs, tab => !tab.disabled) as ITabModel);\r\n return selectedIndex == CommonConstants.NOT_FOUND_INDEX ? 0 : selectedIndex;\r\n }\r\n\r\n return selectedIndex;\r\n }\r\n\r\n private updateSelected(tabs: ITabModel[], selectedIndex: number): void {\r\n tabs.forEach((item: ITabModel, index: number) => {\r\n item.selected = index == selectedIndex;\r\n\r\n if (item.selected) {\r\n this.data = item.data;\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>","import {\r\n Directive, HostBinding, Input\r\n} from \"@angular/core\";\r\nimport { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { UIClass } from \"ngx-sfc-common\";\r\n\r\n@Directive()\r\nexport class TabLabelContentBase {\r\n\r\n @Input()\r\n label?: string;\r\n\r\n @Input()\r\n icon?: IconDefinition;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Disabled)\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Selected)\r\n selected = false;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { TabLabelContentBase } from '../tab-label-content-base.component';\r\n\r\n@Component({\r\n selector: 'sfc-tab-label-line',\r\n templateUrl: './tab-label-line.component.html',\r\n styleUrls: ['./tab-label-line.component.scss']\r\n})\r\nexport class TabLabelLineComponent extends TabLabelContentBase {\r\n\r\n @Input()\r\n image: string | null = null;\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"icon\" [imageSrc]=\"image\" [sfcComponentSize] [customSize]=\"1.8\"></sfc-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { TabLabelContentBase } from '../tab-label-content-base.component';\r\n\r\n@Component({\r\n selector: 'sfc-tab-label-icon',\r\n templateUrl: './tab-label-icon.component.html',\r\n styleUrls: ['./tab-label-icon.component.scss']\r\n})\r\nexport class TabLabelIconComponent\r\n extends TabLabelContentBase {\r\n}\r\n","<div class=\"container\">\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n</div>","import {\r\n Directive, Input\r\n} from \"@angular/core\";\r\n\r\n@Directive()\r\nexport abstract class TabSliderBase {\r\n @Input()\r\n count: number = 1;\r\n\r\n @Input()\r\n index: number = 0;\r\n\r\n abstract get style(): any;\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { getCalcValue, UIConstants } from 'ngx-sfc-common';\r\nimport { TabSliderBase } from '../tab-slider-base.component';\r\n\r\n@Component({\r\n selector: 'sfc-tab-label-icon-slider',\r\n templateUrl: './tab-label-icon-slider.component.html',\r\n styleUrls: ['./tab-label-icon-slider.component.scss']\r\n})\r\nexport class TabLabelIconSliderComponent extends TabSliderBase {\r\n\r\n get style(): any {\r\n return {\r\n width: getCalcValue(this.count),\r\n transform: `translateX(${100 * this.index}${UIConstants.CSS_PERCENTAGE})`\r\n }\r\n }\r\n}\r\n","<div class=\"slider\" [ngStyle]=\"style\">\r\n <div class=\"indicator\"></div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { getCalcValue } from 'ngx-sfc-common';\r\nimport { TabSliderBase } from '../tab-slider-base.component';\r\n\r\n@Component({\r\n selector: 'sfc-tab-label-line-slider',\r\n templateUrl: './tab-label-line-slider.component.html',\r\n styleUrls: ['./tab-label-line-slider.component.scss']\r\n})\r\nexport class TabLabelLineSliderComponent extends TabSliderBase {\r\n\r\n get style() {\r\n return {\r\n width: getCalcValue(this.count),\r\n left: getCalcValue((this.count / this.index))\r\n }\r\n }\r\n}\r\n","<div class=\"slider\" [ngStyle]=\"style\"></div>","export class SideMenuConstants {\r\n static CSS_SWITCH_CLASS = 'switch';\r\n}","import { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { empty } from \"ngx-sfc-common\";\r\n\r\nexport interface ISideMenuModel {\r\n open?: boolean;\r\n switch?: boolean | empty;\r\n label?: string | empty;\r\n items?: ISideMenuItemModel[];\r\n}\r\n\r\nexport interface ISideMenuItemModel {\r\n label: string;\r\n active?: boolean;\r\n type: SideMenuItemType;\r\n id?: string | empty; \r\n open?: boolean; \r\n icon?: IconDefinition | empty; \r\n items?: ISideMenuItemModel[];\r\n click?: (item: ISideMenuItemModel) => void;\r\n}\r\n\r\nexport enum SideMenuItemType {\r\n Item = 'item',\r\n Title = 'title'\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\r\nimport { CommonConstants, empty, isDefined, UIClass } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu-header',\r\n templateUrl: './side-menu-header.component.html',\r\n styleUrls: ['./side-menu-header.component.scss']\r\n})\r\nexport class SideMenuHeaderComponent implements OnInit {\r\n\r\n private readonly DEFAULT_MENU_HEADER_TEXT = 'Menu';\r\n\r\n @Input()\r\n label?: string | empty = CommonConstants.EMPTY_STRING;\r\n\r\n @Input()\r\n switch: boolean = true;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n @Output()\r\n toggle: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n ngOnInit(): void {\r\n this.label = isDefined(this.label) ? this.label : this.DEFAULT_MENU_HEADER_TEXT;\r\n }\r\n}\r\n","<li>\r\n <span>{{label}}</span>\r\n <sfc-hamburger *ngIf=\"switch\" [open]=\"open\" (click)=\"toggle.emit()\"></sfc-hamburger>\r\n</li>","import { Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { ISideMenuItemModel, SideMenuItemType } from '../../../side-menu.model';\r\nimport { faAngleUp, faAngleDown, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu-item-content',\r\n templateUrl: './side-menu-item-content.component.html',\r\n styleUrls: ['./side-menu-item-content.component.scss']\r\n})\r\nexport class SideMenuItemContentComponent {\r\n\r\n private readonly ANGLE_UP_ICON = faAngleUp;\r\n private readonly ANGLE_DOWM_ICON = faAngleDown;\r\n\r\n @Input()\r\n item: ISideMenuItemModel = {\r\n id: CommonConstants.EMPTY_STRING,\r\n label: CommonConstants.EMPTY_STRING,\r\n icon: null,\r\n type: SideMenuItemType.Item,\r\n active: false\r\n };\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Active)\r\n active: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n @Input()\r\n openParent: boolean = false;\r\n\r\n @Input()\r\n hasChildren: boolean = false;\r\n\r\n @Output()\r\n selectItem: EventEmitter<ISideMenuItemModel> = new EventEmitter<ISideMenuItemModel>();\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.selectItem.emit(this.item);\r\n\r\n if (this.item.click)\r\n this.item.click(this.item);\r\n }\r\n\r\n get expandIcon(): IconDefinition {\r\n return this.openParent ? this.ANGLE_UP_ICON : this.ANGLE_DOWM_ICON;\r\n }\r\n}\r\n","<li>\r\n <div class=\"item-container\">\r\n <div class=\"item\">\r\n <a>\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n </a>\r\n </div>\r\n <span class=\"label\">{{item.label}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"hasChildren\" class=\"expand-container\">\r\n <fa-icon [icon]=\"expandIcon\"></fa-icon>\r\n </div>\r\n</li>","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\r\nimport { any, CommonConstants, firstOrDefault, isDefined, UIClass } from 'ngx-sfc-common';\r\nimport { ISideMenuItemModel, SideMenuItemType } from '../../side-menu.model';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu-item',\r\n templateUrl: './side-menu-item.component.html',\r\n styleUrls: ['./side-menu-item.component.scss'],\r\n animations: [\r\n trigger(\r\n 'enterAnimation', [\r\n transition(':enter', [\r\n style({ transform: 'translateX(-20%)', opacity: 0 }),\r\n animate('300ms', style({ transform: 'translateX(0%)', opacity: 1 }))\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'translateX(0%)', opacity: 1 }),\r\n animate('300ms', style({ transform: 'translateX(-20%)', opacity: 0 }))\r\n ])\r\n ]\r\n )\r\n ]\r\n})\r\nexport class SideMenuItemComponent implements OnInit {\r\n\r\n @Input()\r\n item: ISideMenuItemModel = {\r\n id: CommonConstants.EMPTY_STRING,\r\n label: CommonConstants.EMPTY_STRING,\r\n icon: null,\r\n type: SideMenuItemType.Item,\r\n items: [],\r\n active: false\r\n };\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n @Output()\r\n selectItem: EventEmitter<ISideMenuItemModel> = new EventEmitter<ISideMenuItemModel>();\r\n\r\n openParent: boolean = false;\r\n\r\n private get hasActiveChild(): boolean {\r\n return isDefined(firstOrDefault(this.item.items, (item: ISideMenuItemModel) => item.active || false));\r\n }\r\n\r\n public hasChildren(item: ISideMenuItemModel): boolean {\r\n return any(item.items);\r\n }\r\n\r\n public isActive(item: ISideMenuItemModel): boolean {\r\n return this.hasChildren(item)\r\n ? this.hasActiveChild && !this.openParent\r\n : item.active || false\r\n }\r\n\r\n ngOnInit(): void {\r\n this.openParent = this.hasActiveChild || (this.item.open || false);\r\n }\r\n\r\n public onParentClick(item: ISideMenuItemModel): void {\r\n this.openParent = !this.openParent;\r\n this.selectItem.emit(item);\r\n }\r\n\r\n public onChildClick(item: ISideMenuItemModel, child: ISideMenuItemModel): void {\r\n item.items?.forEach((item) => item.active = false);\r\n this.selectItem.emit(child);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <sfc-side-menu-item-content [item]=\"item\" [active]=\"isActive(item)\" [open]=\"open\" [openParent]=\"openParent\"\r\n [hasChildren]=\"hasChildren(item)\" (selectItem)=\"onParentClick(item)\">\r\n </sfc-side-menu-item-content>\r\n\r\n <div class=\"children\" *ngIf=\"hasChildren(item) && openParent\" [@enterAnimation]>\r\n\r\n <sfc-side-menu-item-content *ngFor=\"let child of item.items\" [item]=\"child\" [open]=\"open\"\r\n [active]=\"isActive(child)\" [openParent]=\"true\" (selectItem)=\"onChildClick(item, child)\">\r\n </sfc-side-menu-item-content>\r\n </div>\r\n</div>","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu-title',\r\n templateUrl: './side-menu-title.component.html',\r\n styleUrls: ['./side-menu-title.component.scss']\r\n})\r\nexport class SideMenuTitleComponent {\r\n\r\n @Input()\r\n label: string = CommonConstants.EMPTY_STRING;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n}\r\n","<sfc-delimeter></sfc-delimeter>\r\n<li><span>{{label}}</span></li>","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { any, isDefined, UIClass } from 'ngx-sfc-common';\r\nimport { SideMenuConstants } from './side-menu.constants';\r\nimport { ISideMenuItemModel, ISideMenuModel, SideMenuItemType } from './side-menu.model';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu',\r\n templateUrl: './side-menu.component.html',\r\n styleUrls: ['./side-menu.component.scss']\r\n})\r\nexport class SideMenuComponent {\r\n\r\n SideMenuItemType = SideMenuItemType;\r\n\r\n @Input()\r\n model: ISideMenuModel = { open: false, items: [] };\r\n\r\n @Output()\r\n selected: EventEmitter<ISideMenuItemModel> = new EventEmitter<ISideMenuItemModel>();\r\n\r\n @HostBinding('class.' + UIClass.Open)\r\n get open(): boolean {\r\n return this.model.open || !this.switch;\r\n }\r\n\r\n set open(value: boolean) {\r\n this.model.open = value;\r\n }\r\n\r\n @HostBinding(`class.${SideMenuConstants.CSS_SWITCH_CLASS}`)\r\n get switch(): boolean {\r\n return isDefined(this.model.switch) ? this.model.switch! : true;\r\n }\r\n\r\n onItemSelect(item: ISideMenuItemModel) {\r\n // handle only items without childrens\r\n if (!any(item.items)) {\r\n this.model.items!.forEach((item) => {\r\n item.active = false;\r\n\r\n if (any(item.items))\r\n item.items?.forEach((item) => item.active = false);\r\n });\r\n\r\n item.active = true;\r\n }\r\n\r\n this.selected.emit(item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <ul>\r\n <sfc-side-menu-header [label]=\"model.label\" [open]=\"open\" [switch]=\"switch\" (toggle)=\"open =!open\">\r\n </sfc-side-menu-header>\r\n\r\n <ng-container *ngFor=\"let item of model.items\" [ngSwitch]=\"item.type\">\r\n <sfc-side-menu-item *ngSwitchCase=\"SideMenuItemType.Item\" [item]=\"item\" [open]=\"open\"\r\n (selectItem)=\"onItemSelect($event)\">\r\n </sfc-side-menu-item>\r\n\r\n <sfc-side-menu-title *ngSwitchCase=\"SideMenuItemType.Title\" [label]=\"item.label\" [open]=\"open\">\r\n </sfc-side-menu-title>\r\n </ng-container>\r\n </ul>\r\n</div>","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { IDropdownMenuItemModel } from './dropdown-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-dropdown-menu-item',\r\n templateUrl: './dropdown-menu-item.component.html',\r\n styleUrls: ['./dropdown-menu-item.component.scss']\r\n})\r\nexport class DropdownMenuItemComponent {\r\n\r\n /* Inputs */\r\n\r\n @Input()\r\n item: IDropdownMenuItemModel = { label: CommonConstants.EMPTY_STRING };\r\n\r\n /* End Inputs */\r\n\r\n /* Host bindings */\r\n\r\n @HostBinding(`class.${UIClass.Active}`)\r\n private get _active(): boolean { return this.item.active || false; }\r\n\r\n /* End Host bindings */\r\n\r\n /* Host listeners */\r\n\r\n @HostListener('click')\r\n click(): void {\r\n if (this.item.click)\r\n this.item.click(this.item);\r\n }\r\n\r\n /* End Host listeners */\r\n}\r\n","<li>\r\n <sfc-icon [icon]=\"item.icon\" [imageSrc]=\"item.image\"></sfc-icon>\r\n <a>{{item.label}}</a>\r\n</li>\r\n\r\n<sfc-delimeter *ngIf=\"item.delimeter\"></sfc-delimeter>","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { AfterContentInit, Component, EventEmitter, HostBinding, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { ClickOutsideEvent, isDefined, isNullOrEmptyString, MediaLimits, Position, ResizeService, UIClass, WINDOW } from 'ngx-sfc-common';\r\nimport { filter, startWith, Subscription } from 'rxjs';\r\nimport { IDropdownMenuItemModel } from './parts/item/dropdown-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-dropdown-menu',\r\n templateUrl: './dropdown-menu.component.html',\r\n styleUrls: ['./dropdown-menu.component.scss'],\r\n animations: [\r\n trigger(\r\n 'openClose',\r\n [\r\n state('true', style({\r\n opacity: 1\r\n })),\r\n state('false', style({\r\n opacity: 0,\r\n })),\r\n transition('true <=> false', [\r\n animate('0.1s')\r\n ])\r\n ]\r\n )\r\n ]\r\n})\r\nexport class DropdownMenuComponent implements OnDestroy, OnInit, AfterContentInit {\r\n\r\n @Input()\r\n items: IDropdownMenuItemModel[] = [];\r\n\r\n @Input()\r\n icon?: IconDefinition;\r\n\r\n @Input()\r\n defaultDots: boolean = true;\r\n\r\n @Input()\r\n label?: string;\r\n\r\n @Input()\r\n hideOnClick: boolean = true;\r\n\r\n @Input()\r\n hideOnClickOutside: boolean = true;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Bordered)\r\n bordered: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Filled)\r\n filled: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class')\r\n position: Position[] = [Position.Left];\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n @Input()\r\n autoResize: boolean = true;\r\n\r\n @Output()\r\n selected: EventEmitter<IDropdownMenuItemModel> = new EventEmitter<IDropdownMenuItemModel>();\r\n\r\n // preserved position\r\n private _position = [Position.Left];\r\n\r\n private _resizeSubscription?: Subscription;\r\n\r\n get showDots(): boolean {\r\n return this.defaultDots && isNullOrEmptyString(this.label) && !isDefined(this.icon);\r\n }\r\n\r\n constructor(private resizeService: ResizeService, @Inject(WINDOW) private window: Window) { }\r\n\r\n ngOnInit(): void {\r\n this._position = this.position;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this._resizeSubscription = this.resizeService.onResize$\r\n .pipe(\r\n startWith(this.window),\r\n filter(_ => this.autoResize)\r\n )\r\n .subscribe(window => {\r\n this.position = window.innerWidth <= MediaLimits.Tablet\r\n ? [Position.Bottom, Position.Center] : this._position\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._resizeSubscription?.unsubscribe();\r\n }\r\n\r\n public onClick(item: IDropdownMenuItemModel, event: Event): void {\r\n this.preventPropagation(event);\r\n\r\n if (this.hideOnClick)\r\n this.open = false;\r\n\r\n this.items.forEach(item => item.active = false);\r\n item.active = true;\r\n\r\n this.selected.emit(item);\r\n }\r\n\r\n public toggle(event: Event): void {\r\n this.preventPropagation(event);\r\n this.open = !this.open;\r\n }\r\n\r\n public onClickOutside(event: ClickOutsideEvent): void {\r\n if (event.value && this.open) {\r\n this.open = false;\r\n }\r\n }\r\n\r\n private preventPropagation(event: Event): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n}\r\n","<ul [sfcClickOutside]=\"hideOnClickOutside\" (action)=\"onClickOutside($event)\">\r\n <li>\r\n <div class=\"container\" (click)=\"toggle($event)\">\r\n <span *ngIf=\"label\">{{label}}</span>\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <sfc-dots *ngIf=\"showDots\" [open]=\"open\"></sfc-dots>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <ul *ngIf=\"items.length\" [@openClose]=\"open\" class=\"dropdown-container\">\r\n <sfc-dropdown-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item, $event)\">\r\n </sfc-dropdown-menu-item>\r\n </ul>\r\n </li>\r\n</ul>","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { INavigationMenuItemModel } from './navigation-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-navigation-menu-item',\r\n templateUrl: './navigation-menu-item.component.html',\r\n styleUrls: ['./navigation-menu-item.component.scss']\r\n})\r\nexport class NavigationMenuItemComponent {\r\n\r\n @Input()\r\n item: INavigationMenuItemModel = { label: CommonConstants.EMPTY_STRING, active: false };\r\n\r\n @HostBinding('class.' + UIClass.Active)\r\n get active(): boolean {\r\n return this.item.active;\r\n }\r\n\r\n @HostListener('click')\r\n click() {\r\n if (this.item.click)\r\n this.item.click(this.item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n <span>{{item.label}}</span>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { INavigationMenuItemModel } from './parts/item/navigation-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-navigation-menu',\r\n templateUrl: './navigation-menu.component.html',\r\n styleUrls: ['./navigation-menu.component.scss']\r\n})\r\nexport class NavigationMenuComponent {\r\n\r\n @Input()\r\n items: INavigationMenuItemModel[] = [];\r\n\r\n @Output()\r\n selected: EventEmitter<INavigationMenuItemModel> = new EventEmitter<INavigationMenuItemModel>();\r\n\r\n onClick(item: INavigationMenuItemModel) {\r\n this.items.forEach((item) => item.active = false);\r\n item.active = true;\r\n this.selected.emit(item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"items\">\r\n <sfc-navigation-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-navigation-menu-item>\r\n </div>\r\n</div>","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { IRouterMenuItemModel } from './router-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-router-menu-item',\r\n templateUrl: './router-menu-item.component.html',\r\n styleUrls: ['./router-menu-item.component.scss']\r\n})\r\nexport class RouterMenuItemComponent {\r\n\r\n @Input()\r\n item: IRouterMenuItemModel = { id: CommonConstants.EMPTY_STRING, label: CommonConstants.EMPTY_STRING, selected: false };\r\n\r\n @HostBinding('class.' + UIClass.Selected)\r\n get _selected(): boolean {\r\n return this.item.selected ?? false;\r\n }\r\n\r\n @HostListener('click')\r\n click(): void {\r\n if (this.item.click)\r\n this.item.click(this.item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"item.icon\" [imageSrc]=\"item.image\"></sfc-icon>\r\n <span>{{item.label}}</span>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { all } from 'ngx-sfc-common';\r\nimport { IRouterMenuItemModel } from './parts/item/router-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-router-menu',\r\n templateUrl: './router-menu.component.html',\r\n styleUrls: ['./router-menu.component.scss']\r\n})\r\nexport class RouterMenuComponent implements OnInit {\r\n\r\n @Input()\r\n items: IRouterMenuItemModel[] = [];\r\n\r\n @Output()\r\n selected: EventEmitter<IRouterMenuItemModel> = new EventEmitter<IRouterMenuItemModel>();\r\n\r\n ngOnInit(): void {\r\n if (all(this.items, (item: IRouterMenuItemModel) => !(item.selected ?? false))) {\r\n this.items[0].selected = true;\r\n }\r\n }\r\n\r\n public onClick(item: IRouterMenuItemModel): void {\r\n this.items.forEach((item: IRouterMenuItemModel) => item.selected = false);\r\n item.selected = true;\r\n this.selected.emit(item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <div class=\"items\">\r\n <sfc-router-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-router-menu-item>\r\n </div>\r\n </div> \r\n</div>","export enum StarType {\r\n None = 'none',\r\n S25 = 's25',\r\n Half = 'half',\r\n S75 = 's75',\r\n Full = 'full'\r\n}","import { Component, Input } from '@angular/core';\r\nimport { StarType } from './star-type.enum';\r\n\r\n@Component({\r\n selector: 'sfc-stars',\r\n templateUrl: './stars.component.html',\r\n styleUrls: ['./stars.component.scss']\r\n})\r\nexport class StarsComponent {\r\n\r\n private readonly DEFAULT_COUNT = 5;\r\n\r\n @Input()\r\n value: number = 0;\r\n\r\n @Input()\r\n count: number = this.DEFAULT_COUNT;\r\n\r\n get stars(): Array<number> {\r\n return new Array(this.count);\r\n }\r\n\r\n getStarType(index: number) {\r\n index += 1;\r\n\r\n if ((index - this.value) >= 1) {\r\n return StarType.None;\r\n }\r\n\r\n if (this.value >= index) {\r\n return StarType.Full;\r\n }\r\n\r\n const part = this.value - Math.floor(this.value);\r\n\r\n if (part < 0.25 || (part >= 0.25 && part < 0.5)) {\r\n return StarType.S25;\r\n }\r\n\r\n if (part >= 0.5 && part < 0.75) {\r\n return StarType.Half;\r\n }\r\n\r\n return StarType.S75;\r\n }\r\n}\r\n","<div class=\"container\">\r\n <button *ngFor=\"let star of stars; let i = index;\" [ngClass]=\"getStarType(i)\"></button>\r\n</div>","export class AvatarConstants {\r\n static DEFAULT_RADIUS = 80;\r\n static DEFAULT_STROKE = 2;\r\n static STARS_DEFAULT_COUNT = 5;\r\n static PROGRESS_DEFAULT_COLOR = '#CCD1D9';\r\n static PROGRESS_DEFAULT_FILLED_COLOR = '#2bbbad';\r\n static DATA_DEFAULT_IMAGE = \"data:image/png;base64,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\";\r\n}\r\n","import { CommonConstants } from \"ngx-sfc-common\";\r\n\r\nexport class AvatarImageModel {\r\n\r\n NormalizedRadius: number;\r\n\r\n ImageRadius: number;\r\n\r\n Circumference: number;\r\n\r\n Height: number;\r\n\r\n Width: number;\r\n\r\n ImageId: string;\r\n\r\n Stroke: number;\r\n\r\n constructor(private radius: number, private stroke: number, private image: string | File) {\r\n this.NormalizedRadius = this.radius - this.stroke * 2;\r\n this.Circumference = Math.round(this.NormalizedRadius * 2 * Math.PI);\r\n this.Height = this.Width = this.radius * 2;\r\n this.ImageRadius = this.NormalizedRadius - (this.NormalizedRadius * 0.15);\r\n this.ImageId = image instanceof File ? '' : Math.random() + ((this.image as string)?.split(/(\\\\|\\/)/g).pop() || CommonConstants.EMPTY_STRING);\r\n this.Stroke = stroke;\r\n }\r\n}\r\n","export enum AvatarBadgePosition {\r\n Top = 'top',\r\n RightTop = 'right-top',\r\n Right = 'right',\r\n RightBottom = 'right-bottom',\r\n Bottom = 'bottom',\r\n LeftTop = 'left-top',\r\n Left = 'left',\r\n LeftBottom = 'left-bottom',\r\n}","export class AvatarBadgeConstants {\r\n static SIZE_MULTIPLIER = 0.375;\r\n static TEXT_SIZE_MULTIPLIER = 0.2;\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { empty } from 'ngx-sfc-common';\r\nimport { getCssLikeValue, UIConstants } from 'ngx-sfc-common';\r\nimport { AvatarConstants } from '../../avatar.constants';\r\nimport { AvatarBadgePosition } from './avatar-badge-position.enum';\r\nimport { AvatarBadgeConstants } from './avatar-badge.constants';\r\nimport { IAvatarBadgeModel } from './avatar-badge.model';\r\n\r\n@Component({\r\n selector: 'sfc-avatar-badge',\r\n templateUrl: './avatar-badge.component.html',\r\n styleUrls: ['./avatar-badge.component.scss']\r\n})\r\nexport class AvatarBadgeComponent {\r\n\r\n @Input()\r\n background?: string | empty;\r\n\r\n @Input()\r\n model: IAvatarBadgeModel = { position: AvatarBadgePosition.Bottom };\r\n\r\n @Input()\r\n radius: number = AvatarConstants.DEFAULT_RADIUS;\r\n\r\n @Input()\r\n normalizedRadius: number = AvatarConstants.DEFAULT_RADIUS;\r\n\r\n @Input()\r\n stroke: number = AvatarConstants.DEFAULT_STROKE;\r\n\r\n @HostBinding('style')\r\n get styles() {\r\n const badgeSize = getCssLikeValue(this.sizePart);\r\n return {\r\n ...{\r\n height: badgeSize,\r\n width: badgeSize,\r\n background: this.model.background || this.background,\r\n fontSize: getCssLikeValue(this.radius * AvatarBadgeConstants.TEXT_SIZE_MULTIPLIER)\r\n },\r\n ...this.positionStyle\r\n }\r\n }\r\n\r\n private get positionStyle(): any {\r\n const halfNormilizedSizePart = this.normalizedRadius * AvatarBadgeConstants.SIZE_MULTIPLIER / 2,\r\n halfNormilizedSizePartPx = getCssLikeValue(halfNormilizedSizePart),\r\n strokedHalfNormilizedSizePartPx = `-${getCssLikeValue(Math.abs(halfNormilizedSizePart - this.stroke))}`,\r\n strokePx = getCssLikeValue(this.stroke),\r\n positionPart = `calc(50${UIConstants.CSS_PERCENTAGE} - ${getCssLikeValue((this.sizePart / 2))}`,\r\n positionBottomPart = `calc(25${UIConstants.CSS_PERCENTAGE} - ${halfNormilizedSizePartPx}`,\r\n positionTopPart = `calc(75${UIConstants.CSS_PERCENTAGE} - ${halfNormilizedSizePartPx}`;\r\n switch (this.model.position) {\r\n case AvatarBadgePosition.Top:\r\n return {\r\n right: positionPart,\r\n top: strokedHalfNormilizedSizePartPx\r\n };\r\n case AvatarBadgePosition.Right:\r\n return {\r\n right: strokedHalfNormilizedSizePartPx,\r\n bottom: positionPart\r\n };\r\n case AvatarBadgePosition.RightTop:\r\n return {\r\n right: strokePx,\r\n bottom: positionTopPart\r\n };\r\n case AvatarBadgePosition.RightBottom:\r\n return {\r\n right: strokePx,\r\n bottom: positionBottomPart\r\n };\r\n case AvatarBadgePosition.Bottom:\r\n return {\r\n right: positionPart,\r\n bottom: strokedHalfNormilizedSizePartPx,\r\n };\r\n case AvatarBadgePosition.Left:\r\n return {\r\n left: strokedHalfNormilizedSizePartPx,\r\n bottom: positionPart\r\n };\r\n case AvatarBadgePosition.LeftTop:\r\n return {\r\n left: strokePx,\r\n bottom: positionTopPart\r\n };\r\n case AvatarBadgePosition.LeftBottom:\r\n return {\r\n left: strokePx,\r\n bottom: positionBottomPart\r\n };\r\n }\r\n }\r\n\r\n private get sizePart(): number {\r\n return this.radius * AvatarBadgeConstants.SIZE_MULTIPLIER;\r\n }\r\n}\r\n","<span class=\"container\">\r\n <ng-template #content>\r\n <span *ngIf=\"model.label\" class=\"label\">{{model.label}}</span>\r\n <fa-icon *ngIf=\"model.icon\" [icon]=\"model.icon\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"model.tooltip?.value\">\r\n <span class=\"tooltip\" [sfc-tooltip]=\"model.tooltip?.value\" [tooltipPosition]=\"model.tooltip?.position!\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!model.tooltip?.value\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </ng-container>\r\n</span>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { isDefined } from 'ngx-sfc-common';\r\nimport { AvatarConstants } from './avatar.constants';\r\nimport { IAvatarDataModel } from './models/avatar-data.model';\r\nimport { AvatarImageModel } from './models/avatar-image.model';\r\nimport { IAvatarProgressModel } from './models/avatar-progress.model';\r\nimport { IAvatarBadgeModel } from './parts/badge/avatar-badge.model';\r\n\r\n@Component({\r\n selector: 'sfc-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss']\r\n})\r\nexport class AvatarComponent implements OnInit {\r\n\r\n readonly PROGRESS_MODEL_DEFAULT: IAvatarProgressModel = {\r\n color: AvatarConstants.PROGRESS_DEFAULT_COLOR,\r\n filledColor: AvatarConstants.PROGRESS_DEFAULT_FILLED_COLOR\r\n };\r\n\r\n readonly DATA_MODEL_DEFAULT: IAvatarDataModel = {\r\n image: AvatarConstants.DATA_DEFAULT_IMAGE\r\n };\r\n\r\n readonly STROKE_HOVER_VALUE = 2;\r\n\r\n readonly FULLNAME_PART_VALUE = 4;\r\n\r\n readonly TITLE_PART_VALUE = 5;\r\n\r\n /**\r\n * Avatar radius (80 by default)\r\n */\r\n @Input()\r\n radius: number = AvatarConstants.DEFAULT_RADIUS;\r\n\r\n /**\r\n * Size of avatar progress circle (2 by default)\r\n */\r\n @Input()\r\n stroke: number = AvatarConstants.DEFAULT_STROKE;\r\n\r\n /**\r\n * Progress value\r\n */\r\n @Input()\r\n progress: number = 0;\r\n\r\n /**\r\n * Progress colors model\r\n */\r\n _progressModel: IAvatarProgressModel = this.PROGRESS_MODEL_DEFAULT\r\n @Input()\r\n get progressModel(): IAvatarProgressModel {\r\n return this._progressModel;\r\n }\r\n set progressModel(value: IAvatarProgressModel) {\r\n this._progressModel = { ...this.PROGRESS_MODEL_DEFAULT, ...value }\r\n }\r\n\r\n _data: IAvatarDataModel = this.DATA_MODEL_DEFAULT;\r\n @Input()\r\n set data(value: IAvatarDataModel) {\r\n this._data = { ...this.DATA_MODEL_DEFAULT, ...value };\r\n\r\n if (!isDefined(this._data.image)) {\r\n this._data.image = AvatarConstants.DATA_DEFAULT_IMAGE;\r\n }\r\n }\r\n get data(): IAvatarDataModel { return this._data; }\r\n\r\n @Input()\r\n stars: boolean = false;\r\n\r\n @Input()\r\n starsValue: number = 0;\r\n\r\n @Input()\r\n badges: IAvatarBadgeModel[] = [];\r\n\r\n /**\r\n * Avatar image calculated values\r\n */\r\n imageModel!: AvatarImageModel;\r\n\r\n ngOnInit(): void {\r\n this.imageModel = new AvatarImageModel(this.radius, this.stroke, this.data.image!);\r\n }\r\n\r\n get strokeDashOffset(): number {\r\n return Math.round(this.imageModel.Circumference - (this.progress / 100 * this.imageModel.Circumference));\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"avatar-image-container\">\r\n <div class=\"avatar\" (mouseenter)=\"stroke = imageModel.Stroke * STROKE_HOVER_VALUE\"\r\n (mouseleave)=\"stroke = imageModel.Stroke\">\r\n\r\n <div class=\"avatar-image\">\r\n <svg [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <defs>\r\n <pattern id=\"{{imageModel.ImageId}}\" patternUnits=\"userSpaceOnUse\"\r\n [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <image [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\"\r\n [attr.xlink:href]=\"data.image\" preserveAspectRatio=\"xMidYMid slice\"></image>\r\n </pattern>\r\n </defs>\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.color\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.filledColor\"\r\n [attr.stroke-dasharray]=\"imageModel.Circumference + ' ' + imageModel.Circumference\"\r\n [ngStyle]=\"{'stroke-dashoffset':strokeDashOffset}\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n\r\n <circle [attr.cx]=\"radius\" [attr.cy]=\"radius\" [attr.r]=\"imageModel.ImageRadius\"\r\n attr.fill=\"url('#{{imageModel.ImageId}}')\" />\r\n </svg>\r\n\r\n <ng-content></ng-content>\r\n </div> \r\n\r\n <sfc-avatar-badge *ngFor=\"let badge of badges\" [model]=\"badge\" [radius]=\"radius\"\r\n [stroke]=\"imageModel.Stroke\" [normalizedRadius]=\"imageModel.NormalizedRadius\"\r\n [background]=\"progressModel.filledColor\">\r\n </sfc-avatar-badge>\r\n </div>\r\n\r\n <sfc-stars *ngIf=\"stars\" [value]=\"starsValue\"></sfc-stars>\r\n </div>\r\n\r\n <div class=\"avatar-data-container\">\r\n <div class=\"fullname\" [style.fontSize.px]=\"radius / FULLNAME_PART_VALUE\">\r\n <span>{{data.firstName}} {{data.lastName}}</span>\r\n </div>\r\n <div class=\"title\" [style.fontSize.px]=\"radius / TITLE_PART_VALUE\">\r\n <span>{{data.title}}</span>\r\n </div>\r\n </div>\r\n</div>","export enum ProgressColor {\r\n MIN_LOW = '#f08d97',\r\n LOW = '#ED5565',\r\n MAX_LOW = '#DA4453',\r\n MIN_MEDIUM = '#dfc47f',\r\n MEDIUM = '#FFCE54',\r\n MAX_MEDIUM = '#FCBB42',\r\n MIN_HIGH = '#b5dd88',\r\n HIGH = '#A0D468',\r\n MAX_HIGH = '#8CC152',\r\n}\r\n","import { CommonConstants } from \"ngx-sfc-common\";\r\nimport { ProgressColor } from \"./progress-color.enum\";\r\n\r\nexport function getProgressColorDefaultFunc(value: number): string {\r\n if (value < 12) {\r\n return ProgressColor.MIN_LOW;\r\n } else if (value >= 12 && value < 24) {\r\n return ProgressColor.LOW;\r\n } else if (value >= 24 && value < 36) {\r\n return ProgressColor.MAX_LOW;\r\n } else if (value >= 36 && value < 48) {\r\n return ProgressColor.MIN_MEDIUM;\r\n } else if (value >= 48 && value < 60) {\r\n return ProgressColor.MEDIUM;\r\n } else if (value >= 60 && value < 72) {\r\n return ProgressColor.MAX_MEDIUM;\r\n } else if (value >= 72 && value < 84) {\r\n return ProgressColor.MIN_HIGH;\r\n } else if (value >= 84 && value < 96) {\r\n return ProgressColor.HIGH;\r\n } else {\r\n return ProgressColor.MAX_HIGH;\r\n }\r\n}\r\n\r\nexport function getProgressColorDynamicallyFunc(value: number, total?: number): string {\r\n const colorsCount = Object.keys(ProgressColor).length,\r\n part = (total || CommonConstants.FULL_PERCENTAGE) / colorsCount;\r\n\r\n if (value < part) {\r\n return ProgressColor.MIN_LOW;\r\n } else if (value >= part && value < part * 2) {\r\n return ProgressColor.LOW;\r\n } else if (value >= part * 2 && value < part * 3) {\r\n return ProgressColor.MAX_LOW;\r\n } else if (value >= part * 3 && value < part * 4) {\r\n return ProgressColor.MIN_MEDIUM;\r\n } else if (value >= part * 4 && value < part * 5) {\r\n return ProgressColor.MEDIUM;\r\n } else if (value >= part * 5 && value < part * 6) {\r\n return ProgressColor.MAX_MEDIUM;\r\n } else if (value >= part * 6 && value < part * 7) {\r\n return ProgressColor.MIN_HIGH;\r\n } else if (value >= part * 7 && value < part * 8) {\r\n return ProgressColor.HIGH;\r\n } else {\r\n return ProgressColor.MAX_HIGH;\r\n }\r\n}","import { Directive, Input } from \"@angular/core\";\r\nimport { getProgressColorDefaultFunc } from \"./progress.utils\";\r\n\r\n@Directive()\r\nexport abstract class ProgressBaseComponent {\r\n\r\n @Input()\r\n progress: number = 0;\r\n\r\n @Input()\r\n background?: string;\r\n\r\n @Input()\r\n getColor: (value: number, total?: number) => string = getProgressColorDefaultFunc;\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport {\r\n CommonConstants, getCssLikeValue,\r\n isNullOrEmptyString, UIConstants\r\n} from 'ngx-sfc-common';\r\nimport { ProgressBaseComponent } from '../progress.component';\r\n\r\n@Component({\r\n selector: 'sfc-progress-line',\r\n templateUrl: './progress-line.component.html',\r\n styleUrls: ['./progress-line.component.scss']\r\n})\r\nexport class ProgressLineComponent\r\n extends ProgressBaseComponent\r\n implements OnInit {\r\n\r\n @Input()\r\n total: number = CommonConstants.FULL_PERCENTAGE;\r\n\r\n @Input()\r\n labelStart?: string;\r\n\r\n @Input()\r\n labelEnd?: string;\r\n\r\n @Input()\r\n labelSuffix: string | null = null;\r\n\r\n @Input()\r\n hideEnd: boolean = false;\r\n\r\n ngOnInit(): void {\r\n if (this.progress > this.total)\r\n this.progress = this.total = CommonConstants.FULL_PERCENTAGE;\r\n }\r\n\r\n get label(): string {\r\n const valueLabel = isNullOrEmptyString(this.labelEnd)\r\n ? `${this.progress}` : this.labelEnd as string;\r\n\r\n return isNullOrEmptyString(this.labelSuffix) ? valueLabel : `${valueLabel}${this.labelSuffix}`\r\n }\r\n\r\n get progressStyles() {\r\n return {\r\n width: getCssLikeValue((this.progress / this.total) * CommonConstants.FULL_PERCENTAGE,\r\n UIConstants.CSS_PERCENTAGE),\r\n backgroundColor: this.getColor(this.progress, this.total)\r\n }\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"labels\">\r\n <span>{{labelStart}}</span>\r\n <span *ngIf=\"!hideEnd\">{{label}}</span>\r\n </div>\r\n <div class=\"progress-bar\" [style.background]=\"background\">\r\n <div class=\"progress\" [ngStyle]=\"progressStyles\"></div>\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { CommonConstants, getCssLikeValue, UIConstants } from 'ngx-sfc-common';\r\nimport { ProgressBaseComponent } from '../progress.component';\r\n\r\n@Component({\r\n selector: 'sfc-progress-semi-circle',\r\n templateUrl: './progress-semi-circle.component.html',\r\n styleUrls: ['./progress-semi-circle.component.scss']\r\n})\r\nexport class ProgressSemiCircleComponent\r\n extends ProgressBaseComponent\r\n implements OnInit {\r\n\r\n @Input()\r\n limits: boolean = true;\r\n\r\n @Input()\r\n min: number = 0;\r\n\r\n @Input()\r\n max: number = CommonConstants.FULL_PERCENTAGE;\r\n\r\n ngOnInit(): void {\r\n if (this.min > this.max)\r\n this.min = 0;\r\n\r\n if (this.progress < this.min)\r\n this.progress = this.min;\r\n\r\n if (this.progress > this.max)\r\n this.progress = this.max;\r\n }\r\n\r\n get barStyles() {\r\n const color = this.getColor(this.progress, this.max),\r\n differenceLimits = this.max - this.min,\r\n rotateValue = 45 + (180 - ((this.max - this.progress) * 180 / differenceLimits));\r\n\r\n return {\r\n transform: `rotate(${getCssLikeValue(rotateValue, UIConstants.CSS_DEGREES)})`,\r\n borderBottomColor: color,\r\n borderRightColor: color\r\n }\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"progress-bar\">\r\n <div class=\"bar\" [style.border-color]=\"background\" [ngStyle]=\"barStyles\"></div>\r\n </div>\r\n <span class=\"value\">{{progress}}</span>\r\n <div class=\"limits\" *ngIf=\"limits\">\r\n <span>{{min}}</span>\r\n <span>{{max}}</span>\r\n </div>\r\n</div>","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { CommonConstants, getCssLikeValue, UIConstants } from 'ngx-sfc-common';\r\nimport { ProgressBaseComponent } from '../progress.component';\r\n\r\n@Component({\r\n selector: 'sfc-progress-circle',\r\n templateUrl: './progress-circle.component.html',\r\n styleUrls: ['./progress-circle.component.scss']\r\n})\r\nexport class ProgressCircleComponent\r\n extends ProgressBaseComponent {\r\n\r\n @Input()\r\n total: number = CommonConstants.FULL_PERCENTAGE;\r\n\r\n @Input()\r\n partition: boolean = false;\r\n\r\n @HostBinding('class.reversed')\r\n get reversed(): boolean {\r\n return (this.progress / this.total) * CommonConstants.FULL_PERCENTAGE > 50;\r\n }\r\n\r\n get transformRotate() {\r\n return `rotate(${getCssLikeValue((this.progress * 360) / this.total,\r\n UIConstants.CSS_DEGREES)})`;\r\n }\r\n}\r\n","<div class=\"container\" [style.background]=\"background\">\r\n <span>{{progress}}<ng-container *ngIf=\"partition\">/{{total}}</ng-container></span>\r\n <div class=\"circle\">\r\n <div class=\"bar\" [ngStyle]=\"{'transform': transformRotate, \r\n 'border-color': getColor(progress, total)}\"></div>\r\n <div class=\"fill\" [ngStyle]=\"{'border-color': getColor(progress, total)}\"></div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ITagModel } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-tags',\r\n templateUrl: './tags.component.html',\r\n styleUrls: ['./tags.component.scss']\r\n})\r\nexport class TagsComponent {\r\n\r\n @Input()\r\n tags: any[] = [];\r\n\r\n @Output()\r\n remove = new EventEmitter<ITagModel>();\r\n\r\n public onRemove(model: ITagModel): void {\r\n this.remove.emit(model);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-tag *ngFor=\"let tag of tags\" [model]=\"tag\" [sfcComponentSize] [customSize]=\"0.8\"\r\n (remove)=\"onRemove($event)\">\r\n </sfc-tag>\r\n </div>\r\n</div>","export enum SliderButtonType {\r\n Next = 'next',\r\n Previous = 'previous'\r\n}","import { Component, ElementRef, HostBinding, Input, ViewChild } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { ISliderItemModel } from './slider-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-slider-item',\r\n templateUrl: './slider-item.component.html',\r\n styleUrls: ['./slider-item.component.scss']\r\n})\r\nexport class SliderItemComponent {\r\n\r\n @Input()\r\n model: ISliderItemModel = { imageSrc: CommonConstants.EMPTY_STRING };\r\n\r\n @ViewChild('image')\r\n private imageEl!: ElementRef;\r\n\r\n @HostBinding('style.height.px')\r\n private get _height(): number {\r\n return this.imageEl?.nativeElement.offsetHeight || 0;\r\n };\r\n}\r\n","<div class=\"container\">\r\n <div class=\"title\">\r\n <h2>{{model.title}}</h2>\r\n <span>{{model.subTitle}}</span>\r\n </div>\r\n <div class=\"image\">\r\n <img #image [src]=\"model.imageSrc\" sfcImageLoad>\r\n </div> \r\n</div>","export enum SliderMoveType {\r\n Next = 'next',\r\n Previous = 'previous',\r\n Select = 'select'\r\n}","import { combineLatest, map, Observable, startWith, Subject } from 'rxjs';\r\nimport { SliderMoveType } from './slider-move-type.enum';\r\nimport { ISliderMoveEvent } from './slider-move.event';\r\nimport { ISliderMoveModel } from './slider-move.model';\r\n\r\nexport class SliderService {\r\n\r\n // hold current image index\r\n private index: number = 0;\r\n\r\n private moveSubject: Subject<ISliderMoveEvent> = new Subject<ISliderMoveEvent>();\r\n\r\n private move$: Observable<ISliderMoveEvent> = this.moveSubject.asObservable();\r\n\r\n public model$!: Observable<ISliderMoveModel>;\r\n\r\n init(count$: Observable<number>) {\r\n this.model$ = combineLatest([\r\n this.move$.pipe(startWith({ type: SliderMoveType.Select, index: this.index })),\r\n count$.pipe(startWith(0))\r\n ]).pipe(\r\n map(([event, count]) => {\r\n switch (event.type) {\r\n case SliderMoveType.Select:\r\n this.index = event.index ?? this.index;\r\n break;\r\n case SliderMoveType.Next:\r\n this.index++;\r\n break;\r\n case SliderMoveType.Previous:\r\n this.index--;\r\n break;\r\n }\r\n\r\n if (this.index == count)\r\n this.index = 0;\r\n\r\n if (this.index < 0)\r\n this.index = count - 1;\r\n\r\n return { index: this.index, count };\r\n })\r\n );\r\n }\r\n\r\n move(type: SliderMoveType) {\r\n this.moveSubject.next({ type });\r\n }\r\n\r\n select(index: number) {\r\n this.moveSubject.next({ type: SliderMoveType.Select, index });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { isDefined } from 'ngx-sfc-common';\r\nimport { SliderMoveType } from '../slider/slider-move-type.enum';\r\nimport { SliderService } from '../slider/slider.service';\r\n\r\n@Injectable()\r\nexport class SliderAutomaticService {\r\n\r\n private readonly AUTOMATIC_INTERVAL_MS = 3000;\r\n\r\n /**\r\n * Interval reference (for stop if required)\r\n */\r\n private autoSlider!: any;\r\n\r\n public pause: boolean = true;\r\n\r\n constructor(private sliderService: SliderService) { }\r\n\r\n start() {\r\n this.pause = false;\r\n\r\n // stop previous if exist\r\n if (isDefined(this.autoSlider))\r\n this.stop();\r\n\r\n this.autoSlider = setInterval(() =>\r\n this.sliderService.move(SliderMoveType.Next), this.AUTOMATIC_INTERVAL_MS);\r\n }\r\n\r\n stop() {\r\n clearInterval(this.autoSlider);\r\n }\r\n\r\n toggle() {\r\n this.pause = !this.pause;\r\n\r\n if (this.pause)\r\n this.stop();\r\n else\r\n this.start();\r\n }\r\n}\r\n","export enum SliderType {\r\n Default = 'default',\r\n Automatic = 'automatic'\r\n}","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { faArrowRight, faArrowLeft, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { UIClass } from 'ngx-sfc-common';\r\nimport { SliderButtonType } from './slider-button-type.enum';\r\n\r\n@Component({\r\n selector: 'sfc-slider-button',\r\n templateUrl: './slider-button.component.html',\r\n styleUrls: ['./slider-button.component.scss']\r\n})\r\nexport class SliderButtonComponent {\r\n\r\n private readonly ICON_NEXT = faArrowRight;\r\n private readonly ICON_PREVIOUS = faArrowLeft;\r\n\r\n @Input()\r\n @HostBinding('class')\r\n type: SliderButtonType = SliderButtonType.Next;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Active)\r\n active: boolean = false;\r\n\r\n get icon(): IconDefinition {\r\n return this.type == SliderButtonType.Next\r\n ? this.ICON_NEXT\r\n : this.ICON_PREVIOUS;\r\n }\r\n}\r\n","<div>\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sfc-slider-pagination',\r\n templateUrl: './slider-pagination.component.html',\r\n styleUrls: ['./slider-pagination.component.scss']\r\n})\r\nexport class SliderPaginationComponent {\r\n\r\n @Input()\r\n count: number = 0;\r\n\r\n @Input()\r\n index: number = 0;\r\n\r\n @Output()\r\n selected: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n get items(): Array<any> {\r\n return Array.from({length: this.count});\r\n }\r\n\r\n selectItem(index: number): void {\r\n this.selected.emit(index);\r\n }\r\n}\r\n","<ul>\r\n <li *ngFor=\"let _ of items; let itemIndex = index;\" [class.active]=\"itemIndex === index\"\r\n (click)=\"selectItem(itemIndex)\"></li>\r\n</ul>","import {\r\n AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input,\r\n QueryList, ViewChild, ViewChildren\r\n} from '@angular/core';\r\nimport { map, Observable } from 'rxjs';\r\nimport { SliderButtonType } from './parts/button/slider-button-type.enum';\r\nimport { SliderItemComponent } from './parts/item/slider-item.component';\r\nimport { ISliderItemModel } from './parts/item/slider-item.model';\r\nimport { SliderAutomaticService } from './service/automatic/slider-automatic.service';\r\nimport { SliderMoveType } from './service/slider/slider-move-type.enum';\r\nimport { SliderService } from './service/slider/slider.service';\r\nimport { SliderType } from './slider-type.enum';\r\nimport { faPauseCircle, faPlayCircle, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { ResizeService, ImageLoadService } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-slider',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n providers: [SliderService, SliderAutomaticService]\r\n})\r\nexport class SliderComponent implements AfterViewInit, AfterViewChecked {\r\n\r\n private readonly SIZE_FACTOR = 0.00225;\r\n\r\n private readonly PAUSE_ICON = faPauseCircle;\r\n\r\n private readonly PLAY_ICON = faPlayCircle;\r\n\r\n SliderButtonType = SliderButtonType;\r\n\r\n SliderMoveType = SliderMoveType;\r\n\r\n @Input()\r\n items: ISliderItemModel[] = [];\r\n\r\n @Input()\r\n type: SliderType = SliderType.Default;\r\n\r\n @Input()\r\n showCount: boolean = true;\r\n\r\n @Input()\r\n pagination: boolean = true;\r\n\r\n @Input()\r\n handlers: boolean = true;\r\n\r\n @Input()\r\n showAutomaticToggle: boolean = true;\r\n\r\n @ViewChildren(SliderItemComponent)\r\n private sliderItems!: QueryList<SliderItemComponent>;\r\n\r\n /**\r\n * If active show buttons\r\n */\r\n active: boolean = false;\r\n\r\n public vm$!: Observable<any>;\r\n\r\n @HostListener('mouseenter')\r\n onEnter() {\r\n this.active = true;\r\n\r\n // stop automatic move on hover\r\n if (this.isAutomatic)\r\n this.automaticService.stop();\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onLeave() {\r\n this.active = false;\r\n\r\n // start automatic move on hover end\r\n if (this.isAutomatic && !this.automaticService.pause)\r\n this.automaticService.start();\r\n }\r\n\r\n @ViewChild('itemsContainer')\r\n private itemsEl!: ElementRef;\r\n\r\n @HostBinding('style.font-size.em')\r\n private _sizeFactor: number = 1;\r\n\r\n @HostBinding('style.max-width.px')\r\n private _maxWidth!: number;\r\n\r\n get isAutomatic() {\r\n return this.type == SliderType.Automatic;\r\n }\r\n\r\n get automaticIcon(): IconDefinition {\r\n return this.automaticService.pause ? this.PLAY_ICON : this.PAUSE_ICON;\r\n }\r\n\r\n constructor(public sliderService: SliderService,\r\n private automaticService: SliderAutomaticService,\r\n private resizeService: ResizeService,\r\n public imageLoadService: ImageLoadService,\r\n private changeDetector: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n const count$ = this.sliderItems.changes.pipe(map(c => c.length));\r\n this.sliderService.init(count$);\r\n\r\n this.vm$ = this.sliderService.model$.pipe(\r\n map(model => {\r\n return {\r\n index: model.index,\r\n label: `${model.count > 0 ? model.index + 1 : 0} / ${model.count}`,\r\n count: model.count\r\n }\r\n })\r\n );\r\n\r\n if (this.isAutomatic)\r\n this.automaticService.start();\r\n\r\n this.imageLoadService.load$.subscribe((sizeEvent: any) => {\r\n this._sizeFactor = this.getSizeFactor(sizeEvent.offset.height);\r\n this._maxWidth = sizeEvent.natural.width;\r\n });\r\n\r\n this.resizeService.onResize$.subscribe(() => this._sizeFactor = this.getSizeFactor(this.itemsEl.nativeElement.offsetHeight));\r\n\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n move(type: SliderMoveType): void {\r\n this.sliderService.move(type);\r\n }\r\n\r\n select(index: number): void {\r\n this.sliderService.select(index);\r\n }\r\n\r\n toggleAutomatic(): void {\r\n this.automaticService.toggle();\r\n }\r\n\r\n private getSizeFactor(value: number) {\r\n return value * this.SIZE_FACTOR;\r\n }\r\n}","<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div #itemsContainer class=\"items\">\r\n <sfc-slider-item *ngFor=\"let item of items; let itemIndex = index;\" [model]=\"item\"\r\n [sfcShowHideElement]=\"itemIndex === vm.index\"></sfc-slider-item>\r\n </div>\r\n\r\n <div *ngIf=\"handlers\" class=\"buttons\">\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Next\" (click)=\"move(SliderMoveType.Next)\">\r\n </sfc-slider-button>\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Previous\" (click)=\"move(SliderMoveType.Previous)\">\r\n </sfc-slider-button>\r\n </div>\r\n\r\n <div class=\"counter\" *ngIf=\"showCount\">{{vm.label}}</div>\r\n\r\n <div class=\"actions\">\r\n <sfc-slider-pagination *ngIf=\"pagination\" [count]=\"vm.count\" [index]=\"vm.index\" (selected)=\"select($event)\">\r\n </sfc-slider-pagination>\r\n\r\n <div *ngIf=\"isAutomatic && showAutomaticToggle\" class=\"automatic\" (click)=\"toggleAutomatic()\">\r\n <fa-icon [icon]=\"automaticIcon\"></fa-icon>\r\n </div>\r\n </div>\r\n</div>","export enum TimelineItemPosition {\r\n Left = 'left',\r\n Right = 'right'\r\n}","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { TimelineItemPosition } from './timeline-item-position.enum';\r\nimport { ITimelineItemModel } from './timeline-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-timeline-item',\r\n templateUrl: './timeline-item.component.html',\r\n styleUrls: ['./timeline-item.component.scss']\r\n})\r\nexport class TimelineItemComponent {\r\n\r\n @Input()\r\n model: ITimelineItemModel = { title: CommonConstants.EMPTY_STRING };\r\n\r\n @HostBinding('class')\r\n get position(): TimelineItemPosition {\r\n return this.model.position || TimelineItemPosition.Left;\r\n }\r\n\r\n @HostBinding('class.period')\r\n get period(): boolean {\r\n return this.model.period || false;\r\n }\r\n}\r\n","<li class=\"container\">\r\n <div class=\"date-time\">\r\n <span>{{model.dateTimeLabel}}</span>\r\n </div>\r\n <div class=\"marker\">\r\n <div class=\"delimeter\"></div>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.image\"></sfc-icon>\r\n <span>{{model.title}}</span>\r\n </div> \r\n <p>{{model.description}}</p>\r\n </div>\r\n</li>","import { Component, Input } from '@angular/core';\r\nimport { ITimelineItemModel } from './parts/item/timeline-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-timeline',\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss']\r\n})\r\nexport class TimelineComponent {\r\n\r\n @Input()\r\n items: ITimelineItemModel[] = [];\r\n\r\n}\r\n","<div class=\"container\">\r\n <ul class=\"timeline\">\r\n <sfc-timeline-item *ngFor=\"let item of items\" [model]=\"item\"></sfc-timeline-item>\r\n </ul>\r\n</div>","export enum NotificationTemplate {\r\n Content = 'content'\r\n}","export enum NotificationType {\r\n Info = 'info',\r\n Success = 'success',\r\n Failed = 'failed'\r\n}","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { ButtonType, isDefined, isNullOrEmptyString } from 'ngx-sfc-common';\r\nimport { NotificationType } from '../../enums/notification-type.enum';\r\nimport { INotificationContentModel } from './notification-content.model';\r\n\r\n@Component({\r\n selector: 'sfc-notification-content',\r\n templateUrl: './notification-content.component.html',\r\n styleUrls: ['./notification-content.component.scss']\r\n})\r\nexport class NotificationContentComponent {\r\n\r\n ButtonType = ButtonType;\r\n\r\n @Input()\r\n @HostBinding('class')\r\n type: NotificationType = NotificationType.Info;\r\n\r\n @Input()\r\n model: INotificationContentModel = {};\r\n\r\n @Output()\r\n buttonClicked: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n get showImage(): boolean {\r\n return !isNullOrEmptyString(this.model.image) && !isDefined(this.model.icon);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"illustration\">\r\n <div *ngIf=\"model.icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div *ngIf=\"showImage\">\r\n <img [src]=\"model.image\">\r\n </div>\r\n </div>\r\n <div class=\"message\">\r\n <h1>{{model.title}}</h1>\r\n <p>{{model.subTitle}}</p>\r\n </div>\r\n <div *ngIf=\"model.showButton\" class=\"action\">\r\n <sfc-button text=\"{{model.buttonText || type}}\" [types]=\"[ButtonType.Rounded, ButtonType.Filled]\"\r\n (click)=\"buttonClicked.emit()\"></sfc-button>\r\n </div>\r\n</div>","import { Component, ContentChildren, EventEmitter, HostBinding, Input, OnInit, Output, QueryList, TemplateRef } from '@angular/core';\r\nimport { isDefined, TemplateReferenceDirective } from 'ngx-sfc-common';\r\nimport { NotificationTemplate } from './enums/notification-template.enum';\r\nimport { NotificationType } from './enums/notification-type.enum';\r\nimport { INotificationAutoCloseModel } from './notification-auto-close.model';\r\nimport { INotificationContentModel } from './parts/content/notification-content.model';\r\n\r\n@Component({\r\n selector: 'sfc-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss']\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n\r\n private readonly AUTO_CLOSE_INTERVAL_DEFAULT = 5000;\r\n\r\n readonly DESTROY_HOST_INTERVAL = 500;\r\n\r\n NotificationTemplate = NotificationTemplate;\r\n\r\n @Input()\r\n showClose: boolean = true;\r\n\r\n @Input()\r\n autoCloseModel: INotificationAutoCloseModel = { enabled: false, interval: this.AUTO_CLOSE_INTERVAL_DEFAULT };\r\n\r\n @Input()\r\n @HostBinding('class')\r\n get type(): NotificationType {\r\n return this.model.type ?? this._type;\r\n };\r\n set type(value: NotificationType) {\r\n this._type = value;\r\n }\r\n private _type: NotificationType = NotificationType.Info;\r\n\r\n @Input()\r\n model: INotificationContentModel = { showButton: true };\r\n\r\n @Input()\r\n content?: TemplateRef<any>;\r\n\r\n @Output()\r\n closed: EventEmitter<INotificationContentModel> = new EventEmitter<INotificationContentModel>();\r\n\r\n @Output()\r\n buttonClicked: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n destroy: boolean = false;\r\n\r\n show: boolean = false;\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.autoCloseModel.interval))\r\n this.autoCloseModel.interval = this.AUTO_CLOSE_INTERVAL_DEFAULT;\r\n\r\n if (this.autoCloseModel.enabled)\r\n setTimeout(() => {\r\n if (this.show) {\r\n this.close();\r\n }\r\n }, this.autoCloseModel.interval);\r\n\r\n // for animation purpose\r\n setTimeout(() => this.show = true);\r\n }\r\n\r\n close() {\r\n this.show = false;\r\n this.destroy = true;\r\n this.closed.emit(this.model);\r\n }\r\n}\r\n","<div class=\"container\" [sfcDestroyParent]=\"destroy\" [delay]=\"DESTROY_HOST_INTERVAL\">\r\n <div class=\"notification\" [sfcShowHideElement]=\"show\">\r\n <sfc-close *ngIf=\"showClose\" (click)=\"close()\"></sfc-close>\r\n\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"NotificationTemplate.Content\" [defaultContent]=\"defaultContent\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultContent>\r\n <sfc-notification-content [type]=\"type\" [model]=\"model\" (buttonClicked)=\"buttonClicked.emit()\">\r\n </sfc-notification-content>\r\n </ng-template>\r\n </div>\r\n</div>","import { ChartConfiguration } from \"chart.js\";\r\nimport { UIConstants, replaceRgbOpacity } from \"ngx-sfc-common\";\r\nimport { ChartThemeDataSetColors } from \"./service/theme/chart-theme.model\";\r\n\r\nconst DEFAULT_BACKGROUND_COLORS = [\r\n `rgb(93%, 33%, 40%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgba(99%, 43%, 32%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(100%, 81%, 33%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(63%, 83%, 41%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(28%, 81%, 68%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(31%, 76%, 91%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(36%, 61%, 93%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(67%, 57%, 93%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(93%, 53%, 75%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(80%, 82%, 85%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`\r\n];\r\n\r\nconst DEFAULT_BORDER_COLORS = ['#DA4453', '#E9573F', '#FCBB42', '#8CC152', '#37BC9B', '#3BAFDA', '#4A89DC', '#967ADC', '#D770AD', '#AAB2BD'];\r\n\r\nconst DEFAULT_MODE_COLORS = { GRID: 'rgba(0,0,0,0.1)', TICKS: '#666' };\r\n\r\nconst DARK_MODE_COLORS = { GRID: '#656D78', TICKS: '#E6E9ED' };\r\n\r\nexport const CHART_DEFAULTS = {\r\n OPTIONS: _getOptions(),\r\n OPTIONS_NOT_LINES: _getOptions(false),\r\n OPTIONS_RADIAL: _getOptions(false, true),\r\n COLORS: _getColors(),\r\n HALF_TRANSPARENT_COLORS: _getColors(0.5),\r\n THEME: {\r\n DEFAULT: _getThemeOptions(false),\r\n DARK: _getThemeOptions(true)\r\n }\r\n}\r\n\r\nfunction _getOptions(showAxes: boolean = true, showRadialAxes: boolean = false): ChartConfiguration['options'] {\r\n return {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n x: {\r\n display: showAxes,\r\n grid: { display: true },\r\n ticks: { display: true }\r\n },\r\n y: {\r\n display: showAxes,\r\n grid: { display: true },\r\n ticks: { display: true }\r\n },\r\n r: {\r\n display: showRadialAxes,\r\n }\r\n },\r\n plugins: {\r\n tooltip: { enabled: true },\r\n legend: { display: true }\r\n }\r\n };\r\n}\r\n\r\nfunction _getColors(opacity: number = 1): ChartThemeDataSetColors[] {\r\n const backgrounds = DEFAULT_BACKGROUND_COLORS.map(b => replaceRgbOpacity(b, opacity));\r\n\r\n return backgrounds.map((background: string, index: number) => {\r\n const border = DEFAULT_BORDER_COLORS[index];\r\n return {\r\n backgroundColor: background,\r\n hoverBackgroundColor: background,\r\n borderColor: border,\r\n pointBackgroundColor: background,\r\n pointBorderColor: border\r\n }\r\n });\r\n}\r\n\r\nfunction _getThemeOptions(dark: boolean) {\r\n const grid = dark ? DARK_MODE_COLORS.GRID : DEFAULT_MODE_COLORS.GRID,\r\n ticks = dark ? DARK_MODE_COLORS.TICKS : DEFAULT_MODE_COLORS.TICKS;\r\n return {\r\n scales: {\r\n x: {\r\n grid: { color: grid },\r\n ticks: { color: ticks }\r\n\r\n },\r\n y: {\r\n grid: { color: grid },\r\n ticks: { color: ticks }\r\n },\r\n r: {\r\n angleLines: { color: grid },\r\n grid: { color: grid },\r\n ticks: { color: ticks, backdropColor: 'transparent' },\r\n pointLabels: { color: ticks }\r\n }\r\n },\r\n plugins: {\r\n legend: {\r\n labels: { color: ticks }\r\n },\r\n title: {\r\n color: ticks\r\n }\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ChartThemeModel } from './chart-theme.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChartThemeService {\r\n\r\n private model!: ChartThemeModel;\r\n\r\n private colorsSubject: Subject<ChartThemeModel> = new Subject<ChartThemeModel>();\r\n\r\n public colors$ = this.colorsSubject.asObservable();\r\n\r\n setColors(model: ChartThemeModel): void {\r\n this.model = model;\r\n this.colorsSubject.next(model);\r\n }\r\n\r\n getColors(): ChartThemeModel {\r\n return this.model;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ChartConfiguration, ChartDataset, ChartType } from 'chart.js';\r\nimport { isDefined } from 'ngx-sfc-common';\r\nimport { ChartOptionModel } from '../../chart-option.model';\r\nimport { CHART_DEFAULTS } from '../../chart.constants';\r\nimport { ChartThemeDataSetColors } from '../theme/chart-theme.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChartSettingsService {\r\n\r\n getDefaultOptions(type: ChartType) {\r\n let defaultChartOptions:ChartConfiguration['options'] = {};\r\n\r\n switch (type) {\r\n case 'polarArea':\r\n case 'radar':\r\n defaultChartOptions = CHART_DEFAULTS.OPTIONS_RADIAL;\r\n break;\r\n case 'pie':\r\n case 'doughnut':\r\n defaultChartOptions = CHART_DEFAULTS.OPTIONS_NOT_LINES;\r\n break;\r\n default:\r\n defaultChartOptions = CHART_DEFAULTS.OPTIONS;\r\n break;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(defaultChartOptions))\r\n }\r\n\r\n getDefaultChartOptions(type: ChartType): ChartOptionModel {\r\n switch (type) {\r\n case 'pie':\r\n case 'radar':\r\n case 'polarArea':\r\n case 'doughnut':\r\n return { legend: true, gridLines: true, xAxe: false, yAxe: false, tooltip: true, ticks: true, defaultColors: true };\r\n default:\r\n return { legend: true, gridLines: true, xAxe: true, yAxe: true, tooltip: true, ticks: true, defaultColors: true };\r\n }\r\n } \r\n\r\n setDatasetStyles(type: ChartType, datasets: ChartDataset[], colors?: ChartThemeDataSetColors[]): void {\r\n switch (type) {\r\n case 'polarArea':\r\n case 'pie':\r\n case 'doughnut':\r\n this.setBackgroundDatasetStyles(datasets, colors || CHART_DEFAULTS.COLORS);\r\n break;\r\n case 'radar':\r\n this.setDefaultDatasetStyles(datasets, colors || CHART_DEFAULTS.HALF_TRANSPARENT_COLORS);\r\n break;\r\n default:\r\n this.setDefaultDatasetStyles(datasets, colors || CHART_DEFAULTS.COLORS);\r\n break;\r\n }\r\n }\r\n\r\n private setDefaultDatasetStyles(datasets: ChartDataset[], colors: ChartThemeDataSetColors[]) {\r\n datasets.forEach((item: any, index: number) => {\r\n if (index <= colors.length - 1) {\r\n const dataSetColor = colors[index];\r\n\r\n item.backgroundColor = dataSetColor.backgroundColor;\r\n item.hoverBackgroundColor = dataSetColor.hoverBackgroundColor;\r\n item.borderColor = dataSetColor.borderColor;\r\n item.hoverBorderColor = dataSetColor.hoverBorderColor;\r\n item.pointBackgroundColor = dataSetColor.pointBackgroundColor;\r\n item.pointHoverBackgroundColor = dataSetColor.pointHoverBackgroundColor;\r\n item.pointBorderColor = dataSetColor.pointBorderColor;\r\n item.pointHoverBorderColor = dataSetColor.pointHoverBorderColor;\r\n }\r\n });\r\n }\r\n\r\n private setBackgroundDatasetStyles(datasets: ChartConfiguration['data']['datasets'], colors: ChartThemeDataSetColors[]) {\r\n datasets.forEach((item: ChartDataset) => {\r\n item.backgroundColor = this.replaceColors(item.backgroundColor, colors, c => c.backgroundColor);\r\n item.hoverBackgroundColor = this.replaceColors(item.hoverBackgroundColor, colors, c => c.hoverBackgroundColor);\r\n });\r\n }\r\n\r\n private replaceColors(oldColors: any, newColors: ChartThemeDataSetColors[],\r\n mapFunc: (color: ChartThemeDataSetColors) => string | undefined) {\r\n const colors = newColors.map(mapFunc).filter((color) => isDefined(color));\r\n if (oldColors) {\r\n oldColors.splice(0, Math.min(oldColors.length, colors.length));\r\n return colors.concat(oldColors);\r\n }\r\n\r\n return colors;\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, NgZone, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { Chart, ChartConfiguration, ChartOptions, ChartType, DefaultDataPoint } from 'chart.js';\r\nimport { isDefined, mergeDeep, Theme } from 'ngx-sfc-common';\r\nimport { distinctUntilChanged, Subscription } from 'rxjs';\r\nimport { ChartOptionModel } from './chart-option.model';\r\nimport { CHART_DEFAULTS } from './chart.constants';\r\nimport { ChartSettingsService } from './service/settings/chart-settings.service';\r\nimport { ChartThemeModel } from './service/theme/chart-theme.model';\r\nimport { ChartThemeService } from './service/theme/chart-theme.service';\r\n\r\n@Component({\r\n selector: 'sfc-chart',\r\n templateUrl: './chart.component.html',\r\n styles: [':host { height: inherit; width: inherit;}']\r\n})\r\nexport class ChartComponent<TType extends ChartType = ChartType,\r\n TData = DefaultDataPoint<TType>,\r\n TLabel = unknown> implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n // Chart configuration\r\n\r\n @Input()\r\n type: ChartConfiguration<TType, TData, TLabel>['type'] = 'line' as TType;\r\n\r\n @Input()\r\n data!: ChartConfiguration<TType, TData, TLabel>['data'];\r\n\r\n @Input()\r\n options!: ChartConfiguration<TType, TData, TLabel>['options'];\r\n\r\n @Input()\r\n plugins?: ChartConfiguration<TType, TData, TLabel>['plugins'] = [];\r\n\r\n // End Chart configuration\r\n\r\n // Chart data configuration\r\n\r\n @Input()\r\n labels?: ChartConfiguration<TType, TData, TLabel>['data']['labels'];\r\n\r\n @Input()\r\n datasets?: ChartConfiguration<TType, TData, TLabel>['data']['datasets'];\r\n\r\n // End Chart data configuration\r\n\r\n @Input()\r\n chartOptions!: ChartOptionModel;\r\n\r\n @Input()\r\n public get theme() {\r\n return this._theme;\r\n }\r\n public set theme(value) {\r\n if (this._theme != value) {\r\n this._theme = value;\r\n this.themeService.setColors({ options: this.themeOptions });\r\n }\r\n }\r\n private _theme: Theme = Theme.Default;\r\n\r\n @ViewChild('chart')\r\n private canvas!: ElementRef;\r\n\r\n private chart?: Chart<TType, TData, TLabel>;\r\n\r\n private _themeSubscription?: Subscription;\r\n\r\n private get themeOptions(): ChartOptions {\r\n return this.theme === Theme.Dark ? CHART_DEFAULTS.THEME.DARK : CHART_DEFAULTS.THEME.DEFAULT;\r\n }\r\n\r\n public constructor(private zone: NgZone, private themeService: ChartThemeService, private settingsService: ChartSettingsService) {\r\n this._themeSubscription = this.themeService.colors$\r\n .pipe(distinctUntilChanged())\r\n .subscribe((model) => this.updateColors(model));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.chartOptions = {\r\n ...this.settingsService.getDefaultChartOptions(this.type),\r\n ...this.chartOptions\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ctx = this.canvas.nativeElement.getContext('2d');\r\n\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n\r\n this.zone.runOutsideAngular(() => this.chart = new Chart(ctx, this.getChartConfiguration()))\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n this.chart = void 0;\r\n }\r\n\r\n this._themeSubscription?.unsubscribe();\r\n }\r\n\r\n public update() {\r\n this.zone.runOutsideAngular(() => this.chart?.update());\r\n }\r\n\r\n private getChartConfiguration(): ChartConfiguration<TType, TData, TLabel> {\r\n return {\r\n type: this.type,\r\n data: this.getChartData(),\r\n options: this.getChartOptions(),\r\n plugins: this.plugins\r\n };\r\n }\r\n\r\n private getChartData(): ChartConfiguration<TType, TData, TLabel>['data'] {\r\n const chartData = this.data ? this.data : {\r\n labels: this.labels || [],\r\n datasets: this.datasets || []\r\n };\r\n\r\n if (this.chartOptions.defaultColors)\r\n this.settingsService.setDatasetStyles(this.type, chartData.datasets as any);\r\n\r\n return chartData;\r\n }\r\n\r\n private getChartOptions(): ChartConfiguration<TType, TData, TLabel>['options'] {\r\n const chartOptions = this.overrideDefaultOptionsByModel();\r\n return mergeDeep(chartOptions, this.options);\r\n }\r\n\r\n private overrideDefaultOptionsByModel(): void {\r\n const defaultChartOptions = this.settingsService.getDefaultOptions(this.type);\r\n\r\n defaultChartOptions.scales.x.grid.display = this.chartOptions.gridLines;\r\n defaultChartOptions.scales.x.display = this.chartOptions.xAxe;\r\n defaultChartOptions.scales.y.grid.display = this.chartOptions.gridLines;\r\n defaultChartOptions.scales.y.display = this.chartOptions.yAxe;\r\n defaultChartOptions.scales.x.ticks.display = this.chartOptions.ticks;\r\n defaultChartOptions.scales.y.ticks.display = this.chartOptions.ticks;\r\n defaultChartOptions.plugins.tooltip.enabled = this.chartOptions.tooltip;\r\n defaultChartOptions.plugins.legend.display = this.chartOptions.legend;\r\n\r\n return mergeDeep(defaultChartOptions, this.themeOptions);\r\n }\r\n\r\n private updateColors(model: ChartThemeModel): void {\r\n if (this.chart) {\r\n\r\n mergeDeep(this.chart.config.options, model.options);\r\n\r\n if (isDefined(model.dataSetColors))\r\n this.settingsService.setDatasetStyles(this.type, this.chart.config.data.datasets as any, model.dataSetColors);\r\n\r\n this.update();\r\n }\r\n }\r\n}\r\n","<canvas #chart></canvas>","export enum TableColumnType {\r\n Data = 'data',\r\n Sequence = 'sequence',\r\n Selectable = 'selectable',\r\n Expanded = 'expanded',\r\n Action = 'action'\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ColumnsToggleService {\r\n\r\n // current state of toggle \r\n public show: boolean = false;\r\n\r\n private toggleSubject = new BehaviorSubject<boolean>(this.show);\r\n\r\n // toggle state observable\r\n public toggle$ = this.toggleSubject.asObservable();\r\n\r\n public toggle(): void {\r\n this.toggleSubject.next(this.show = !this.show);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs'\r\nimport { addItem, removeItem, ObservableModel } from 'ngx-sfc-common';\r\nimport { ITableSelectEvent } from './table-select.event';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TableSelectService {\r\n\r\n private model: ObservableModel<ITableSelectEvent> = new ObservableModel<ITableSelectEvent>();\r\n\r\n public get select$(): Observable<ITableSelectEvent> { return this.model.value$; }\r\n\r\n public selectedItems: number[] = [];\r\n\r\n public unselectedItems: number[] = [];\r\n\r\n public selectAll(selected: boolean): void {\r\n this.unselectedItems = [];\r\n this.selectedItems = [];\r\n this.model.subject.next({ index: null, selected: selected });\r\n }\r\n\r\n public select(index: number | null, selected: boolean): void {\r\n if (selected) {\r\n removeItem(this.unselectedItems, index);\r\n addItem(this.selectedItems, index);\r\n } else {\r\n addItem(this.unselectedItems, index);\r\n removeItem(this.selectedItems, index);\r\n }\r\n\r\n this.model.subject.next({ index, selected });\r\n }\r\n\r\n public selectSingle(event: ITableSelectEvent): void {\r\n if (event.selected) {\r\n this.unselectedItems = [];\r\n this.selectedItems = [event.index!];\r\n } else {\r\n this.selectedItems = [];\r\n this.unselectedItems = [event.index!];\r\n }\r\n\r\n this.model.subject.next(event);\r\n }\r\n}","export enum TableDataType {\r\n Rows = 'rows',\r\n Cards = 'cards'\r\n}","import { ITableColumnExtendedModel } from \"./parts/columns/table-column.model\";\r\nimport { TableColumnType } from \"./parts/columns/table-column-type.enum\";\r\n\r\nexport class TableConstants {\r\n static SEQUENCE_COLUMN: ITableColumnExtendedModel = { name: '№', field: '', type: TableColumnType.Sequence };\r\n static SELECTABLE_COLUMN: ITableColumnExtendedModel = { name: '', field: '', type: TableColumnType.Selectable };\r\n static EXPANDED_COLUMN: ITableColumnExtendedModel = { name: '', field: '', type: TableColumnType.Expanded }; \r\n static NOT_FOUND_LABEL_DEFAULT: string = 'Not found';\r\n static LOAD_MORE_LABEL_DEFAULT: string = 'Show more';\r\n static TOTAL_LABEL_DEFAULT: string = 'Total';\r\n static DATA_LIST_LABEL: string = 'List';\r\n static DATA_CARDS_LABEL: string = 'Cards';\r\n}","export enum TableTemplate {\r\n Column = 'column',\r\n Row = 'row',\r\n Card = 'card'\r\n}","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { ITableColumnModel } from '../table-column.model';\r\n\r\n@Component({\r\n selector: 'sfc-default-table-column',\r\n templateUrl: './default-table-column.component.html',\r\n styleUrls: ['./default-table-column.component.scss']\r\n})\r\nexport class DefaultTableColumnComponent {\r\n\r\n @Input()\r\n model: ITableColumnModel = { name: CommonConstants.EMPTY_STRING, field: CommonConstants.EMPTY_STRING };\r\n\r\n @HostBinding(`class.${UIClass.Active}`)\r\n get active(): boolean {\r\n return this.model.sorting?.active || false;\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div *ngIf=\"model.icon\" class=\"icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div>\r\n <span>{{model.name}}</span>\r\n </div>\r\n</div>","export class SelectableTableColumnConstants{\r\n static LABEL_SELECT = 'Select';\r\n static LABEL_UNSELECT = 'Unselect';\r\n}","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { CheckmarkType, UIClass } from 'ngx-sfc-common';\r\nimport { TableSelectService } from '../../../service/select/table-select.service';\r\nimport { SelectableTableColumnConstants } from './selectable-table-column.constants';\r\n\r\n@Component({\r\n selector: 'sfc-selectable-table-column',\r\n templateUrl: './selectable-table-column.component.html',\r\n styleUrls: ['./selectable-table-column.component.scss']\r\n})\r\nexport class SelectableTableColumnComponent {\r\n\r\n CheckmarkType = CheckmarkType;\r\n\r\n @Input()\r\n @HostBinding(`class.${UIClass.Active}`)\r\n selected: boolean = false;\r\n\r\n @HostListener('click')\r\n selectAll() {\r\n this.selected = !this.selected;\r\n this.service.selectAll(this.selected);\r\n }\r\n\r\n public get label(): string {\r\n return this.selected\r\n ? SelectableTableColumnConstants.LABEL_UNSELECT\r\n : SelectableTableColumnConstants.LABEL_SELECT\r\n }\r\n\r\n constructor(private service: TableSelectService) { }\r\n}\r\n","<div class=\"container\">\r\n <sfc-checkmark [active]=\"selected\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n <span>{{label}}</span>\r\n</div>","export class ColumnsToggleConstants {\r\n static HIDE_LABEL_DEFAULT = 'Hide';\r\n static SHOW_LABEL_DEFAULT = 'Show';\r\n}\r\n","import { Component, HostListener, Input, OnInit } from '@angular/core';\r\nimport { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport { map, Observable } from 'rxjs';\r\nimport { ColumnsToggleConstants } from './columns-toggle.constants';\r\nimport { ColumnsToggleService } from './service/columns-toggle.service';\r\n\r\n@Component({\r\n selector: 'sfc-columns-toggle',\r\n templateUrl: './columns-toggle.component.html',\r\n styleUrls: ['./columns-toggle.component.scss']\r\n})\r\nexport class ColumnsToggleComponent implements OnInit {\r\n\r\n @Input()\r\n showLabel: string = ColumnsToggleConstants.HIDE_LABEL_DEFAULT;\r\n\r\n @Input()\r\n hideLabel: string = ColumnsToggleConstants.SHOW_LABEL_DEFAULT;\r\n\r\n @HostListener('click')\r\n onToggle() { this.service.toggle(); }\r\n\r\n public vm$!: Observable<any>;\r\n\r\n constructor(private service: ColumnsToggleService) { }\r\n\r\n ngOnInit(): void {\r\n this.vm$ = this.service.toggle$.pipe(\r\n map(show => {\r\n return {\r\n model: show ? { LABEL: this.hideLabel, ICON: faEye } : { LABEL: this.showLabel, ICON: faEyeSlash },\r\n show: show\r\n }\r\n }))\r\n }\r\n}\r\n","<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div>\r\n <span class=\"icon\" [sfcShowHideElement]=\"!vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"icon\" [sfcShowHideElement]=\"vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"label\">{{vm.model.LABEL}}</span>\r\n </div>\r\n</div>","import { faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons';\r\n\r\nexport class SortingConstants {\r\n static DEFAULT_ASCENDING_ICON = faChevronUp;\r\n static DEFAULT_DESCENDING_ICON = faChevronDown;\r\n}","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { CommonConstants, firstOrDefault, isDefined, SortingDirection, SortingService, UIClass } from 'ngx-sfc-common';\r\nimport { Subscription } from 'rxjs';\r\nimport { SortingConstants } from './sorting-column.constants';\r\nimport { ISortingModel } from './sorting-column.model';\r\n\r\n@Component({\r\n selector: 'sfc-sorting-column',\r\n templateUrl: './sorting-column.component.html',\r\n styleUrls: ['./sorting-column.component.scss']\r\n})\r\nexport class SortingColumnComponent implements OnInit, OnDestroy {\r\n\r\n SortingDirection = SortingDirection;\r\n\r\n @Input()\r\n id: string = CommonConstants.EMPTY_STRING;\r\n\r\n @Input()\r\n model: ISortingModel = { active: false, enabled: false, direction: SortingDirection.Ascending };\r\n\r\n @HostBinding(`class.${UIClass.Enabled}`)\r\n get enabled(): boolean {\r\n return this.model.enabled;\r\n }\r\n\r\n @HostBinding(`class.${UIClass.Active}`)\r\n get active(): boolean {\r\n return this.model.active || false;\r\n }\r\n\r\n @HostListener('click')\r\n sort() {\r\n if (this.enabled) {\r\n if (this.active) {\r\n this.model.direction = this.model.direction === SortingDirection.Ascending\r\n ? SortingDirection.Descending\r\n : SortingDirection.Ascending;\r\n }\r\n\r\n this.service.sort({ id: this.id, direction: this.model.direction });\r\n }\r\n }\r\n\r\n get icon(): IconDefinition {\r\n const modelIcon = firstOrDefault(this.model.icons, i => i.direction == this.model.direction);\r\n return modelIcon ? modelIcon.icon : this.model.direction === SortingDirection.Ascending\r\n ? SortingConstants.DEFAULT_ASCENDING_ICON : SortingConstants.DEFAULT_DESCENDING_ICON;\r\n }\r\n\r\n private _subscription!: Subscription;\r\n\r\n constructor(private service: SortingService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.model))\r\n this.model = { active: false, enabled: false, direction: SortingDirection.Ascending };\r\n\r\n // subscribe to sort changes so we can react when other columns are sorted\r\n this._subscription = this.service.sorting$.subscribe(event => {\r\n // reset this column's sort direction to hide the sort icons\r\n if (this.id != event.id)\r\n this.model.direction = SortingDirection.Ascending;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscription.unsubscribe();\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>","import { AfterViewInit, Directive, ElementRef, HostBinding, HostListener, Input, OnDestroy, ViewChild } from \"@angular/core\";\r\nimport { CheckmarkType, Position } from \"ngx-sfc-common\";\r\nimport { fromEvent, Subscription } from \"rxjs\";\r\nimport { ITableColumnExtendedModel } from \"../columns/table-column.model\";\r\nimport { TableColumnType } from \"../columns/table-column-type.enum\";\r\nimport { ITableModel } from \"../../models/table.model\";\r\nimport { UIClass } from \"ngx-sfc-common\";\r\nimport { TableSelectService } from \"../../service/select/table-select.service\";\r\n\r\n@Directive()\r\nexport abstract class BaseDefaultTableContentComponent implements AfterViewInit, OnDestroy {\r\n\r\n TableColumnType = TableColumnType;\r\n CheckmarkType = CheckmarkType;\r\n\r\n @Input()\r\n model: ITableModel = { data: {}, index: 0, sequence: 0 };\r\n\r\n @Input()\r\n columns: ITableColumnExtendedModel[] = [];\r\n\r\n @Input()\r\n selectOnClick: boolean = false;\r\n\r\n @Input()\r\n position: Position = Position.Left;\r\n\r\n @ViewChild('columnCheckmark', { static: false })\r\n columnCheckmark!: ElementRef;\r\n\r\n _columnCheckmarkSubscription!: Subscription;\r\n\r\n @HostListener('click')\r\n onContentClick(): void {\r\n if (this.selectOnClick)\r\n this.select();\r\n }\r\n\r\n @HostBinding(`class.${UIClass.Even}`)\r\n get even(): boolean {\r\n return (this.model.index + 1) % 2 === 0;\r\n }\r\n\r\n @HostBinding(`class.${UIClass.Pointer}`)\r\n get pointer(): boolean {\r\n return this.selectOnClick;\r\n }\r\n\r\n constructor(private selectedService: TableSelectService) { }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.columnCheckmark) {\r\n this._columnCheckmarkSubscription = fromEvent(this.columnCheckmark.nativeElement, 'click')\r\n .subscribe((event: any) => {\r\n if (this.selectOnClick)\r\n event.stopPropagation();\r\n\r\n this.select();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._columnCheckmarkSubscription)\r\n this._columnCheckmarkSubscription.unsubscribe();\r\n }\r\n\r\n private select(): void {\r\n this.model.selected = !this.model.selected;\r\n this.selectedService.select(this.model.sequence, this.model.selected);\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { Position, UIConstants } from 'ngx-sfc-common';\r\nimport { BaseDefaultTableContentComponent } from '../../base-default-table-content.component';\r\n\r\n@Component({\r\n selector: 'sfc-default-table-row',\r\n templateUrl: './default-table-row.component.html',\r\n styleUrls: ['./default-table-row.component.scss'] \r\n})\r\nexport class DefaultTableRowComponent extends BaseDefaultTableContentComponent {\r\n get contentPosition(): string {\r\n switch (this.position) {\r\n case Position.Left:\r\n return UIConstants.CSS_START;\r\n case Position.Right:\r\n return UIConstants.CSS_END;\r\n default:\r\n return UIConstants.CSS_CENTER;\r\n }\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div [style.width]=\"column.calculatedWidth\" [style.text-align]=\"position\" class=\"content-container\"\r\n *ngFor=\"let column of columns\">\r\n <div class=\"content\" [style.align-items]=\"contentPosition\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div class=\"checkmark\" #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.selected || false\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { BaseDefaultTableContentComponent } from '../../base-default-table-content.component';\r\n\r\n@Component({\r\n selector: 'sfc-default-table-card',\r\n templateUrl: './default-table-card.component.html',\r\n styleUrls: ['./default-table-card.component.scss']\r\n})\r\nexport class DefaultTableCardComponent extends BaseDefaultTableContentComponent { }\r\n","<div class=\"container\">\r\n <div class=\"content-container\" *ngFor=\"let column of columns\">\r\n <div class=\"content\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.selected || false\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>","import {\r\n AfterContentChecked, AfterViewChecked, ChangeDetectorRef, Component, ContentChildren,\r\n DoCheck, EventEmitter, HostBinding, Inject, Input, IterableDiffer, IterableDiffers, OnDestroy,\r\n OnInit, Output, QueryList, TemplateRef\r\n} from '@angular/core';\r\nimport { BehaviorSubject, filter, map, Observable, Subscription } from 'rxjs';\r\nimport {\r\n all, firstOrDefault, getCalcValue, getCssLikeValue, isDefined,\r\n MediaLimits, Position, ResizeService, SortingDirection, TemplateReferenceDirective, WINDOW,\r\n UIConstants, LoadContainerType, LoaderFunction, LoadContainerLoadType, ILoadContainerModel,\r\n ILoadContainerResultModel, IPaginationModel, PaginationConstants, generateGuid, any,\r\n hasItem, SortingService, ISortingModel, ILoadContainerPredicateParameters, FilterFunction,\r\n UIClass, IToggleSwitcherModel, where, sum\r\n} from 'ngx-sfc-common';\r\nimport { TableColumnType } from './parts/columns/table-column-type.enum';\r\nimport { ITableColumnExtendedModel, ITableColumnModel } from './parts/columns/table-column.model';\r\nimport { ColumnsToggleService } from './parts/toggle/service/columns-toggle.service';\r\nimport { ITableSelectEvent } from './service/select/table-select.event';\r\nimport { TableSelectService } from './service/select/table-select.service';\r\nimport { TableDataType } from './enums/table-data-type.enum';\r\nimport { TableConstants } from './table.constants';\r\nimport { TableTemplate } from './enums/table-template.enum';\r\nimport { ITableModel } from './models/table.model';\r\nimport { faTableList, faBorderAll } from '@fortawesome/free-solid-svg-icons';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n providers: [SortingService, TableSelectService, ColumnsToggleService, ResizeService]\r\n})\r\nexport class TableComponent implements OnInit, AfterContentChecked, AfterViewChecked, DoCheck, OnDestroy {\r\n\r\n TableDataType = TableDataType;\r\n TableColumnType = TableColumnType;\r\n TableTemplate = TableTemplate;\r\n Constants = TableConstants;\r\n LoadContainerType = LoadContainerType;\r\n\r\n @Input()\r\n position: Position = Position.Center;\r\n\r\n @Input()\r\n delimeter: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class')\r\n dataType: TableDataType = TableDataType.Rows;\r\n\r\n @Input()\r\n dataToggle: boolean = true;\r\n\r\n @Input()\r\n showColumns: boolean = true;\r\n\r\n @Input()\r\n columnsToggle: boolean = false;\r\n\r\n @Input()\r\n columnsShowOnInit: boolean = true;\r\n\r\n @Input()\r\n pagination: IPaginationModel = PaginationConstants.DEFAULT_PAGINATION;\r\n\r\n @Input()\r\n sequence: boolean = false;\r\n\r\n @Input()\r\n expanded: boolean = false;\r\n\r\n @Input()\r\n notFoundLabel: string = this.Constants.NOT_FOUND_LABEL_DEFAULT;\r\n\r\n @Input()\r\n loadMoreLabel: string = this.Constants.LOAD_MORE_LABEL_DEFAULT;\r\n\r\n @Input()\r\n showTotal: boolean = false;\r\n\r\n @Input()\r\n totalLabel: string = this.Constants.TOTAL_LABEL_DEFAULT;\r\n\r\n @Input()\r\n paginationCount: number = PaginationConstants.DEFAULT_COUNT;\r\n\r\n @Input()\r\n paginationLimits: boolean = false;\r\n\r\n @Input()\r\n showLoading: boolean = true;\r\n\r\n // Template references \r\n\r\n @Input()\r\n columnContent?: TemplateRef<any>;\r\n\r\n @Input()\r\n rowContent?: TemplateRef<any>;\r\n\r\n @Input()\r\n cardContent?: TemplateRef<any>;\r\n\r\n // End Template references\r\n\r\n //Data\r\n\r\n @Input()\r\n data: any[] = [];\r\n\r\n @Input()\r\n data$!: Observable<any[]>;\r\n\r\n private dataDiffer!: IterableDiffer<any>;\r\n\r\n private dataSubject!: BehaviorSubject<any[]>;\r\n\r\n // End Data\r\n\r\n // Columns\r\n\r\n @Input()\r\n columns: ITableColumnModel[] = [];\r\n\r\n @Input()\r\n showColumnsLabel!: string;\r\n\r\n @Input()\r\n hideColumnsLabel!: string;\r\n\r\n @Input()\r\n resize: boolean = true;\r\n\r\n private columnsDiffer!: IterableDiffer<ITableColumnModel>;\r\n\r\n private columnsSubject: BehaviorSubject<ITableColumnModel[]> = new BehaviorSubject<ITableColumnModel[]>(this.columns);\r\n\r\n public tableColumns: ITableColumnExtendedModel[] = [];\r\n\r\n // End Columns \r\n\r\n // Load container\r\n\r\n @Input()\r\n loadType: LoadContainerLoadType = LoadContainerLoadType.Pagination;\r\n\r\n @Input()\r\n loader!: LoaderFunction;\r\n\r\n @Input()\r\n filter?: FilterFunction;\r\n\r\n @Input()\r\n predicate$!: Observable<ILoadContainerPredicateParameters | null>;\r\n\r\n public loadModel!: ILoadContainerModel;\r\n\r\n public loadContainerId: string = generateGuid();\r\n\r\n public items: ITableModel[] = [];\r\n\r\n public total: number = 0;\r\n\r\n private page: number = PaginationConstants.DEFAULT_PAGE;\r\n\r\n @HostBinding(`class.${UIClass.Loading}`)\r\n public loading: boolean = false;\r\n\r\n // End Load container\r\n\r\n // Selection\r\n\r\n @Input()\r\n selectable: boolean = false;\r\n\r\n @Input()\r\n selectOnClick: boolean = false;\r\n\r\n @Input()\r\n selectMultiple: boolean = true;\r\n\r\n @Output()\r\n selected: EventEmitter<ITableSelectEvent> = new EventEmitter<ITableSelectEvent>();\r\n\r\n public get allRowsSelected(): boolean {\r\n return (this.allSelected || this.total == this.selectedService.selectedItems.length)\r\n && !any(this.selectedService.unselectedItems)\r\n && any(this.items);\r\n };\r\n\r\n private allSelected: boolean = false;\r\n\r\n private _allSelectionSubscription!: Subscription;\r\n\r\n // End Selection\r\n\r\n // Data toggle\r\n\r\n @Input()\r\n dataListLabel: string = this.Constants.DATA_LIST_LABEL;\r\n\r\n @Input()\r\n dataCardsLabel: string = this.Constants.DATA_CARDS_LABEL;\r\n\r\n public toggleSwitcherLeftModel!: IToggleSwitcherModel;\r\n\r\n public toggleSwitcherRightModel!: IToggleSwitcherModel;\r\n\r\n // End data toggle\r\n\r\n public vm$!: Observable<any>;\r\n\r\n private _columnsResizeSubscription!: Subscription;\r\n\r\n private _columnsSubscription!: Subscription;\r\n\r\n private _sortingSubscription!: Subscription;\r\n\r\n private get initialSorting(): ISortingModel | null {\r\n const activeSortingColumn = firstOrDefault(this.columns, column => column.sorting?.active!);\r\n\r\n if (activeSortingColumn)\r\n return { id: activeSortingColumn.field, direction: activeSortingColumn.sorting?.direction! };\r\n\r\n const enabledSortingColumn = firstOrDefault(this.columns, column => column.sorting?.enabled!);\r\n\r\n return enabledSortingColumn ? { id: enabledSortingColumn.field, direction: enabledSortingColumn.sorting?.direction! } : null;\r\n }\r\n\r\n @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n constructor(\r\n public columnsToggleService: ColumnsToggleService,\r\n @Inject(WINDOW) private window: Window,\r\n public selectedService: TableSelectService,\r\n private sortingService: SortingService,\r\n private changeDetector: ChangeDetectorRef,\r\n private resizeService: ResizeService,\r\n private iterableDiffers: IterableDiffers) {\r\n this.dataDiffer = iterableDiffers.find([]).create<IterableDiffer<any>>(undefined);\r\n this.columnsDiffer = iterableDiffers.find([]).create<ITableColumnModel>(undefined);\r\n }\r\n\r\n ngOnInit(): void {\r\n // if data is static, make it observable\r\n if (!isDefined(this.data$)) {\r\n this.dataSubject = new BehaviorSubject(this.data);\r\n this.data$ = this.dataSubject.asObservable();\r\n }\r\n\r\n if (this.selectable)\r\n this.selectionSubscribe();\r\n\r\n // set up columns (conditionally add sequence, selectable and expand columns)\r\n this.columnsSubscribe();\r\n\r\n if (this.resize)\r\n this.resizeSubscribe();\r\n\r\n this.sortingSubscribe();\r\n\r\n this.loadModel = {\r\n predicate$: this.predicate$,\r\n data$: this.data$,\r\n loader: this.loader,\r\n filter: this.filter,\r\n loadType: this.loadType,\r\n pagination: this.pagination,\r\n sorting: this.initialSorting\r\n };\r\n\r\n this.toggleSwitcherLeftModel = { label: this.dataListLabel, icon: faTableList };\r\n this.toggleSwitcherRightModel = { label: this.dataCardsLabel, icon: faBorderAll };\r\n\r\n if (this.columnsShowOnInit) {\r\n this.columnsToggleService.toggle();\r\n }\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.dataDiffer.diff(this.data)) {\r\n this.dataSubject.next(this.data);\r\n }\r\n\r\n if (this.columnsDiffer.diff(this.columns)) {\r\n this.columnsSubject.next(this.columns);\r\n }\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._allSelectionSubscription?.unsubscribe();\r\n this._columnsResizeSubscription?.unsubscribe();\r\n this._columnsSubscription?.unsubscribe();\r\n this._sortingSubscription?.unsubscribe();\r\n }\r\n\r\n public onDataTypeToggle(): void {\r\n this.dataType = this.dataType == TableDataType.Rows\r\n ? TableDataType.Cards\r\n : TableDataType.Rows;\r\n }\r\n\r\n public handleSuccess(result: ILoadContainerResultModel<any>): void {\r\n this.page = result.page;\r\n this.total = result.total;\r\n\r\n const items: ITableModel[] = result.items.map((item, index) => {\r\n const sequence = (index + 1) + ((this.page * this.pagination.size) - this.pagination.size);\r\n return {\r\n index: index,\r\n sequence: sequence,\r\n selected: result.reset ? false : this.getItemSelected(sequence),\r\n data: item\r\n };\r\n });\r\n\r\n if (result.reset) {\r\n this.items = items;\r\n\r\n if (this.selectable) {\r\n this.selectedService.selectAll(false);\r\n }\r\n }\r\n else {\r\n this.items = this.items.concat(items);\r\n }\r\n }\r\n\r\n private selectionSubscribe(): void {\r\n this._allSelectionSubscription = this.selectedService.select$\r\n .subscribe((event: ITableSelectEvent) => {\r\n\r\n if (this.selectMultiple) {\r\n if (event.index == null) {\r\n this.allSelected = event.selected;\r\n this.items.forEach((item: ITableModel) => item.selected = event.selected);\r\n } else {\r\n this.items.forEach((item: ITableModel) => {\r\n if (item.sequence === event.index)\r\n item.selected = event.selected;\r\n });\r\n }\r\n } else {\r\n this.items.forEach((item: ITableModel) => {\r\n if (item.sequence === event.index)\r\n item.selected = event.selected;\r\n else\r\n item.selected = false;\r\n });\r\n }\r\n\r\n this.selected.emit(event);\r\n });\r\n }\r\n\r\n private resizeSubscribe(): void {\r\n this._columnsResizeSubscription = this.resizeService.onResize$\r\n .subscribe(() => this.tableColumns.forEach(column =>\r\n column.calculatedWidth = this.calculateColumnWidth(column, this.tableColumns.length)));\r\n }\r\n\r\n private columnsSubscribe(): void {\r\n this._columnsSubscription = this.columnsSubject.asObservable().pipe(\r\n filter(columns => any(columns)),\r\n map((columns: ITableColumnModel[]) => {\r\n let tableColumns = JSON.parse(JSON.stringify(columns));\r\n\r\n if (this.sequence)\r\n tableColumns.unshift(TableConstants.SEQUENCE_COLUMN);\r\n\r\n if (this.selectable && this.selectMultiple)\r\n tableColumns.unshift(TableConstants.SELECTABLE_COLUMN);\r\n\r\n if (this.expanded)\r\n tableColumns.push(TableConstants.EXPANDED_COLUMN);\r\n\r\n // calculated width not work without deep copy\r\n return JSON.parse(JSON.stringify(tableColumns));\r\n })\r\n ).subscribe((columns: ITableColumnExtendedModel[]) => {\r\n columns.forEach((column: ITableColumnExtendedModel) => {\r\n column.calculatedWidth = this.calculateColumnWidth(column, columns.length);\r\n\r\n const sortingColumn = this.initialSorting;\r\n if (this.initialSorting) {\r\n this.setColumnSorting(column, sortingColumn?.id!)\r\n }\r\n });\r\n\r\n this.tableColumns = columns;\r\n });\r\n }\r\n\r\n private sortingSubscribe(): void {\r\n this._sortingSubscription = this.sortingService.sorting$.subscribe((sortingEvent) =>\r\n this.tableColumns.forEach((column: ITableColumnExtendedModel) => this.setColumnSorting(column, sortingEvent?.id)));\r\n }\r\n\r\n private calculateColumnWidth(column: ITableColumnExtendedModel, columnsLength: number): string {\r\n // defined width for all columns\r\n if (all(this.columns, column => isDefined(column.width))) {\r\n return getCssLikeValue(column.width!, UIConstants.CSS_PERCENTAGE);\r\n }\r\n\r\n if (isDefined(column.width)) {\r\n return getCssLikeValue(column.width!, UIConstants.CSS_PERCENTAGE);\r\n }\r\n\r\n const columnsWithWidth: ITableColumnModel[] = where(this.columns, column => isDefined(column.width))!,\r\n columnsWidth: number = sum(columnsWithWidth, column => column.width!);\r\n\r\n if (columnsWidth > 0) {\r\n const proportionalWidth: number = (CommonConstants.FULL_PERCENTAGE - columnsWidth) / (this.columns.length - columnsWithWidth.length);\r\n return getCssLikeValue(proportionalWidth, UIConstants.CSS_PERCENTAGE);\r\n }\r\n\r\n let width: number = columnsLength;\r\n\r\n if (this.window.innerWidth <= MediaLimits.MobileLarge)\r\n width = 1;\r\n else if (this.window.innerWidth <= MediaLimits.Tablet)\r\n width = Math.ceil(columnsLength / 2);\r\n\r\n return getCalcValue(width);\r\n }\r\n\r\n private setColumnSorting(column: ITableColumnExtendedModel, sortingId: string): void {\r\n if (column.sorting?.enabled) {\r\n column.sorting.active = column.field == sortingId;\r\n\r\n if (!column.sorting.active)\r\n column.sorting.direction = SortingDirection.Ascending;\r\n }\r\n }\r\n\r\n private getItemSelected(sequence: number): boolean {\r\n return this.allSelected\r\n ? !hasItem(this.selectedService.unselectedItems, sequence)\r\n : hasItem(this.selectedService.selectedItems, sequence);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div *ngIf=\"showLoading\" class=\"table-loader\"></div>\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <div class=\"left\">\r\n <sfc-columns-toggle *ngIf=\"columnsToggle\" [showLabel]=\"showColumnsLabel\" [hideLabel]=\"hideColumnsLabel\">\r\n </sfc-columns-toggle>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <p *ngIf=\"showTotal\">{{totalLabel}}: <span>{{total}}</span></p>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"toggleSwitcherLeftModel\" [rightModel]=\"toggleSwitcherRightModel\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showColumns && columnsToggleService.show\" class=\"columns\">\r\n <div class=\"column\" [style.justifyContent]=\"position\" [style.minWidth]=\"column.calculatedWidth\"\r\n *ngFor=\"let column of tableColumns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting-column *ngSwitchDefault [model]=\"column.sorting!\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting-column>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\" class=\"table-delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <sfc-load-container [id]=\"loadContainerId\" [type]=\"LoadContainerType.Table\" [model]=\"loadModel\"\r\n [paginationCount]=\"paginationCount\" [paginationLimits]=\"paginationLimits\" [showLoading]=\"showLoading\"\r\n (handleSuccess)=\"handleSuccess($event)\" (handleLoading)=\"loading = $event\" [emptyLabel]=\"notFoundLabel\"\r\n [loadMoreLabel]=\"loadMoreLabel\">\r\n <div class=\"row\" *ngFor=\"let item of items; index as i;\">\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: tableColumns, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"tableColumns\" [model]=\"item\" [position]=\"position\"\r\n [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\"\r\n [defaultContent]=\"defaultCard\" [contextData]=\"{model: item, columns: tableColumns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"tableColumns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n </sfc-load-container>\r\n </div>\r\n</div>","export enum ExpandedTableRowTemplate {\r\n Row = 'row',\r\n Content = 'content'\r\n}","import { Component, ContentChildren, HostBinding, Input, QueryList, TemplateRef } from '@angular/core';\r\nimport { TemplateReferenceDirective, UIClass } from 'ngx-sfc-common';\r\nimport { BaseDefaultTableContentComponent } from '../../base-default-table-content.component';\r\nimport { ExpandedTableRowTemplate } from './expanded-table-row-template.enum';\r\nimport { IExpandedTableRowContextModel } from './expanded-table-row.model';\r\n\r\n@Component({\r\n selector: 'sfc-expanded-table-row',\r\n templateUrl: './expanded-table-row.component.html',\r\n styleUrls: ['./expanded-table-row.component.scss']\r\n})\r\nexport class ExpandedTableRowComponent extends BaseDefaultTableContentComponent {\r\n\r\n ExpandedTemplate = ExpandedTableRowTemplate;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Expanded)\r\n expanded: boolean = false;\r\n\r\n // Template references \r\n\r\n @Input()\r\n row?: TemplateRef<any>;\r\n\r\n @Input()\r\n content?: TemplateRef<any>;\r\n\r\n // End template references \r\n\r\n @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n get contextData(): IExpandedTableRowContextModel {\r\n return {\r\n model: this.model,\r\n columns: this.columns,\r\n position: this.position,\r\n expanded: this.expanded,\r\n even: this.even\r\n }\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>","export enum CarouselProperty {\r\n Position = 'position',\r\n Settings = 'settings',\r\n Width = 'width',\r\n Items = 'items'\r\n};\r\n\r\nexport enum CarouselState {\r\n Busy = 'busy',\r\n Interacting = 'interacting',\r\n Rotating = 'rotating'\r\n};\r\n\r\nexport enum CarouselEventType {\r\n Initializing = 'initializing',\r\n Initialized = 'initialized',\r\n Change = 'change',\r\n Changed = 'changed',\r\n Resize = 'resize',\r\n Resizing = 'resizing',\r\n Resized = 'resized',\r\n Refresh = 'refresh',\r\n Refreshed = 'refreshed',\r\n Translate = 'translate',\r\n Translated = 'translated',\r\n Animating = 'animating',\r\n Refreshing = 'refreshing' \r\n};","import { Directive, Input, TemplateRef } from \"@angular/core\";\r\nimport { isNumeric } from \"ngx-sfc-common\";\r\n\r\nlet nextId = 0;\r\n\r\n/* eslint-disable */\r\n@Directive({ selector: 'ng-template[sfcCarouselSlide]' })\r\nexport class CarouselSlideDirective {\r\n\r\n @Input()\r\n id = `slide-${nextId++}`;\r\n\r\n private _dataMerge = 1;\r\n @Input()\r\n set dataMerge(data: number) {\r\n this._dataMerge = isNumeric(data) ? data : 1;\r\n };\r\n get dataMerge(): number { return this._dataMerge }\r\n\r\n @Input()\r\n width = 0;\r\n\r\n constructor(public tplRef: TemplateRef<any>) { }\r\n}\r\n","import { CarouselOptionsModel } from \"../../models/options.model\";\r\n\r\nexport class CarouselServiceConstants {\r\n static CLONE_ID_PREFIX: string = 'cloned-';\r\n static DEFAULT_NAV_TEXT: string[] = ['prev', 'next'];\r\n static DEFAULT_OPTIONS: CarouselOptionsModel = {\r\n items: 3,\r\n skip_validateItems: false,\r\n loop: false,\r\n center: false,\r\n rewind: false,\r\n margin: 0,\r\n stagePadding: 0,\r\n merge: false,\r\n mergeFit: true,\r\n autoWidth: false,\r\n startPosition: 0,\r\n rtl: false,\r\n responsive: {},\r\n responsiveRefreshRate: 200,\r\n // defaults to Navigation\r\n nav: false,\r\n navText: [],\r\n navIcons:[],\r\n navSpeed: false,\r\n navBottom: true,\r\n slideBy: 1,\r\n dots: true,\r\n dotsEach: false,\r\n navigationDotsModel: false,\r\n dotsSpeed: false,\r\n // defaults to Autoplay\r\n autoplay: false,\r\n autoplayTimeout: 5000,\r\n autoplayHoverPause: false,\r\n autoplaySpeed: false,\r\n autoplayMouseleaveTimeout: 1,\r\n // defaults to LazyLoading\r\n lazyLoad: false,\r\n lazyLoadEager: 0,\r\n // defaults to Animate\r\n slideTransition: '',\r\n animateOut: false,\r\n animateIn: false,\r\n // defaults to AutoHeight\r\n autoHeight: false\r\n }\r\n}","export enum Type {\r\n Event = 'event',\r\n State = 'state'\r\n};\r\n\r\nexport enum Width {\r\n Default = 'default',\r\n Inner = 'inner',\r\n Outer = 'outer'\r\n};","import { Injectable } from '@angular/core';\r\nimport { CommonConstants, isNumeric } from 'ngx-sfc-common';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { CarouselEventType, CarouselProperty, CarouselState } from '../../carousel.enum';\r\nimport { CarouselSlideDirective } from '../../directive/carousel-slide.directive';\r\nimport { CarouselDOMModel } from '../../models/dom.model';\r\nimport { CarouselNavigationDotsModel, CarouselNavigationModel } from '../../models/navigation.model';\r\nimport { CarouselOptionsModel } from '../../models/options.model';\r\nimport { CarouselSlideModel } from '../../models/slide.model';\r\nimport { CarouselStageModel } from '../../parts/stage/carousel-stage.model';\r\nimport { CarouselServiceConstants } from './carousel-service.constants';\r\nimport { Width } from './carousel-service.enum';\r\nimport { CarouselCurrentData, States } from './carousel-service.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselService {\r\n\r\n private _viewSettingsShipper$ = new Subject<CarouselCurrentData>();\r\n\r\n private _initializedCarousel$ = new Subject<string>();\r\n\r\n private _changeSettingsCarousel$ = new Subject<any>();\r\n\r\n private _changedSettingsCarousel$ = new Subject<any>();\r\n\r\n private _translateCarousel$ = new Subject<string>();\r\n\r\n private _translatedCarousel$ = new Subject<string>();\r\n\r\n private _resizeCarousel$ = new Subject<string>();\r\n\r\n private _resizedCarousel$ = new Subject<string>();\r\n\r\n private _refreshCarousel$ = new Subject<string>();\r\n\r\n private _refreshedCarousel$ = new Subject<string>();\r\n\r\n private carouselDOMModel: CarouselDOMModel = {\r\n rtl: false,\r\n isResponsive: false,\r\n isRefreshed: false,\r\n isLoaded: false,\r\n isLoading: false\r\n };\r\n\r\n private stageModel: CarouselStageModel = {\r\n transform: 'translate3d(0px,0px,0px)',\r\n transition: '0s',\r\n width: 0,\r\n paddingL: 0,\r\n paddingR: 0\r\n };\r\n\r\n private _width!: number;\r\n\r\n private _items: CarouselSlideDirective[] = [];\r\n\r\n private _widths: any[] = [];\r\n\r\n private _supress: any = {};\r\n\r\n private _current: number | null = null;\r\n\r\n private _clones: any[] = [];\r\n\r\n private _mergers: any[] = [];\r\n\r\n private _speed: number | null = null;\r\n\r\n private _coordinates: number[] = [];\r\n\r\n private _invalidated: any = {};\r\n\r\n private _states: States = {\r\n current: {},\r\n tags: {\r\n initializing: [CarouselState.Busy],\r\n animating: [CarouselState.Busy]\r\n }\r\n };\r\n\r\n private _pipe: any[] = [\r\n {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: (cache: any) => {\r\n cache.current = this._items && this._items[this.relative(this._current || 0)].id;\r\n }\r\n },\r\n {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: (cache: any) => {\r\n const margin = this.settings.margin || CommonConstants.EMPTY_STRING,\r\n grid = !this.settings.autoWidth,\r\n rtl = this.settings.rtl,\r\n css = {\r\n 'margin-left': rtl ? margin : CommonConstants.EMPTY_STRING,\r\n 'margin-right': rtl ? CommonConstants.EMPTY_STRING : margin\r\n };\r\n\r\n if (!grid) {\r\n this.slidesModel.forEach(slide => {\r\n slide.marginL = css['margin-left'];\r\n slide.marginR = css['margin-right'];\r\n });\r\n }\r\n\r\n cache.css = css;\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: (cache: any) => {\r\n const width: any = +(this.width() / (this.settings.items || 0)).toFixed(3) - (this.settings.margin || 0),\r\n grid = !this.settings.autoWidth,\r\n widths = [];\r\n let merge = null,\r\n iterator = this._items.length;\r\n\r\n cache.items = {\r\n merge: false,\r\n width: width\r\n };\r\n\r\n while (iterator--) {\r\n merge = this._mergers[iterator];\r\n merge = this.settings.mergeFit && Math.min(merge, (this.settings.items || 0)) || merge;\r\n cache.items.merge = merge > 1 || cache.items.merge;\r\n\r\n widths[iterator] = !grid ? this._items[iterator].width ? this._items[iterator].width : width : width * merge;\r\n }\r\n\r\n this._widths = widths;\r\n\r\n this.slidesModel.forEach((slide, i) => {\r\n slide.width = this._widths[i];\r\n slide.marginR = cache.css['margin-right'];\r\n slide.marginL = cache.css['margin-left'];\r\n });\r\n }\r\n }, {\r\n filter: [CarouselProperty.Items, CarouselProperty.Settings],\r\n run: () => {\r\n const clones: any[] = [],\r\n items: CarouselSlideDirective[] = this._items,\r\n settings: any = this.settings,\r\n view = Math.max(settings.items * 2, 4),\r\n size = Math.ceil(items.length / 2) * 2;\r\n let append: any[] = [],\r\n prepend: any[] = [],\r\n repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0;\r\n\r\n repeat /= 2;\r\n\r\n while (repeat--) {\r\n clones.push(this.normalize(clones.length / 2, true));\r\n append.push({ ...this.slidesModel[clones[clones.length - 1]] });\r\n clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\r\n prepend.unshift({ ...this.slidesModel[clones[clones.length - 1]] });\r\n }\r\n\r\n this._clones = clones;\r\n\r\n append = append.map(slide => {\r\n slide.id = `${CarouselServiceConstants.CLONE_ID_PREFIX}${slide.id}`;\r\n slide.isActive = false;\r\n slide.isCloned = true;\r\n return slide;\r\n });\r\n\r\n prepend = prepend.map(slide => {\r\n slide.id = `${CarouselServiceConstants.CLONE_ID_PREFIX}${slide.id}`;\r\n slide.isActive = false;\r\n slide.isCloned = true;\r\n return slide;\r\n });\r\n\r\n this.slidesModel = prepend.concat(this.slidesModel).concat(append);\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: () => {\r\n const rtl = this.settings.rtl ? 1 : -1,\r\n size = this._clones.length + this._items.length,\r\n coordinates = [];\r\n let iterator = -1,\r\n previous = 0,\r\n current = 0;\r\n\r\n while (++iterator < size) {\r\n previous = coordinates[iterator - 1] || 0;\r\n current = this._widths[this.relative(iterator)] + this.settings.margin;\r\n coordinates.push(previous + current * rtl);\r\n }\r\n\r\n this._coordinates = coordinates;\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: () => {\r\n const padding = this.settings.stagePadding || 0,\r\n coordinates = this._coordinates,\r\n css = {\r\n 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\r\n 'padding-left': padding || '',\r\n 'padding-right': padding || ''\r\n };\r\n\r\n this.stageModel.width = css.width;\r\n this.stageModel.paddingR = css['padding-right'];\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: (cache: any) => {\r\n let current = cache.current ? this.slidesModel.findIndex(slide => slide.id === cache.current) : 0;\r\n current = Math.max(this.minimum(), Math.min(this.maximum(), current));\r\n this.reset(current);\r\n }\r\n }, {\r\n filter: [CarouselProperty.Position],\r\n run: () => {\r\n this.animate(this.coordinates(this._current));\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Position, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: () => {\r\n const rtl = this.settings.rtl ? 1 : -1,\r\n padding = (this.settings.stagePadding || 0) * 2,\r\n matches = [];\r\n let begin: any, end, inner, outer, i, n;\r\n\r\n begin = this.coordinates(this.current());\r\n if (typeof begin === 'number') {\r\n begin += padding;\r\n } else {\r\n begin = 0;\r\n }\r\n\r\n end = begin + this.width() * rtl;\r\n\r\n if (rtl === -1 && this.settings.center) {\r\n const result = this._coordinates.filter(element => {\r\n return (this.settings.items || 0) % 2 === 1 ? element >= begin : element > begin;\r\n });\r\n begin = result.length ? result[result.length - 1] : begin;\r\n }\r\n\r\n for (i = 0, n = this._coordinates.length; i < n; i++) {\r\n inner = Math.ceil(this._coordinates[i - 1] || 0);\r\n outer = Math.ceil(Math.abs(this._coordinates[i]) + padding * rtl);\r\n\r\n if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))\r\n || (this.op(outer, '<', begin) && this.op(outer, '>', end))) {\r\n matches.push(i);\r\n }\r\n }\r\n\r\n this.slidesModel.forEach(slide => {\r\n slide.isActive = false;\r\n return slide;\r\n });\r\n matches.forEach(item => {\r\n this.slidesModel[item].isActive = true;\r\n });\r\n\r\n if (this.settings.center) {\r\n this.slidesModel.forEach(slide => {\r\n slide.isCentered = false;\r\n return slide;\r\n });\r\n const currentValue = this.current();\r\n if (currentValue)\r\n this.slidesModel[currentValue].isCentered = true;\r\n }\r\n }\r\n }\r\n ];\r\n\r\n settings: CarouselOptionsModel = {\r\n items: 0\r\n };\r\n\r\n slidesModel!: CarouselSlideModel[];\r\n\r\n navigationModel!: CarouselNavigationModel;\r\n\r\n navigationDotsModel!: CarouselNavigationDotsModel;\r\n\r\n options: CarouselOptionsModel = {};\r\n\r\n get viewCurrrentSettings(): Observable<CarouselCurrentData> {\r\n return this._viewSettingsShipper$.asObservable();\r\n }\r\n\r\n get initializedState(): Observable<string> {\r\n return this._initializedCarousel$.asObservable()\r\n }\r\n\r\n get changeState(): Observable<any> {\r\n return this._changeSettingsCarousel$.asObservable();\r\n }\r\n\r\n get changedState(): Observable<any> {\r\n return this._changedSettingsCarousel$.asObservable();\r\n }\r\n\r\n get translateState(): Observable<string> {\r\n return this._translateCarousel$.asObservable();\r\n }\r\n\r\n get translatedState(): Observable<string> {\r\n return this._translatedCarousel$.asObservable();\r\n }\r\n\r\n get resizeState(): Observable<string> {\r\n return this._resizeCarousel$.asObservable();\r\n }\r\n\r\n get resizedState(): Observable<string> {\r\n return this._resizedCarousel$.asObservable();\r\n }\r\n\r\n get refreshState(): Observable<string> {\r\n return this._refreshCarousel$.asObservable();\r\n }\r\n\r\n get refreshedState(): Observable<string> {\r\n return this._refreshedCarousel$.asObservable();\r\n }\r\n\r\n setup(carouselWidth: number, slides: CarouselSlideDirective[], options: CarouselOptionsModel) {\r\n this.setCarouselWidth(carouselWidth);\r\n this.setItems(slides);\r\n this.defineSlidesData();\r\n this.setOptions(options);\r\n\r\n this.settings = { ...this.options };\r\n\r\n this.setOptionsForViewport();\r\n\r\n this.trigger(CarouselEventType.Change, { property: { name: CarouselProperty.Settings, value: this.settings } });\r\n this.invalidate(CarouselProperty.Settings);\r\n this.trigger(CarouselEventType.Changed, { property: { name: CarouselProperty.Settings, value: this.settings } });\r\n }\r\n\r\n initialize(slides: CarouselSlideDirective[]) {\r\n this.enter(CarouselEventType.Initializing);\r\n\r\n this.carouselDOMModel.rtl = this.settings.rtl || false;\r\n\r\n if (this._mergers.length) {\r\n this._mergers = [];\r\n }\r\n\r\n slides.forEach(item => {\r\n const mergeN: number = this.settings.merge ? item.dataMerge : 1;\r\n this._mergers.push(mergeN);\r\n });\r\n this._clones = [];\r\n\r\n this.reset(isNumeric(this.settings.startPosition) ? +(this.settings.startPosition || 0) : 0);\r\n\r\n this.invalidate(CarouselProperty.Items);\r\n this.refresh();\r\n\r\n this.carouselDOMModel.isLoaded = true;\r\n\r\n this.sendChanges();\r\n\r\n this.leave(CarouselEventType.Initializing);\r\n this.trigger(CarouselEventType.Initialized);\r\n };\r\n\r\n sendChanges() {\r\n this._viewSettingsShipper$.next({\r\n carouselDOMModel: this.carouselDOMModel,\r\n stageModel: this.stageModel,\r\n slidesModel: this.slidesModel,\r\n navigationModel: this.navigationModel,\r\n navigationDotsModel: this.navigationDotsModel\r\n });\r\n }\r\n\r\n onResize(curWidth: number) {\r\n if (this._items.length) {\r\n this.setCarouselWidth(curWidth);\r\n this.enter(CarouselEventType.Resizing);\r\n this.trigger(CarouselEventType.Resize);\r\n this.invalidate(CarouselProperty.Width);\r\n this.refresh();\r\n this.leave(CarouselEventType.Resizing);\r\n this.trigger(CarouselEventType.Resized);\r\n }\r\n }\r\n\r\n is(state: string): boolean {\r\n return (this._states.current as any)[state] && (this._states.current as any)[state] > 0;\r\n };\r\n\r\n current(position?: number): number | undefined {\r\n if (position === undefined) {\r\n return this._current as number;\r\n }\r\n\r\n if (this._items.length === 0) {\r\n return undefined;\r\n }\r\n\r\n position = this.normalize(position);\r\n\r\n if (this._current !== position) {\r\n this.trigger(CarouselEventType.Change, { property: { name: CarouselProperty.Position, value: position } });\r\n\r\n this._current = position;\r\n\r\n this.invalidate(CarouselProperty.Position);\r\n this.trigger(CarouselEventType.Changed, { property: { name: CarouselProperty.Position, value: this._current } });\r\n }\r\n\r\n return this._current;\r\n }\r\n\r\n relative(position: number): number {\r\n position -= this._clones.length / 2;\r\n return this.normalize(position, true);\r\n }\r\n\r\n maximum(relative: boolean = false): number {\r\n const settings = this.settings;\r\n let maximum = this._coordinates.length,\r\n iterator,\r\n reciprocalItemsWidth,\r\n elementWidth;\r\n\r\n if (settings.loop) {\r\n maximum = this._clones.length / 2 + this._items.length - 1;\r\n } else if (settings.autoWidth || settings.merge) {\r\n iterator = this._items.length;\r\n reciprocalItemsWidth = this.slidesModel[--iterator].width;\r\n elementWidth = this._width;\r\n while (iterator--) {\r\n reciprocalItemsWidth += +(this.slidesModel[iterator].width as string) + (this.settings.margin || 0).toString();\r\n if ((reciprocalItemsWidth as number) > elementWidth) {\r\n break;\r\n }\r\n }\r\n maximum = iterator + 1;\r\n } else if (settings.center) {\r\n maximum = this._items.length - 1;\r\n } else {\r\n maximum = this._items.length - (settings.items || 0);\r\n }\r\n\r\n if (relative) {\r\n maximum -= this._clones.length / 2;\r\n }\r\n\r\n return Math.max(maximum, 0);\r\n }\r\n\r\n minimum(relative: boolean = false): number {\r\n return relative ? 0 : this._clones.length / 2;\r\n }\r\n\r\n items(position?: number): CarouselSlideDirective[] {\r\n if (position === undefined) {\r\n return this._items.slice();\r\n }\r\n\r\n position = this.normalize(position, true);\r\n return [this._items[position]];\r\n }\r\n\r\n mergers(position: number): number | number[] {\r\n if (position === undefined) {\r\n return this._mergers.slice();\r\n }\r\n\r\n position = this.normalize(position, true);\r\n return this._mergers[position];\r\n }\r\n\r\n clones(position?: number): number[] {\r\n const odd = this._clones.length / 2,\r\n even = odd + this._items.length,\r\n map = (index: number) => index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2;\r\n\r\n if (position === undefined) {\r\n return this._clones.map((v, i) => map(i));\r\n }\r\n\r\n return this._clones.map((v, i) => v === position ? map(i) : null).filter(item => item) as number[];\r\n }\r\n\r\n speed(speed?: number): number {\r\n if (speed !== undefined) {\r\n this._speed = speed;\r\n }\r\n\r\n return this._speed || 0;\r\n }\r\n\r\n coordinates(position: number | null | undefined): number | number[] {\r\n let multiplier = 1,\r\n newPosition = (position || 0) - 1,\r\n coordinate,\r\n result: number[];\r\n\r\n if (position === undefined) {\r\n result = this._coordinates.map((_, index) => {\r\n return this.coordinates(index) as number;\r\n });\r\n return result;\r\n }\r\n\r\n if (this.settings.center) {\r\n if (this.settings.rtl) {\r\n multiplier = -1;\r\n newPosition = (position || 0) + 1;\r\n }\r\n\r\n coordinate = this._coordinates[(position || 0)];\r\n coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\r\n } else {\r\n coordinate = this._coordinates[newPosition] || 0;\r\n }\r\n\r\n coordinate = Math.ceil(coordinate);\r\n\r\n return coordinate;\r\n }\r\n\r\n to(position: number, speed: number | boolean) {\r\n let current = this.current(),\r\n revert = null,\r\n distance = position - this.relative(current || 0),\r\n maximum = this.maximum(),\r\n delayForLoop = 0;\r\n const direction = +(distance > 0) - +(distance < 0),\r\n items = this._items.length,\r\n minimum = this.minimum();\r\n\r\n if (this.settings.loop) {\r\n if (!this.settings.rewind && Math.abs(distance) > items / 2) {\r\n distance += direction * -1 * items;\r\n }\r\n\r\n position = (current || 0) + distance;\r\n revert = ((position - minimum) % items + items) % items + minimum;\r\n\r\n if (revert !== position && revert - distance <= maximum && revert - distance > 0) {\r\n current = revert - distance;\r\n position = revert;\r\n delayForLoop = 30;\r\n this.reset(current);\r\n this.sendChanges();\r\n }\r\n } else if (this.settings.rewind) {\r\n maximum += 1;\r\n position = (position % maximum + maximum) % maximum;\r\n } else {\r\n position = Math.max(minimum, Math.min(maximum, position));\r\n }\r\n\r\n setTimeout(() => {\r\n this.speed(this.duration(current || 0, position, speed));\r\n this.current(position);\r\n\r\n this.update();\r\n }, delayForLoop);\r\n }\r\n\r\n next(speed: number | boolean) {\r\n speed = speed || false;\r\n this.to(this.relative(this.current() || 0) + 1, speed);\r\n }\r\n\r\n previous(speed: number | boolean) {\r\n speed = speed || false;\r\n this.to(this.relative(this.current() || 0) - 1, speed);\r\n }\r\n\r\n onTransitionEnd(event?: any) {\r\n if (!event) {\r\n this.leave(CarouselEventType.Animating);\r\n this.trigger(CarouselEventType.Translated);\r\n }\r\n }\r\n\r\n setCurrentSlideClasses(slide: CarouselSlideModel): { [key: string]: boolean } {\r\n const currentClasses: { [key: string]: boolean } = {\r\n 'active': slide.isActive || false,\r\n 'center': slide.isCentered || false,\r\n 'cloned': slide.isCloned || false,\r\n 'animated': slide.isAnimated || false,\r\n 'animated-in': slide.isDefAnimatedIn || false,\r\n 'animated-out': slide.isDefAnimatedOut || false\r\n };\r\n if (this.settings.animateIn) {\r\n currentClasses[this.settings.animateIn as string] = slide.isCustomAnimatedIn || false;\r\n }\r\n if (this.settings.animateOut) {\r\n currentClasses[this.settings.animateOut as string] = slide.isCustomAnimatedOut || false;\r\n }\r\n return currentClasses;\r\n }\r\n\r\n enter(name: string) {\r\n [name].concat(this._states.tags[name] || []).forEach((stateName) => {\r\n if ((this._states.current as any)[stateName] === undefined) {\r\n (this._states.current as any)[stateName] = 0;\r\n }\r\n\r\n (this._states.current as any)[stateName]++;\r\n });\r\n };\r\n\r\n leave(name: string) {\r\n [name].concat(this._states.tags[name] || []).forEach((stateName) => {\r\n if ((this._states.current as any)[stateName] === 0 || !!(this._states.current as any)[stateName]) {\r\n (this._states.current as any)[stateName]--;\r\n }\r\n })\r\n };\r\n\r\n private setOptions(options: CarouselOptionsModel) {\r\n this.options = { ...CarouselServiceConstants.DEFAULT_OPTIONS, ...options };\r\n }\r\n\r\n private validateItems(items: number, skip_validateItems: boolean): number {\r\n let result: number = items;\r\n\r\n if (items > this._items.length && !skip_validateItems) {\r\n result = this._items.length;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private setCarouselWidth(width: number) {\r\n this._width = width;\r\n }\r\n\r\n private setOptionsForViewport() {\r\n const viewport = this._width,\r\n overwrites = this.options.responsive || {};\r\n let match = -1;\r\n\r\n if (!Object.keys(overwrites).length) {\r\n return;\r\n }\r\n\r\n if (!viewport) {\r\n this.settings.items = 1;\r\n return;\r\n }\r\n\r\n for (const key in overwrites) {\r\n if (overwrites.hasOwnProperty(key)) {\r\n if (+key <= viewport && +key > match) {\r\n match = Number(key);\r\n }\r\n }\r\n }\r\n\r\n this.settings = { ...this.options, ...overwrites[match], items: (overwrites[match] && overwrites[match].items) ? this.validateItems(overwrites[match].items || 0, this.options.skip_validateItems || false) : this.options.items };\r\n\r\n delete this.settings.responsive;\r\n this.carouselDOMModel.isResponsive = true;\r\n\r\n const mergers: any[] = [];\r\n this._items.forEach(item => {\r\n const mergeN: number = this.settings.merge ? item.dataMerge : 1;\r\n mergers.push(mergeN);\r\n });\r\n this._mergers = mergers;\r\n\r\n this.invalidate(CarouselProperty.Settings);\r\n }\r\n\r\n private optionsLogic() {\r\n if (this.settings.autoWidth) {\r\n this.settings.stagePadding = 0;\r\n this.settings.merge = false;\r\n }\r\n }\r\n\r\n private update() {\r\n let i = 0;\r\n const n = this._pipe.length,\r\n filter = (item: string | number) => this._invalidated[item],\r\n cache = {};\r\n\r\n while (i < n) {\r\n const filteredPipe = this._pipe[i].filter.filter(filter);\r\n if (this._invalidated.all || filteredPipe.length > 0) {\r\n this._pipe[i].run(cache);\r\n }\r\n i++;\r\n }\r\n this.slidesModel.forEach(slide => slide.classes = this.setCurrentSlideClasses(slide));\r\n this.sendChanges();\r\n\r\n this._invalidated = {};\r\n\r\n if (!this.is('valid')) {\r\n this.enter('valid');\r\n }\r\n }\r\n\r\n private width(dimension?: Width): number {\r\n dimension = dimension || Width.Default;\r\n switch (dimension) {\r\n case Width.Inner:\r\n case Width.Outer:\r\n return this._width;\r\n default:\r\n return this._width - (this.settings.stagePadding || 0) * 2 + (this.settings.margin || 0);\r\n }\r\n }\r\n\r\n private refresh() {\r\n this.enter(CarouselEventType.Refreshing);\r\n this.trigger(CarouselEventType.Refresh);\r\n this.defineSlidesData();\r\n this.setOptionsForViewport();\r\n this.optionsLogic();\r\n this.update();\r\n this.leave(CarouselEventType.Refreshing);\r\n this.trigger(CarouselEventType.Refreshed);\r\n }\r\n\r\n private animate(coordinate: number | number[]) {\r\n const animate = this.speed() > 0;\r\n\r\n if (this.is(CarouselEventType.Animating)) {\r\n this.onTransitionEnd();\r\n }\r\n\r\n if (animate) {\r\n this.enter(CarouselEventType.Animating);\r\n this.trigger(CarouselEventType.Translate);\r\n }\r\n\r\n this.stageModel.transform = 'translate3d(' + coordinate + 'px,0px,0px)';\r\n this.stageModel.transition = (this.speed() / 1000) + 's' + (\r\n this.settings.slideTransition ? ' ' + this.settings.slideTransition : ''\r\n );\r\n }\r\n\r\n private invalidate(part: string): string[] {\r\n if (typeof part === 'string') {\r\n this._invalidated[part] = true;\r\n if (this.is('valid')) { this.leave('valid'); }\r\n }\r\n return Object.keys(this._invalidated);\r\n };\r\n\r\n private reset(position: number) {\r\n position = this.normalize(position);\r\n\r\n if (position === undefined) {\r\n return;\r\n }\r\n\r\n this._speed = 0;\r\n this._current = position;\r\n\r\n this.suppress([CarouselEventType.Translate, CarouselEventType.Translated]);\r\n\r\n this.animate(this.coordinates(position));\r\n\r\n this.release([CarouselEventType.Translate, CarouselEventType.Translated]);\r\n }\r\n\r\n private normalize(position: number, relative?: boolean): number {\r\n const n = this._items.length,\r\n m = relative ? 0 : this._clones.length;\r\n\r\n if (!isNumeric(position) || n < 1) {\r\n position = 0;\r\n } else if (position < 0 || position >= n + m) {\r\n position = ((position - m / 2) % n + n) % n + m / 2;\r\n }\r\n\r\n return position;\r\n }\r\n\r\n private duration(from: number, to: number, factor?: number | boolean): number {\r\n if (factor === 0) {\r\n return 0;\r\n }\r\n\r\n return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((+(factor as any)));\r\n }\r\n\r\n private setItems(content: CarouselSlideDirective[]) {\r\n this._items = content;\r\n }\r\n\r\n private defineSlidesData() {\r\n let loadMap: Map<string, boolean>;\r\n\r\n if (this.slidesModel && this.slidesModel.length) {\r\n loadMap = new Map();\r\n this.slidesModel.forEach(item => {\r\n if (item.load) {\r\n loadMap.set(item.id, item.load);\r\n }\r\n })\r\n }\r\n\r\n this.slidesModel = this._items.map(slide => {\r\n return {\r\n id: `${slide.id}`,\r\n isActive: false,\r\n tplRef: slide.tplRef,\r\n dataMerge: slide.dataMerge,\r\n width: 0,\r\n isCloned: false,\r\n load: loadMap ? loadMap.get(slide.id) : false,\r\n classes: {}\r\n };\r\n });\r\n }\r\n\r\n private op(a: number, o: string, b: number): boolean {\r\n const rtl = this.settings.rtl;\r\n switch (o) {\r\n case '<':\r\n return rtl ? a > b : a < b;\r\n case '>':\r\n return rtl ? a < b : a > b;\r\n case '>=':\r\n return rtl ? a <= b : a >= b;\r\n case '<=':\r\n return rtl ? a >= b : a <= b;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private trigger(name: string, data?: any) {\r\n switch (name) {\r\n case CarouselEventType.Initialized:\r\n this._initializedCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Change:\r\n this._changeSettingsCarousel$.next(data);\r\n break;\r\n case CarouselEventType.Changed:\r\n this._changedSettingsCarousel$.next(data);\r\n break;\r\n case CarouselEventType.Resize:\r\n this._resizeCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Resized:\r\n this._resizedCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Refresh:\r\n this._refreshCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Refreshed:\r\n this._refreshedCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Translate:\r\n this._translateCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Translated:\r\n this._translatedCarousel$.next(name);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n private suppress(events: string[]) {\r\n events.forEach(event => {\r\n this._supress[event] = true;\r\n });\r\n }\r\n\r\n private release(events: string[]) {\r\n events.forEach(event => {\r\n delete this._supress[event];\r\n });\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { getCssLikeValue } from 'ngx-sfc-common';\r\nimport { tap, Observable, Subscription, merge } from 'rxjs';\r\nimport { CarouselProperty } from '../../carousel.enum';\r\nimport { CarouselService } from '../carousel/carousel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselAnimateService implements OnDestroy {\r\n\r\n private swapping = true;\r\n\r\n private previous?: number;\r\n\r\n private next = undefined;\r\n\r\n private animateSubscription!: Subscription;\r\n\r\n constructor(private carouselService: CarouselService) {\r\n this.initDataStreams();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.animateSubscription.unsubscribe();\r\n }\r\n\r\n private initDataStreams() {\r\n const changeSettings$: Observable<any> = this.carouselService.changeState.pipe(\r\n tap(data => {\r\n if (data.property.name === CarouselProperty.Position) {\r\n this.previous = this.carouselService.current();\r\n this.next = data.property.value;\r\n }\r\n })\r\n );\r\n\r\n const translateCarousel$: Observable<string> = this.carouselService.translateState.pipe(\r\n tap(() => {\r\n if (this.swapping && (this.carouselService.options.animateOut || this.carouselService.options.animateIn)) {\r\n this.swap();\r\n }\r\n })\r\n );\r\n\r\n this.animateSubscription = merge(changeSettings$, translateCarousel$).subscribe();\r\n }\r\n\r\n private swap(): void {\r\n if (this.carouselService.settings.items !== 1)\r\n return;\r\n\r\n this.carouselService.speed(0);\r\n\r\n let left: number;\r\n const previous = this.carouselService.slidesModel[this.previous || 0],\r\n next = this.carouselService.slidesModel[this.next || 0],\r\n incoming = this.carouselService.settings.animateIn,\r\n outgoing = this.carouselService.settings.animateOut;\r\n\r\n if (this.carouselService.current() === this.previous)\r\n return;\r\n\r\n if (outgoing) {\r\n left = +this.carouselService.coordinates(this.previous) - +this.carouselService.coordinates(this.next);\r\n this.carouselService.slidesModel.forEach(slide => {\r\n if (slide.id === previous.id) {\r\n slide.left = getCssLikeValue(left);\r\n slide.isAnimated = true;\r\n slide.isDefAnimatedOut = true;\r\n slide.isCustomAnimatedOut = true;\r\n }\r\n });\r\n }\r\n\r\n if (incoming) {\r\n this.carouselService.slidesModel.forEach(slide => {\r\n if (slide.id === next.id) {\r\n slide.isAnimated = true;\r\n slide.isDefAnimatedIn = true;\r\n slide.isCustomAnimatedIn = true;\r\n }\r\n });\r\n }\r\n };\r\n\r\n clear(id: string) {\r\n this.carouselService.slidesModel.forEach(slide => {\r\n if (slide.id === id) {\r\n slide.left = CommonConstants.EMPTY_STRING;\r\n slide.isAnimated = false;\r\n slide.isDefAnimatedOut = false;\r\n slide.isCustomAnimatedOut = false;\r\n slide.isDefAnimatedIn = false;\r\n slide.isCustomAnimatedIn = false;\r\n slide.classes = this.carouselService.setCurrentSlideClasses(slide);\r\n }\r\n });\r\n this.carouselService.onTransitionEnd();\r\n };\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { DOCUMENT, WINDOW } from 'ngx-sfc-common';\r\nimport { tap, switchMap, first, Observable, Subscription, of, filter, merge } from 'rxjs';\r\nimport { CarouselProperty, CarouselState } from '../../carousel.enum';\r\nimport { CarouselService } from '../carousel/carousel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselAutoplayService implements OnDestroy {\r\n\r\n private autoplaySubscription!: Subscription;\r\n\r\n private timeout: number = 0;\r\n\r\n private paused = false;\r\n\r\n private isArtificialAutoplayTimeout: boolean = false;\r\n\r\n private _isAutoplayStopped = false;\r\n get isAutoplayStopped() {\r\n return this._isAutoplayStopped;\r\n }\r\n set isAutoplayStopped(value) {\r\n this._isAutoplayStopped = value;\r\n }\r\n\r\n private winRef: Window;\r\n private docRef: Document;\r\n\r\n constructor(private carouselService: CarouselService,\r\n @Inject(WINDOW) winRef: any,\r\n @Inject(DOCUMENT) docRef: any,\r\n ) {\r\n this.winRef = winRef as Window;\r\n this.docRef = docRef as Document;\r\n this.initDataStreams();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.autoplaySubscription.unsubscribe();\r\n }\r\n\r\n play() {\r\n if (this.paused) {\r\n this.paused = false;\r\n this.setAutoPlayInterval(this.carouselService.settings.autoplayMouseleaveTimeout);\r\n }\r\n\r\n if (this.carouselService.is(CarouselState.Rotating))\r\n return;\r\n\r\n this.carouselService.enter(CarouselState.Rotating);\r\n\r\n this.setAutoPlayInterval();\r\n };\r\n\r\n stop() {\r\n if (!this.carouselService.is(CarouselState.Rotating)) {\r\n return;\r\n }\r\n this.paused = true;\r\n\r\n this.winRef.clearTimeout(this.timeout);\r\n this.carouselService.leave(CarouselState.Rotating);\r\n };\r\n\r\n pause() {\r\n if (!this.carouselService.is(CarouselState.Rotating))\r\n return;\r\n\r\n this.paused = true;\r\n };\r\n\r\n startPausing() {\r\n if (this.carouselService.settings.autoplayHoverPause && this.carouselService.is(CarouselState.Rotating)) {\r\n this.pause();\r\n }\r\n }\r\n\r\n startPlayingMouseLeave() {\r\n if (this.carouselService.settings.autoplayHoverPause && this.carouselService.is(CarouselState.Rotating)) {\r\n this.play();\r\n this.playAfterTranslated();\r\n }\r\n }\r\n\r\n private initDataStreams() {\r\n const initializedCarousel$: Observable<string> = this.carouselService.initializedState.pipe(\r\n tap(() => {\r\n if (this.carouselService.settings.autoplay) {\r\n this.play();\r\n }\r\n })\r\n );\r\n\r\n const changedSettings$: Observable<any> = this.carouselService.changedState.pipe(\r\n tap(data => {\r\n this.handleChangeObservable(data);\r\n })\r\n );\r\n\r\n const resized$: Observable<any> = this.carouselService.resizedState.pipe(\r\n tap(() => {\r\n if (this.carouselService.settings.autoplay)\r\n this.play();\r\n else\r\n this.stop();\r\n })\r\n )\r\n\r\n this.autoplaySubscription = merge(initializedCarousel$, changedSettings$, resized$).subscribe();\r\n }\r\n\r\n private getNextTimeout(timeout?: number, speed?: number): number {\r\n if (this.timeout)\r\n this.winRef.clearTimeout(this.timeout);\r\n\r\n this.isArtificialAutoplayTimeout = timeout ? true : false;\r\n\r\n return this.winRef.setTimeout(() => {\r\n if (this.paused || this.carouselService.is(CarouselState.Busy) || this.carouselService.is(CarouselState.Interacting) || this.docRef.hidden)\r\n return;\r\n this.carouselService.next(speed || this.carouselService.settings.autoplaySpeed || 0);\r\n }, timeout || this.carouselService.settings.autoplayTimeout);\r\n };\r\n\r\n private setAutoPlayInterval(timeout?: number) {\r\n this.timeout = this.getNextTimeout(timeout);\r\n };\r\n\r\n private handleChangeObservable(data: any) {\r\n if (data.property.name === CarouselProperty.Settings) {\r\n if (this.carouselService.settings.autoplay) {\r\n this.play();\r\n } else {\r\n this.stop();\r\n }\r\n } else if (data.property.name === CarouselProperty.Position) {\r\n if (this.carouselService.settings.autoplay) {\r\n this.setAutoPlayInterval();\r\n }\r\n }\r\n }\r\n\r\n private playAfterTranslated() {\r\n of('translated').pipe(\r\n switchMap(() => this.carouselService.translatedState),\r\n first(),\r\n filter(() => this.isArtificialAutoplayTimeout),\r\n tap(() => this.setAutoPlayInterval())\r\n ).subscribe(() => { });\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { tap, merge, Observable, Subscription } from 'rxjs';\r\nimport { CarouselEventType, CarouselProperty } from '../../carousel.enum';\r\nimport { CarouselService } from '../carousel/carousel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselLazyLoadService implements OnDestroy {\r\n\r\n private lazyLoadSubscription!: Subscription;\r\n\r\n constructor(private carouselService: CarouselService) {\r\n this.initDataStreams();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.lazyLoadSubscription.unsubscribe();\r\n }\r\n\r\n private initDataStreams() {\r\n const initializedCarousel$: Observable<string> = this.carouselService.initializedState.pipe(\r\n tap(() => {\r\n const isLazyLoad = this.carouselService.settings && !this.carouselService.settings.lazyLoad;\r\n this.carouselService.slidesModel.forEach(item => item.load = isLazyLoad ? true : false);\r\n })\r\n );\r\n\r\n const changeSettings$: Observable<any> = this.carouselService.changeState;\r\n\r\n const resizedCarousel$: Observable<string> = this.carouselService.resizedState;\r\n\r\n this.lazyLoadSubscription = merge(initializedCarousel$, changeSettings$, resizedCarousel$).pipe(\r\n tap(data => this.defineLazyLoadSlides(data))\r\n ).subscribe();\r\n }\r\n\r\n private defineLazyLoadSlides(data: any) {\r\n if (!this.carouselService.settings || !this.carouselService.settings.lazyLoad)\r\n return;\r\n\r\n if ((data.property && data.property.name === CarouselProperty.Position) || data === CarouselEventType.Initialized || data === CarouselEventType.Resized) {\r\n const settings = this.carouselService.settings,\r\n clones = this.carouselService.clones().length;\r\n let n = (settings.center && Math.ceil((settings.items || 0) / 2) || settings.items) || 0,\r\n i = ((settings.center && n * -1) || 0),\r\n position = (data.property && data.property.value !== undefined ? data.property.value : this.carouselService.current()) + i;\r\n if ((settings.lazyLoadEager || 0) > 0) {\r\n n += settings.lazyLoadEager || 0;\r\n if (settings.loop) {\r\n position -= settings.lazyLoadEager || 0;\r\n n++;\r\n }\r\n }\r\n\r\n while (i++ < n) {\r\n this.load(clones / 2 + this.carouselService.relative(position));\r\n if (clones) {\r\n this.carouselService.clones(this.carouselService.relative(position)).forEach(value => this.load(value));\r\n\r\n }\r\n position++;\r\n }\r\n }\r\n }\r\n\r\n private load(position: number) {\r\n if (this.carouselService.slidesModel[position].load)\r\n return;\r\n\r\n this.carouselService.slidesModel[position].load = true;\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { tap, filter, merge, Observable, Subscription } from 'rxjs';\r\nimport { CarouselProperty } from '../../carousel.enum';\r\nimport { CarouselSlideDirective } from '../../directive/carousel-slide.directive';\r\nimport { CarouselNavigationDotsModel, CarouselNavigationModel } from '../../models/navigation.model';\r\nimport { CarouselOptionsModel } from '../../models/options.model';\r\nimport { CarouselServiceConstants } from '../carousel/carousel-service.constants';\r\nimport { CarouselService } from '../carousel/carousel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselNavigationService implements OnDestroy {\r\n\r\n private navSubscription!: Subscription;\r\n\r\n private pages: any[] = [];\r\n\r\n private navigationModel: CarouselNavigationModel = {\r\n disabled: false,\r\n previous: {\r\n disabled: false,\r\n label: CommonConstants.EMPTY_STRING\r\n },\r\n next: {\r\n disabled: false,\r\n label: CommonConstants.EMPTY_STRING\r\n }\r\n };\r\n\r\n private navigationDotsModel: CarouselNavigationDotsModel = {\r\n disabled: false,\r\n dots: []\r\n };\r\n\r\n constructor(private carouselService: CarouselService) {\r\n this.initDataStreams();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.navSubscription.unsubscribe();\r\n }\r\n\r\n next(speed: number | boolean) {\r\n this.carouselService.to(this.getPosition(true), speed);\r\n };\r\n\r\n previous(speed: number | boolean) {\r\n this.carouselService.to(this.getPosition(false), speed);\r\n };\r\n\r\n to(position: number, speed: number | boolean, standard?: boolean) {\r\n let length: number;\r\n if (!standard && this.pages.length) {\r\n length = this.pages.length;\r\n this.carouselService.to(this.pages[((position % length) + length) % length].start, speed);\r\n } else {\r\n this.carouselService.to(position, speed);\r\n }\r\n };\r\n\r\n moveByDot(dotId: string) {\r\n const index: number = this.navigationDotsModel.dots.findIndex(dot => dotId === dot.id);\r\n this.to(index, this.carouselService.settings.dotsSpeed || 0);\r\n }\r\n\r\n toSlideById(id: string) {\r\n const position = this.carouselService.slidesModel.findIndex(slide => slide.id === id && slide.isCloned === false);\r\n\r\n if (position === -1 || position === this.carouselService.current())\r\n return;\r\n\r\n this.carouselService.to(this.carouselService.relative(position), false);\r\n }\r\n\r\n private initDataStreams() {\r\n const initializedCarousel$: Observable<string> = this.carouselService.initializedState.pipe(\r\n tap(() => {\r\n this.initialize();\r\n this.updateNavPages();\r\n this.draw();\r\n this.update();\r\n this.carouselService.sendChanges();\r\n })\r\n );\r\n\r\n const changedSettings$: Observable<any> = this.carouselService.changedState.pipe(\r\n filter(data => data.property.name === CarouselProperty.Position),\r\n tap(() => this.update())\r\n );\r\n\r\n const refreshedCarousel$: Observable<string> = this.carouselService.refreshedState.pipe(\r\n tap(() => {\r\n this.updateNavPages();\r\n this.draw();\r\n this.update();\r\n this.carouselService.sendChanges();\r\n })\r\n );\r\n\r\n this.navSubscription = merge(initializedCarousel$, changedSettings$, refreshedCarousel$).subscribe();\r\n }\r\n\r\n private initialize() {\r\n this.navigationModel.disabled = true;\r\n if (this.carouselService.settings.navText) {\r\n this.navigationModel.previous.label = this.carouselService.settings.navText[0];\r\n this.navigationModel.next.label = this.carouselService.settings.navText[1];\r\n }\r\n\r\n if (this.carouselService.settings.navIcons) {\r\n this.navigationModel.previous.icon = this.carouselService.settings.navIcons[0];\r\n this.navigationModel.next.icon = this.carouselService.settings.navIcons[1];\r\n }\r\n\r\n if (!this.carouselService.settings.navText && !this.carouselService.settings.navIcons) {\r\n this.navigationModel.previous.label = CarouselServiceConstants.DEFAULT_NAV_TEXT[0];\r\n this.navigationModel.next.label = CarouselServiceConstants.DEFAULT_NAV_TEXT[1];\r\n }\r\n\r\n this.navigationDotsModel.disabled = true;\r\n\r\n this.carouselService.navigationModel = this.navigationModel;\r\n this.carouselService.navigationDotsModel = this.navigationDotsModel;\r\n }\r\n\r\n private updateNavPages() {\r\n let i: number, j: number, k: number;\r\n const lower: number = this.carouselService.clones().length / 2,\r\n upper: number = lower + this.carouselService.items().length,\r\n maximum: number = this.carouselService.maximum(true),\r\n pages: any[] = [],\r\n settings: CarouselOptionsModel = this.carouselService.settings;\r\n let size = settings.center || settings.autoWidth || settings.navigationDotsModel\r\n ? 1 : settings.dotsEach || settings.items;\r\n size = +(size as number);\r\n if (settings.slideBy !== 'page') {\r\n settings.slideBy = Math.min(+(settings.slideBy as number), settings.items || 0);\r\n }\r\n\r\n if (settings.dots || settings.slideBy === 'page') {\r\n\r\n for (i = lower, j = 0, k = 0; i < upper; i++) {\r\n if (j >= size || j === 0) {\r\n pages.push({\r\n start: Math.min(maximum, i - lower),\r\n end: i - lower + size - 1\r\n });\r\n if (Math.min(maximum, i - lower) === maximum) {\r\n break;\r\n }\r\n j = 0, ++k;\r\n }\r\n j += this.carouselService.mergers(this.carouselService.relative(i)) as number;\r\n }\r\n }\r\n this.pages = pages;\r\n }\r\n\r\n private draw() {\r\n let difference: number;\r\n const settings: CarouselOptionsModel = this.carouselService.settings,\r\n items: CarouselSlideDirective[] = this.carouselService.items(),\r\n disabled = items.length <= (settings.items || 0);\r\n\r\n this.navigationModel.disabled = !settings.nav || disabled;\r\n this.navigationDotsModel.disabled = !settings.dots || disabled;\r\n\r\n if (settings.dots) {\r\n difference = this.pages.length - this.navigationDotsModel.dots.length;\r\n\r\n if (settings.navigationDotsModel && difference !== 0) {\r\n this.navigationDotsModel.dots = [];\r\n items.forEach(item => {\r\n this.navigationDotsModel.dots.push({\r\n active: false,\r\n id: `dot-${item.id}`\r\n });\r\n });\r\n } else if (difference > 0) {\r\n const startI: number = this.navigationDotsModel.dots.length > 0 ? this.navigationDotsModel.dots.length : 0;\r\n for (let i = 0; i < difference; i++) {\r\n this.navigationDotsModel.dots.push({\r\n active: false,\r\n id: `dot-${i + startI}`\r\n });\r\n }\r\n } else if (difference < 0) {\r\n this.navigationDotsModel.dots.splice(difference, Math.abs(difference))\r\n }\r\n }\r\n\r\n this.carouselService.navigationModel = this.navigationModel;\r\n this.carouselService.navigationDotsModel = this.navigationDotsModel;\r\n };\r\n\r\n private update() {\r\n this.updateNavButtons();\r\n this.updateDots();\r\n }\r\n\r\n private updateNavButtons() {\r\n const settings: CarouselOptionsModel = this.carouselService.settings,\r\n loop: boolean = settings.loop || settings.rewind || false,\r\n index: number = this.carouselService.relative(this.carouselService.current() || 0);\r\n\r\n if (settings.nav) {\r\n this.navigationModel.previous.disabled = !loop && index <= this.carouselService.minimum(true);\r\n this.navigationModel.next.disabled = !loop && index >= this.carouselService.maximum(true);\r\n }\r\n\r\n this.carouselService.navigationModel = this.navigationModel;\r\n }\r\n\r\n private updateDots() {\r\n let curActiveDotI: number;\r\n\r\n if (!this.carouselService.settings.dots)\r\n return;\r\n\r\n this.navigationDotsModel.dots.forEach(item => {\r\n if (item.active === true) {\r\n item.active = false;\r\n }\r\n })\r\n\r\n curActiveDotI = this.getCurrent();\r\n if (this.navigationDotsModel.dots.length) {\r\n this.navigationDotsModel.dots[curActiveDotI].active = true;\r\n }\r\n this.carouselService.navigationDotsModel = this.navigationDotsModel;\r\n }\r\n\r\n private getCurrent(): any {\r\n const current: number = this.carouselService.relative(this.carouselService.current() || 0);\r\n let finalCurrent: number;\r\n const pages: any = this.pages.filter((page, index) => {\r\n return page.start <= current && page.end >= current;\r\n }).pop();\r\n\r\n finalCurrent = this.pages.findIndex(page => {\r\n return page.start === pages.start && page.end === pages.end;\r\n });\r\n\r\n return finalCurrent;\r\n };\r\n\r\n private getPosition(successor: number | boolean): number {\r\n let position: number, length: number;\r\n const settings: CarouselOptionsModel = this.carouselService.settings;\r\n\r\n if (settings.slideBy === 'page') {\r\n position = this.getCurrent();\r\n length = this.pages.length;\r\n successor ? ++position : --position;\r\n position = this.pages[((position % length) + length) % length].start;\r\n } else {\r\n position = this.carouselService.relative(this.carouselService.current() || 0);\r\n length = this.carouselService.items().length;\r\n successor ? position += +(settings.slideBy as number) : position -= +(settings.slideBy as number);\r\n }\r\n\r\n return position;\r\n };\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, Input } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { getCssLikeValue } from 'ngx-sfc-common';\r\nimport { CarouselSlideModel } from '../../models/slide.model';\r\nimport { CarouselAnimateService } from '../../service/animate/carousel-animate.service';\r\nimport { CarouselService } from '../../service/carousel/carousel.service';\r\nimport { CarouselStageModel } from './carousel-stage.model';\r\n\r\n@Component({\r\n selector: 'sfc-carousel-stage',\r\n templateUrl: './carousel-stage.component.html',\r\n styleUrls: ['./carousel-stage.component.scss'],\r\n animations: [\r\n trigger('autoHeight', [\r\n state('nulled', style({ height: 0 })),\r\n state('full', style({ height: '*' })),\r\n transition('full => nulled', [\r\n animate('700ms 350ms')\r\n ]),\r\n transition('nulled => full', [\r\n animate(350)\r\n ]),\r\n ])\r\n ]\r\n})\r\nexport class CarouselStageComponent {\r\n\r\n @Input()\r\n stageModel: CarouselStageModel = {\r\n width: 0,\r\n paddingL: 0,\r\n paddingR: 0,\r\n transform: CommonConstants.EMPTY_STRING,\r\n transition: CommonConstants.EMPTY_STRING\r\n };\r\n\r\n @Input()\r\n slidesModel: CarouselSlideModel[] = [];\r\n\r\n get styles() {\r\n return {\r\n width: getCssLikeValue(this.stageModel.width as number),\r\n transform: this.stageModel.transform,\r\n transition: this.stageModel.transition,\r\n paddingLeft: getCssLikeValue(this.stageModel.paddingL as number),\r\n paddingRight: getCssLikeValue(this.stageModel.paddingR as number)\r\n }\r\n }\r\n\r\n constructor(private carouselService: CarouselService, private animateService: CarouselAnimateService) { }\r\n\r\n getItemStyles(slide: CarouselSlideModel) {\r\n return {\r\n width: getCssLikeValue(slide.width as number),\r\n marginLeft: getCssLikeValue(slide.marginL as number),\r\n marginRight: getCssLikeValue(slide.marginR as number),\r\n left: getCssLikeValue(slide.left as number)\r\n }\r\n }\r\n\r\n onTransitionEnd() {\r\n this.carouselService.onTransitionEnd();\r\n }\r\n\r\n clear(id: string) {\r\n this.animateService.clear(id);\r\n }\r\n\r\n preparePublicSlide = (slide: CarouselSlideModel): CarouselSlideModel => {\r\n const newSlide = { ...slide };\r\n newSlide.tplRef = null;\r\n return newSlide;\r\n }\r\n}\r\n","<div class=\"container\" [ngStyle]=\"styles\" (transitionend)=\"onTransitionEnd()\">\r\n <ng-container *ngFor=\"let slide of slidesModel; let i = index\">\r\n <div class=\"item\" [ngClass]=\"slide.classes\" [ngStyle]=\"getItemStyles(slide)\" (animationend)=\"clear(slide.id)\"\r\n [@autoHeight]=\"slide.heightState\">\r\n <ng-template *ngIf=\"slide.load\" [ngTemplateOutlet]=\"slide.tplRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: preparePublicSlide(slide), index: i }\">\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>","import {\r\n AfterContentInit, ChangeDetectorRef,\r\n Component, ContentChildren, ElementRef, EventEmitter,\r\n HostBinding, HostListener, Inject, Input, OnDestroy,\r\n OnInit, Output, QueryList\r\n} from '@angular/core';\r\nimport { any, ButtonType, UIClass } from 'ngx-sfc-common';\r\nimport { DOCUMENT, ResizeService } from 'ngx-sfc-common';\r\nimport {\r\n switchMap, delay, tap, Observable, Subscription,\r\n filter, skip, take, map, from, of, toArray, merge\r\n} from 'rxjs';\r\nimport { CarouselProperty } from './carousel.enum';\r\nimport { CarouselSlideDirective } from './directive/carousel-slide.directive';\r\nimport { CarouselDOMModel } from './models/dom.model';\r\nimport { INavigationContextModel } from './models/navigation-context.model';\r\nimport { CarouselNavigationDotsModel, CarouselNavigationModel } from './models/navigation.model';\r\nimport { CarouselOptionsModel } from './models/options.model';\r\nimport { CarouselSlideModel, CarouselSlideEvent } from './models/slide.model';\r\nimport { CarouselStageModel } from './parts/stage/carousel-stage.model';\r\nimport { CarouselAnimateService } from './service/animate/carousel-animate.service';\r\nimport { CarouselAutoplayService } from './service/autoplay/carousel-autoplay.service';\r\nimport { CarouselServiceConstants } from './service/carousel/carousel-service.constants';\r\nimport { CarouselService } from './service/carousel/carousel.service';\r\nimport { CarouselLazyLoadService } from './service/lazy/carousel-lazy-load.service';\r\nimport { CarouselNavigationService } from './service/navigation/carousel-navigation.service';\r\n\r\n@Component({\r\n selector: 'sfc-carousel',\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n providers: [\r\n CarouselNavigationService,\r\n CarouselAutoplayService,\r\n CarouselService,\r\n CarouselAnimateService,\r\n CarouselLazyLoadService\r\n ]\r\n})\r\nexport class CarouselComponent implements OnInit, AfterContentInit, OnDestroy {\r\n\r\n ButtonType = ButtonType;\r\n\r\n @Input()\r\n options!: CarouselOptionsModel;\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Output()\r\n translated = new EventEmitter<CarouselSlideEvent>();\r\n\r\n @Output()\r\n initialized = new EventEmitter<CarouselSlideEvent>();\r\n\r\n @Output()\r\n changing = new EventEmitter<CarouselSlideEvent>();\r\n\r\n @Output()\r\n changed = new EventEmitter<CarouselSlideEvent>();\r\n\r\n @ContentChildren(CarouselSlideDirective, { descendants: true })\r\n slides!: QueryList<CarouselSlideDirective>;\r\n\r\n // SUBSCRIPTIONS\r\n\r\n private resizeSubscription!: Subscription;\r\n\r\n private carouselSubscription!: Subscription;\r\n\r\n private slidesChangesSubscription!: Subscription;\r\n\r\n // END SUBSCRIPTIONS\r\n\r\n // MODELS\r\n\r\n carouselDOMModel!: CarouselDOMModel;\r\n\r\n stageModel!: CarouselStageModel;\r\n\r\n slidesModel: CarouselSlideModel[] = [];\r\n\r\n navigationModel!: CarouselNavigationModel;\r\n\r\n navigationDotsModel!: CarouselNavigationDotsModel;\r\n\r\n // END MODELS\r\n\r\n slideEvent!: CarouselSlideEvent;\r\n\r\n carouselLoaded = false;\r\n\r\n navigationContext!: INavigationContextModel;\r\n\r\n @HostBinding('class.rtl')\r\n get rtl(): boolean {\r\n return this.carouselDOMModel?.rtl || false;\r\n }\r\n\r\n get clientWidth(): number {\r\n return this.el.nativeElement.querySelector('.container').clientWidth;\r\n }\r\n\r\n private carouselWindowWidth: number = 0;\r\n\r\n private documentRef: Document;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private resizeService: ResizeService,\r\n private carouselService: CarouselService,\r\n private navigationService: CarouselNavigationService,\r\n private autoplayService: CarouselAutoplayService,\r\n private lazyLoadService: CarouselLazyLoadService,\r\n private animateService: CarouselAnimateService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Inject(DOCUMENT) documentRef: any\r\n ) {\r\n this.documentRef = documentRef as Document;\r\n }\r\n\r\n @HostListener('document:visibilitychange')\r\n onVisibilityChange() {\r\n if (this.carouselService.settings.autoplay) {\r\n switch (this.documentRef.visibilityState) {\r\n case UIClass.Visible:\r\n if (!this.autoplayService.isAutoplayStopped)\r\n this.autoplayService.play();\r\n break;\r\n case UIClass.Hidden:\r\n this.autoplayService.pause();\r\n break;\r\n }\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n this.carouselWindowWidth = this.clientWidth;\r\n this.initDataStreams();\r\n }\r\n\r\n ngAfterContentInit() {\r\n if (any(this.slides.toArray())) {\r\n this.carouselService.setup(this.carouselWindowWidth, this.slides.toArray(), this.options);\r\n this.carouselService.initialize(this.slides.toArray());\r\n\r\n this.initResizeWatcher();\r\n }\r\n\r\n this.slidesChangesSubscription = this.slides.changes.pipe(\r\n tap((slides) => {\r\n if (any(slides)) {\r\n this.carouselService.setup(this.carouselWindowWidth, slides.toArray(), this.options);\r\n this.carouselService.initialize(slides.toArray());\r\n } else {\r\n this.carouselLoaded = false;\r\n }\r\n })\r\n ).subscribe();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.resizeSubscription)\r\n this.resizeSubscription.unsubscribe();\r\n\r\n if (this.slidesChangesSubscription)\r\n this.slidesChangesSubscription.unsubscribe();\r\n\r\n if (this.carouselSubscription)\r\n this.carouselSubscription.unsubscribe();\r\n }\r\n\r\n initDataStreams() {\r\n const _viewCurSettings$ = this.carouselService.viewCurrrentSettings.pipe(\r\n tap(data => {\r\n this.carouselDOMModel = data.carouselDOMModel;\r\n this.stageModel = data.stageModel;\r\n this.slidesModel = data.slidesModel;\r\n if (!this.carouselLoaded) {\r\n this.carouselLoaded = true;\r\n }\r\n this.navigationModel = data.navigationModel;\r\n this.navigationDotsModel = data.navigationDotsModel;\r\n this.navigationContext = {\r\n previous: { model: this.navigationModel?.previous, action: this.previous.bind(this) },\r\n next: { model: this.navigationModel?.next, action: this.next.bind(this) }\r\n };\r\n this.changeDetectorRef.markForCheck();\r\n })\r\n );\r\n\r\n const _initializedCarousel$ = this.carouselService.initializedState.pipe(\r\n tap(() => {\r\n this.gatherTranslatedData();\r\n this.initialized.emit(this.slideEvent);\r\n })\r\n )\r\n\r\n const _translatedCarousel$ = this.carouselService.translatedState.pipe(\r\n tap(() => {\r\n this.gatherTranslatedData();\r\n this.translated.emit(this.slideEvent);\r\n })\r\n );\r\n\r\n const _changeCarousel$ = this.carouselService.changeState.pipe(\r\n tap(() => {\r\n this.gatherTranslatedData();\r\n this.changing.emit(this.slideEvent);\r\n })\r\n );\r\n\r\n const _changedCarousel$ = this.carouselService.changeState.pipe(\r\n switchMap(value => {\r\n const changedPosition: Observable<CarouselSlideEvent> = of(value).pipe(\r\n filter(() => value.property.name === CarouselProperty.Position),\r\n switchMap(() => from(this.slidesModel)),\r\n skip(value.property.value),\r\n take(this.carouselService.settings.items || 0),\r\n map(slide => {\r\n const id = slide.id.indexOf(CarouselServiceConstants.CLONE_ID_PREFIX) >= 0 ? slide.id.slice(CarouselServiceConstants.CLONE_ID_PREFIX.length) : slide.id;\r\n return { ...slide, id: id, isActive: true };\r\n }),\r\n toArray(),\r\n map(slides => {\r\n return {\r\n slides: slides,\r\n startPosition: this.carouselService.relative(value.property.value)\r\n }\r\n })\r\n );\r\n\r\n return merge(changedPosition);\r\n }),\r\n tap(slidesData => {\r\n this.gatherTranslatedData();\r\n this.changed.emit(slidesData.slides?.length ? slidesData : this.slideEvent);\r\n })\r\n );\r\n\r\n this.carouselSubscription = merge(\r\n _viewCurSettings$,\r\n _translatedCarousel$,\r\n _changeCarousel$,\r\n _changedCarousel$,\r\n _initializedCarousel$\r\n ).subscribe();\r\n }\r\n\r\n private initResizeWatcher() {\r\n if (Object.keys(this.carouselService.options.responsive || {}).length) {\r\n this.resizeSubscription = this.resizeService.onResize$\r\n .pipe(\r\n filter(() => this.carouselWindowWidth !== this.clientWidth),\r\n delay(this.carouselService.settings.responsiveRefreshRate || 0)\r\n ).subscribe(() => {\r\n this.carouselService.onResize(this.clientWidth);\r\n this.carouselWindowWidth = this.clientWidth;\r\n });\r\n }\r\n }\r\n\r\n onTransitionEnd() {\r\n this.carouselService.onTransitionEnd();\r\n }\r\n\r\n next() {\r\n if (this.carouselLoaded)\r\n this.navigationService.next(this.carouselService.settings.navSpeed || false);\r\n }\r\n\r\n previous() {\r\n if (this.carouselLoaded)\r\n this.navigationService.previous(this.carouselService.settings.navSpeed || false);\r\n }\r\n\r\n moveByDot(dotId: string) {\r\n if (this.carouselLoaded)\r\n this.navigationService.moveByDot(dotId);\r\n }\r\n\r\n pause() {\r\n this.autoplayService.startPausing();\r\n }\r\n\r\n play() {\r\n this.autoplayService.startPlayingMouseLeave();\r\n }\r\n\r\n stopAutoplay() {\r\n this.autoplayService.isAutoplayStopped = true;\r\n this.autoplayService.stop();\r\n }\r\n\r\n startAutoplay() {\r\n this.autoplayService.isAutoplayStopped = false;\r\n this.autoplayService.play();\r\n }\r\n\r\n private gatherTranslatedData() {\r\n let startPosition: number;\r\n const activeSlides: CarouselSlideModel[] = this.slidesModel\r\n .filter(slide => slide.isActive === true)\r\n .map(slide => {\r\n return {\r\n id: slide.id.indexOf(CarouselServiceConstants.CLONE_ID_PREFIX) >= 0 ? slide.id.slice(CarouselServiceConstants.CLONE_ID_PREFIX.length) : slide.id,\r\n width: slide.width,\r\n marginL: slide.marginL,\r\n marginR: slide.marginR,\r\n center: slide.isCentered,\r\n tplRef: null,\r\n classes: {}\r\n }\r\n });\r\n startPosition = this.carouselService.relative(this.carouselService.current() || 0);\r\n this.slideEvent = {\r\n startPosition: startPosition,\r\n slides: activeSlides\r\n }\r\n }\r\n}\r\n","<div class=\"container\" (mouseover)=\"pause()\" (mouseleave)=\"play()\">\r\n <div class=\"upside\">\r\n <ng-container *ngIf=\"slides.toArray().length && !options.navBottom\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel.disabled\">\r\n <ng-container *ngTemplateOutlet=\"navigationAction;context:{$implicit: navigationContext.previous}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngIf=\"carouselLoaded\" class=\"stage\">\r\n <sfc-carousel-stage [stageModel]=\"stageModel\" [slidesModel]=\"slidesModel\"></sfc-carousel-stage>\r\n </div>\r\n\r\n <ng-container *ngIf=\"slides.toArray().length && !options.navBottom\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel.disabled\">\r\n <ng-container *ngTemplateOutlet=\"navigationAction;context:{$implicit: navigationContext.next}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"downside\">\r\n <ng-container *ngIf=\"slides.toArray().length\">\r\n <div class=\"navigation\" *ngIf=\"options.navBottom\" [class.disabled]=\"navigationModel.disabled\">\r\n <ng-container *ngTemplateOutlet=\"navigationAction;context:{$implicit: navigationContext.previous}\">\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"navigationAction;context:{$implicit: navigationContext.next}\">\r\n </ng-container>\r\n </div>\r\n <div class=\"dots\" *ngIf=\"!navigationDotsModel.disabled\">\r\n <sfc-dot *ngFor=\"let dot of navigationDotsModel?.dots\" [disabled]=\"disabled\" [active]=\"dot.active\"\r\n (click)=\"moveByDot(dot.id)\">\r\n </sfc-dot>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #navigationAction let-context>\r\n <sfc-button [disabled]=\"disabled\" [text]=\"context.model?.label\" [iconBefore]=\"context.model?.icon\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"context.action()\">\r\n </sfc-button>\r\n </ng-template>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { Chart } from 'chart.js';\r\nimport {\r\n TabsComponent,\r\n TabLabelIconComponent,\r\n TabLabelIconSliderComponent,\r\n TabLabelLineComponent,\r\n TabLabelLineSliderComponent,\r\n SideMenuComponent,\r\n DropdownMenuComponent,\r\n NavigationMenuComponent,\r\n RouterMenuComponent,\r\n StarsComponent,\r\n AvatarComponent,\r\n ProgressLineComponent,\r\n ProgressSemiCircleComponent,\r\n ProgressCircleComponent,\r\n TagsComponent,\r\n SliderComponent,\r\n TimelineComponent,\r\n NotificationComponent,\r\n ChartComponent,\r\n TableComponent,\r\n DefaultTableColumnComponent,\r\n SelectableTableColumnComponent,\r\n ColumnsToggleComponent,\r\n DefaultTableRowComponent,\r\n ExpandedTableRowComponent,\r\n DefaultTableCardComponent,\r\n CarouselComponent,\r\n CarouselSlideDirective\r\n} from './components';\r\nimport {\r\n DropdownMenuItemComponent,\r\n NavigationMenuItemComponent,\r\n SideMenuHeaderComponent,\r\n SideMenuItemComponent,\r\n SideMenuItemContentComponent,\r\n SideMenuTitleComponent,\r\n RouterMenuItemComponent,\r\n SliderItemComponent,\r\n SliderButtonComponent,\r\n SliderPaginationComponent,\r\n TimelineItemComponent,\r\n NotificationContentComponent,\r\n CarouselStageComponent,\r\n AvatarBadgeComponent,\r\n SortingColumnComponent\r\n} from './components/no-export-index';\r\n\r\nimport {\r\n ArcElement,\r\n BarController,\r\n BarElement,\r\n BubbleController,\r\n CategoryScale,\r\n DoughnutController,\r\n Filler,\r\n Legend,\r\n LinearScale,\r\n LineController,\r\n LineElement,\r\n PieController,\r\n PointElement,\r\n PolarAreaController,\r\n RadarController,\r\n RadialLinearScale,\r\n ScatterController,\r\n TimeSeriesScale,\r\n Title,\r\n Tooltip\r\n} from 'chart.js';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { NgxSfcCommonModule } from 'ngx-sfc-common';\r\n\r\nChart.register(\r\n Title, Tooltip, Filler, Legend,\r\n LineController, LineElement, PointElement, LinearScale, CategoryScale,\r\n BarController, BarElement,\r\n DoughnutController, ArcElement,\r\n RadarController, RadialLinearScale,\r\n PieController,\r\n PolarAreaController,\r\n BubbleController,\r\n ScatterController,\r\n TimeSeriesScale);\r\n\r\n@NgModule({\r\n declarations: [\r\n // Tabs\r\n TabsComponent,\r\n TabLabelLineComponent,\r\n TabLabelIconComponent,\r\n TabLabelLineSliderComponent,\r\n TabLabelIconSliderComponent,\r\n // Menus\r\n SideMenuComponent,\r\n SideMenuHeaderComponent,\r\n SideMenuItemComponent,\r\n SideMenuTitleComponent,\r\n SideMenuItemContentComponent,\r\n DropdownMenuComponent,\r\n DropdownMenuItemComponent,\r\n NavigationMenuComponent,\r\n NavigationMenuItemComponent,\r\n RouterMenuComponent,\r\n RouterMenuItemComponent,\r\n // Stars\r\n StarsComponent,\r\n // Avatar\r\n AvatarComponent,\r\n AvatarBadgeComponent,\r\n // Progress\r\n ProgressLineComponent,\r\n ProgressSemiCircleComponent,\r\n ProgressCircleComponent,\r\n // Tags\r\n TagsComponent,\r\n // Slider\r\n SliderComponent,\r\n SliderItemComponent,\r\n SliderButtonComponent,\r\n SliderPaginationComponent,\r\n // Timeline\r\n TimelineComponent,\r\n TimelineItemComponent,\r\n // Notification\r\n NotificationComponent,\r\n NotificationContentComponent,\r\n // Chart\r\n ChartComponent,\r\n // Table\r\n TableComponent,\r\n DefaultTableColumnComponent,\r\n SelectableTableColumnComponent,\r\n ColumnsToggleComponent,\r\n SortingColumnComponent,\r\n DefaultTableRowComponent,\r\n ExpandedTableRowComponent,\r\n DefaultTableCardComponent,\r\n // Carousel\r\n CarouselComponent,\r\n CarouselStageComponent,\r\n CarouselSlideDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n NgxSfcCommonModule\r\n ],\r\n exports: [\r\n // Tabs\r\n TabsComponent,\r\n TabLabelLineComponent,\r\n TabLabelIconComponent,\r\n TabLabelLineSliderComponent,\r\n TabLabelIconSliderComponent,\r\n // Menus\r\n SideMenuComponent,\r\n DropdownMenuComponent,\r\n NavigationMenuComponent,\r\n RouterMenuComponent,\r\n // Stars\r\n StarsComponent,\r\n // Avatar\r\n AvatarComponent,\r\n // Progress\r\n ProgressLineComponent,\r\n ProgressSemiCircleComponent,\r\n ProgressCircleComponent,\r\n // Tags\r\n TagsComponent,\r\n // Slider\r\n SliderComponent,\r\n // Timeline\r\n TimelineComponent,\r\n // Notification\r\n NotificationComponent,\r\n // Chart\r\n ChartComponent,\r\n // Table\r\n TableComponent,\r\n ExpandedTableRowComponent,\r\n // Carousel\r\n CarouselComponent,\r\n CarouselSlideDirective\r\n ]\r\n})\r\nexport class NgxSfcComponentsModule { }\r\n","/*\r\n * Public API Surface of ngx-sfc-components\r\n */\r\n\r\nexport * from './lib/ngx-sfc-components.module';\r\nexport * from './lib/components';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TabService","i2","i3","i1","i2.SideMenuItemContentComponent","i2.SideMenuHeaderComponent","i3.SideMenuItemComponent","i4.SideMenuTitleComponent","i4.DropdownMenuItemComponent","i2.NavigationMenuItemComponent","i2.RouterMenuItemComponent","i2.StarsComponent","i3.AvatarBadgeComponent","i1.SliderService","i2.SliderAutomaticService","i4","i5","i6.SliderItemComponent","i7.SliderButtonComponent","i8.SliderPaginationComponent","i2.TimelineItemComponent","i3.NotificationContentComponent","i1.ChartThemeService","i2.ChartSettingsService","i1.TableSelectService","i1.ColumnsToggleService","i2.TableSelectService","i5.DefaultTableColumnComponent","i6.SelectableTableColumnComponent","i7.ColumnsToggleComponent","i8.SortingColumnComponent","i9.DefaultTableRowComponent","i10.DefaultTableCardComponent","i1.CarouselService","i2.CarouselAnimateService","i7","i8.CarouselStageComponent"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-sfc-components.mjs","sources":["../../../projects/ngx-sfc-components/src/lib/components/tabs/service/tab.service.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/tabs-template.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/tabs.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/tabs.component.html","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-content-base.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-line/tab-label-line.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-line/tab-label-line.component.html","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-icon/tab-label-icon.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/labels/tab-label-icon/tab-label-icon.component.html","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-slider-base.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-label-icon/tab-label-icon-slider.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-label-icon/tab-label-icon-slider.component.html","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-label-line/tab-label-line-slider.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tabs/parts/sliders/tab-label-line/tab-label-line-slider.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/side-menu.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/side-menu.model.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/header/side-menu-header.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/header/side-menu-header.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/item/content/side-menu-item-content.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/item/content/side-menu-item-content.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/item/side-menu-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/item/side-menu-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/title/side-menu-title.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/parts/title/side-menu-title.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/side/side-menu.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/side/side-menu.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/dropdown/parts/item/dropdown-menu-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/dropdown/parts/item/dropdown-menu-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/dropdown/dropdown-menu.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/dropdown/dropdown-menu.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/navigation/parts/item/navigation-menu-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/navigation/parts/item/navigation-menu-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/navigation/navigation-menu.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/navigation/navigation-menu.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/router/parts/item/router-menu-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/router/parts/item/router-menu-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/menu/router/router-menu.component.ts","../../../projects/ngx-sfc-components/src/lib/components/menu/router/router-menu.component.html","../../../projects/ngx-sfc-components/src/lib/components/stars/star-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/stars/stars.component.ts","../../../projects/ngx-sfc-components/src/lib/components/stars/stars.component.html","../../../projects/ngx-sfc-components/src/lib/components/avatar/avatar.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/models/avatar-image.model.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/parts/badge/avatar-badge-position.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/parts/badge/avatar-badge.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/parts/badge/avatar-badge.component.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/parts/badge/avatar-badge.component.html","../../../projects/ngx-sfc-components/src/lib/components/avatar/avatar.component.ts","../../../projects/ngx-sfc-components/src/lib/components/avatar/avatar.component.html","../../../projects/ngx-sfc-components/src/lib/components/progress/progress-color.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/progress.utils.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/progress.component.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/line/progress-line.component.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/line/progress-line.component.html","../../../projects/ngx-sfc-components/src/lib/components/progress/semi-circle/progress-semi-circle.component.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/semi-circle/progress-semi-circle.component.html","../../../projects/ngx-sfc-components/src/lib/components/progress/circle/progress-circle.component.ts","../../../projects/ngx-sfc-components/src/lib/components/progress/circle/progress-circle.component.html","../../../projects/ngx-sfc-components/src/lib/components/tags/tags.component.ts","../../../projects/ngx-sfc-components/src/lib/components/tags/tags.component.html","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/button/slider-button-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/item/slider-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/item/slider-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/slider/service/slider/slider-move-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/service/slider/slider.service.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/service/automatic/slider-automatic.service.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/slider-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/button/slider-button.component.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/button/slider-button.component.html","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/pagination/slider-pagination.component.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/parts/pagination/slider-pagination.component.html","../../../projects/ngx-sfc-components/src/lib/components/slider/slider.component.ts","../../../projects/ngx-sfc-components/src/lib/components/slider/slider.component.html","../../../projects/ngx-sfc-components/src/lib/components/timeline/parts/item/timeline-item-position.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/timeline/parts/item/timeline-item.component.ts","../../../projects/ngx-sfc-components/src/lib/components/timeline/parts/item/timeline-item.component.html","../../../projects/ngx-sfc-components/src/lib/components/timeline/timeline.component.ts","../../../projects/ngx-sfc-components/src/lib/components/timeline/timeline.component.html","../../../projects/ngx-sfc-components/src/lib/components/notification/enums/notification-template.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/notification/enums/notification-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/notification/parts/content/notification-content.component.ts","../../../projects/ngx-sfc-components/src/lib/components/notification/parts/content/notification-content.component.html","../../../projects/ngx-sfc-components/src/lib/components/notification/notification.component.ts","../../../projects/ngx-sfc-components/src/lib/components/notification/notification.component.html","../../../projects/ngx-sfc-components/src/lib/components/chart/chart.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/chart/service/theme/chart-theme.service.ts","../../../projects/ngx-sfc-components/src/lib/components/chart/service/settings/chart-settings.service.ts","../../../projects/ngx-sfc-components/src/lib/components/chart/chart.component.ts","../../../projects/ngx-sfc-components/src/lib/components/chart/chart.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/table-column-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/toggle/service/columns-toggle.service.ts","../../../projects/ngx-sfc-components/src/lib/components/table/service/select/table-select.service.ts","../../../projects/ngx-sfc-components/src/lib/components/table/enums/table-data-type.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/table/table.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/table/enums/table-template.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/default/default-table-column.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/default/default-table-column.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/selectable/selectable-table-column.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/selectable/selectable-table-column.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/selectable/selectable-table-column.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/toggle/columns-toggle.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/toggle/columns-toggle.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/toggle/columns-toggle.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/sorting/sorting-column.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/sorting/sorting-column.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/columns/sorting/sorting-column.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/base-default-table-content.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/default/default-table-row.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/default/default-table-row.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/cards/default/default-table-card.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/cards/default/default-table-card.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/table.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/table.component.html","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/expanded/expanded-table-row-template.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.ts","../../../projects/ngx-sfc-components/src/lib/components/table/parts/content/rows/expanded/expanded-table-row.component.html","../../../projects/ngx-sfc-components/src/lib/components/carousel/carousel.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/directive/carousel-slide.directive.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/carousel/carousel-service.constants.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/carousel/carousel-service.enum.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/carousel/carousel.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/animate/carousel-animate.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/autoplay/carousel-autoplay.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/lazy/carousel-lazy-load.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/service/navigation/carousel-navigation.service.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/parts/stage/carousel-stage.component.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/parts/stage/carousel-stage.component.html","../../../projects/ngx-sfc-components/src/lib/components/carousel/carousel.component.ts","../../../projects/ngx-sfc-components/src/lib/components/carousel/carousel.component.html","../../../projects/ngx-sfc-components/src/lib/ngx-sfc-components.module.ts","../../../projects/ngx-sfc-components/src/public-api.ts","../../../projects/ngx-sfc-components/src/ngx-sfc-components.ts"],"sourcesContent":["import { Observable, Subject } from 'rxjs';\r\n\r\nexport class TabService {\r\n\r\n private selectSubject: Subject<number> = new Subject<number>();\r\n\r\n public selected$: Observable<number> = this.selectSubject.asObservable();\r\n\r\n select(index: number) {\r\n this.selectSubject.next(index);\r\n }\r\n}\r\n","export enum TabsTemplate {\r\n Label = 'label',\r\n Slider = 'slider',\r\n Body = 'body'\r\n}","import { Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, TemplateRef } from '@angular/core';\r\nimport { CommonConstants, firstOrDefault, isDefined, TemplateReferenceDirective } from 'ngx-sfc-common';\r\nimport { BehaviorSubject, combineLatest, map, Observable, startWith } from 'rxjs';\r\nimport { TabService } from './service/tab.service';\r\nimport { TabsTemplate } from './tabs-template.enum';\r\nimport { ITabsViewModel } from './models/tabs-view.model';\r\nimport { ITabModel } from './models/tab.model';\r\nimport { empty } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss'],\r\n providers: [TabService]\r\n})\r\nexport class TabsComponent implements OnInit {\r\n\r\n TabsTemplate = TabsTemplate;\r\n\r\n @Input()\r\n tabs: ITabModel[] = [];\r\n\r\n // Template references \r\n\r\n @Input()\r\n label?: TemplateRef<any>;\r\n\r\n @Input()\r\n slider?: TemplateRef<any>;\r\n\r\n @Input()\r\n body?: TemplateRef<any>;\r\n\r\n // End Template references\r\n\r\n @Output()\r\n selected: EventEmitter<ITabModel> = new EventEmitter<ITabModel>();\r\n\r\n @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n public vm$?: Observable<ITabsViewModel>;\r\n\r\n private tabsSubject?: BehaviorSubject<ITabModel[]>;\r\n\r\n public data: any | empty = null;\r\n\r\n constructor(private tabService: TabService) { }\r\n\r\n ngOnInit(): void {\r\n this.tabsSubject = new BehaviorSubject<ITabModel[]>(this.tabs)\r\n\r\n const selectedIndex = this.getSelectedIndex(this.tabs),\r\n tabs$ = this.tabsSubject.asObservable(),\r\n selected$ = this.tabService.selected$\r\n .pipe(\r\n startWith(selectedIndex)\r\n );\r\n\r\n this.vm$ = combineLatest([\r\n tabs$,\r\n selected$\r\n ]).pipe(\r\n map(([tabs, selectedIndex]) => {\r\n this.updateSelected(tabs, selectedIndex);\r\n\r\n return {\r\n tabs: tabs,\r\n selectedTab: isDefined(selectedIndex) ? tabs[selectedIndex] : null,\r\n sliderContextData: { count: tabs.length, index: selectedIndex },\r\n tabWidth: 100 / (tabs ? tabs.length : 1)\r\n }\r\n })\r\n );\r\n }\r\n\r\n public selectTab(tab: ITabModel, index: number) {\r\n if (!tab.disabled && !tab.selected) {\r\n this.tabService.select(index);\r\n this.selected.emit(tab);\r\n }\r\n }\r\n\r\n private getSelectedIndex(tabs: ITabModel[]): number {\r\n let selectedIndex = tabs.indexOf(firstOrDefault(tabs,\r\n tab => tab.selected! && !tab.disabled) as ITabModel);\r\n\r\n if (selectedIndex == CommonConstants.NOT_FOUND_INDEX) {\r\n selectedIndex = tabs.indexOf(firstOrDefault(tabs, tab => !tab.disabled) as ITabModel);\r\n return selectedIndex == CommonConstants.NOT_FOUND_INDEX ? 0 : selectedIndex;\r\n }\r\n\r\n return selectedIndex;\r\n }\r\n\r\n private updateSelected(tabs: ITabModel[], selectedIndex: number): void {\r\n tabs.forEach((item: ITabModel, index: number) => {\r\n item.selected = index == selectedIndex;\r\n\r\n if (item.selected) {\r\n this.data = item.data;\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div class=\"tabs-container\">\r\n <div class=\"tabs\">\r\n <div class=\"tab\" [style.width.%]=\"vm.tabWidth\" *ngFor=\"let tab of vm.tabs; index as index\"\r\n (click)=\"selectTab(tab, index)\">\r\n\r\n <sfc-template-content [referenceContent]=\"label\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Label\" [defaultContent]=\"defaultLabel\" [contextData]=\"tab\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultLabel>{{ tab.label }}</ng-template>\r\n </div>\r\n </div>\r\n\r\n <sfc-template-content [referenceContent]=\"slider\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Slider\" [contextData]=\"vm.sliderContextData\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"body-container\">\r\n <ng-container *ngIf=\"vm.selectedTab\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"TabsTemplate.Body\" [contextData]=\"vm.selectedTab.data\">\r\n </sfc-template-content>\r\n\r\n </ng-container>\r\n </div>\r\n</div>","import {\r\n Directive, HostBinding, Input\r\n} from \"@angular/core\";\r\nimport { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { UIClass } from \"ngx-sfc-common\";\r\n\r\n@Directive()\r\nexport class TabLabelContentBase {\r\n\r\n @Input()\r\n label?: string;\r\n\r\n @Input()\r\n icon?: IconDefinition;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Disabled)\r\n disabled: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Selected)\r\n selected = false;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { TabLabelContentBase } from '../tab-label-content-base.component';\r\n\r\n@Component({\r\n selector: 'sfc-tab-label-line',\r\n templateUrl: './tab-label-line.component.html',\r\n styleUrls: ['./tab-label-line.component.scss']\r\n})\r\nexport class TabLabelLineComponent extends TabLabelContentBase {\r\n\r\n @Input()\r\n image: string | null = null;\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"icon\" [imageSrc]=\"image\" [sfcComponentSize] [customSize]=\"1.8\"></sfc-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { TabLabelContentBase } from '../tab-label-content-base.component';\r\n\r\n@Component({\r\n selector: 'sfc-tab-label-icon',\r\n templateUrl: './tab-label-icon.component.html',\r\n styleUrls: ['./tab-label-icon.component.scss']\r\n})\r\nexport class TabLabelIconComponent\r\n extends TabLabelContentBase {\r\n}\r\n","<div class=\"container\">\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <span>{{label}}</span>\r\n <ng-content></ng-content>\r\n</div>","import {\r\n Directive, Input\r\n} from \"@angular/core\";\r\n\r\n@Directive()\r\nexport abstract class TabSliderBase {\r\n @Input()\r\n count: number = 1;\r\n\r\n @Input()\r\n index: number = 0;\r\n\r\n abstract get style(): any;\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { getCalcValue, UIConstants } from 'ngx-sfc-common';\r\nimport { TabSliderBase } from '../tab-slider-base.component';\r\n\r\n@Component({\r\n selector: 'sfc-tab-label-icon-slider',\r\n templateUrl: './tab-label-icon-slider.component.html',\r\n styleUrls: ['./tab-label-icon-slider.component.scss']\r\n})\r\nexport class TabLabelIconSliderComponent extends TabSliderBase {\r\n\r\n get style(): any {\r\n return {\r\n width: getCalcValue(this.count),\r\n transform: `translateX(${100 * this.index}${UIConstants.CSS_PERCENTAGE})`\r\n }\r\n }\r\n}\r\n","<div class=\"slider\" [ngStyle]=\"style\">\r\n <div class=\"indicator\"></div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { getCalcValue } from 'ngx-sfc-common';\r\nimport { TabSliderBase } from '../tab-slider-base.component';\r\n\r\n@Component({\r\n selector: 'sfc-tab-label-line-slider',\r\n templateUrl: './tab-label-line-slider.component.html',\r\n styleUrls: ['./tab-label-line-slider.component.scss']\r\n})\r\nexport class TabLabelLineSliderComponent extends TabSliderBase {\r\n\r\n get style() {\r\n return {\r\n width: getCalcValue(this.count),\r\n left: getCalcValue((this.count / this.index))\r\n }\r\n }\r\n}\r\n","<div class=\"slider\" [ngStyle]=\"style\"></div>","export class SideMenuConstants {\r\n static CSS_SWITCH_CLASS = 'switch';\r\n}","import { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { empty } from \"ngx-sfc-common\";\r\n\r\nexport interface ISideMenuModel {\r\n open?: boolean;\r\n switch?: boolean | empty;\r\n label?: string | empty;\r\n items?: ISideMenuItemModel[];\r\n}\r\n\r\nexport interface ISideMenuItemModel {\r\n label: string;\r\n active?: boolean;\r\n type: SideMenuItemType;\r\n id?: string | empty; \r\n open?: boolean; \r\n icon?: IconDefinition | empty; \r\n items?: ISideMenuItemModel[];\r\n click?: (item: ISideMenuItemModel) => void;\r\n}\r\n\r\nexport enum SideMenuItemType {\r\n Item = 'item',\r\n Title = 'title'\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\r\nimport { CommonConstants, empty, isDefined, UIClass } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu-header',\r\n templateUrl: './side-menu-header.component.html',\r\n styleUrls: ['./side-menu-header.component.scss']\r\n})\r\nexport class SideMenuHeaderComponent implements OnInit {\r\n\r\n private readonly DEFAULT_MENU_HEADER_TEXT = 'Menu';\r\n\r\n @Input()\r\n label?: string | empty = CommonConstants.EMPTY_STRING;\r\n\r\n @Input()\r\n switch: boolean = true;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n @Output()\r\n toggle: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n ngOnInit(): void {\r\n this.label = isDefined(this.label) ? this.label : this.DEFAULT_MENU_HEADER_TEXT;\r\n }\r\n}\r\n","<li>\r\n <span>{{label}}</span>\r\n <sfc-hamburger *ngIf=\"switch\" [open]=\"open\" (click)=\"toggle.emit()\"></sfc-hamburger>\r\n</li>","import { Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { ISideMenuItemModel, SideMenuItemType } from '../../../side-menu.model';\r\nimport { faAngleUp, faAngleDown, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu-item-content',\r\n templateUrl: './side-menu-item-content.component.html',\r\n styleUrls: ['./side-menu-item-content.component.scss']\r\n})\r\nexport class SideMenuItemContentComponent {\r\n\r\n private readonly ANGLE_UP_ICON = faAngleUp;\r\n private readonly ANGLE_DOWM_ICON = faAngleDown;\r\n\r\n @Input()\r\n item: ISideMenuItemModel = {\r\n id: CommonConstants.EMPTY_STRING,\r\n label: CommonConstants.EMPTY_STRING,\r\n icon: null,\r\n type: SideMenuItemType.Item,\r\n active: false\r\n };\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Active)\r\n active: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n @Input()\r\n openParent: boolean = false;\r\n\r\n @Input()\r\n hasChildren: boolean = false;\r\n\r\n @Output()\r\n selectItem: EventEmitter<ISideMenuItemModel> = new EventEmitter<ISideMenuItemModel>();\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.selectItem.emit(this.item);\r\n\r\n if (this.item.click)\r\n this.item.click(this.item);\r\n }\r\n\r\n get expandIcon(): IconDefinition {\r\n return this.openParent ? this.ANGLE_UP_ICON : this.ANGLE_DOWM_ICON;\r\n }\r\n}\r\n","<li>\r\n <div class=\"item-container\">\r\n <div class=\"item\">\r\n <a>\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n </a>\r\n </div>\r\n <span class=\"label\">{{item.label}}</span>\r\n </div>\r\n\r\n <div *ngIf=\"hasChildren\" class=\"expand-container\">\r\n <fa-icon [icon]=\"expandIcon\"></fa-icon>\r\n </div>\r\n</li>","import { animate, style, transition, trigger } from '@angular/animations';\r\nimport { Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\r\nimport { any, CommonConstants, firstOrDefault, isDefined, UIClass } from 'ngx-sfc-common';\r\nimport { ISideMenuItemModel, SideMenuItemType } from '../../side-menu.model';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu-item',\r\n templateUrl: './side-menu-item.component.html',\r\n styleUrls: ['./side-menu-item.component.scss'],\r\n animations: [\r\n trigger(\r\n 'enterAnimation', [\r\n transition(':enter', [\r\n style({ transform: 'translateX(-20%)', opacity: 0 }),\r\n animate('300ms', style({ transform: 'translateX(0%)', opacity: 1 }))\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'translateX(0%)', opacity: 1 }),\r\n animate('300ms', style({ transform: 'translateX(-20%)', opacity: 0 }))\r\n ])\r\n ]\r\n )\r\n ]\r\n})\r\nexport class SideMenuItemComponent implements OnInit {\r\n\r\n @Input()\r\n item: ISideMenuItemModel = {\r\n id: CommonConstants.EMPTY_STRING,\r\n label: CommonConstants.EMPTY_STRING,\r\n icon: null,\r\n type: SideMenuItemType.Item,\r\n items: [],\r\n active: false\r\n };\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n @Output()\r\n selectItem: EventEmitter<ISideMenuItemModel> = new EventEmitter<ISideMenuItemModel>();\r\n\r\n openParent: boolean = false;\r\n\r\n private get hasActiveChild(): boolean {\r\n return isDefined(firstOrDefault(this.item.items, (item: ISideMenuItemModel) => item.active || false));\r\n }\r\n\r\n public hasChildren(item: ISideMenuItemModel): boolean {\r\n return any(item.items);\r\n }\r\n\r\n public isActive(item: ISideMenuItemModel): boolean {\r\n return this.hasChildren(item)\r\n ? this.hasActiveChild && !this.openParent\r\n : item.active || false\r\n }\r\n\r\n ngOnInit(): void {\r\n this.openParent = this.hasActiveChild || (this.item.open || false);\r\n }\r\n\r\n public onParentClick(item: ISideMenuItemModel): void {\r\n this.openParent = !this.openParent;\r\n this.selectItem.emit(item);\r\n }\r\n\r\n public onChildClick(item: ISideMenuItemModel, child: ISideMenuItemModel): void {\r\n item.items?.forEach((item) => item.active = false);\r\n this.selectItem.emit(child);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <sfc-side-menu-item-content [item]=\"item\" [active]=\"isActive(item)\" [open]=\"open\" [openParent]=\"openParent\"\r\n [hasChildren]=\"hasChildren(item)\" (selectItem)=\"onParentClick(item)\">\r\n </sfc-side-menu-item-content>\r\n\r\n <div class=\"children\" *ngIf=\"hasChildren(item) && openParent\" [@enterAnimation]>\r\n\r\n <sfc-side-menu-item-content *ngFor=\"let child of item.items\" [item]=\"child\" [open]=\"open\"\r\n [active]=\"isActive(child)\" [openParent]=\"true\" (selectItem)=\"onChildClick(item, child)\">\r\n </sfc-side-menu-item-content>\r\n </div>\r\n</div>","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu-title',\r\n templateUrl: './side-menu-title.component.html',\r\n styleUrls: ['./side-menu-title.component.scss']\r\n})\r\nexport class SideMenuTitleComponent {\r\n\r\n @Input()\r\n label: string = CommonConstants.EMPTY_STRING;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n}\r\n","<sfc-delimeter></sfc-delimeter>\r\n<li><span>{{label}}</span></li>","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { any, isDefined, UIClass } from 'ngx-sfc-common';\r\nimport { SideMenuConstants } from './side-menu.constants';\r\nimport { ISideMenuItemModel, ISideMenuModel, SideMenuItemType } from './side-menu.model';\r\n\r\n@Component({\r\n selector: 'sfc-side-menu',\r\n templateUrl: './side-menu.component.html',\r\n styleUrls: ['./side-menu.component.scss']\r\n})\r\nexport class SideMenuComponent {\r\n\r\n SideMenuItemType = SideMenuItemType;\r\n\r\n @Input()\r\n model: ISideMenuModel = { open: false, items: [] };\r\n\r\n @Output()\r\n selected: EventEmitter<ISideMenuItemModel> = new EventEmitter<ISideMenuItemModel>();\r\n\r\n @HostBinding('class.' + UIClass.Open)\r\n get open(): boolean {\r\n return this.model.open || !this.switch;\r\n }\r\n\r\n set open(value: boolean) {\r\n this.model.open = value;\r\n }\r\n\r\n @HostBinding(`class.${SideMenuConstants.CSS_SWITCH_CLASS}`)\r\n get switch(): boolean {\r\n return isDefined(this.model.switch) ? this.model.switch! : true;\r\n }\r\n\r\n onItemSelect(item: ISideMenuItemModel) {\r\n // handle only items without childrens\r\n if (!any(item.items)) {\r\n this.model.items!.forEach((item) => {\r\n item.active = false;\r\n\r\n if (any(item.items))\r\n item.items?.forEach((item) => item.active = false);\r\n });\r\n\r\n item.active = true;\r\n }\r\n\r\n this.selected.emit(item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <ul>\r\n <sfc-side-menu-header [label]=\"model.label\" [open]=\"open\" [switch]=\"switch\" (toggle)=\"open =!open\">\r\n </sfc-side-menu-header>\r\n\r\n <ng-container *ngFor=\"let item of model.items\" [ngSwitch]=\"item.type\">\r\n <sfc-side-menu-item *ngSwitchCase=\"SideMenuItemType.Item\" [item]=\"item\" [open]=\"open\"\r\n (selectItem)=\"onItemSelect($event)\">\r\n </sfc-side-menu-item>\r\n\r\n <sfc-side-menu-title *ngSwitchCase=\"SideMenuItemType.Title\" [label]=\"item.label\" [open]=\"open\">\r\n </sfc-side-menu-title>\r\n </ng-container>\r\n </ul>\r\n</div>","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { IDropdownMenuItemModel } from './dropdown-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-dropdown-menu-item',\r\n templateUrl: './dropdown-menu-item.component.html',\r\n styleUrls: ['./dropdown-menu-item.component.scss']\r\n})\r\nexport class DropdownMenuItemComponent {\r\n\r\n /* Inputs */\r\n\r\n @Input()\r\n item: IDropdownMenuItemModel = { label: CommonConstants.EMPTY_STRING };\r\n\r\n /* End Inputs */\r\n\r\n /* Host bindings */\r\n\r\n @HostBinding(`class.${UIClass.Active}`)\r\n private get _active(): boolean { return this.item.active || false; }\r\n\r\n /* End Host bindings */\r\n\r\n /* Host listeners */\r\n\r\n @HostListener('click')\r\n click(): void {\r\n if (this.item.click)\r\n this.item.click(this.item);\r\n }\r\n\r\n /* End Host listeners */\r\n}\r\n","<li>\r\n <sfc-icon [icon]=\"item.icon\" [imageSrc]=\"item.image\"></sfc-icon>\r\n <a>{{item.label}}</a>\r\n</li>\r\n\r\n<sfc-delimeter *ngIf=\"item.delimeter\"></sfc-delimeter>","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { AfterContentInit, Component, EventEmitter, HostBinding, Inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { ClickOutsideEvent, isDefined, isNullOrEmptyString, MediaLimits, Position, ResizeService, UIClass, WINDOW } from 'ngx-sfc-common';\r\nimport { filter, startWith, Subscription } from 'rxjs';\r\nimport { IDropdownMenuItemModel } from './parts/item/dropdown-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-dropdown-menu',\r\n templateUrl: './dropdown-menu.component.html',\r\n styleUrls: ['./dropdown-menu.component.scss'],\r\n animations: [\r\n trigger(\r\n 'openClose',\r\n [\r\n state('true', style({\r\n opacity: 1\r\n })),\r\n state('false', style({\r\n opacity: 0,\r\n })),\r\n transition('true <=> false', [\r\n animate('0.1s')\r\n ])\r\n ]\r\n )\r\n ]\r\n})\r\nexport class DropdownMenuComponent implements OnDestroy, OnInit, AfterContentInit {\r\n\r\n @Input()\r\n items: IDropdownMenuItemModel[] = [];\r\n\r\n @Input()\r\n icon?: IconDefinition;\r\n\r\n @Input()\r\n defaultDots: boolean = true;\r\n\r\n @Input()\r\n label?: string;\r\n\r\n @Input()\r\n hideOnClick: boolean = true;\r\n\r\n @Input()\r\n hideOnClickOutside: boolean = true;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Bordered)\r\n bordered: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Filled)\r\n filled: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class')\r\n position: Position[] = [Position.Left];\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Open)\r\n open: boolean = false;\r\n\r\n @Input()\r\n autoResize: boolean = true;\r\n\r\n @Output()\r\n selected: EventEmitter<IDropdownMenuItemModel> = new EventEmitter<IDropdownMenuItemModel>();\r\n\r\n // preserved position\r\n private _position = [Position.Left];\r\n\r\n private _resizeSubscription?: Subscription;\r\n\r\n get showDots(): boolean {\r\n return this.defaultDots && isNullOrEmptyString(this.label) && !isDefined(this.icon);\r\n }\r\n\r\n constructor(private resizeService: ResizeService, @Inject(WINDOW) private window: Window) { }\r\n\r\n ngOnInit(): void {\r\n this._position = this.position;\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this._resizeSubscription = this.resizeService.onResize$\r\n .pipe(\r\n startWith(this.window),\r\n filter(_ => this.autoResize)\r\n )\r\n .subscribe(window => {\r\n this.position = window.innerWidth <= MediaLimits.Tablet\r\n ? [Position.Bottom, Position.Center] : this._position\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._resizeSubscription?.unsubscribe();\r\n }\r\n\r\n public onClick(item: IDropdownMenuItemModel, event: Event): void {\r\n this.preventPropagation(event);\r\n\r\n if (this.hideOnClick)\r\n this.open = false;\r\n\r\n this.items.forEach(item => item.active = false);\r\n item.active = true;\r\n\r\n this.selected.emit(item);\r\n }\r\n\r\n public toggle(event: Event): void {\r\n this.preventPropagation(event);\r\n this.open = !this.open;\r\n }\r\n\r\n public onClickOutside(event: ClickOutsideEvent): void {\r\n if (event.value && this.open) {\r\n this.open = false;\r\n }\r\n }\r\n\r\n private preventPropagation(event: Event): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n}\r\n","<ul [sfcClickOutside]=\"hideOnClickOutside\" (action)=\"onClickOutside($event)\">\r\n <li>\r\n <div class=\"container\" (click)=\"toggle($event)\">\r\n <span *ngIf=\"label\">{{label}}</span>\r\n <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n <sfc-dots *ngIf=\"showDots\" [open]=\"open\"></sfc-dots>\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <ul *ngIf=\"items.length\" [@openClose]=\"open\" class=\"dropdown-container\">\r\n <sfc-dropdown-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item, $event)\">\r\n </sfc-dropdown-menu-item>\r\n </ul>\r\n </li>\r\n</ul>","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { INavigationMenuItemModel } from './navigation-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-navigation-menu-item',\r\n templateUrl: './navigation-menu-item.component.html',\r\n styleUrls: ['./navigation-menu-item.component.scss']\r\n})\r\nexport class NavigationMenuItemComponent {\r\n\r\n @Input()\r\n item: INavigationMenuItemModel = { label: CommonConstants.EMPTY_STRING, active: false };\r\n\r\n @HostBinding('class.' + UIClass.Active)\r\n get active(): boolean {\r\n return this.item.active;\r\n }\r\n\r\n @HostListener('click')\r\n click() {\r\n if (this.item.click)\r\n this.item.click(this.item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\"></fa-icon>\r\n <span>{{item.label}}</span>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { INavigationMenuItemModel } from './parts/item/navigation-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-navigation-menu',\r\n templateUrl: './navigation-menu.component.html',\r\n styleUrls: ['./navigation-menu.component.scss']\r\n})\r\nexport class NavigationMenuComponent {\r\n\r\n @Input()\r\n items: INavigationMenuItemModel[] = [];\r\n\r\n @Output()\r\n selected: EventEmitter<INavigationMenuItemModel> = new EventEmitter<INavigationMenuItemModel>();\r\n\r\n onClick(item: INavigationMenuItemModel) {\r\n this.items.forEach((item) => item.active = false);\r\n item.active = true;\r\n this.selected.emit(item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"items\">\r\n <sfc-navigation-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-navigation-menu-item>\r\n </div>\r\n</div>","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { IRouterMenuItemModel } from './router-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-router-menu-item',\r\n templateUrl: './router-menu-item.component.html',\r\n styleUrls: ['./router-menu-item.component.scss']\r\n})\r\nexport class RouterMenuItemComponent {\r\n\r\n @Input()\r\n item: IRouterMenuItemModel = { id: CommonConstants.EMPTY_STRING, label: CommonConstants.EMPTY_STRING, selected: false };\r\n\r\n @HostBinding('class.' + UIClass.Selected)\r\n get _selected(): boolean {\r\n return this.item.selected ?? false;\r\n }\r\n\r\n @HostListener('click')\r\n click(): void {\r\n if (this.item.click)\r\n this.item.click(this.item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-icon [icon]=\"item.icon\" [imageSrc]=\"item.image\"></sfc-icon>\r\n <span>{{item.label}}</span>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { all } from 'ngx-sfc-common';\r\nimport { IRouterMenuItemModel } from './parts/item/router-menu-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-router-menu',\r\n templateUrl: './router-menu.component.html',\r\n styleUrls: ['./router-menu.component.scss']\r\n})\r\nexport class RouterMenuComponent implements OnInit {\r\n\r\n @Input()\r\n items: IRouterMenuItemModel[] = [];\r\n\r\n @Output()\r\n selected: EventEmitter<IRouterMenuItemModel> = new EventEmitter<IRouterMenuItemModel>();\r\n\r\n ngOnInit(): void {\r\n if (all(this.items, (item: IRouterMenuItemModel) => !(item.selected ?? false))) {\r\n this.items[0].selected = true;\r\n }\r\n }\r\n\r\n public onClick(item: IRouterMenuItemModel): void {\r\n this.items.forEach((item: IRouterMenuItemModel) => item.selected = false);\r\n item.selected = true;\r\n this.selected.emit(item);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <div class=\"items\">\r\n <sfc-router-menu-item *ngFor=\"let item of items\" [item]=\"item\" (click)=\"onClick(item)\">\r\n </sfc-router-menu-item>\r\n </div>\r\n </div> \r\n</div>","export enum StarType {\r\n None = 'none',\r\n S25 = 's25',\r\n Half = 'half',\r\n S75 = 's75',\r\n Full = 'full'\r\n}","import { Component, Input } from '@angular/core';\r\nimport { StarType } from './star-type.enum';\r\n\r\n@Component({\r\n selector: 'sfc-stars',\r\n templateUrl: './stars.component.html',\r\n styleUrls: ['./stars.component.scss']\r\n})\r\nexport class StarsComponent {\r\n\r\n private readonly DEFAULT_COUNT = 5;\r\n\r\n @Input()\r\n value: number = 0;\r\n\r\n @Input()\r\n count: number = this.DEFAULT_COUNT;\r\n\r\n get stars(): Array<number> {\r\n return new Array(this.count);\r\n }\r\n\r\n getStarType(index: number) {\r\n index += 1;\r\n\r\n if ((index - this.value) >= 1) {\r\n return StarType.None;\r\n }\r\n\r\n if (this.value >= index) {\r\n return StarType.Full;\r\n }\r\n\r\n const part = this.value - Math.floor(this.value);\r\n\r\n if (part < 0.25 || (part >= 0.25 && part < 0.5)) {\r\n return StarType.S25;\r\n }\r\n\r\n if (part >= 0.5 && part < 0.75) {\r\n return StarType.Half;\r\n }\r\n\r\n return StarType.S75;\r\n }\r\n}\r\n","<div class=\"container\">\r\n <button *ngFor=\"let star of stars; let i = index;\" [ngClass]=\"getStarType(i)\"></button>\r\n</div>","export class AvatarConstants {\r\n static DEFAULT_RADIUS = 80;\r\n static DEFAULT_STROKE = 2;\r\n static STARS_DEFAULT_COUNT = 5;\r\n static PROGRESS_DEFAULT_COLOR = '#CCD1D9';\r\n static PROGRESS_DEFAULT_FILLED_COLOR = '#2bbbad';\r\n static DATA_DEFAULT_IMAGE = \"data:image/png;base64,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\";\r\n}\r\n","import { CommonConstants } from \"ngx-sfc-common\";\r\n\r\nexport class AvatarImageModel {\r\n\r\n NormalizedRadius: number;\r\n\r\n ImageRadius: number;\r\n\r\n Circumference: number;\r\n\r\n Height: number;\r\n\r\n Width: number;\r\n\r\n ImageId: string;\r\n\r\n Stroke: number;\r\n\r\n constructor(private radius: number, private stroke: number, private image: string | File) {\r\n this.NormalizedRadius = this.radius - this.stroke * 2;\r\n this.Circumference = Math.round(this.NormalizedRadius * 2 * Math.PI);\r\n this.Height = this.Width = this.radius * 2;\r\n this.ImageRadius = this.NormalizedRadius - (this.NormalizedRadius * 0.15);\r\n this.ImageId = image instanceof File ? '' : Math.random() + ((this.image as string)?.split(/(\\\\|\\/)/g).pop() || CommonConstants.EMPTY_STRING);\r\n this.Stroke = stroke;\r\n }\r\n}\r\n","export enum AvatarBadgePosition {\r\n Top = 'top',\r\n RightTop = 'right-top',\r\n Right = 'right',\r\n RightBottom = 'right-bottom',\r\n Bottom = 'bottom',\r\n LeftTop = 'left-top',\r\n Left = 'left',\r\n LeftBottom = 'left-bottom',\r\n}","export class AvatarBadgeConstants {\r\n static SIZE_MULTIPLIER = 0.375;\r\n static TEXT_SIZE_MULTIPLIER = 0.2;\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { empty } from 'ngx-sfc-common';\r\nimport { getCssLikeValue, UIConstants } from 'ngx-sfc-common';\r\nimport { AvatarConstants } from '../../avatar.constants';\r\nimport { AvatarBadgePosition } from './avatar-badge-position.enum';\r\nimport { AvatarBadgeConstants } from './avatar-badge.constants';\r\nimport { IAvatarBadgeModel } from './avatar-badge.model';\r\n\r\n@Component({\r\n selector: 'sfc-avatar-badge',\r\n templateUrl: './avatar-badge.component.html',\r\n styleUrls: ['./avatar-badge.component.scss']\r\n})\r\nexport class AvatarBadgeComponent {\r\n\r\n @Input()\r\n background?: string | empty;\r\n\r\n @Input()\r\n model: IAvatarBadgeModel = { position: AvatarBadgePosition.Bottom };\r\n\r\n @Input()\r\n radius: number = AvatarConstants.DEFAULT_RADIUS;\r\n\r\n @Input()\r\n normalizedRadius: number = AvatarConstants.DEFAULT_RADIUS;\r\n\r\n @Input()\r\n stroke: number = AvatarConstants.DEFAULT_STROKE;\r\n\r\n @HostBinding('style')\r\n get styles() {\r\n const badgeSize = getCssLikeValue(this.sizePart);\r\n return {\r\n ...{\r\n height: badgeSize,\r\n width: badgeSize,\r\n background: this.model.background || this.background,\r\n fontSize: getCssLikeValue(this.radius * AvatarBadgeConstants.TEXT_SIZE_MULTIPLIER)\r\n },\r\n ...this.positionStyle\r\n }\r\n }\r\n\r\n private get positionStyle(): any {\r\n const halfNormilizedSizePart = this.normalizedRadius * AvatarBadgeConstants.SIZE_MULTIPLIER / 2,\r\n halfNormilizedSizePartPx = getCssLikeValue(halfNormilizedSizePart),\r\n strokedHalfNormilizedSizePartPx = `-${getCssLikeValue(Math.abs(halfNormilizedSizePart - this.stroke))}`,\r\n strokePx = getCssLikeValue(this.stroke),\r\n positionPart = `calc(50${UIConstants.CSS_PERCENTAGE} - ${getCssLikeValue((this.sizePart / 2))}`,\r\n positionBottomPart = `calc(25${UIConstants.CSS_PERCENTAGE} - ${halfNormilizedSizePartPx}`,\r\n positionTopPart = `calc(75${UIConstants.CSS_PERCENTAGE} - ${halfNormilizedSizePartPx}`;\r\n switch (this.model.position) {\r\n case AvatarBadgePosition.Top:\r\n return {\r\n right: positionPart,\r\n top: strokedHalfNormilizedSizePartPx\r\n };\r\n case AvatarBadgePosition.Right:\r\n return {\r\n right: strokedHalfNormilizedSizePartPx,\r\n bottom: positionPart\r\n };\r\n case AvatarBadgePosition.RightTop:\r\n return {\r\n right: strokePx,\r\n bottom: positionTopPart\r\n };\r\n case AvatarBadgePosition.RightBottom:\r\n return {\r\n right: strokePx,\r\n bottom: positionBottomPart\r\n };\r\n case AvatarBadgePosition.Bottom:\r\n return {\r\n right: positionPart,\r\n bottom: strokedHalfNormilizedSizePartPx,\r\n };\r\n case AvatarBadgePosition.Left:\r\n return {\r\n left: strokedHalfNormilizedSizePartPx,\r\n bottom: positionPart\r\n };\r\n case AvatarBadgePosition.LeftTop:\r\n return {\r\n left: strokePx,\r\n bottom: positionTopPart\r\n };\r\n case AvatarBadgePosition.LeftBottom:\r\n return {\r\n left: strokePx,\r\n bottom: positionBottomPart\r\n };\r\n }\r\n }\r\n\r\n private get sizePart(): number {\r\n return this.radius * AvatarBadgeConstants.SIZE_MULTIPLIER;\r\n }\r\n}\r\n","<span class=\"container\">\r\n <ng-template #content>\r\n <span *ngIf=\"model.label\" class=\"label\">{{model.label}}</span>\r\n <fa-icon *ngIf=\"model.icon\" [icon]=\"model.icon\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"model.tooltip?.value\">\r\n <span class=\"tooltip\" [sfc-tooltip]=\"model.tooltip?.value\" [tooltipPosition]=\"model.tooltip?.position!\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!model.tooltip?.value\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </ng-container>\r\n</span>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { isDefined } from 'ngx-sfc-common';\r\nimport { AvatarConstants } from './avatar.constants';\r\nimport { IAvatarDataModel } from './models/avatar-data.model';\r\nimport { AvatarImageModel } from './models/avatar-image.model';\r\nimport { IAvatarProgressModel } from './models/avatar-progress.model';\r\nimport { IAvatarBadgeModel } from './parts/badge/avatar-badge.model';\r\n\r\n@Component({\r\n selector: 'sfc-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss']\r\n})\r\nexport class AvatarComponent implements OnInit {\r\n\r\n readonly PROGRESS_MODEL_DEFAULT: IAvatarProgressModel = {\r\n color: AvatarConstants.PROGRESS_DEFAULT_COLOR,\r\n filledColor: AvatarConstants.PROGRESS_DEFAULT_FILLED_COLOR\r\n };\r\n\r\n readonly DATA_MODEL_DEFAULT: IAvatarDataModel = {\r\n image: AvatarConstants.DATA_DEFAULT_IMAGE\r\n };\r\n\r\n readonly STROKE_HOVER_VALUE = 2;\r\n\r\n readonly FULLNAME_PART_VALUE = 4;\r\n\r\n readonly TITLE_PART_VALUE = 5;\r\n\r\n /**\r\n * Avatar radius (80 by default)\r\n */\r\n @Input()\r\n radius: number = AvatarConstants.DEFAULT_RADIUS;\r\n\r\n /**\r\n * Size of avatar progress circle (2 by default)\r\n */\r\n @Input()\r\n stroke: number = AvatarConstants.DEFAULT_STROKE;\r\n\r\n /**\r\n * Progress value\r\n */\r\n @Input()\r\n progress: number = 0;\r\n\r\n /**\r\n * Progress colors model\r\n */\r\n _progressModel: IAvatarProgressModel = this.PROGRESS_MODEL_DEFAULT\r\n @Input()\r\n get progressModel(): IAvatarProgressModel {\r\n return this._progressModel;\r\n }\r\n set progressModel(value: IAvatarProgressModel) {\r\n this._progressModel = { ...this.PROGRESS_MODEL_DEFAULT, ...value }\r\n }\r\n\r\n _data: IAvatarDataModel = this.DATA_MODEL_DEFAULT;\r\n @Input()\r\n set data(value: IAvatarDataModel) {\r\n this._data = { ...this.DATA_MODEL_DEFAULT, ...value };\r\n\r\n if (!isDefined(this._data.image)) {\r\n this._data.image = AvatarConstants.DATA_DEFAULT_IMAGE;\r\n }\r\n }\r\n get data(): IAvatarDataModel { return this._data; }\r\n\r\n @Input()\r\n stars: boolean = false;\r\n\r\n @Input()\r\n starsValue: number = 0;\r\n\r\n @Input()\r\n badges: IAvatarBadgeModel[] = [];\r\n\r\n /**\r\n * Avatar image calculated values\r\n */\r\n imageModel!: AvatarImageModel;\r\n\r\n ngOnInit(): void {\r\n this.imageModel = new AvatarImageModel(this.radius, this.stroke, this.data.image!);\r\n }\r\n\r\n get strokeDashOffset(): number {\r\n return Math.round(this.imageModel.Circumference - (this.progress / 100 * this.imageModel.Circumference));\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"avatar-image-container\">\r\n <div class=\"avatar\" (mouseenter)=\"stroke = imageModel.Stroke * STROKE_HOVER_VALUE\"\r\n (mouseleave)=\"stroke = imageModel.Stroke\">\r\n\r\n <div class=\"avatar-image\">\r\n <svg [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <defs>\r\n <pattern id=\"{{imageModel.ImageId}}\" patternUnits=\"userSpaceOnUse\"\r\n [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\">\r\n <image [attr.height]=\"imageModel.Height\" [attr.width]=\"imageModel.Width\"\r\n [attr.xlink:href]=\"data.image\" preserveAspectRatio=\"xMidYMid slice\"></image>\r\n </pattern>\r\n </defs>\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.color\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n <circle class=\"progress\" [attr.stroke]=\"progressModel.filledColor\"\r\n [attr.stroke-dasharray]=\"imageModel.Circumference + ' ' + imageModel.Circumference\"\r\n [ngStyle]=\"{'stroke-dashoffset':strokeDashOffset}\" [attr.stroke-width]=\"stroke\"\r\n fill=\"transparent\" [attr.r]=\"imageModel.NormalizedRadius\" [attr.cx]=\"radius\"\r\n [attr.cy]=\"radius\" />\r\n\r\n <circle [attr.cx]=\"radius\" [attr.cy]=\"radius\" [attr.r]=\"imageModel.ImageRadius\"\r\n attr.fill=\"url('#{{imageModel.ImageId}}')\" />\r\n </svg>\r\n\r\n <ng-content></ng-content>\r\n </div> \r\n\r\n <sfc-avatar-badge *ngFor=\"let badge of badges\" [model]=\"badge\" [radius]=\"radius\"\r\n [stroke]=\"imageModel.Stroke\" [normalizedRadius]=\"imageModel.NormalizedRadius\"\r\n [background]=\"progressModel.filledColor\">\r\n </sfc-avatar-badge>\r\n </div>\r\n\r\n <sfc-stars *ngIf=\"stars\" [value]=\"starsValue\"></sfc-stars>\r\n </div>\r\n\r\n <div class=\"avatar-data-container\">\r\n <div class=\"fullname\" [style.fontSize.px]=\"radius / FULLNAME_PART_VALUE\">\r\n <span>{{data.firstName}} {{data.lastName}}</span>\r\n </div>\r\n <div class=\"title\" [style.fontSize.px]=\"radius / TITLE_PART_VALUE\">\r\n <span>{{data.title}}</span>\r\n </div>\r\n </div>\r\n</div>","export enum ProgressColor {\r\n MIN_LOW = '#f08d97',\r\n LOW = '#ED5565',\r\n MAX_LOW = '#DA4453',\r\n MIN_MEDIUM = '#dfc47f',\r\n MEDIUM = '#FFCE54',\r\n MAX_MEDIUM = '#FCBB42',\r\n MIN_HIGH = '#b5dd88',\r\n HIGH = '#A0D468',\r\n MAX_HIGH = '#8CC152',\r\n}\r\n","import { CommonConstants } from \"ngx-sfc-common\";\r\nimport { ProgressColor } from \"./progress-color.enum\";\r\n\r\nexport function getProgressColorDefaultFunc(value: number): string {\r\n if (value < 12) {\r\n return ProgressColor.MIN_LOW;\r\n } else if (value >= 12 && value < 24) {\r\n return ProgressColor.LOW;\r\n } else if (value >= 24 && value < 36) {\r\n return ProgressColor.MAX_LOW;\r\n } else if (value >= 36 && value < 48) {\r\n return ProgressColor.MIN_MEDIUM;\r\n } else if (value >= 48 && value < 60) {\r\n return ProgressColor.MEDIUM;\r\n } else if (value >= 60 && value < 72) {\r\n return ProgressColor.MAX_MEDIUM;\r\n } else if (value >= 72 && value < 84) {\r\n return ProgressColor.MIN_HIGH;\r\n } else if (value >= 84 && value < 96) {\r\n return ProgressColor.HIGH;\r\n } else {\r\n return ProgressColor.MAX_HIGH;\r\n }\r\n}\r\n\r\nexport function getProgressColorDynamicallyFunc(value: number, total?: number): string {\r\n const colorsCount = Object.keys(ProgressColor).length,\r\n part = (total || CommonConstants.FULL_PERCENTAGE) / colorsCount;\r\n\r\n if (value < part) {\r\n return ProgressColor.MIN_LOW;\r\n } else if (value >= part && value < part * 2) {\r\n return ProgressColor.LOW;\r\n } else if (value >= part * 2 && value < part * 3) {\r\n return ProgressColor.MAX_LOW;\r\n } else if (value >= part * 3 && value < part * 4) {\r\n return ProgressColor.MIN_MEDIUM;\r\n } else if (value >= part * 4 && value < part * 5) {\r\n return ProgressColor.MEDIUM;\r\n } else if (value >= part * 5 && value < part * 6) {\r\n return ProgressColor.MAX_MEDIUM;\r\n } else if (value >= part * 6 && value < part * 7) {\r\n return ProgressColor.MIN_HIGH;\r\n } else if (value >= part * 7 && value < part * 8) {\r\n return ProgressColor.HIGH;\r\n } else {\r\n return ProgressColor.MAX_HIGH;\r\n }\r\n}","import { Directive, Input } from \"@angular/core\";\r\nimport { getProgressColorDefaultFunc } from \"./progress.utils\";\r\n\r\n@Directive()\r\nexport abstract class ProgressBaseComponent {\r\n\r\n @Input()\r\n progress: number = 0;\r\n\r\n @Input()\r\n background?: string;\r\n\r\n @Input()\r\n getColor: (value: number, total?: number) => string = getProgressColorDefaultFunc;\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport {\r\n CommonConstants, getCssLikeValue,\r\n isNullOrEmptyString, UIConstants\r\n} from 'ngx-sfc-common';\r\nimport { ProgressBaseComponent } from '../progress.component';\r\n\r\n@Component({\r\n selector: 'sfc-progress-line',\r\n templateUrl: './progress-line.component.html',\r\n styleUrls: ['./progress-line.component.scss']\r\n})\r\nexport class ProgressLineComponent\r\n extends ProgressBaseComponent\r\n implements OnInit {\r\n\r\n @Input()\r\n total: number = CommonConstants.FULL_PERCENTAGE;\r\n\r\n @Input()\r\n labelStart?: string;\r\n\r\n @Input()\r\n labelEnd?: string;\r\n\r\n @Input()\r\n labelSuffix: string | null = null;\r\n\r\n @Input()\r\n hideEnd: boolean = false;\r\n\r\n ngOnInit(): void {\r\n if (this.progress > this.total)\r\n this.progress = this.total = CommonConstants.FULL_PERCENTAGE;\r\n }\r\n\r\n get label(): string {\r\n const valueLabel = isNullOrEmptyString(this.labelEnd)\r\n ? `${this.progress}` : this.labelEnd as string;\r\n\r\n return isNullOrEmptyString(this.labelSuffix) ? valueLabel : `${valueLabel}${this.labelSuffix}`\r\n }\r\n\r\n get progressStyles() {\r\n return {\r\n width: getCssLikeValue((this.progress / this.total) * CommonConstants.FULL_PERCENTAGE,\r\n UIConstants.CSS_PERCENTAGE),\r\n backgroundColor: this.getColor(this.progress, this.total)\r\n }\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"labels\">\r\n <span>{{labelStart}}</span>\r\n <span *ngIf=\"!hideEnd\">{{label}}</span>\r\n </div>\r\n <div class=\"progress-bar\" [style.background]=\"background\">\r\n <div class=\"progress\" [ngStyle]=\"progressStyles\"></div>\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { CommonConstants, getCssLikeValue, UIConstants } from 'ngx-sfc-common';\r\nimport { ProgressBaseComponent } from '../progress.component';\r\n\r\n@Component({\r\n selector: 'sfc-progress-semi-circle',\r\n templateUrl: './progress-semi-circle.component.html',\r\n styleUrls: ['./progress-semi-circle.component.scss']\r\n})\r\nexport class ProgressSemiCircleComponent\r\n extends ProgressBaseComponent\r\n implements OnInit {\r\n\r\n @Input()\r\n limits: boolean = true;\r\n\r\n @Input()\r\n min: number = 0;\r\n\r\n @Input()\r\n max: number = CommonConstants.FULL_PERCENTAGE;\r\n\r\n ngOnInit(): void {\r\n if (this.min > this.max)\r\n this.min = 0;\r\n\r\n if (this.progress < this.min)\r\n this.progress = this.min;\r\n\r\n if (this.progress > this.max)\r\n this.progress = this.max;\r\n }\r\n\r\n get barStyles() {\r\n const color = this.getColor(this.progress, this.max),\r\n differenceLimits = this.max - this.min,\r\n rotateValue = 45 + (180 - ((this.max - this.progress) * 180 / differenceLimits));\r\n\r\n return {\r\n transform: `rotate(${getCssLikeValue(rotateValue, UIConstants.CSS_DEGREES)})`,\r\n borderBottomColor: color,\r\n borderRightColor: color\r\n }\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"progress-bar\">\r\n <div class=\"bar\" [style.border-color]=\"background\" [ngStyle]=\"barStyles\"></div>\r\n </div>\r\n <span class=\"value\">{{progress}}</span>\r\n <div class=\"limits\" *ngIf=\"limits\">\r\n <span>{{min}}</span>\r\n <span>{{max}}</span>\r\n </div>\r\n</div>","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { CommonConstants, getCssLikeValue, UIConstants } from 'ngx-sfc-common';\r\nimport { ProgressBaseComponent } from '../progress.component';\r\n\r\n@Component({\r\n selector: 'sfc-progress-circle',\r\n templateUrl: './progress-circle.component.html',\r\n styleUrls: ['./progress-circle.component.scss']\r\n})\r\nexport class ProgressCircleComponent\r\n extends ProgressBaseComponent {\r\n\r\n @Input()\r\n total: number = CommonConstants.FULL_PERCENTAGE;\r\n\r\n @Input()\r\n partition: boolean = false;\r\n\r\n @HostBinding('class.reversed')\r\n get reversed(): boolean {\r\n return (this.progress / this.total) * CommonConstants.FULL_PERCENTAGE > 50;\r\n }\r\n\r\n get transformRotate() {\r\n return `rotate(${getCssLikeValue((this.progress * 360) / this.total,\r\n UIConstants.CSS_DEGREES)})`;\r\n }\r\n}\r\n","<div class=\"container\" [style.background]=\"background\">\r\n <span>{{progress}}<ng-container *ngIf=\"partition\">/{{total}}</ng-container></span>\r\n <div class=\"circle\">\r\n <div class=\"bar\" [ngStyle]=\"{'transform': transformRotate, \r\n 'border-color': getColor(progress, total)}\"></div>\r\n <div class=\"fill\" [ngStyle]=\"{'border-color': getColor(progress, total)}\"></div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ITagModel } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-tags',\r\n templateUrl: './tags.component.html',\r\n styleUrls: ['./tags.component.scss']\r\n})\r\nexport class TagsComponent {\r\n\r\n @Input()\r\n tags: any[] = [];\r\n\r\n @Output()\r\n remove = new EventEmitter<ITagModel>();\r\n\r\n public onRemove(model: ITagModel): void {\r\n this.remove.emit(model);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <sfc-tag *ngFor=\"let tag of tags\" [model]=\"tag\" [sfcComponentSize] [customSize]=\"0.8\"\r\n (remove)=\"onRemove($event)\">\r\n </sfc-tag>\r\n </div>\r\n</div>","export enum SliderButtonType {\r\n Next = 'next',\r\n Previous = 'previous'\r\n}","import { Component, ElementRef, HostBinding, Input, ViewChild } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { ISliderItemModel } from './slider-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-slider-item',\r\n templateUrl: './slider-item.component.html',\r\n styleUrls: ['./slider-item.component.scss']\r\n})\r\nexport class SliderItemComponent {\r\n\r\n @Input()\r\n model: ISliderItemModel = { imageSrc: CommonConstants.EMPTY_STRING };\r\n\r\n @ViewChild('image')\r\n private imageEl!: ElementRef;\r\n\r\n @HostBinding('style.height.px')\r\n private get _height(): number {\r\n return this.imageEl?.nativeElement.offsetHeight || 0;\r\n };\r\n}\r\n","<div class=\"container\">\r\n <div class=\"title\">\r\n <h2>{{model.title}}</h2>\r\n <span>{{model.subTitle}}</span>\r\n </div>\r\n <div class=\"image\">\r\n <img #image [src]=\"model.imageSrc\" sfcImageLoad>\r\n </div> \r\n</div>","export enum SliderMoveType {\r\n Next = 'next',\r\n Previous = 'previous',\r\n Select = 'select'\r\n}","import { combineLatest, map, Observable, startWith, Subject } from 'rxjs';\r\nimport { SliderMoveType } from './slider-move-type.enum';\r\nimport { ISliderMoveEvent } from './slider-move.event';\r\nimport { ISliderMoveModel } from './slider-move.model';\r\n\r\nexport class SliderService {\r\n\r\n // hold current image index\r\n private index: number = 0;\r\n\r\n private moveSubject: Subject<ISliderMoveEvent> = new Subject<ISliderMoveEvent>();\r\n\r\n private move$: Observable<ISliderMoveEvent> = this.moveSubject.asObservable();\r\n\r\n public model$!: Observable<ISliderMoveModel>;\r\n\r\n init(count$: Observable<number>) {\r\n this.model$ = combineLatest([\r\n this.move$.pipe(startWith({ type: SliderMoveType.Select, index: this.index })),\r\n count$.pipe(startWith(0))\r\n ]).pipe(\r\n map(([event, count]) => {\r\n switch (event.type) {\r\n case SliderMoveType.Select:\r\n this.index = event.index ?? this.index;\r\n break;\r\n case SliderMoveType.Next:\r\n this.index++;\r\n break;\r\n case SliderMoveType.Previous:\r\n this.index--;\r\n break;\r\n }\r\n\r\n if (this.index == count)\r\n this.index = 0;\r\n\r\n if (this.index < 0)\r\n this.index = count - 1;\r\n\r\n return { index: this.index, count };\r\n })\r\n );\r\n }\r\n\r\n move(type: SliderMoveType) {\r\n this.moveSubject.next({ type });\r\n }\r\n\r\n select(index: number) {\r\n this.moveSubject.next({ type: SliderMoveType.Select, index });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { isDefined } from 'ngx-sfc-common';\r\nimport { SliderMoveType } from '../slider/slider-move-type.enum';\r\nimport { SliderService } from '../slider/slider.service';\r\n\r\n@Injectable()\r\nexport class SliderAutomaticService {\r\n\r\n private readonly AUTOMATIC_INTERVAL_MS = 3000;\r\n\r\n /**\r\n * Interval reference (for stop if required)\r\n */\r\n private autoSlider!: any;\r\n\r\n public pause: boolean = true;\r\n\r\n constructor(private sliderService: SliderService) { }\r\n\r\n start() {\r\n this.pause = false;\r\n\r\n // stop previous if exist\r\n if (isDefined(this.autoSlider))\r\n this.stop();\r\n\r\n this.autoSlider = setInterval(() =>\r\n this.sliderService.move(SliderMoveType.Next), this.AUTOMATIC_INTERVAL_MS);\r\n }\r\n\r\n stop() {\r\n clearInterval(this.autoSlider);\r\n }\r\n\r\n toggle() {\r\n this.pause = !this.pause;\r\n\r\n if (this.pause)\r\n this.stop();\r\n else\r\n this.start();\r\n }\r\n}\r\n","export enum SliderType {\r\n Default = 'default',\r\n Automatic = 'automatic'\r\n}","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { faArrowRight, faArrowLeft, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { UIClass } from 'ngx-sfc-common';\r\nimport { SliderButtonType } from './slider-button-type.enum';\r\n\r\n@Component({\r\n selector: 'sfc-slider-button',\r\n templateUrl: './slider-button.component.html',\r\n styleUrls: ['./slider-button.component.scss']\r\n})\r\nexport class SliderButtonComponent {\r\n\r\n private readonly ICON_NEXT = faArrowRight;\r\n private readonly ICON_PREVIOUS = faArrowLeft;\r\n\r\n @Input()\r\n @HostBinding('class')\r\n type: SliderButtonType = SliderButtonType.Next;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Active)\r\n active: boolean = false;\r\n\r\n get icon(): IconDefinition {\r\n return this.type == SliderButtonType.Next\r\n ? this.ICON_NEXT\r\n : this.ICON_PREVIOUS;\r\n }\r\n}\r\n","<div>\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sfc-slider-pagination',\r\n templateUrl: './slider-pagination.component.html',\r\n styleUrls: ['./slider-pagination.component.scss']\r\n})\r\nexport class SliderPaginationComponent {\r\n\r\n @Input()\r\n count: number = 0;\r\n\r\n @Input()\r\n index: number = 0;\r\n\r\n @Output()\r\n selected: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n get items(): Array<any> {\r\n return Array.from({length: this.count});\r\n }\r\n\r\n selectItem(index: number): void {\r\n this.selected.emit(index);\r\n }\r\n}\r\n","<ul>\r\n <li *ngFor=\"let _ of items; let itemIndex = index;\" [class.active]=\"itemIndex === index\"\r\n (click)=\"selectItem(itemIndex)\"></li>\r\n</ul>","import {\r\n AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input,\r\n QueryList, ViewChild, ViewChildren\r\n} from '@angular/core';\r\nimport { map, Observable } from 'rxjs';\r\nimport { SliderButtonType } from './parts/button/slider-button-type.enum';\r\nimport { SliderItemComponent } from './parts/item/slider-item.component';\r\nimport { ISliderItemModel } from './parts/item/slider-item.model';\r\nimport { SliderAutomaticService } from './service/automatic/slider-automatic.service';\r\nimport { SliderMoveType } from './service/slider/slider-move-type.enum';\r\nimport { SliderService } from './service/slider/slider.service';\r\nimport { SliderType } from './slider-type.enum';\r\nimport { faPauseCircle, faPlayCircle, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { ResizeService, ImageLoadService } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-slider',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n providers: [SliderService, SliderAutomaticService]\r\n})\r\nexport class SliderComponent implements AfterViewInit, AfterViewChecked {\r\n\r\n private readonly SIZE_FACTOR = 0.00225;\r\n\r\n private readonly PAUSE_ICON = faPauseCircle;\r\n\r\n private readonly PLAY_ICON = faPlayCircle;\r\n\r\n SliderButtonType = SliderButtonType;\r\n\r\n SliderMoveType = SliderMoveType;\r\n\r\n @Input()\r\n items: ISliderItemModel[] = [];\r\n\r\n @Input()\r\n type: SliderType = SliderType.Default;\r\n\r\n @Input()\r\n showCount: boolean = true;\r\n\r\n @Input()\r\n pagination: boolean = true;\r\n\r\n @Input()\r\n handlers: boolean = true;\r\n\r\n @Input()\r\n showAutomaticToggle: boolean = true;\r\n\r\n @ViewChildren(SliderItemComponent)\r\n private sliderItems!: QueryList<SliderItemComponent>;\r\n\r\n /**\r\n * If active show buttons\r\n */\r\n active: boolean = false;\r\n\r\n public vm$!: Observable<any>;\r\n\r\n @HostListener('mouseenter')\r\n onEnter() {\r\n this.active = true;\r\n\r\n // stop automatic move on hover\r\n if (this.isAutomatic)\r\n this.automaticService.stop();\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onLeave() {\r\n this.active = false;\r\n\r\n // start automatic move on hover end\r\n if (this.isAutomatic && !this.automaticService.pause)\r\n this.automaticService.start();\r\n }\r\n\r\n @ViewChild('itemsContainer')\r\n private itemsEl!: ElementRef;\r\n\r\n @HostBinding('style.font-size.em')\r\n private _sizeFactor: number = 1;\r\n\r\n @HostBinding('style.max-width.px')\r\n private _maxWidth!: number;\r\n\r\n get isAutomatic() {\r\n return this.type == SliderType.Automatic;\r\n }\r\n\r\n get automaticIcon(): IconDefinition {\r\n return this.automaticService.pause ? this.PLAY_ICON : this.PAUSE_ICON;\r\n }\r\n\r\n constructor(public sliderService: SliderService,\r\n private automaticService: SliderAutomaticService,\r\n private resizeService: ResizeService,\r\n public imageLoadService: ImageLoadService,\r\n private changeDetector: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n const count$ = this.sliderItems.changes.pipe(map(c => c.length));\r\n this.sliderService.init(count$);\r\n\r\n this.vm$ = this.sliderService.model$.pipe(\r\n map(model => {\r\n return {\r\n index: model.index,\r\n label: `${model.count > 0 ? model.index + 1 : 0} / ${model.count}`,\r\n count: model.count\r\n }\r\n })\r\n );\r\n\r\n if (this.isAutomatic)\r\n this.automaticService.start();\r\n\r\n this.imageLoadService.load$.subscribe((sizeEvent: any) => {\r\n this._sizeFactor = this.getSizeFactor(sizeEvent.offset.height);\r\n this._maxWidth = sizeEvent.natural.width;\r\n });\r\n\r\n this.resizeService.onResize$.subscribe(() => this._sizeFactor = this.getSizeFactor(this.itemsEl.nativeElement.offsetHeight));\r\n\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n move(type: SliderMoveType): void {\r\n this.sliderService.move(type);\r\n }\r\n\r\n select(index: number): void {\r\n this.sliderService.select(index);\r\n }\r\n\r\n toggleAutomatic(): void {\r\n this.automaticService.toggle();\r\n }\r\n\r\n private getSizeFactor(value: number) {\r\n return value * this.SIZE_FACTOR;\r\n }\r\n}","<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div #itemsContainer class=\"items\">\r\n <sfc-slider-item *ngFor=\"let item of items; let itemIndex = index;\" [model]=\"item\"\r\n [sfcShowHideElement]=\"itemIndex === vm.index\"></sfc-slider-item>\r\n </div>\r\n\r\n <div *ngIf=\"handlers\" class=\"buttons\">\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Next\" (click)=\"move(SliderMoveType.Next)\">\r\n </sfc-slider-button>\r\n <sfc-slider-button [active]=\"active\" [type]=\"SliderButtonType.Previous\" (click)=\"move(SliderMoveType.Previous)\">\r\n </sfc-slider-button>\r\n </div>\r\n\r\n <div class=\"counter\" *ngIf=\"showCount\">{{vm.label}}</div>\r\n\r\n <div class=\"actions\">\r\n <sfc-slider-pagination *ngIf=\"pagination\" [count]=\"vm.count\" [index]=\"vm.index\" (selected)=\"select($event)\">\r\n </sfc-slider-pagination>\r\n\r\n <div *ngIf=\"isAutomatic && showAutomaticToggle\" class=\"automatic\" (click)=\"toggleAutomatic()\">\r\n <fa-icon [icon]=\"automaticIcon\"></fa-icon>\r\n </div>\r\n </div>\r\n</div>","export enum TimelineItemPosition {\r\n Left = 'left',\r\n Right = 'right'\r\n}","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { TimelineItemPosition } from './timeline-item-position.enum';\r\nimport { ITimelineItemModel } from './timeline-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-timeline-item',\r\n templateUrl: './timeline-item.component.html',\r\n styleUrls: ['./timeline-item.component.scss']\r\n})\r\nexport class TimelineItemComponent {\r\n\r\n @Input()\r\n model: ITimelineItemModel = { title: CommonConstants.EMPTY_STRING };\r\n\r\n @HostBinding('class')\r\n get position(): TimelineItemPosition {\r\n return this.model.position || TimelineItemPosition.Left;\r\n }\r\n\r\n @HostBinding('class.period')\r\n get period(): boolean {\r\n return this.model.period || false;\r\n }\r\n}\r\n","<li class=\"container\">\r\n <div class=\"date-time\">\r\n <span>{{model.dateTimeLabel}}</span>\r\n </div>\r\n <div class=\"marker\">\r\n <div class=\"delimeter\"></div>\r\n </div>\r\n <div class=\"content\">\r\n <div class=\"title\">\r\n <sfc-icon [icon]=\"model.icon\" [imageSrc]=\"model.image\"></sfc-icon>\r\n <span>{{model.title}}</span>\r\n </div> \r\n <p>{{model.description}}</p>\r\n </div>\r\n</li>","import { Component, Input } from '@angular/core';\r\nimport { ITimelineItemModel } from './parts/item/timeline-item.model';\r\n\r\n@Component({\r\n selector: 'sfc-timeline',\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss']\r\n})\r\nexport class TimelineComponent {\r\n\r\n @Input()\r\n items: ITimelineItemModel[] = [];\r\n\r\n}\r\n","<div class=\"container\">\r\n <ul class=\"timeline\">\r\n <sfc-timeline-item *ngFor=\"let item of items\" [model]=\"item\"></sfc-timeline-item>\r\n </ul>\r\n</div>","export enum NotificationTemplate {\r\n Content = 'content'\r\n}","export enum NotificationType {\r\n Info = 'info',\r\n Success = 'success',\r\n Failed = 'failed'\r\n}","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\nimport { ButtonType, isDefined, isNullOrEmptyString } from 'ngx-sfc-common';\r\nimport { NotificationType } from '../../enums/notification-type.enum';\r\nimport { INotificationContentModel } from './notification-content.model';\r\n\r\n@Component({\r\n selector: 'sfc-notification-content',\r\n templateUrl: './notification-content.component.html',\r\n styleUrls: ['./notification-content.component.scss']\r\n})\r\nexport class NotificationContentComponent {\r\n\r\n ButtonType = ButtonType;\r\n\r\n @Input()\r\n @HostBinding('class')\r\n type: NotificationType = NotificationType.Info;\r\n\r\n @Input()\r\n model: INotificationContentModel = {};\r\n\r\n @Output()\r\n buttonClicked: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n get showImage(): boolean {\r\n return !isNullOrEmptyString(this.model.image) && !isDefined(this.model.icon);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"illustration\">\r\n <div *ngIf=\"model.icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div *ngIf=\"showImage\">\r\n <img [src]=\"model.image\">\r\n </div>\r\n </div>\r\n <div class=\"message\">\r\n <h1>{{model.title}}</h1>\r\n <p>{{model.subTitle}}</p>\r\n </div>\r\n <div *ngIf=\"model.showButton\" class=\"action\">\r\n <sfc-button text=\"{{model.buttonText || type}}\" [types]=\"[ButtonType.Rounded, ButtonType.Filled]\"\r\n (click)=\"buttonClicked.emit()\"></sfc-button>\r\n </div>\r\n</div>","import { Component, ContentChildren, EventEmitter, HostBinding, Input, OnInit, Output, QueryList, TemplateRef } from '@angular/core';\r\nimport { isDefined, TemplateReferenceDirective } from 'ngx-sfc-common';\r\nimport { NotificationTemplate } from './enums/notification-template.enum';\r\nimport { NotificationType } from './enums/notification-type.enum';\r\nimport { INotificationAutoCloseModel } from './notification-auto-close.model';\r\nimport { INotificationContentModel } from './parts/content/notification-content.model';\r\n\r\n@Component({\r\n selector: 'sfc-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss']\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n\r\n private readonly AUTO_CLOSE_INTERVAL_DEFAULT = 5000;\r\n\r\n readonly DESTROY_HOST_INTERVAL = 500;\r\n\r\n NotificationTemplate = NotificationTemplate;\r\n\r\n @Input()\r\n showClose: boolean = true;\r\n\r\n @Input()\r\n autoCloseModel: INotificationAutoCloseModel = { enabled: false, interval: this.AUTO_CLOSE_INTERVAL_DEFAULT };\r\n\r\n @Input()\r\n @HostBinding('class')\r\n get type(): NotificationType {\r\n return this.model.type ?? this._type;\r\n };\r\n set type(value: NotificationType) {\r\n this._type = value;\r\n }\r\n private _type: NotificationType = NotificationType.Info;\r\n\r\n @Input()\r\n model: INotificationContentModel = { showButton: true };\r\n\r\n @Input()\r\n content?: TemplateRef<any>;\r\n\r\n @Output()\r\n closed: EventEmitter<INotificationContentModel> = new EventEmitter<INotificationContentModel>();\r\n\r\n @Output()\r\n buttonClicked: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n destroy: boolean = false;\r\n\r\n show: boolean = false;\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.autoCloseModel.interval))\r\n this.autoCloseModel.interval = this.AUTO_CLOSE_INTERVAL_DEFAULT;\r\n\r\n if (this.autoCloseModel.enabled)\r\n setTimeout(() => {\r\n if (this.show) {\r\n this.close();\r\n }\r\n }, this.autoCloseModel.interval);\r\n\r\n // for animation purpose\r\n setTimeout(() => this.show = true);\r\n }\r\n\r\n close() {\r\n this.show = false;\r\n this.destroy = true;\r\n this.closed.emit(this.model);\r\n }\r\n}\r\n","<div class=\"container\" [sfcDestroyParent]=\"destroy\" [delay]=\"DESTROY_HOST_INTERVAL\">\r\n <div class=\"notification\" [sfcShowHideElement]=\"show\">\r\n <sfc-close *ngIf=\"showClose\" (click)=\"close()\"></sfc-close>\r\n\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"NotificationTemplate.Content\" [defaultContent]=\"defaultContent\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultContent>\r\n <sfc-notification-content [type]=\"type\" [model]=\"model\" (buttonClicked)=\"buttonClicked.emit()\">\r\n </sfc-notification-content>\r\n </ng-template>\r\n </div>\r\n</div>","import { ChartConfiguration } from \"chart.js\";\r\nimport { UIConstants, replaceRgbOpacity } from \"ngx-sfc-common\";\r\nimport { ChartThemeDataSetColors } from \"./service/theme/chart-theme.model\";\r\n\r\nconst DEFAULT_BACKGROUND_COLORS = [\r\n `rgb(93%, 33%, 40%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgba(99%, 43%, 32%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(100%, 81%, 33%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(63%, 83%, 41%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(28%, 81%, 68%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(31%, 76%, 91%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(36%, 61%, 93%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(67%, 57%, 93%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(93%, 53%, 75%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`,\r\n `rgb(80%, 82%, 85%, ${UIConstants.RGB_OPACITY_PLACEHOLDER})`\r\n];\r\n\r\nconst DEFAULT_BORDER_COLORS = ['#DA4453', '#E9573F', '#FCBB42', '#8CC152', '#37BC9B', '#3BAFDA', '#4A89DC', '#967ADC', '#D770AD', '#AAB2BD'];\r\n\r\nconst DEFAULT_MODE_COLORS = { GRID: 'rgba(0,0,0,0.1)', TICKS: '#666' };\r\n\r\nconst DARK_MODE_COLORS = { GRID: '#656D78', TICKS: '#E6E9ED' };\r\n\r\nexport const CHART_DEFAULTS = {\r\n OPTIONS: _getOptions(),\r\n OPTIONS_NOT_LINES: _getOptions(false),\r\n OPTIONS_RADIAL: _getOptions(false, true),\r\n COLORS: _getColors(),\r\n HALF_TRANSPARENT_COLORS: _getColors(0.5),\r\n THEME: {\r\n DEFAULT: _getThemeOptions(false),\r\n DARK: _getThemeOptions(true)\r\n }\r\n}\r\n\r\nfunction _getOptions(showAxes: boolean = true, showRadialAxes: boolean = false): ChartConfiguration['options'] {\r\n return {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n x: {\r\n display: showAxes,\r\n grid: { display: true },\r\n ticks: { display: true }\r\n },\r\n y: {\r\n display: showAxes,\r\n grid: { display: true },\r\n ticks: { display: true }\r\n },\r\n r: {\r\n display: showRadialAxes,\r\n }\r\n },\r\n plugins: {\r\n tooltip: { enabled: true },\r\n legend: { display: true }\r\n }\r\n };\r\n}\r\n\r\nfunction _getColors(opacity: number = 1): ChartThemeDataSetColors[] {\r\n const backgrounds = DEFAULT_BACKGROUND_COLORS.map(b => replaceRgbOpacity(b, opacity));\r\n\r\n return backgrounds.map((background: string, index: number) => {\r\n const border = DEFAULT_BORDER_COLORS[index];\r\n return {\r\n backgroundColor: background,\r\n hoverBackgroundColor: background,\r\n borderColor: border,\r\n pointBackgroundColor: background,\r\n pointBorderColor: border\r\n }\r\n });\r\n}\r\n\r\nfunction _getThemeOptions(dark: boolean) {\r\n const grid = dark ? DARK_MODE_COLORS.GRID : DEFAULT_MODE_COLORS.GRID,\r\n ticks = dark ? DARK_MODE_COLORS.TICKS : DEFAULT_MODE_COLORS.TICKS;\r\n return {\r\n scales: {\r\n x: {\r\n grid: { color: grid },\r\n ticks: { color: ticks }\r\n\r\n },\r\n y: {\r\n grid: { color: grid },\r\n ticks: { color: ticks }\r\n },\r\n r: {\r\n angleLines: { color: grid },\r\n grid: { color: grid },\r\n ticks: { color: ticks, backdropColor: 'transparent' },\r\n pointLabels: { color: ticks }\r\n }\r\n },\r\n plugins: {\r\n legend: {\r\n labels: { color: ticks }\r\n },\r\n title: {\r\n color: ticks\r\n }\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ChartThemeModel } from './chart-theme.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChartThemeService {\r\n\r\n private model!: ChartThemeModel;\r\n\r\n private colorsSubject: Subject<ChartThemeModel> = new Subject<ChartThemeModel>();\r\n\r\n public colors$ = this.colorsSubject.asObservable();\r\n\r\n setColors(model: ChartThemeModel): void {\r\n this.model = model;\r\n this.colorsSubject.next(model);\r\n }\r\n\r\n getColors(): ChartThemeModel {\r\n return this.model;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ChartConfiguration, ChartDataset, ChartType } from 'chart.js';\r\nimport { isDefined } from 'ngx-sfc-common';\r\nimport { ChartOptionModel } from '../../chart-option.model';\r\nimport { CHART_DEFAULTS } from '../../chart.constants';\r\nimport { ChartThemeDataSetColors } from '../theme/chart-theme.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChartSettingsService {\r\n\r\n getDefaultOptions(type: ChartType) {\r\n let defaultChartOptions:ChartConfiguration['options'] = {};\r\n\r\n switch (type) {\r\n case 'polarArea':\r\n case 'radar':\r\n defaultChartOptions = CHART_DEFAULTS.OPTIONS_RADIAL;\r\n break;\r\n case 'pie':\r\n case 'doughnut':\r\n defaultChartOptions = CHART_DEFAULTS.OPTIONS_NOT_LINES;\r\n break;\r\n default:\r\n defaultChartOptions = CHART_DEFAULTS.OPTIONS;\r\n break;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(defaultChartOptions))\r\n }\r\n\r\n getDefaultChartOptions(type: ChartType): ChartOptionModel {\r\n switch (type) {\r\n case 'pie':\r\n case 'radar':\r\n case 'polarArea':\r\n case 'doughnut':\r\n return { legend: true, gridLines: true, xAxe: false, yAxe: false, tooltip: true, ticks: true, defaultColors: true };\r\n default:\r\n return { legend: true, gridLines: true, xAxe: true, yAxe: true, tooltip: true, ticks: true, defaultColors: true };\r\n }\r\n } \r\n\r\n setDatasetStyles(type: ChartType, datasets: ChartDataset[], colors?: ChartThemeDataSetColors[]): void {\r\n switch (type) {\r\n case 'polarArea':\r\n case 'pie':\r\n case 'doughnut':\r\n this.setBackgroundDatasetStyles(datasets, colors || CHART_DEFAULTS.COLORS);\r\n break;\r\n case 'radar':\r\n this.setDefaultDatasetStyles(datasets, colors || CHART_DEFAULTS.HALF_TRANSPARENT_COLORS);\r\n break;\r\n default:\r\n this.setDefaultDatasetStyles(datasets, colors || CHART_DEFAULTS.COLORS);\r\n break;\r\n }\r\n }\r\n\r\n private setDefaultDatasetStyles(datasets: ChartDataset[], colors: ChartThemeDataSetColors[]) {\r\n datasets.forEach((item: any, index: number) => {\r\n if (index <= colors.length - 1) {\r\n const dataSetColor = colors[index];\r\n\r\n item.backgroundColor = dataSetColor.backgroundColor;\r\n item.hoverBackgroundColor = dataSetColor.hoverBackgroundColor;\r\n item.borderColor = dataSetColor.borderColor;\r\n item.hoverBorderColor = dataSetColor.hoverBorderColor;\r\n item.pointBackgroundColor = dataSetColor.pointBackgroundColor;\r\n item.pointHoverBackgroundColor = dataSetColor.pointHoverBackgroundColor;\r\n item.pointBorderColor = dataSetColor.pointBorderColor;\r\n item.pointHoverBorderColor = dataSetColor.pointHoverBorderColor;\r\n }\r\n });\r\n }\r\n\r\n private setBackgroundDatasetStyles(datasets: ChartConfiguration['data']['datasets'], colors: ChartThemeDataSetColors[]) {\r\n datasets.forEach((item: ChartDataset) => {\r\n item.backgroundColor = this.replaceColors(item.backgroundColor, colors, c => c.backgroundColor);\r\n item.hoverBackgroundColor = this.replaceColors(item.hoverBackgroundColor, colors, c => c.hoverBackgroundColor);\r\n });\r\n }\r\n\r\n private replaceColors(oldColors: any, newColors: ChartThemeDataSetColors[],\r\n mapFunc: (color: ChartThemeDataSetColors) => string | undefined) {\r\n const colors = newColors.map(mapFunc).filter((color) => isDefined(color));\r\n if (oldColors) {\r\n oldColors.splice(0, Math.min(oldColors.length, colors.length));\r\n return colors.concat(oldColors);\r\n }\r\n\r\n return colors;\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, NgZone, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { Chart, ChartConfiguration, ChartOptions, ChartType, DefaultDataPoint } from 'chart.js';\r\nimport { isDefined, mergeDeep, Theme } from 'ngx-sfc-common';\r\nimport { distinctUntilChanged, Subscription } from 'rxjs';\r\nimport { ChartOptionModel } from './chart-option.model';\r\nimport { CHART_DEFAULTS } from './chart.constants';\r\nimport { ChartSettingsService } from './service/settings/chart-settings.service';\r\nimport { ChartThemeModel } from './service/theme/chart-theme.model';\r\nimport { ChartThemeService } from './service/theme/chart-theme.service';\r\n\r\n@Component({\r\n selector: 'sfc-chart',\r\n templateUrl: './chart.component.html',\r\n styles: [':host { height: inherit; width: inherit;}']\r\n})\r\nexport class ChartComponent<TType extends ChartType = ChartType,\r\n TData = DefaultDataPoint<TType>,\r\n TLabel = unknown> implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n // Chart configuration\r\n\r\n @Input()\r\n type: ChartConfiguration<TType, TData, TLabel>['type'] = 'line' as TType;\r\n\r\n @Input()\r\n data!: ChartConfiguration<TType, TData, TLabel>['data'];\r\n\r\n @Input()\r\n options!: ChartConfiguration<TType, TData, TLabel>['options'];\r\n\r\n @Input()\r\n plugins?: ChartConfiguration<TType, TData, TLabel>['plugins'] = [];\r\n\r\n // End Chart configuration\r\n\r\n // Chart data configuration\r\n\r\n @Input()\r\n labels?: ChartConfiguration<TType, TData, TLabel>['data']['labels'];\r\n\r\n @Input()\r\n datasets?: ChartConfiguration<TType, TData, TLabel>['data']['datasets'];\r\n\r\n // End Chart data configuration\r\n\r\n @Input()\r\n chartOptions!: ChartOptionModel;\r\n\r\n @Input()\r\n public get theme() {\r\n return this._theme;\r\n }\r\n public set theme(value) {\r\n if (this._theme != value) {\r\n this._theme = value;\r\n this.themeService.setColors({ options: this.themeOptions });\r\n }\r\n }\r\n private _theme: Theme = Theme.Default;\r\n\r\n @ViewChild('chart')\r\n private canvas!: ElementRef;\r\n\r\n private chart?: Chart<TType, TData, TLabel>;\r\n\r\n private _themeSubscription?: Subscription;\r\n\r\n private get themeOptions(): ChartOptions {\r\n return this.theme === Theme.Dark ? CHART_DEFAULTS.THEME.DARK : CHART_DEFAULTS.THEME.DEFAULT;\r\n }\r\n\r\n public constructor(private zone: NgZone, private themeService: ChartThemeService, private settingsService: ChartSettingsService) {\r\n this._themeSubscription = this.themeService.colors$\r\n .pipe(distinctUntilChanged())\r\n .subscribe((model) => this.updateColors(model));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.chartOptions = {\r\n ...this.settingsService.getDefaultChartOptions(this.type),\r\n ...this.chartOptions\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const ctx = this.canvas.nativeElement.getContext('2d');\r\n\r\n if (this.chart) {\r\n this.chart.destroy();\r\n }\r\n\r\n this.zone.runOutsideAngular(() => this.chart = new Chart(ctx, this.getChartConfiguration()))\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n this.chart = void 0;\r\n }\r\n\r\n this._themeSubscription?.unsubscribe();\r\n }\r\n\r\n public update() {\r\n this.zone.runOutsideAngular(() => this.chart?.update());\r\n }\r\n\r\n private getChartConfiguration(): ChartConfiguration<TType, TData, TLabel> {\r\n return {\r\n type: this.type,\r\n data: this.getChartData(),\r\n options: this.getChartOptions(),\r\n plugins: this.plugins\r\n };\r\n }\r\n\r\n private getChartData(): ChartConfiguration<TType, TData, TLabel>['data'] {\r\n const chartData = this.data ? this.data : {\r\n labels: this.labels || [],\r\n datasets: this.datasets || []\r\n };\r\n\r\n if (this.chartOptions.defaultColors)\r\n this.settingsService.setDatasetStyles(this.type, chartData.datasets as any);\r\n\r\n return chartData;\r\n }\r\n\r\n private getChartOptions(): ChartConfiguration<TType, TData, TLabel>['options'] {\r\n const chartOptions = this.overrideDefaultOptionsByModel();\r\n return mergeDeep(chartOptions, this.options);\r\n }\r\n\r\n private overrideDefaultOptionsByModel(): void {\r\n const defaultChartOptions = this.settingsService.getDefaultOptions(this.type);\r\n\r\n defaultChartOptions.scales.x.grid.display = this.chartOptions.gridLines;\r\n defaultChartOptions.scales.x.display = this.chartOptions.xAxe;\r\n defaultChartOptions.scales.y.grid.display = this.chartOptions.gridLines;\r\n defaultChartOptions.scales.y.display = this.chartOptions.yAxe;\r\n defaultChartOptions.scales.x.ticks.display = this.chartOptions.ticks;\r\n defaultChartOptions.scales.y.ticks.display = this.chartOptions.ticks;\r\n defaultChartOptions.plugins.tooltip.enabled = this.chartOptions.tooltip;\r\n defaultChartOptions.plugins.legend.display = this.chartOptions.legend;\r\n\r\n return mergeDeep(defaultChartOptions, this.themeOptions);\r\n }\r\n\r\n private updateColors(model: ChartThemeModel): void {\r\n if (this.chart) {\r\n\r\n mergeDeep(this.chart.config.options, model.options);\r\n\r\n if (isDefined(model.dataSetColors))\r\n this.settingsService.setDatasetStyles(this.type, this.chart.config.data.datasets as any, model.dataSetColors);\r\n\r\n this.update();\r\n }\r\n }\r\n}\r\n","<canvas #chart></canvas>","export enum TableColumnType {\r\n Data = 'data',\r\n Sequence = 'sequence',\r\n Selectable = 'selectable',\r\n Expanded = 'expanded',\r\n Action = 'action'\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ColumnsToggleService {\r\n\r\n // current state of toggle \r\n public show: boolean = false;\r\n\r\n private toggleSubject = new BehaviorSubject<boolean>(this.show);\r\n\r\n // toggle state observable\r\n public toggle$ = this.toggleSubject.asObservable();\r\n\r\n public toggle(): void {\r\n this.toggleSubject.next(this.show = !this.show);\r\n }\r\n\r\n public set(show: boolean): void {\r\n this.show = show;\r\n this.toggleSubject.next(this.show);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs'\r\nimport { addItem, removeItem, ObservableModel } from 'ngx-sfc-common';\r\nimport { ITableSelectEvent } from './table-select.event';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TableSelectService {\r\n\r\n private model: ObservableModel<ITableSelectEvent> = new ObservableModel<ITableSelectEvent>();\r\n\r\n public get select$(): Observable<ITableSelectEvent> { return this.model.value$; }\r\n\r\n public selectedItems: number[] = [];\r\n\r\n public unselectedItems: number[] = [];\r\n\r\n public selectAll(selected: boolean): void {\r\n this.unselectedItems = [];\r\n this.selectedItems = [];\r\n this.model.subject.next({ index: null, selected: selected });\r\n }\r\n\r\n public select(index: number | null, selected: boolean): void {\r\n if (selected) {\r\n removeItem(this.unselectedItems, index);\r\n addItem(this.selectedItems, index);\r\n } else {\r\n addItem(this.unselectedItems, index);\r\n removeItem(this.selectedItems, index);\r\n }\r\n\r\n this.model.subject.next({ index, selected });\r\n }\r\n\r\n public selectSingle(event: ITableSelectEvent): void {\r\n if (event.selected) {\r\n this.unselectedItems = [];\r\n this.selectedItems = [event.index!];\r\n } else {\r\n this.selectedItems = [];\r\n this.unselectedItems = [event.index!];\r\n }\r\n\r\n this.model.subject.next(event);\r\n }\r\n}","export enum TableDataType {\r\n Rows = 'rows',\r\n Cards = 'cards'\r\n}","import { ITableColumnExtendedModel } from \"./parts/columns/table-column.model\";\r\nimport { TableColumnType } from \"./parts/columns/table-column-type.enum\";\r\n\r\nexport class TableConstants {\r\n static SEQUENCE_COLUMN: ITableColumnExtendedModel = { name: '№', field: '', type: TableColumnType.Sequence };\r\n static SELECTABLE_COLUMN: ITableColumnExtendedModel = { name: '', field: '', type: TableColumnType.Selectable };\r\n static EXPANDED_COLUMN: ITableColumnExtendedModel = { name: '', field: '', type: TableColumnType.Expanded }; \r\n static NOT_FOUND_LABEL_DEFAULT: string = 'Not found';\r\n static LOAD_MORE_LABEL_DEFAULT: string = 'Show more';\r\n static TOTAL_LABEL_DEFAULT: string = 'Total';\r\n static DATA_LIST_LABEL: string = 'List';\r\n static DATA_CARDS_LABEL: string = 'Cards';\r\n}","export enum TableTemplate {\r\n Column = 'column',\r\n Row = 'row',\r\n Card = 'card'\r\n}","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { CommonConstants, UIClass } from 'ngx-sfc-common';\r\nimport { ITableColumnModel } from '../table-column.model';\r\n\r\n@Component({\r\n selector: 'sfc-default-table-column',\r\n templateUrl: './default-table-column.component.html',\r\n styleUrls: ['./default-table-column.component.scss']\r\n})\r\nexport class DefaultTableColumnComponent {\r\n\r\n @Input()\r\n model: ITableColumnModel = { name: CommonConstants.EMPTY_STRING, field: CommonConstants.EMPTY_STRING };\r\n\r\n @HostBinding(`class.${UIClass.Active}`)\r\n get active(): boolean {\r\n return this.model.sorting?.active || false;\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div *ngIf=\"model.icon\" class=\"icon\">\r\n <fa-icon [icon]=\"model.icon\"></fa-icon>\r\n </div>\r\n <div>\r\n <span>{{model.name}}</span>\r\n </div>\r\n</div>","export class SelectableTableColumnConstants{\r\n static LABEL_SELECT = 'Select';\r\n static LABEL_UNSELECT = 'Unselect';\r\n}","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { CheckmarkType, UIClass } from 'ngx-sfc-common';\r\nimport { TableSelectService } from '../../../service/select/table-select.service';\r\nimport { SelectableTableColumnConstants } from './selectable-table-column.constants';\r\n\r\n@Component({\r\n selector: 'sfc-selectable-table-column',\r\n templateUrl: './selectable-table-column.component.html',\r\n styleUrls: ['./selectable-table-column.component.scss']\r\n})\r\nexport class SelectableTableColumnComponent {\r\n\r\n CheckmarkType = CheckmarkType;\r\n\r\n @Input()\r\n @HostBinding(`class.${UIClass.Active}`)\r\n selected: boolean = false;\r\n\r\n @HostListener('click')\r\n selectAll() {\r\n this.selected = !this.selected;\r\n this.service.selectAll(this.selected);\r\n }\r\n\r\n public get label(): string {\r\n return this.selected\r\n ? SelectableTableColumnConstants.LABEL_UNSELECT\r\n : SelectableTableColumnConstants.LABEL_SELECT\r\n }\r\n\r\n constructor(private service: TableSelectService) { }\r\n}\r\n","<div class=\"container\">\r\n <sfc-checkmark [active]=\"selected\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n <span>{{label}}</span>\r\n</div>","export class ColumnsToggleConstants {\r\n static HIDE_LABEL_DEFAULT = 'Hide';\r\n static SHOW_LABEL_DEFAULT = 'Show';\r\n}\r\n","import { Component, HostListener, Input, OnInit } from '@angular/core';\r\nimport { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';\r\nimport { map, Observable } from 'rxjs';\r\nimport { ColumnsToggleConstants } from './columns-toggle.constants';\r\nimport { ColumnsToggleService } from './service/columns-toggle.service';\r\n\r\n@Component({\r\n selector: 'sfc-columns-toggle',\r\n templateUrl: './columns-toggle.component.html',\r\n styleUrls: ['./columns-toggle.component.scss']\r\n})\r\nexport class ColumnsToggleComponent implements OnInit {\r\n\r\n @Input()\r\n showLabel: string = ColumnsToggleConstants.HIDE_LABEL_DEFAULT;\r\n\r\n @Input()\r\n hideLabel: string = ColumnsToggleConstants.SHOW_LABEL_DEFAULT;\r\n\r\n @HostListener('click')\r\n onToggle() { this.service.toggle(); }\r\n\r\n public vm$!: Observable<any>;\r\n\r\n constructor(private service: ColumnsToggleService) { }\r\n\r\n ngOnInit(): void {\r\n this.vm$ = this.service.toggle$.pipe(\r\n map(show => {\r\n return {\r\n model: show ? { LABEL: this.hideLabel, ICON: faEye } : { LABEL: this.showLabel, ICON: faEyeSlash },\r\n show: show\r\n }\r\n }))\r\n }\r\n}\r\n","<div class=\"container\" *ngIf=\"vm$ | async as vm\">\r\n <div>\r\n <span class=\"icon\" [sfcShowHideElement]=\"!vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"icon\" [sfcShowHideElement]=\"vm.show\">\r\n <fa-icon [icon]=\"vm.model.ICON\"></fa-icon>\r\n </span>\r\n <span class=\"label\">{{vm.model.LABEL}}</span>\r\n </div>\r\n</div>","import { faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons';\r\n\r\nexport class SortingConstants {\r\n static DEFAULT_ASCENDING_ICON = faChevronUp;\r\n static DEFAULT_DESCENDING_ICON = faChevronDown;\r\n}","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { CommonConstants, firstOrDefault, isDefined, SortingDirection, SortingService, UIClass } from 'ngx-sfc-common';\r\nimport { Subscription } from 'rxjs';\r\nimport { SortingConstants } from './sorting-column.constants';\r\nimport { ISortingModel } from './sorting-column.model';\r\n\r\n@Component({\r\n selector: 'sfc-sorting-column',\r\n templateUrl: './sorting-column.component.html',\r\n styleUrls: ['./sorting-column.component.scss']\r\n})\r\nexport class SortingColumnComponent implements OnInit, OnDestroy {\r\n\r\n SortingDirection = SortingDirection;\r\n\r\n @Input()\r\n id: string = CommonConstants.EMPTY_STRING;\r\n\r\n @Input()\r\n model: ISortingModel = { active: false, enabled: false, direction: SortingDirection.Ascending };\r\n\r\n @HostBinding(`class.${UIClass.Enabled}`)\r\n get enabled(): boolean {\r\n return this.model.enabled;\r\n }\r\n\r\n @HostBinding(`class.${UIClass.Active}`)\r\n get active(): boolean {\r\n return this.model.active || false;\r\n }\r\n\r\n @HostListener('click')\r\n sort() {\r\n if (this.enabled) {\r\n if (this.active) {\r\n this.model.direction = this.model.direction === SortingDirection.Ascending\r\n ? SortingDirection.Descending\r\n : SortingDirection.Ascending;\r\n }\r\n\r\n this.service.sort({ id: this.id, direction: this.model.direction });\r\n }\r\n }\r\n\r\n get icon(): IconDefinition {\r\n const modelIcon = firstOrDefault(this.model.icons, i => i.direction == this.model.direction);\r\n return modelIcon ? modelIcon.icon : this.model.direction === SortingDirection.Ascending\r\n ? SortingConstants.DEFAULT_ASCENDING_ICON : SortingConstants.DEFAULT_DESCENDING_ICON;\r\n }\r\n\r\n private _subscription!: Subscription;\r\n\r\n constructor(private service: SortingService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.model))\r\n this.model = { active: false, enabled: false, direction: SortingDirection.Ascending };\r\n\r\n // subscribe to sort changes so we can react when other columns are sorted\r\n this._subscription = this.service.sorting$.subscribe(event => {\r\n // reset this column's sort direction to hide the sort icons\r\n if (this.id != event.id)\r\n this.model.direction = SortingDirection.Ascending;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscription.unsubscribe();\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>","import { AfterViewInit, Directive, ElementRef, HostBinding, HostListener, Input, OnDestroy, ViewChild } from \"@angular/core\";\r\nimport { CheckmarkType, Position } from \"ngx-sfc-common\";\r\nimport { fromEvent, Subscription } from \"rxjs\";\r\nimport { ITableColumnExtendedModel } from \"../columns/table-column.model\";\r\nimport { TableColumnType } from \"../columns/table-column-type.enum\";\r\nimport { ITableModel } from \"../../models/table.model\";\r\nimport { UIClass } from \"ngx-sfc-common\";\r\nimport { TableSelectService } from \"../../service/select/table-select.service\";\r\n\r\n@Directive()\r\nexport abstract class BaseDefaultTableContentComponent implements AfterViewInit, OnDestroy {\r\n\r\n TableColumnType = TableColumnType;\r\n CheckmarkType = CheckmarkType;\r\n\r\n @Input()\r\n model: ITableModel = { data: {}, index: 0, sequence: 0 };\r\n\r\n @Input()\r\n columns: ITableColumnExtendedModel[] = [];\r\n\r\n @Input()\r\n selectOnClick: boolean = false;\r\n\r\n @Input()\r\n position: Position = Position.Left;\r\n\r\n @ViewChild('columnCheckmark', { static: false })\r\n columnCheckmark!: ElementRef;\r\n\r\n _columnCheckmarkSubscription!: Subscription;\r\n\r\n @HostListener('click')\r\n onContentClick(): void {\r\n if (this.selectOnClick)\r\n this.select();\r\n }\r\n\r\n @HostBinding(`class.${UIClass.Even}`)\r\n get even(): boolean {\r\n return (this.model.index + 1) % 2 === 0;\r\n }\r\n\r\n @HostBinding(`class.${UIClass.Pointer}`)\r\n get pointer(): boolean {\r\n return this.selectOnClick;\r\n }\r\n\r\n constructor(private selectedService: TableSelectService) { }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.columnCheckmark) {\r\n this._columnCheckmarkSubscription = fromEvent(this.columnCheckmark.nativeElement, 'click')\r\n .subscribe((event: any) => {\r\n if (this.selectOnClick)\r\n event.stopPropagation();\r\n\r\n this.select();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._columnCheckmarkSubscription)\r\n this._columnCheckmarkSubscription.unsubscribe();\r\n }\r\n\r\n private select(): void {\r\n this.model.selected = !this.model.selected;\r\n this.selectedService.select(this.model.sequence, this.model.selected);\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { Position, UIConstants } from 'ngx-sfc-common';\r\nimport { BaseDefaultTableContentComponent } from '../../base-default-table-content.component';\r\n\r\n@Component({\r\n selector: 'sfc-default-table-row',\r\n templateUrl: './default-table-row.component.html',\r\n styleUrls: ['./default-table-row.component.scss'] \r\n})\r\nexport class DefaultTableRowComponent extends BaseDefaultTableContentComponent {\r\n get contentPosition(): string {\r\n switch (this.position) {\r\n case Position.Left:\r\n return UIConstants.CSS_START;\r\n case Position.Right:\r\n return UIConstants.CSS_END;\r\n default:\r\n return UIConstants.CSS_CENTER;\r\n }\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div [style.width]=\"column.calculatedWidth\" [style.text-align]=\"position\" class=\"content-container\"\r\n *ngFor=\"let column of columns\">\r\n <div class=\"content\" [style.align-items]=\"contentPosition\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div class=\"checkmark\" #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.selected || false\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\nimport { BaseDefaultTableContentComponent } from '../../base-default-table-content.component';\r\n\r\n@Component({\r\n selector: 'sfc-default-table-card',\r\n templateUrl: './default-table-card.component.html',\r\n styleUrls: ['./default-table-card.component.scss']\r\n})\r\nexport class DefaultTableCardComponent extends BaseDefaultTableContentComponent { }\r\n","<div class=\"container\">\r\n <div class=\"content-container\" *ngFor=\"let column of columns\">\r\n <div class=\"content\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <div #columnCheckmark *ngSwitchCase=\"TableColumnType.Selectable\">\r\n <sfc-checkmark [active]=\"model.selected || false\" [type]=\"CheckmarkType.Circle\"></sfc-checkmark>\r\n </div>\r\n <div *ngSwitchCase=\"TableColumnType.Sequence\">\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.sequence}}</span>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <span class=\"name\">{{column.name}}</span>\r\n <span>{{model.data[column.field]}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>","import {\r\n AfterContentChecked, AfterViewChecked, ChangeDetectorRef, Component, ContentChildren,\r\n DoCheck, EventEmitter, HostBinding, Inject, Input, IterableDiffer, IterableDiffers, OnDestroy,\r\n OnInit, Output, QueryList, TemplateRef\r\n} from '@angular/core';\r\nimport { BehaviorSubject, filter, map, Observable, Subscription } from 'rxjs';\r\nimport {\r\n all, firstOrDefault, getCalcValue, getCssLikeValue, isDefined,\r\n MediaLimits, Position, ResizeService, SortingDirection, TemplateReferenceDirective, WINDOW,\r\n UIConstants, LoadContainerType, LoaderFunction, LoadContainerLoadType, ILoadContainerModel,\r\n ILoadContainerResultModel, IPaginationModel, PaginationConstants, generateGuid, any,\r\n hasItem, SortingService, ISortingModel, ILoadContainerPredicateParameters, FilterFunction,\r\n UIClass, IToggleSwitcherModel, where, sum\r\n} from 'ngx-sfc-common';\r\nimport { TableColumnType } from './parts/columns/table-column-type.enum';\r\nimport { ITableColumnExtendedModel, ITableColumnModel } from './parts/columns/table-column.model';\r\nimport { ColumnsToggleService } from './parts/toggle/service/columns-toggle.service';\r\nimport { ITableSelectEvent } from './service/select/table-select.event';\r\nimport { TableSelectService } from './service/select/table-select.service';\r\nimport { TableDataType } from './enums/table-data-type.enum';\r\nimport { TableConstants } from './table.constants';\r\nimport { TableTemplate } from './enums/table-template.enum';\r\nimport { ITableModel } from './models/table.model';\r\nimport { faTableList, faBorderAll } from '@fortawesome/free-solid-svg-icons';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\n\r\n@Component({\r\n selector: 'sfc-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss'],\r\n providers: [SortingService, TableSelectService, ColumnsToggleService, ResizeService]\r\n})\r\nexport class TableComponent implements OnInit, AfterContentChecked, AfterViewChecked, DoCheck, OnDestroy {\r\n\r\n TableDataType = TableDataType;\r\n TableColumnType = TableColumnType;\r\n TableTemplate = TableTemplate;\r\n Constants = TableConstants;\r\n LoadContainerType = LoadContainerType;\r\n\r\n @Input()\r\n position: Position = Position.Center;\r\n\r\n @Input()\r\n delimeter: boolean = false;\r\n\r\n @Input()\r\n @HostBinding('class')\r\n dataType: TableDataType = TableDataType.Rows;\r\n\r\n @Input()\r\n dataToggle: boolean = true;\r\n\r\n @Input()\r\n showColumns: boolean = true;\r\n\r\n @Input()\r\n columnsToggle: boolean = false;\r\n\r\n @Input()\r\n columnsShowOnInit: boolean = true;\r\n\r\n @Input()\r\n pagination: IPaginationModel = PaginationConstants.DEFAULT_PAGINATION;\r\n\r\n @Input()\r\n sequence: boolean = false;\r\n\r\n @Input()\r\n expanded: boolean = false;\r\n\r\n @Input()\r\n notFoundLabel: string = this.Constants.NOT_FOUND_LABEL_DEFAULT;\r\n\r\n @Input()\r\n loadMoreLabel: string = this.Constants.LOAD_MORE_LABEL_DEFAULT;\r\n\r\n @Input()\r\n showTotal: boolean = false;\r\n\r\n @Input()\r\n totalLabel: string = this.Constants.TOTAL_LABEL_DEFAULT;\r\n\r\n @Input()\r\n paginationCount: number = PaginationConstants.DEFAULT_COUNT;\r\n\r\n @Input()\r\n paginationLimits: boolean = false;\r\n\r\n @Input()\r\n showLoading: boolean = true;\r\n\r\n // Template references \r\n\r\n @Input()\r\n columnContent?: TemplateRef<any>;\r\n\r\n @Input()\r\n rowContent?: TemplateRef<any>;\r\n\r\n @Input()\r\n cardContent?: TemplateRef<any>;\r\n\r\n // End Template references\r\n\r\n //Data\r\n\r\n @Input()\r\n data: any[] = [];\r\n\r\n @Input()\r\n data$!: Observable<any[]>;\r\n\r\n private dataDiffer!: IterableDiffer<any>;\r\n\r\n private dataSubject!: BehaviorSubject<any[]>;\r\n\r\n // End Data\r\n\r\n // Columns\r\n\r\n @Input()\r\n columns: ITableColumnModel[] = [];\r\n\r\n @Input()\r\n showColumnsLabel!: string;\r\n\r\n @Input()\r\n hideColumnsLabel!: string;\r\n\r\n @Input()\r\n resize: boolean = true;\r\n\r\n private columnsDiffer!: IterableDiffer<ITableColumnModel>;\r\n\r\n private columnsSubject: BehaviorSubject<ITableColumnModel[]> = new BehaviorSubject<ITableColumnModel[]>(this.columns);\r\n\r\n public tableColumns: ITableColumnExtendedModel[] = [];\r\n\r\n // End Columns \r\n\r\n // Load container\r\n\r\n @Input()\r\n loadType: LoadContainerLoadType = LoadContainerLoadType.Pagination;\r\n\r\n @Input()\r\n loader!: LoaderFunction;\r\n\r\n @Input()\r\n filter?: FilterFunction;\r\n\r\n @Input()\r\n predicate$!: Observable<ILoadContainerPredicateParameters | null>;\r\n\r\n public loadModel!: ILoadContainerModel;\r\n\r\n public loadContainerId: string = generateGuid();\r\n\r\n public items: ITableModel[] = [];\r\n\r\n public total: number = 0;\r\n\r\n private page: number = PaginationConstants.DEFAULT_PAGE;\r\n\r\n @HostBinding(`class.${UIClass.Loading}`)\r\n public loading: boolean = false;\r\n\r\n // End Load container\r\n\r\n // Selection\r\n\r\n @Input()\r\n selectable: boolean = false;\r\n\r\n @Input()\r\n selectOnClick: boolean = false;\r\n\r\n @Input()\r\n selectMultiple: boolean = true;\r\n\r\n @Output()\r\n selected: EventEmitter<ITableSelectEvent> = new EventEmitter<ITableSelectEvent>();\r\n\r\n public get allRowsSelected(): boolean {\r\n return (this.allSelected || this.total == this.selectedService.selectedItems.length)\r\n && !any(this.selectedService.unselectedItems)\r\n && any(this.items);\r\n };\r\n\r\n private allSelected: boolean = false;\r\n\r\n private _allSelectionSubscription!: Subscription;\r\n\r\n // End Selection\r\n\r\n // Data toggle\r\n\r\n @Input()\r\n dataListLabel: string = this.Constants.DATA_LIST_LABEL;\r\n\r\n @Input()\r\n dataCardsLabel: string = this.Constants.DATA_CARDS_LABEL;\r\n\r\n public toggleSwitcherLeftModel!: IToggleSwitcherModel;\r\n\r\n public toggleSwitcherRightModel!: IToggleSwitcherModel;\r\n\r\n // End data toggle\r\n\r\n public vm$!: Observable<any>;\r\n\r\n private _columnsResizeSubscription!: Subscription;\r\n\r\n private _columnsSubscription!: Subscription;\r\n\r\n private _sortingSubscription!: Subscription;\r\n\r\n private get initialSorting(): ISortingModel | null {\r\n const activeSortingColumn = firstOrDefault(this.columns, column => column.sorting?.active!);\r\n\r\n if (activeSortingColumn)\r\n return { id: activeSortingColumn.field, direction: activeSortingColumn.sorting?.direction! };\r\n\r\n const enabledSortingColumn = firstOrDefault(this.columns, column => column.sorting?.enabled!);\r\n\r\n return enabledSortingColumn ? { id: enabledSortingColumn.field, direction: enabledSortingColumn.sorting?.direction! } : null;\r\n }\r\n\r\n @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n constructor(\r\n public columnsToggleService: ColumnsToggleService,\r\n @Inject(WINDOW) private window: Window,\r\n public selectedService: TableSelectService,\r\n private sortingService: SortingService,\r\n private changeDetector: ChangeDetectorRef,\r\n private resizeService: ResizeService,\r\n private iterableDiffers: IterableDiffers) {\r\n this.dataDiffer = iterableDiffers.find([]).create<IterableDiffer<any>>(undefined);\r\n this.columnsDiffer = iterableDiffers.find([]).create<ITableColumnModel>(undefined);\r\n }\r\n\r\n ngOnInit(): void {\r\n // if data is static, make it observable\r\n if (!isDefined(this.data$)) {\r\n this.dataSubject = new BehaviorSubject(this.data);\r\n this.data$ = this.dataSubject.asObservable();\r\n }\r\n\r\n if (this.selectable)\r\n this.selectionSubscribe();\r\n\r\n // set up columns (conditionally add sequence, selectable and expand columns)\r\n this.columnsSubscribe();\r\n\r\n if (this.resize)\r\n this.resizeSubscribe();\r\n\r\n this.sortingSubscribe();\r\n\r\n this.loadModel = {\r\n predicate$: this.predicate$,\r\n data$: this.data$,\r\n loader: this.loader,\r\n filter: this.filter,\r\n loadType: this.loadType,\r\n pagination: this.pagination,\r\n sorting: this.initialSorting\r\n };\r\n\r\n this.toggleSwitcherLeftModel = { label: this.dataListLabel, icon: faTableList };\r\n this.toggleSwitcherRightModel = { label: this.dataCardsLabel, icon: faBorderAll };\r\n\r\n if (this.columnsShowOnInit) {\r\n this.columnsToggleService.set(true);\r\n }\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n ngDoCheck(): void {\r\n if (this.dataDiffer.diff(this.data)) {\r\n this.dataSubject.next(this.data);\r\n }\r\n\r\n if (this.columnsDiffer.diff(this.columns)) {\r\n this.columnsSubject.next(this.columns);\r\n }\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._allSelectionSubscription?.unsubscribe();\r\n this._columnsResizeSubscription?.unsubscribe();\r\n this._columnsSubscription?.unsubscribe();\r\n this._sortingSubscription?.unsubscribe();\r\n }\r\n\r\n public onDataTypeToggle(): void {\r\n this.dataType = this.dataType == TableDataType.Rows\r\n ? TableDataType.Cards\r\n : TableDataType.Rows;\r\n }\r\n\r\n public handleSuccess(result: ILoadContainerResultModel<any>): void {\r\n this.page = result.page;\r\n this.total = result.total;\r\n\r\n const items: ITableModel[] = result.items.map((item, index) => {\r\n const sequence = (index + 1) + ((this.page * this.pagination.size) - this.pagination.size);\r\n return {\r\n index: index,\r\n sequence: sequence,\r\n selected: result.reset ? false : this.getItemSelected(sequence),\r\n data: item\r\n };\r\n });\r\n\r\n if (result.reset) {\r\n this.items = items;\r\n\r\n if (this.selectable) {\r\n this.selectedService.selectAll(false);\r\n }\r\n }\r\n else {\r\n this.items = this.items.concat(items);\r\n }\r\n }\r\n\r\n private selectionSubscribe(): void {\r\n this._allSelectionSubscription = this.selectedService.select$\r\n .subscribe((event: ITableSelectEvent) => {\r\n\r\n if (this.selectMultiple) {\r\n if (event.index == null) {\r\n this.allSelected = event.selected;\r\n this.items.forEach((item: ITableModel) => item.selected = event.selected);\r\n } else {\r\n this.items.forEach((item: ITableModel) => {\r\n if (item.sequence === event.index)\r\n item.selected = event.selected;\r\n });\r\n }\r\n } else {\r\n this.items.forEach((item: ITableModel) => {\r\n if (item.sequence === event.index)\r\n item.selected = event.selected;\r\n else\r\n item.selected = false;\r\n });\r\n }\r\n\r\n this.selected.emit(event);\r\n });\r\n }\r\n\r\n private resizeSubscribe(): void {\r\n this._columnsResizeSubscription = this.resizeService.onResize$\r\n .subscribe(() => this.tableColumns.forEach(column =>\r\n column.calculatedWidth = this.calculateColumnWidth(column, this.tableColumns.length)));\r\n }\r\n\r\n private columnsSubscribe(): void {\r\n this._columnsSubscription = this.columnsSubject.asObservable().pipe(\r\n filter(columns => any(columns)),\r\n map((columns: ITableColumnModel[]) => {\r\n let tableColumns = JSON.parse(JSON.stringify(columns));\r\n\r\n if (this.sequence)\r\n tableColumns.unshift(TableConstants.SEQUENCE_COLUMN);\r\n\r\n if (this.selectable && this.selectMultiple)\r\n tableColumns.unshift(TableConstants.SELECTABLE_COLUMN);\r\n\r\n if (this.expanded)\r\n tableColumns.push(TableConstants.EXPANDED_COLUMN);\r\n\r\n // calculated width not work without deep copy\r\n return JSON.parse(JSON.stringify(tableColumns));\r\n })\r\n ).subscribe((columns: ITableColumnExtendedModel[]) => {\r\n columns.forEach((column: ITableColumnExtendedModel) => {\r\n column.calculatedWidth = this.calculateColumnWidth(column, columns.length);\r\n\r\n const sortingColumn = this.initialSorting;\r\n if (this.initialSorting) {\r\n this.setColumnSorting(column, sortingColumn?.id!)\r\n }\r\n });\r\n\r\n this.tableColumns = columns;\r\n });\r\n }\r\n\r\n private sortingSubscribe(): void {\r\n this._sortingSubscription = this.sortingService.sorting$.subscribe((sortingEvent) =>\r\n this.tableColumns.forEach((column: ITableColumnExtendedModel) => this.setColumnSorting(column, sortingEvent?.id)));\r\n }\r\n\r\n private calculateColumnWidth(column: ITableColumnExtendedModel, columnsLength: number): string {\r\n // defined width for all columns\r\n if (all(this.columns, column => isDefined(column.width))) {\r\n return getCssLikeValue(column.width!, UIConstants.CSS_PERCENTAGE);\r\n }\r\n\r\n if (isDefined(column.width)) {\r\n return getCssLikeValue(column.width!, UIConstants.CSS_PERCENTAGE);\r\n }\r\n\r\n const columnsWithWidth: ITableColumnModel[] = where(this.columns, column => isDefined(column.width))!,\r\n columnsWidth: number = sum(columnsWithWidth, column => column.width!);\r\n\r\n if (columnsWidth > 0) {\r\n const proportionalWidth: number = (CommonConstants.FULL_PERCENTAGE - columnsWidth) / (this.columns.length - columnsWithWidth.length);\r\n return getCssLikeValue(proportionalWidth, UIConstants.CSS_PERCENTAGE);\r\n }\r\n\r\n let width: number = columnsLength;\r\n\r\n if (this.window.innerWidth <= MediaLimits.MobileLarge)\r\n width = 1;\r\n else if (this.window.innerWidth <= MediaLimits.Tablet)\r\n width = Math.ceil(columnsLength / 2);\r\n\r\n return getCalcValue(width);\r\n }\r\n\r\n private setColumnSorting(column: ITableColumnExtendedModel, sortingId: string): void {\r\n if (column.sorting?.enabled) {\r\n column.sorting.active = column.field == sortingId;\r\n\r\n if (!column.sorting.active)\r\n column.sorting.direction = SortingDirection.Ascending;\r\n }\r\n }\r\n\r\n private getItemSelected(sequence: number): boolean {\r\n return this.allSelected\r\n ? !hasItem(this.selectedService.unselectedItems, sequence)\r\n : hasItem(this.selectedService.selectedItems, sequence);\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div *ngIf=\"showLoading\" class=\"table-loader\"></div>\r\n <div class=\"columns-container\">\r\n <div class=\"columns-actions\">\r\n <div class=\"left\">\r\n <sfc-columns-toggle *ngIf=\"columnsToggle\" [showLabel]=\"showColumnsLabel\" [hideLabel]=\"hideColumnsLabel\">\r\n </sfc-columns-toggle>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <p *ngIf=\"showTotal\">{{totalLabel}}: <span>{{total}}</span></p>\r\n <sfc-toggle-switcher *ngIf=\"dataToggle\" [active]=\"dataType === TableDataType.Cards\"\r\n [leftModel]=\"toggleSwitcherLeftModel\" [rightModel]=\"toggleSwitcherRightModel\"\r\n (click)=\"onDataTypeToggle()\">\r\n </sfc-toggle-switcher>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showColumns && columnsToggleService.show\" class=\"columns\">\r\n <div class=\"column\" [style.justifyContent]=\"position\" [style.minWidth]=\"column.calculatedWidth\"\r\n *ngFor=\"let column of tableColumns\">\r\n <ng-container [ngSwitch]=\"column.type\">\r\n <sfc-selectable-table-column *ngSwitchCase=\"TableColumnType.Selectable\"\r\n [selected]=\"allRowsSelected\">\r\n </sfc-selectable-table-column>\r\n\r\n <sfc-sorting-column *ngSwitchDefault [model]=\"column.sorting!\" [id]=\"column.field\">\r\n\r\n <sfc-template-content [referenceContent]=\"columnContent\" [templatesContent]=\"templates\"\r\n [templateType]=\"TableTemplate.Column\" [defaultContent]=\"defaultColumn\"\r\n [contextData]=\"column\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultColumn>\r\n <sfc-default-table-column [model]=\"column\"></sfc-default-table-column>\r\n </ng-template>\r\n\r\n </sfc-sorting-column>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sfc-delimeter *ngIf=\"delimeter\" class=\"table-delimeter\"></sfc-delimeter>\r\n\r\n <div class=\"rows-container\">\r\n <sfc-load-container [id]=\"loadContainerId\" [type]=\"LoadContainerType.Table\" [model]=\"loadModel\"\r\n [paginationCount]=\"paginationCount\" [paginationLimits]=\"paginationLimits\" [showLoading]=\"showLoading\"\r\n (handleSuccess)=\"handleSuccess($event)\" (handleLoading)=\"loading = $event\" [emptyLabel]=\"notFoundLabel\"\r\n [loadMoreLabel]=\"loadMoreLabel\">\r\n <div class=\"row\" *ngFor=\"let item of items; index as i;\">\r\n <ng-container [ngSwitch]=\"dataType\">\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Rows\" [referenceContent]=\"rowContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Row\" [defaultContent]=\"defaultRow\"\r\n [contextData]=\"{model: item, columns: tableColumns, position: position}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultRow>\r\n <sfc-default-table-row [columns]=\"tableColumns\" [model]=\"item\" [position]=\"position\"\r\n [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-row>\r\n </ng-template>\r\n\r\n <sfc-template-content *ngSwitchCase=\"TableDataType.Cards\" [referenceContent]=\"cardContent\"\r\n [templatesContent]=\"templates\" [templateType]=\"TableTemplate.Card\"\r\n [defaultContent]=\"defaultCard\" [contextData]=\"{model: item, columns: tableColumns}\">\r\n </sfc-template-content>\r\n\r\n <ng-template #defaultCard>\r\n <sfc-default-table-card [columns]=\"tableColumns\" [model]=\"item\" [selectOnClick]=\"selectOnClick\">\r\n </sfc-default-table-card>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n </sfc-load-container>\r\n </div>\r\n</div>","export enum ExpandedTableRowTemplate {\r\n Row = 'row',\r\n Content = 'content'\r\n}","import { Component, ContentChildren, HostBinding, Input, QueryList, TemplateRef } from '@angular/core';\r\nimport { TemplateReferenceDirective, UIClass } from 'ngx-sfc-common';\r\nimport { BaseDefaultTableContentComponent } from '../../base-default-table-content.component';\r\nimport { ExpandedTableRowTemplate } from './expanded-table-row-template.enum';\r\nimport { IExpandedTableRowContextModel } from './expanded-table-row.model';\r\n\r\n@Component({\r\n selector: 'sfc-expanded-table-row',\r\n templateUrl: './expanded-table-row.component.html',\r\n styleUrls: ['./expanded-table-row.component.scss']\r\n})\r\nexport class ExpandedTableRowComponent extends BaseDefaultTableContentComponent {\r\n\r\n ExpandedTemplate = ExpandedTableRowTemplate;\r\n\r\n @Input()\r\n @HostBinding('class.' + UIClass.Expanded)\r\n expanded: boolean = false;\r\n\r\n // Template references \r\n\r\n @Input()\r\n row?: TemplateRef<any>;\r\n\r\n @Input()\r\n content?: TemplateRef<any>;\r\n\r\n // End template references \r\n\r\n @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n get contextData(): IExpandedTableRowContextModel {\r\n return {\r\n model: this.model,\r\n columns: this.columns,\r\n position: this.position,\r\n expanded: this.expanded,\r\n even: this.even\r\n }\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\" (click)=\"expanded = !expanded\">\r\n <sfc-template-content [referenceContent]=\"row\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Row\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n <div class=\"expanded\">\r\n <sfc-template-content [referenceContent]=\"content\" [templatesContent]=\"templates\"\r\n [templateType]=\"ExpandedTemplate.Content\" [contextData]=\"contextData\">\r\n </sfc-template-content>\r\n </div>\r\n</div>","export enum CarouselProperty {\r\n Position = 'position',\r\n Settings = 'settings',\r\n Width = 'width',\r\n Items = 'items'\r\n};\r\n\r\nexport enum CarouselState {\r\n Busy = 'busy',\r\n Interacting = 'interacting',\r\n Rotating = 'rotating'\r\n};\r\n\r\nexport enum CarouselEventType {\r\n Initializing = 'initializing',\r\n Initialized = 'initialized',\r\n Change = 'change',\r\n Changed = 'changed',\r\n Resize = 'resize',\r\n Resizing = 'resizing',\r\n Resized = 'resized',\r\n Refresh = 'refresh',\r\n Refreshed = 'refreshed',\r\n Translate = 'translate',\r\n Translated = 'translated',\r\n Animating = 'animating',\r\n Refreshing = 'refreshing' \r\n};","import { Directive, Input, TemplateRef } from \"@angular/core\";\r\nimport { isNumeric } from \"ngx-sfc-common\";\r\n\r\nlet nextId = 0;\r\n\r\n/* eslint-disable */\r\n@Directive({ selector: 'ng-template[sfcCarouselSlide]' })\r\nexport class CarouselSlideDirective {\r\n\r\n @Input()\r\n id = `slide-${nextId++}`;\r\n\r\n private _dataMerge = 1;\r\n @Input()\r\n set dataMerge(data: number) {\r\n this._dataMerge = isNumeric(data) ? data : 1;\r\n };\r\n get dataMerge(): number { return this._dataMerge }\r\n\r\n @Input()\r\n width = 0;\r\n\r\n constructor(public tplRef: TemplateRef<any>) { }\r\n}\r\n","import { CarouselOptionsModel } from \"../../models/options.model\";\r\n\r\nexport class CarouselServiceConstants {\r\n static CLONE_ID_PREFIX: string = 'cloned-';\r\n static DEFAULT_NAV_TEXT: string[] = ['prev', 'next'];\r\n static DEFAULT_OPTIONS: CarouselOptionsModel = {\r\n items: 3,\r\n skip_validateItems: false,\r\n loop: false,\r\n center: false,\r\n rewind: false,\r\n margin: 0,\r\n stagePadding: 0,\r\n merge: false,\r\n mergeFit: true,\r\n autoWidth: false,\r\n startPosition: 0,\r\n rtl: false,\r\n responsive: {},\r\n responsiveRefreshRate: 200,\r\n // defaults to Navigation\r\n nav: false,\r\n navText: [],\r\n navIcons:[],\r\n navSpeed: false,\r\n navBottom: true,\r\n slideBy: 1,\r\n dots: true,\r\n dotsEach: false,\r\n navigationDotsModel: false,\r\n dotsSpeed: false,\r\n // defaults to Autoplay\r\n autoplay: false,\r\n autoplayTimeout: 5000,\r\n autoplayHoverPause: false,\r\n autoplaySpeed: false,\r\n autoplayMouseleaveTimeout: 1,\r\n // defaults to LazyLoading\r\n lazyLoad: false,\r\n lazyLoadEager: 0,\r\n // defaults to Animate\r\n slideTransition: '',\r\n animateOut: false,\r\n animateIn: false,\r\n // defaults to AutoHeight\r\n autoHeight: false\r\n }\r\n}","export enum Type {\r\n Event = 'event',\r\n State = 'state'\r\n};\r\n\r\nexport enum Width {\r\n Default = 'default',\r\n Inner = 'inner',\r\n Outer = 'outer'\r\n};","import { Injectable } from '@angular/core';\r\nimport { CommonConstants, isNumeric } from 'ngx-sfc-common';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { CarouselEventType, CarouselProperty, CarouselState } from '../../carousel.enum';\r\nimport { CarouselSlideDirective } from '../../directive/carousel-slide.directive';\r\nimport { CarouselDOMModel } from '../../models/dom.model';\r\nimport { CarouselNavigationDotsModel, CarouselNavigationModel } from '../../models/navigation.model';\r\nimport { CarouselOptionsModel } from '../../models/options.model';\r\nimport { CarouselSlideModel } from '../../models/slide.model';\r\nimport { CarouselStageModel } from '../../parts/stage/carousel-stage.model';\r\nimport { CarouselServiceConstants } from './carousel-service.constants';\r\nimport { Width } from './carousel-service.enum';\r\nimport { CarouselCurrentData, States } from './carousel-service.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselService {\r\n\r\n private _viewSettingsShipper$ = new Subject<CarouselCurrentData>();\r\n\r\n private _initializedCarousel$ = new Subject<string>();\r\n\r\n private _changeSettingsCarousel$ = new Subject<any>();\r\n\r\n private _changedSettingsCarousel$ = new Subject<any>();\r\n\r\n private _translateCarousel$ = new Subject<string>();\r\n\r\n private _translatedCarousel$ = new Subject<string>();\r\n\r\n private _resizeCarousel$ = new Subject<string>();\r\n\r\n private _resizedCarousel$ = new Subject<string>();\r\n\r\n private _refreshCarousel$ = new Subject<string>();\r\n\r\n private _refreshedCarousel$ = new Subject<string>();\r\n\r\n private carouselDOMModel: CarouselDOMModel = {\r\n rtl: false,\r\n isResponsive: false,\r\n isRefreshed: false,\r\n isLoaded: false,\r\n isLoading: false\r\n };\r\n\r\n private stageModel: CarouselStageModel = {\r\n transform: 'translate3d(0px,0px,0px)',\r\n transition: '0s',\r\n width: 0,\r\n paddingL: 0,\r\n paddingR: 0\r\n };\r\n\r\n private _width!: number;\r\n\r\n private _items: CarouselSlideDirective[] = [];\r\n\r\n private _widths: any[] = [];\r\n\r\n private _supress: any = {};\r\n\r\n private _current: number | null = null;\r\n\r\n private _clones: any[] = [];\r\n\r\n private _mergers: any[] = [];\r\n\r\n private _speed: number | null = null;\r\n\r\n private _coordinates: number[] = [];\r\n\r\n private _invalidated: any = {};\r\n\r\n private _states: States = {\r\n current: {},\r\n tags: {\r\n initializing: [CarouselState.Busy],\r\n animating: [CarouselState.Busy]\r\n }\r\n };\r\n\r\n private _pipe: any[] = [\r\n {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: (cache: any) => {\r\n cache.current = this._items && this._items[this.relative(this._current || 0)].id;\r\n }\r\n },\r\n {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: (cache: any) => {\r\n const margin = this.settings.margin || CommonConstants.EMPTY_STRING,\r\n grid = !this.settings.autoWidth,\r\n rtl = this.settings.rtl,\r\n css = {\r\n 'margin-left': rtl ? margin : CommonConstants.EMPTY_STRING,\r\n 'margin-right': rtl ? CommonConstants.EMPTY_STRING : margin\r\n };\r\n\r\n if (!grid) {\r\n this.slidesModel.forEach(slide => {\r\n slide.marginL = css['margin-left'];\r\n slide.marginR = css['margin-right'];\r\n });\r\n }\r\n\r\n cache.css = css;\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: (cache: any) => {\r\n const width: any = +(this.width() / (this.settings.items || 0)).toFixed(3) - (this.settings.margin || 0),\r\n grid = !this.settings.autoWidth,\r\n widths = [];\r\n let merge = null,\r\n iterator = this._items.length;\r\n\r\n cache.items = {\r\n merge: false,\r\n width: width\r\n };\r\n\r\n while (iterator--) {\r\n merge = this._mergers[iterator];\r\n merge = this.settings.mergeFit && Math.min(merge, (this.settings.items || 0)) || merge;\r\n cache.items.merge = merge > 1 || cache.items.merge;\r\n\r\n widths[iterator] = !grid ? this._items[iterator].width ? this._items[iterator].width : width : width * merge;\r\n }\r\n\r\n this._widths = widths;\r\n\r\n this.slidesModel.forEach((slide, i) => {\r\n slide.width = this._widths[i];\r\n slide.marginR = cache.css['margin-right'];\r\n slide.marginL = cache.css['margin-left'];\r\n });\r\n }\r\n }, {\r\n filter: [CarouselProperty.Items, CarouselProperty.Settings],\r\n run: () => {\r\n const clones: any[] = [],\r\n items: CarouselSlideDirective[] = this._items,\r\n settings: any = this.settings,\r\n view = Math.max(settings.items * 2, 4),\r\n size = Math.ceil(items.length / 2) * 2;\r\n let append: any[] = [],\r\n prepend: any[] = [],\r\n repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0;\r\n\r\n repeat /= 2;\r\n\r\n while (repeat--) {\r\n clones.push(this.normalize(clones.length / 2, true));\r\n append.push({ ...this.slidesModel[clones[clones.length - 1]] });\r\n clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\r\n prepend.unshift({ ...this.slidesModel[clones[clones.length - 1]] });\r\n }\r\n\r\n this._clones = clones;\r\n\r\n append = append.map(slide => {\r\n slide.id = `${CarouselServiceConstants.CLONE_ID_PREFIX}${slide.id}`;\r\n slide.isActive = false;\r\n slide.isCloned = true;\r\n return slide;\r\n });\r\n\r\n prepend = prepend.map(slide => {\r\n slide.id = `${CarouselServiceConstants.CLONE_ID_PREFIX}${slide.id}`;\r\n slide.isActive = false;\r\n slide.isCloned = true;\r\n return slide;\r\n });\r\n\r\n this.slidesModel = prepend.concat(this.slidesModel).concat(append);\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: () => {\r\n const rtl = this.settings.rtl ? 1 : -1,\r\n size = this._clones.length + this._items.length,\r\n coordinates = [];\r\n let iterator = -1,\r\n previous = 0,\r\n current = 0;\r\n\r\n while (++iterator < size) {\r\n previous = coordinates[iterator - 1] || 0;\r\n current = this._widths[this.relative(iterator)] + this.settings.margin;\r\n coordinates.push(previous + current * rtl);\r\n }\r\n\r\n this._coordinates = coordinates;\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: () => {\r\n const padding = this.settings.stagePadding || 0,\r\n coordinates = this._coordinates,\r\n css = {\r\n 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\r\n 'padding-left': padding || '',\r\n 'padding-right': padding || ''\r\n };\r\n\r\n this.stageModel.width = css.width;\r\n this.stageModel.paddingR = css['padding-right'];\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: (cache: any) => {\r\n let current = cache.current ? this.slidesModel.findIndex(slide => slide.id === cache.current) : 0;\r\n current = Math.max(this.minimum(), Math.min(this.maximum(), current));\r\n this.reset(current);\r\n }\r\n }, {\r\n filter: [CarouselProperty.Position],\r\n run: () => {\r\n this.animate(this.coordinates(this._current));\r\n }\r\n }, {\r\n filter: [CarouselProperty.Width, CarouselProperty.Position, CarouselProperty.Items, CarouselProperty.Settings],\r\n run: () => {\r\n const rtl = this.settings.rtl ? 1 : -1,\r\n padding = (this.settings.stagePadding || 0) * 2,\r\n matches = [];\r\n let begin: any, end, inner, outer, i, n;\r\n\r\n begin = this.coordinates(this.current());\r\n if (typeof begin === 'number') {\r\n begin += padding;\r\n } else {\r\n begin = 0;\r\n }\r\n\r\n end = begin + this.width() * rtl;\r\n\r\n if (rtl === -1 && this.settings.center) {\r\n const result = this._coordinates.filter(element => {\r\n return (this.settings.items || 0) % 2 === 1 ? element >= begin : element > begin;\r\n });\r\n begin = result.length ? result[result.length - 1] : begin;\r\n }\r\n\r\n for (i = 0, n = this._coordinates.length; i < n; i++) {\r\n inner = Math.ceil(this._coordinates[i - 1] || 0);\r\n outer = Math.ceil(Math.abs(this._coordinates[i]) + padding * rtl);\r\n\r\n if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))\r\n || (this.op(outer, '<', begin) && this.op(outer, '>', end))) {\r\n matches.push(i);\r\n }\r\n }\r\n\r\n this.slidesModel.forEach(slide => {\r\n slide.isActive = false;\r\n return slide;\r\n });\r\n matches.forEach(item => {\r\n this.slidesModel[item].isActive = true;\r\n });\r\n\r\n if (this.settings.center) {\r\n this.slidesModel.forEach(slide => {\r\n slide.isCentered = false;\r\n return slide;\r\n });\r\n const currentValue = this.current();\r\n if (currentValue)\r\n this.slidesModel[currentValue].isCentered = true;\r\n }\r\n }\r\n }\r\n ];\r\n\r\n settings: CarouselOptionsModel = {\r\n items: 0\r\n };\r\n\r\n slidesModel!: CarouselSlideModel[];\r\n\r\n navigationModel!: CarouselNavigationModel;\r\n\r\n navigationDotsModel!: CarouselNavigationDotsModel;\r\n\r\n options: CarouselOptionsModel = {};\r\n\r\n get viewCurrrentSettings(): Observable<CarouselCurrentData> {\r\n return this._viewSettingsShipper$.asObservable();\r\n }\r\n\r\n get initializedState(): Observable<string> {\r\n return this._initializedCarousel$.asObservable()\r\n }\r\n\r\n get changeState(): Observable<any> {\r\n return this._changeSettingsCarousel$.asObservable();\r\n }\r\n\r\n get changedState(): Observable<any> {\r\n return this._changedSettingsCarousel$.asObservable();\r\n }\r\n\r\n get translateState(): Observable<string> {\r\n return this._translateCarousel$.asObservable();\r\n }\r\n\r\n get translatedState(): Observable<string> {\r\n return this._translatedCarousel$.asObservable();\r\n }\r\n\r\n get resizeState(): Observable<string> {\r\n return this._resizeCarousel$.asObservable();\r\n }\r\n\r\n get resizedState(): Observable<string> {\r\n return this._resizedCarousel$.asObservable();\r\n }\r\n\r\n get refreshState(): Observable<string> {\r\n return this._refreshCarousel$.asObservable();\r\n }\r\n\r\n get refreshedState(): Observable<string> {\r\n return this._refreshedCarousel$.asObservable();\r\n }\r\n\r\n setup(carouselWidth: number, slides: CarouselSlideDirective[], options: CarouselOptionsModel) {\r\n this.setCarouselWidth(carouselWidth);\r\n this.setItems(slides);\r\n this.defineSlidesData();\r\n this.setOptions(options);\r\n\r\n this.settings = { ...this.options };\r\n\r\n this.setOptionsForViewport();\r\n\r\n this.trigger(CarouselEventType.Change, { property: { name: CarouselProperty.Settings, value: this.settings } });\r\n this.invalidate(CarouselProperty.Settings);\r\n this.trigger(CarouselEventType.Changed, { property: { name: CarouselProperty.Settings, value: this.settings } });\r\n }\r\n\r\n initialize(slides: CarouselSlideDirective[]) {\r\n this.enter(CarouselEventType.Initializing);\r\n\r\n this.carouselDOMModel.rtl = this.settings.rtl || false;\r\n\r\n if (this._mergers.length) {\r\n this._mergers = [];\r\n }\r\n\r\n slides.forEach(item => {\r\n const mergeN: number = this.settings.merge ? item.dataMerge : 1;\r\n this._mergers.push(mergeN);\r\n });\r\n this._clones = [];\r\n\r\n this.reset(isNumeric(this.settings.startPosition) ? +(this.settings.startPosition || 0) : 0);\r\n\r\n this.invalidate(CarouselProperty.Items);\r\n this.refresh();\r\n\r\n this.carouselDOMModel.isLoaded = true;\r\n\r\n this.sendChanges();\r\n\r\n this.leave(CarouselEventType.Initializing);\r\n this.trigger(CarouselEventType.Initialized);\r\n };\r\n\r\n sendChanges() {\r\n this._viewSettingsShipper$.next({\r\n carouselDOMModel: this.carouselDOMModel,\r\n stageModel: this.stageModel,\r\n slidesModel: this.slidesModel,\r\n navigationModel: this.navigationModel,\r\n navigationDotsModel: this.navigationDotsModel\r\n });\r\n }\r\n\r\n onResize(curWidth: number) {\r\n if (this._items.length) {\r\n this.setCarouselWidth(curWidth);\r\n this.enter(CarouselEventType.Resizing);\r\n this.trigger(CarouselEventType.Resize);\r\n this.invalidate(CarouselProperty.Width);\r\n this.refresh();\r\n this.leave(CarouselEventType.Resizing);\r\n this.trigger(CarouselEventType.Resized);\r\n }\r\n }\r\n\r\n is(state: string): boolean {\r\n return (this._states.current as any)[state] && (this._states.current as any)[state] > 0;\r\n };\r\n\r\n current(position?: number): number | undefined {\r\n if (position === undefined) {\r\n return this._current as number;\r\n }\r\n\r\n if (this._items.length === 0) {\r\n return undefined;\r\n }\r\n\r\n position = this.normalize(position);\r\n\r\n if (this._current !== position) {\r\n this.trigger(CarouselEventType.Change, { property: { name: CarouselProperty.Position, value: position } });\r\n\r\n this._current = position;\r\n\r\n this.invalidate(CarouselProperty.Position);\r\n this.trigger(CarouselEventType.Changed, { property: { name: CarouselProperty.Position, value: this._current } });\r\n }\r\n\r\n return this._current;\r\n }\r\n\r\n relative(position: number): number {\r\n position -= this._clones.length / 2;\r\n return this.normalize(position, true);\r\n }\r\n\r\n maximum(relative: boolean = false): number {\r\n const settings = this.settings;\r\n let maximum = this._coordinates.length,\r\n iterator,\r\n reciprocalItemsWidth,\r\n elementWidth;\r\n\r\n if (settings.loop) {\r\n maximum = this._clones.length / 2 + this._items.length - 1;\r\n } else if (settings.autoWidth || settings.merge) {\r\n iterator = this._items.length;\r\n reciprocalItemsWidth = this.slidesModel[--iterator].width;\r\n elementWidth = this._width;\r\n while (iterator--) {\r\n reciprocalItemsWidth += +(this.slidesModel[iterator].width as string) + (this.settings.margin || 0).toString();\r\n if ((reciprocalItemsWidth as number) > elementWidth) {\r\n break;\r\n }\r\n }\r\n maximum = iterator + 1;\r\n } else if (settings.center) {\r\n maximum = this._items.length - 1;\r\n } else {\r\n maximum = this._items.length - (settings.items || 0);\r\n }\r\n\r\n if (relative) {\r\n maximum -= this._clones.length / 2;\r\n }\r\n\r\n return Math.max(maximum, 0);\r\n }\r\n\r\n minimum(relative: boolean = false): number {\r\n return relative ? 0 : this._clones.length / 2;\r\n }\r\n\r\n items(position?: number): CarouselSlideDirective[] {\r\n if (position === undefined) {\r\n return this._items.slice();\r\n }\r\n\r\n position = this.normalize(position, true);\r\n return [this._items[position]];\r\n }\r\n\r\n mergers(position: number): number | number[] {\r\n if (position === undefined) {\r\n return this._mergers.slice();\r\n }\r\n\r\n position = this.normalize(position, true);\r\n return this._mergers[position];\r\n }\r\n\r\n clones(position?: number): number[] {\r\n const odd = this._clones.length / 2,\r\n even = odd + this._items.length,\r\n map = (index: number) => index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2;\r\n\r\n if (position === undefined) {\r\n return this._clones.map((v, i) => map(i));\r\n }\r\n\r\n return this._clones.map((v, i) => v === position ? map(i) : null).filter(item => item) as number[];\r\n }\r\n\r\n speed(speed?: number): number {\r\n if (speed !== undefined) {\r\n this._speed = speed;\r\n }\r\n\r\n return this._speed || 0;\r\n }\r\n\r\n coordinates(position: number | null | undefined): number | number[] {\r\n let multiplier = 1,\r\n newPosition = (position || 0) - 1,\r\n coordinate,\r\n result: number[];\r\n\r\n if (position === undefined) {\r\n result = this._coordinates.map((_, index) => {\r\n return this.coordinates(index) as number;\r\n });\r\n return result;\r\n }\r\n\r\n if (this.settings.center) {\r\n if (this.settings.rtl) {\r\n multiplier = -1;\r\n newPosition = (position || 0) + 1;\r\n }\r\n\r\n coordinate = this._coordinates[(position || 0)];\r\n coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\r\n } else {\r\n coordinate = this._coordinates[newPosition] || 0;\r\n }\r\n\r\n coordinate = Math.ceil(coordinate);\r\n\r\n return coordinate;\r\n }\r\n\r\n to(position: number, speed: number | boolean) {\r\n let current = this.current(),\r\n revert = null,\r\n distance = position - this.relative(current || 0),\r\n maximum = this.maximum(),\r\n delayForLoop = 0;\r\n const direction = +(distance > 0) - +(distance < 0),\r\n items = this._items.length,\r\n minimum = this.minimum();\r\n\r\n if (this.settings.loop) {\r\n if (!this.settings.rewind && Math.abs(distance) > items / 2) {\r\n distance += direction * -1 * items;\r\n }\r\n\r\n position = (current || 0) + distance;\r\n revert = ((position - minimum) % items + items) % items + minimum;\r\n\r\n if (revert !== position && revert - distance <= maximum && revert - distance > 0) {\r\n current = revert - distance;\r\n position = revert;\r\n delayForLoop = 30;\r\n this.reset(current);\r\n this.sendChanges();\r\n }\r\n } else if (this.settings.rewind) {\r\n maximum += 1;\r\n position = (position % maximum + maximum) % maximum;\r\n } else {\r\n position = Math.max(minimum, Math.min(maximum, position));\r\n }\r\n\r\n setTimeout(() => {\r\n this.speed(this.duration(current || 0, position, speed));\r\n this.current(position);\r\n\r\n this.update();\r\n }, delayForLoop);\r\n }\r\n\r\n next(speed: number | boolean) {\r\n speed = speed || false;\r\n this.to(this.relative(this.current() || 0) + 1, speed);\r\n }\r\n\r\n previous(speed: number | boolean) {\r\n speed = speed || false;\r\n this.to(this.relative(this.current() || 0) - 1, speed);\r\n }\r\n\r\n onTransitionEnd(event?: any) {\r\n if (!event) {\r\n this.leave(CarouselEventType.Animating);\r\n this.trigger(CarouselEventType.Translated);\r\n }\r\n }\r\n\r\n setCurrentSlideClasses(slide: CarouselSlideModel): { [key: string]: boolean } {\r\n const currentClasses: { [key: string]: boolean } = {\r\n 'active': slide.isActive || false,\r\n 'center': slide.isCentered || false,\r\n 'cloned': slide.isCloned || false,\r\n 'animated': slide.isAnimated || false,\r\n 'animated-in': slide.isDefAnimatedIn || false,\r\n 'animated-out': slide.isDefAnimatedOut || false\r\n };\r\n if (this.settings.animateIn) {\r\n currentClasses[this.settings.animateIn as string] = slide.isCustomAnimatedIn || false;\r\n }\r\n if (this.settings.animateOut) {\r\n currentClasses[this.settings.animateOut as string] = slide.isCustomAnimatedOut || false;\r\n }\r\n return currentClasses;\r\n }\r\n\r\n enter(name: string) {\r\n [name].concat(this._states.tags[name] || []).forEach((stateName) => {\r\n if ((this._states.current as any)[stateName] === undefined) {\r\n (this._states.current as any)[stateName] = 0;\r\n }\r\n\r\n (this._states.current as any)[stateName]++;\r\n });\r\n };\r\n\r\n leave(name: string) {\r\n [name].concat(this._states.tags[name] || []).forEach((stateName) => {\r\n if ((this._states.current as any)[stateName] === 0 || !!(this._states.current as any)[stateName]) {\r\n (this._states.current as any)[stateName]--;\r\n }\r\n })\r\n };\r\n\r\n private setOptions(options: CarouselOptionsModel) {\r\n this.options = { ...CarouselServiceConstants.DEFAULT_OPTIONS, ...options };\r\n }\r\n\r\n private validateItems(items: number, skip_validateItems: boolean): number {\r\n let result: number = items;\r\n\r\n if (items > this._items.length && !skip_validateItems) {\r\n result = this._items.length;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private setCarouselWidth(width: number) {\r\n this._width = width;\r\n }\r\n\r\n private setOptionsForViewport() {\r\n const viewport = this._width,\r\n overwrites = this.options.responsive || {};\r\n let match = -1;\r\n\r\n if (!Object.keys(overwrites).length) {\r\n return;\r\n }\r\n\r\n if (!viewport) {\r\n this.settings.items = 1;\r\n return;\r\n }\r\n\r\n for (const key in overwrites) {\r\n if (overwrites.hasOwnProperty(key)) {\r\n if (+key <= viewport && +key > match) {\r\n match = Number(key);\r\n }\r\n }\r\n }\r\n\r\n this.settings = { ...this.options, ...overwrites[match], items: (overwrites[match] && overwrites[match].items) ? this.validateItems(overwrites[match].items || 0, this.options.skip_validateItems || false) : this.options.items };\r\n\r\n delete this.settings.responsive;\r\n this.carouselDOMModel.isResponsive = true;\r\n\r\n const mergers: any[] = [];\r\n this._items.forEach(item => {\r\n const mergeN: number = this.settings.merge ? item.dataMerge : 1;\r\n mergers.push(mergeN);\r\n });\r\n this._mergers = mergers;\r\n\r\n this.invalidate(CarouselProperty.Settings);\r\n }\r\n\r\n private optionsLogic() {\r\n if (this.settings.autoWidth) {\r\n this.settings.stagePadding = 0;\r\n this.settings.merge = false;\r\n }\r\n }\r\n\r\n private update() {\r\n let i = 0;\r\n const n = this._pipe.length,\r\n filter = (item: string | number) => this._invalidated[item],\r\n cache = {};\r\n\r\n while (i < n) {\r\n const filteredPipe = this._pipe[i].filter.filter(filter);\r\n if (this._invalidated.all || filteredPipe.length > 0) {\r\n this._pipe[i].run(cache);\r\n }\r\n i++;\r\n }\r\n this.slidesModel.forEach(slide => slide.classes = this.setCurrentSlideClasses(slide));\r\n this.sendChanges();\r\n\r\n this._invalidated = {};\r\n\r\n if (!this.is('valid')) {\r\n this.enter('valid');\r\n }\r\n }\r\n\r\n private width(dimension?: Width): number {\r\n dimension = dimension || Width.Default;\r\n switch (dimension) {\r\n case Width.Inner:\r\n case Width.Outer:\r\n return this._width;\r\n default:\r\n return this._width - (this.settings.stagePadding || 0) * 2 + (this.settings.margin || 0);\r\n }\r\n }\r\n\r\n private refresh() {\r\n this.enter(CarouselEventType.Refreshing);\r\n this.trigger(CarouselEventType.Refresh);\r\n this.defineSlidesData();\r\n this.setOptionsForViewport();\r\n this.optionsLogic();\r\n this.update();\r\n this.leave(CarouselEventType.Refreshing);\r\n this.trigger(CarouselEventType.Refreshed);\r\n }\r\n\r\n private animate(coordinate: number | number[]) {\r\n const animate = this.speed() > 0;\r\n\r\n if (this.is(CarouselEventType.Animating)) {\r\n this.onTransitionEnd();\r\n }\r\n\r\n if (animate) {\r\n this.enter(CarouselEventType.Animating);\r\n this.trigger(CarouselEventType.Translate);\r\n }\r\n\r\n this.stageModel.transform = 'translate3d(' + coordinate + 'px,0px,0px)';\r\n this.stageModel.transition = (this.speed() / 1000) + 's' + (\r\n this.settings.slideTransition ? ' ' + this.settings.slideTransition : ''\r\n );\r\n }\r\n\r\n private invalidate(part: string): string[] {\r\n if (typeof part === 'string') {\r\n this._invalidated[part] = true;\r\n if (this.is('valid')) { this.leave('valid'); }\r\n }\r\n return Object.keys(this._invalidated);\r\n };\r\n\r\n private reset(position: number) {\r\n position = this.normalize(position);\r\n\r\n if (position === undefined) {\r\n return;\r\n }\r\n\r\n this._speed = 0;\r\n this._current = position;\r\n\r\n this.suppress([CarouselEventType.Translate, CarouselEventType.Translated]);\r\n\r\n this.animate(this.coordinates(position));\r\n\r\n this.release([CarouselEventType.Translate, CarouselEventType.Translated]);\r\n }\r\n\r\n private normalize(position: number, relative?: boolean): number {\r\n const n = this._items.length,\r\n m = relative ? 0 : this._clones.length;\r\n\r\n if (!isNumeric(position) || n < 1) {\r\n position = 0;\r\n } else if (position < 0 || position >= n + m) {\r\n position = ((position - m / 2) % n + n) % n + m / 2;\r\n }\r\n\r\n return position;\r\n }\r\n\r\n private duration(from: number, to: number, factor?: number | boolean): number {\r\n if (factor === 0) {\r\n return 0;\r\n }\r\n\r\n return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((+(factor as any)));\r\n }\r\n\r\n private setItems(content: CarouselSlideDirective[]) {\r\n this._items = content;\r\n }\r\n\r\n private defineSlidesData() {\r\n let loadMap: Map<string, boolean>;\r\n\r\n if (this.slidesModel && this.slidesModel.length) {\r\n loadMap = new Map();\r\n this.slidesModel.forEach(item => {\r\n if (item.load) {\r\n loadMap.set(item.id, item.load);\r\n }\r\n })\r\n }\r\n\r\n this.slidesModel = this._items.map(slide => {\r\n return {\r\n id: `${slide.id}`,\r\n isActive: false,\r\n tplRef: slide.tplRef,\r\n dataMerge: slide.dataMerge,\r\n width: 0,\r\n isCloned: false,\r\n load: loadMap ? loadMap.get(slide.id) : false,\r\n classes: {}\r\n };\r\n });\r\n }\r\n\r\n private op(a: number, o: string, b: number): boolean {\r\n const rtl = this.settings.rtl;\r\n switch (o) {\r\n case '<':\r\n return rtl ? a > b : a < b;\r\n case '>':\r\n return rtl ? a < b : a > b;\r\n case '>=':\r\n return rtl ? a <= b : a >= b;\r\n case '<=':\r\n return rtl ? a >= b : a <= b;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private trigger(name: string, data?: any) {\r\n switch (name) {\r\n case CarouselEventType.Initialized:\r\n this._initializedCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Change:\r\n this._changeSettingsCarousel$.next(data);\r\n break;\r\n case CarouselEventType.Changed:\r\n this._changedSettingsCarousel$.next(data);\r\n break;\r\n case CarouselEventType.Resize:\r\n this._resizeCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Resized:\r\n this._resizedCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Refresh:\r\n this._refreshCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Refreshed:\r\n this._refreshedCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Translate:\r\n this._translateCarousel$.next(name);\r\n break;\r\n case CarouselEventType.Translated:\r\n this._translatedCarousel$.next(name);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n private suppress(events: string[]) {\r\n events.forEach(event => {\r\n this._supress[event] = true;\r\n });\r\n }\r\n\r\n private release(events: string[]) {\r\n events.forEach(event => {\r\n delete this._supress[event];\r\n });\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { getCssLikeValue } from 'ngx-sfc-common';\r\nimport { tap, Observable, Subscription, merge } from 'rxjs';\r\nimport { CarouselProperty } from '../../carousel.enum';\r\nimport { CarouselService } from '../carousel/carousel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselAnimateService implements OnDestroy {\r\n\r\n private swapping = true;\r\n\r\n private previous?: number;\r\n\r\n private next = undefined;\r\n\r\n private animateSubscription!: Subscription;\r\n\r\n constructor(private carouselService: CarouselService) {\r\n this.initDataStreams();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.animateSubscription.unsubscribe();\r\n }\r\n\r\n private initDataStreams() {\r\n const changeSettings$: Observable<any> = this.carouselService.changeState.pipe(\r\n tap(data => {\r\n if (data.property.name === CarouselProperty.Position) {\r\n this.previous = this.carouselService.current();\r\n this.next = data.property.value;\r\n }\r\n })\r\n );\r\n\r\n const translateCarousel$: Observable<string> = this.carouselService.translateState.pipe(\r\n tap(() => {\r\n if (this.swapping && (this.carouselService.options.animateOut || this.carouselService.options.animateIn)) {\r\n this.swap();\r\n }\r\n })\r\n );\r\n\r\n this.animateSubscription = merge(changeSettings$, translateCarousel$).subscribe();\r\n }\r\n\r\n private swap(): void {\r\n if (this.carouselService.settings.items !== 1)\r\n return;\r\n\r\n this.carouselService.speed(0);\r\n\r\n let left: number;\r\n const previous = this.carouselService.slidesModel[this.previous || 0],\r\n next = this.carouselService.slidesModel[this.next || 0],\r\n incoming = this.carouselService.settings.animateIn,\r\n outgoing = this.carouselService.settings.animateOut;\r\n\r\n if (this.carouselService.current() === this.previous)\r\n return;\r\n\r\n if (outgoing) {\r\n left = +this.carouselService.coordinates(this.previous) - +this.carouselService.coordinates(this.next);\r\n this.carouselService.slidesModel.forEach(slide => {\r\n if (slide.id === previous.id) {\r\n slide.left = getCssLikeValue(left);\r\n slide.isAnimated = true;\r\n slide.isDefAnimatedOut = true;\r\n slide.isCustomAnimatedOut = true;\r\n }\r\n });\r\n }\r\n\r\n if (incoming) {\r\n this.carouselService.slidesModel.forEach(slide => {\r\n if (slide.id === next.id) {\r\n slide.isAnimated = true;\r\n slide.isDefAnimatedIn = true;\r\n slide.isCustomAnimatedIn = true;\r\n }\r\n });\r\n }\r\n };\r\n\r\n clear(id: string) {\r\n this.carouselService.slidesModel.forEach(slide => {\r\n if (slide.id === id) {\r\n slide.left = CommonConstants.EMPTY_STRING;\r\n slide.isAnimated = false;\r\n slide.isDefAnimatedOut = false;\r\n slide.isCustomAnimatedOut = false;\r\n slide.isDefAnimatedIn = false;\r\n slide.isCustomAnimatedIn = false;\r\n slide.classes = this.carouselService.setCurrentSlideClasses(slide);\r\n }\r\n });\r\n this.carouselService.onTransitionEnd();\r\n };\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { DOCUMENT, WINDOW } from 'ngx-sfc-common';\r\nimport { tap, switchMap, first, Observable, Subscription, of, filter, merge } from 'rxjs';\r\nimport { CarouselProperty, CarouselState } from '../../carousel.enum';\r\nimport { CarouselService } from '../carousel/carousel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselAutoplayService implements OnDestroy {\r\n\r\n private autoplaySubscription!: Subscription;\r\n\r\n private timeout: number = 0;\r\n\r\n private paused = false;\r\n\r\n private isArtificialAutoplayTimeout: boolean = false;\r\n\r\n private _isAutoplayStopped = false;\r\n get isAutoplayStopped() {\r\n return this._isAutoplayStopped;\r\n }\r\n set isAutoplayStopped(value) {\r\n this._isAutoplayStopped = value;\r\n }\r\n\r\n private winRef: Window;\r\n private docRef: Document;\r\n\r\n constructor(private carouselService: CarouselService,\r\n @Inject(WINDOW) winRef: any,\r\n @Inject(DOCUMENT) docRef: any,\r\n ) {\r\n this.winRef = winRef as Window;\r\n this.docRef = docRef as Document;\r\n this.initDataStreams();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.autoplaySubscription.unsubscribe();\r\n }\r\n\r\n play() {\r\n if (this.paused) {\r\n this.paused = false;\r\n this.setAutoPlayInterval(this.carouselService.settings.autoplayMouseleaveTimeout);\r\n }\r\n\r\n if (this.carouselService.is(CarouselState.Rotating))\r\n return;\r\n\r\n this.carouselService.enter(CarouselState.Rotating);\r\n\r\n this.setAutoPlayInterval();\r\n };\r\n\r\n stop() {\r\n if (!this.carouselService.is(CarouselState.Rotating)) {\r\n return;\r\n }\r\n this.paused = true;\r\n\r\n this.winRef.clearTimeout(this.timeout);\r\n this.carouselService.leave(CarouselState.Rotating);\r\n };\r\n\r\n pause() {\r\n if (!this.carouselService.is(CarouselState.Rotating))\r\n return;\r\n\r\n this.paused = true;\r\n };\r\n\r\n startPausing() {\r\n if (this.carouselService.settings.autoplayHoverPause && this.carouselService.is(CarouselState.Rotating)) {\r\n this.pause();\r\n }\r\n }\r\n\r\n startPlayingMouseLeave() {\r\n if (this.carouselService.settings.autoplayHoverPause && this.carouselService.is(CarouselState.Rotating)) {\r\n this.play();\r\n this.playAfterTranslated();\r\n }\r\n }\r\n\r\n private initDataStreams() {\r\n const initializedCarousel$: Observable<string> = this.carouselService.initializedState.pipe(\r\n tap(() => {\r\n if (this.carouselService.settings.autoplay) {\r\n this.play();\r\n }\r\n })\r\n );\r\n\r\n const changedSettings$: Observable<any> = this.carouselService.changedState.pipe(\r\n tap(data => {\r\n this.handleChangeObservable(data);\r\n })\r\n );\r\n\r\n const resized$: Observable<any> = this.carouselService.resizedState.pipe(\r\n tap(() => {\r\n if (this.carouselService.settings.autoplay)\r\n this.play();\r\n else\r\n this.stop();\r\n })\r\n )\r\n\r\n this.autoplaySubscription = merge(initializedCarousel$, changedSettings$, resized$).subscribe();\r\n }\r\n\r\n private getNextTimeout(timeout?: number, speed?: number): number {\r\n if (this.timeout)\r\n this.winRef.clearTimeout(this.timeout);\r\n\r\n this.isArtificialAutoplayTimeout = timeout ? true : false;\r\n\r\n return this.winRef.setTimeout(() => {\r\n if (this.paused || this.carouselService.is(CarouselState.Busy) || this.carouselService.is(CarouselState.Interacting) || this.docRef.hidden)\r\n return;\r\n this.carouselService.next(speed || this.carouselService.settings.autoplaySpeed || 0);\r\n }, timeout || this.carouselService.settings.autoplayTimeout);\r\n };\r\n\r\n private setAutoPlayInterval(timeout?: number) {\r\n this.timeout = this.getNextTimeout(timeout);\r\n };\r\n\r\n private handleChangeObservable(data: any) {\r\n if (data.property.name === CarouselProperty.Settings) {\r\n if (this.carouselService.settings.autoplay) {\r\n this.play();\r\n } else {\r\n this.stop();\r\n }\r\n } else if (data.property.name === CarouselProperty.Position) {\r\n if (this.carouselService.settings.autoplay) {\r\n this.setAutoPlayInterval();\r\n }\r\n }\r\n }\r\n\r\n private playAfterTranslated() {\r\n of('translated').pipe(\r\n switchMap(() => this.carouselService.translatedState),\r\n first(),\r\n filter(() => this.isArtificialAutoplayTimeout),\r\n tap(() => this.setAutoPlayInterval())\r\n ).subscribe(() => { });\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { tap, merge, Observable, Subscription } from 'rxjs';\r\nimport { CarouselEventType, CarouselProperty } from '../../carousel.enum';\r\nimport { CarouselService } from '../carousel/carousel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselLazyLoadService implements OnDestroy {\r\n\r\n private lazyLoadSubscription!: Subscription;\r\n\r\n constructor(private carouselService: CarouselService) {\r\n this.initDataStreams();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.lazyLoadSubscription.unsubscribe();\r\n }\r\n\r\n private initDataStreams() {\r\n const initializedCarousel$: Observable<string> = this.carouselService.initializedState.pipe(\r\n tap(() => {\r\n const isLazyLoad = this.carouselService.settings && !this.carouselService.settings.lazyLoad;\r\n this.carouselService.slidesModel.forEach(item => item.load = isLazyLoad ? true : false);\r\n })\r\n );\r\n\r\n const changeSettings$: Observable<any> = this.carouselService.changeState;\r\n\r\n const resizedCarousel$: Observable<string> = this.carouselService.resizedState;\r\n\r\n this.lazyLoadSubscription = merge(initializedCarousel$, changeSettings$, resizedCarousel$).pipe(\r\n tap(data => this.defineLazyLoadSlides(data))\r\n ).subscribe();\r\n }\r\n\r\n private defineLazyLoadSlides(data: any) {\r\n if (!this.carouselService.settings || !this.carouselService.settings.lazyLoad)\r\n return;\r\n\r\n if ((data.property && data.property.name === CarouselProperty.Position) || data === CarouselEventType.Initialized || data === CarouselEventType.Resized) {\r\n const settings = this.carouselService.settings,\r\n clones = this.carouselService.clones().length;\r\n let n = (settings.center && Math.ceil((settings.items || 0) / 2) || settings.items) || 0,\r\n i = ((settings.center && n * -1) || 0),\r\n position = (data.property && data.property.value !== undefined ? data.property.value : this.carouselService.current()) + i;\r\n if ((settings.lazyLoadEager || 0) > 0) {\r\n n += settings.lazyLoadEager || 0;\r\n if (settings.loop) {\r\n position -= settings.lazyLoadEager || 0;\r\n n++;\r\n }\r\n }\r\n\r\n while (i++ < n) {\r\n this.load(clones / 2 + this.carouselService.relative(position));\r\n if (clones) {\r\n this.carouselService.clones(this.carouselService.relative(position)).forEach(value => this.load(value));\r\n\r\n }\r\n position++;\r\n }\r\n }\r\n }\r\n\r\n private load(position: number) {\r\n if (this.carouselService.slidesModel[position].load)\r\n return;\r\n\r\n this.carouselService.slidesModel[position].load = true;\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { tap, filter, merge, Observable, Subscription } from 'rxjs';\r\nimport { CarouselProperty } from '../../carousel.enum';\r\nimport { CarouselSlideDirective } from '../../directive/carousel-slide.directive';\r\nimport { CarouselNavigationDotsModel, CarouselNavigationModel } from '../../models/navigation.model';\r\nimport { CarouselOptionsModel } from '../../models/options.model';\r\nimport { CarouselServiceConstants } from '../carousel/carousel-service.constants';\r\nimport { CarouselService } from '../carousel/carousel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CarouselNavigationService implements OnDestroy {\r\n\r\n private navSubscription!: Subscription;\r\n\r\n private pages: any[] = [];\r\n\r\n private navigationModel: CarouselNavigationModel = {\r\n disabled: false,\r\n previous: {\r\n disabled: false,\r\n label: CommonConstants.EMPTY_STRING\r\n },\r\n next: {\r\n disabled: false,\r\n label: CommonConstants.EMPTY_STRING\r\n }\r\n };\r\n\r\n private navigationDotsModel: CarouselNavigationDotsModel = {\r\n disabled: false,\r\n dots: []\r\n };\r\n\r\n constructor(private carouselService: CarouselService) {\r\n this.initDataStreams();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.navSubscription.unsubscribe();\r\n }\r\n\r\n next(speed: number | boolean) {\r\n this.carouselService.to(this.getPosition(true), speed);\r\n };\r\n\r\n previous(speed: number | boolean) {\r\n this.carouselService.to(this.getPosition(false), speed);\r\n };\r\n\r\n to(position: number, speed: number | boolean, standard?: boolean) {\r\n let length: number;\r\n if (!standard && this.pages.length) {\r\n length = this.pages.length;\r\n this.carouselService.to(this.pages[((position % length) + length) % length].start, speed);\r\n } else {\r\n this.carouselService.to(position, speed);\r\n }\r\n };\r\n\r\n moveByDot(dotId: string) {\r\n const index: number = this.navigationDotsModel.dots.findIndex(dot => dotId === dot.id);\r\n this.to(index, this.carouselService.settings.dotsSpeed || 0);\r\n }\r\n\r\n toSlideById(id: string) {\r\n const position = this.carouselService.slidesModel.findIndex(slide => slide.id === id && slide.isCloned === false);\r\n\r\n if (position === -1 || position === this.carouselService.current())\r\n return;\r\n\r\n this.carouselService.to(this.carouselService.relative(position), false);\r\n }\r\n\r\n private initDataStreams() {\r\n const initializedCarousel$: Observable<string> = this.carouselService.initializedState.pipe(\r\n tap(() => {\r\n this.initialize();\r\n this.updateNavPages();\r\n this.draw();\r\n this.update();\r\n this.carouselService.sendChanges();\r\n })\r\n );\r\n\r\n const changedSettings$: Observable<any> = this.carouselService.changedState.pipe(\r\n filter(data => data.property.name === CarouselProperty.Position),\r\n tap(() => this.update())\r\n );\r\n\r\n const refreshedCarousel$: Observable<string> = this.carouselService.refreshedState.pipe(\r\n tap(() => {\r\n this.updateNavPages();\r\n this.draw();\r\n this.update();\r\n this.carouselService.sendChanges();\r\n })\r\n );\r\n\r\n this.navSubscription = merge(initializedCarousel$, changedSettings$, refreshedCarousel$).subscribe();\r\n }\r\n\r\n private initialize() {\r\n this.navigationModel.disabled = true;\r\n if (this.carouselService.settings.navText) {\r\n this.navigationModel.previous.label = this.carouselService.settings.navText[0];\r\n this.navigationModel.next.label = this.carouselService.settings.navText[1];\r\n }\r\n\r\n if (this.carouselService.settings.navIcons) {\r\n this.navigationModel.previous.icon = this.carouselService.settings.navIcons[0];\r\n this.navigationModel.next.icon = this.carouselService.settings.navIcons[1];\r\n }\r\n\r\n if (!this.carouselService.settings.navText && !this.carouselService.settings.navIcons) {\r\n this.navigationModel.previous.label = CarouselServiceConstants.DEFAULT_NAV_TEXT[0];\r\n this.navigationModel.next.label = CarouselServiceConstants.DEFAULT_NAV_TEXT[1];\r\n }\r\n\r\n this.navigationDotsModel.disabled = true;\r\n\r\n this.carouselService.navigationModel = this.navigationModel;\r\n this.carouselService.navigationDotsModel = this.navigationDotsModel;\r\n }\r\n\r\n private updateNavPages() {\r\n let i: number, j: number, k: number;\r\n const lower: number = this.carouselService.clones().length / 2,\r\n upper: number = lower + this.carouselService.items().length,\r\n maximum: number = this.carouselService.maximum(true),\r\n pages: any[] = [],\r\n settings: CarouselOptionsModel = this.carouselService.settings;\r\n let size = settings.center || settings.autoWidth || settings.navigationDotsModel\r\n ? 1 : settings.dotsEach || settings.items;\r\n size = +(size as number);\r\n if (settings.slideBy !== 'page') {\r\n settings.slideBy = Math.min(+(settings.slideBy as number), settings.items || 0);\r\n }\r\n\r\n if (settings.dots || settings.slideBy === 'page') {\r\n\r\n for (i = lower, j = 0, k = 0; i < upper; i++) {\r\n if (j >= size || j === 0) {\r\n pages.push({\r\n start: Math.min(maximum, i - lower),\r\n end: i - lower + size - 1\r\n });\r\n if (Math.min(maximum, i - lower) === maximum) {\r\n break;\r\n }\r\n j = 0, ++k;\r\n }\r\n j += this.carouselService.mergers(this.carouselService.relative(i)) as number;\r\n }\r\n }\r\n this.pages = pages;\r\n }\r\n\r\n private draw() {\r\n let difference: number;\r\n const settings: CarouselOptionsModel = this.carouselService.settings,\r\n items: CarouselSlideDirective[] = this.carouselService.items(),\r\n disabled = items.length <= (settings.items || 0);\r\n\r\n this.navigationModel.disabled = !settings.nav || disabled;\r\n this.navigationDotsModel.disabled = !settings.dots || disabled;\r\n\r\n if (settings.dots) {\r\n difference = this.pages.length - this.navigationDotsModel.dots.length;\r\n\r\n if (settings.navigationDotsModel && difference !== 0) {\r\n this.navigationDotsModel.dots = [];\r\n items.forEach(item => {\r\n this.navigationDotsModel.dots.push({\r\n active: false,\r\n id: `dot-${item.id}`\r\n });\r\n });\r\n } else if (difference > 0) {\r\n const startI: number = this.navigationDotsModel.dots.length > 0 ? this.navigationDotsModel.dots.length : 0;\r\n for (let i = 0; i < difference; i++) {\r\n this.navigationDotsModel.dots.push({\r\n active: false,\r\n id: `dot-${i + startI}`\r\n });\r\n }\r\n } else if (difference < 0) {\r\n this.navigationDotsModel.dots.splice(difference, Math.abs(difference))\r\n }\r\n }\r\n\r\n this.carouselService.navigationModel = this.navigationModel;\r\n this.carouselService.navigationDotsModel = this.navigationDotsModel;\r\n };\r\n\r\n private update() {\r\n this.updateNavButtons();\r\n this.updateDots();\r\n }\r\n\r\n private updateNavButtons() {\r\n const settings: CarouselOptionsModel = this.carouselService.settings,\r\n loop: boolean = settings.loop || settings.rewind || false,\r\n index: number = this.carouselService.relative(this.carouselService.current() || 0);\r\n\r\n if (settings.nav) {\r\n this.navigationModel.previous.disabled = !loop && index <= this.carouselService.minimum(true);\r\n this.navigationModel.next.disabled = !loop && index >= this.carouselService.maximum(true);\r\n }\r\n\r\n this.carouselService.navigationModel = this.navigationModel;\r\n }\r\n\r\n private updateDots() {\r\n let curActiveDotI: number;\r\n\r\n if (!this.carouselService.settings.dots)\r\n return;\r\n\r\n this.navigationDotsModel.dots.forEach(item => {\r\n if (item.active === true) {\r\n item.active = false;\r\n }\r\n })\r\n\r\n curActiveDotI = this.getCurrent();\r\n if (this.navigationDotsModel.dots.length) {\r\n this.navigationDotsModel.dots[curActiveDotI].active = true;\r\n }\r\n this.carouselService.navigationDotsModel = this.navigationDotsModel;\r\n }\r\n\r\n private getCurrent(): any {\r\n const current: number = this.carouselService.relative(this.carouselService.current() || 0);\r\n let finalCurrent: number;\r\n const pages: any = this.pages.filter((page, index) => {\r\n return page.start <= current && page.end >= current;\r\n }).pop();\r\n\r\n finalCurrent = this.pages.findIndex(page => {\r\n return page.start === pages.start && page.end === pages.end;\r\n });\r\n\r\n return finalCurrent;\r\n };\r\n\r\n private getPosition(successor: number | boolean): number {\r\n let position: number, length: number;\r\n const settings: CarouselOptionsModel = this.carouselService.settings;\r\n\r\n if (settings.slideBy === 'page') {\r\n position = this.getCurrent();\r\n length = this.pages.length;\r\n successor ? ++position : --position;\r\n position = this.pages[((position % length) + length) % length].start;\r\n } else {\r\n position = this.carouselService.relative(this.carouselService.current() || 0);\r\n length = this.carouselService.items().length;\r\n successor ? position += +(settings.slideBy as number) : position -= +(settings.slideBy as number);\r\n }\r\n\r\n return position;\r\n };\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { Component, Input } from '@angular/core';\r\nimport { CommonConstants } from 'ngx-sfc-common';\r\nimport { getCssLikeValue } from 'ngx-sfc-common';\r\nimport { CarouselSlideModel } from '../../models/slide.model';\r\nimport { CarouselAnimateService } from '../../service/animate/carousel-animate.service';\r\nimport { CarouselService } from '../../service/carousel/carousel.service';\r\nimport { CarouselStageModel } from './carousel-stage.model';\r\n\r\n@Component({\r\n selector: 'sfc-carousel-stage',\r\n templateUrl: './carousel-stage.component.html',\r\n styleUrls: ['./carousel-stage.component.scss'],\r\n animations: [\r\n trigger('autoHeight', [\r\n state('nulled', style({ height: 0 })),\r\n state('full', style({ height: '*' })),\r\n transition('full => nulled', [\r\n animate('700ms 350ms')\r\n ]),\r\n transition('nulled => full', [\r\n animate(350)\r\n ]),\r\n ])\r\n ]\r\n})\r\nexport class CarouselStageComponent {\r\n\r\n @Input()\r\n stageModel: CarouselStageModel = {\r\n width: 0,\r\n paddingL: 0,\r\n paddingR: 0,\r\n transform: CommonConstants.EMPTY_STRING,\r\n transition: CommonConstants.EMPTY_STRING\r\n };\r\n\r\n @Input()\r\n slidesModel: CarouselSlideModel[] = [];\r\n\r\n get styles() {\r\n return {\r\n width: getCssLikeValue(this.stageModel.width as number),\r\n transform: this.stageModel.transform,\r\n transition: this.stageModel.transition,\r\n paddingLeft: getCssLikeValue(this.stageModel.paddingL as number),\r\n paddingRight: getCssLikeValue(this.stageModel.paddingR as number)\r\n }\r\n }\r\n\r\n constructor(private carouselService: CarouselService, private animateService: CarouselAnimateService) { }\r\n\r\n getItemStyles(slide: CarouselSlideModel) {\r\n return {\r\n width: getCssLikeValue(slide.width as number),\r\n marginLeft: getCssLikeValue(slide.marginL as number),\r\n marginRight: getCssLikeValue(slide.marginR as number),\r\n left: getCssLikeValue(slide.left as number)\r\n }\r\n }\r\n\r\n onTransitionEnd() {\r\n this.carouselService.onTransitionEnd();\r\n }\r\n\r\n clear(id: string) {\r\n this.animateService.clear(id);\r\n }\r\n\r\n preparePublicSlide = (slide: CarouselSlideModel): CarouselSlideModel => {\r\n const newSlide = { ...slide };\r\n newSlide.tplRef = null;\r\n return newSlide;\r\n }\r\n}\r\n","<div class=\"container\" [ngStyle]=\"styles\" (transitionend)=\"onTransitionEnd()\">\r\n <ng-container *ngFor=\"let slide of slidesModel; let i = index\">\r\n <div class=\"item\" [ngClass]=\"slide.classes\" [ngStyle]=\"getItemStyles(slide)\" (animationend)=\"clear(slide.id)\"\r\n [@autoHeight]=\"slide.heightState\">\r\n <ng-template *ngIf=\"slide.load\" [ngTemplateOutlet]=\"slide.tplRef\"\r\n [ngTemplateOutletContext]=\"{ $implicit: preparePublicSlide(slide), index: i }\">\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n</div>","import {\r\n AfterContentInit, ChangeDetectorRef,\r\n Component, ContentChildren, ElementRef, EventEmitter,\r\n HostBinding, HostListener, Inject, Input, OnDestroy,\r\n OnInit, Output, QueryList\r\n} from '@angular/core';\r\nimport { any, ButtonType, UIClass } from 'ngx-sfc-common';\r\nimport { DOCUMENT, ResizeService } from 'ngx-sfc-common';\r\nimport {\r\n switchMap, delay, tap, Observable, Subscription,\r\n filter, skip, take, map, from, of, toArray, merge\r\n} from 'rxjs';\r\nimport { CarouselProperty } from './carousel.enum';\r\nimport { CarouselSlideDirective } from './directive/carousel-slide.directive';\r\nimport { CarouselDOMModel } from './models/dom.model';\r\nimport { INavigationContextModel } from './models/navigation-context.model';\r\nimport { CarouselNavigationDotsModel, CarouselNavigationModel } from './models/navigation.model';\r\nimport { CarouselOptionsModel } from './models/options.model';\r\nimport { CarouselSlideModel, CarouselSlideEvent } from './models/slide.model';\r\nimport { CarouselStageModel } from './parts/stage/carousel-stage.model';\r\nimport { CarouselAnimateService } from './service/animate/carousel-animate.service';\r\nimport { CarouselAutoplayService } from './service/autoplay/carousel-autoplay.service';\r\nimport { CarouselServiceConstants } from './service/carousel/carousel-service.constants';\r\nimport { CarouselService } from './service/carousel/carousel.service';\r\nimport { CarouselLazyLoadService } from './service/lazy/carousel-lazy-load.service';\r\nimport { CarouselNavigationService } from './service/navigation/carousel-navigation.service';\r\n\r\n@Component({\r\n selector: 'sfc-carousel',\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n providers: [\r\n CarouselNavigationService,\r\n CarouselAutoplayService,\r\n CarouselService,\r\n CarouselAnimateService,\r\n CarouselLazyLoadService\r\n ]\r\n})\r\nexport class CarouselComponent implements OnInit, AfterContentInit, OnDestroy {\r\n\r\n ButtonType = ButtonType;\r\n\r\n @Input()\r\n options!: CarouselOptionsModel;\r\n\r\n @Input()\r\n disabled: boolean = false;\r\n\r\n @Output()\r\n translated = new EventEmitter<CarouselSlideEvent>();\r\n\r\n @Output()\r\n initialized = new EventEmitter<CarouselSlideEvent>();\r\n\r\n @Output()\r\n changing = new EventEmitter<CarouselSlideEvent>();\r\n\r\n @Output()\r\n changed = new EventEmitter<CarouselSlideEvent>();\r\n\r\n @ContentChildren(CarouselSlideDirective, { descendants: true })\r\n slides!: QueryList<CarouselSlideDirective>;\r\n\r\n // SUBSCRIPTIONS\r\n\r\n private resizeSubscription!: Subscription;\r\n\r\n private carouselSubscription!: Subscription;\r\n\r\n private slidesChangesSubscription!: Subscription;\r\n\r\n // END SUBSCRIPTIONS\r\n\r\n // MODELS\r\n\r\n carouselDOMModel!: CarouselDOMModel;\r\n\r\n stageModel!: CarouselStageModel;\r\n\r\n slidesModel: CarouselSlideModel[] = [];\r\n\r\n navigationModel!: CarouselNavigationModel;\r\n\r\n navigationDotsModel!: CarouselNavigationDotsModel;\r\n\r\n // END MODELS\r\n\r\n slideEvent!: CarouselSlideEvent;\r\n\r\n carouselLoaded = false;\r\n\r\n navigationContext!: INavigationContextModel;\r\n\r\n @HostBinding('class.rtl')\r\n get rtl(): boolean {\r\n return this.carouselDOMModel?.rtl || false;\r\n }\r\n\r\n get clientWidth(): number {\r\n return this.el.nativeElement.querySelector('.container').clientWidth;\r\n }\r\n\r\n private carouselWindowWidth: number = 0;\r\n\r\n private documentRef: Document;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private resizeService: ResizeService,\r\n private carouselService: CarouselService,\r\n private navigationService: CarouselNavigationService,\r\n private autoplayService: CarouselAutoplayService,\r\n private lazyLoadService: CarouselLazyLoadService,\r\n private animateService: CarouselAnimateService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Inject(DOCUMENT) documentRef: any\r\n ) {\r\n this.documentRef = documentRef as Document;\r\n }\r\n\r\n @HostListener('document:visibilitychange')\r\n onVisibilityChange() {\r\n if (this.carouselService.settings.autoplay) {\r\n switch (this.documentRef.visibilityState) {\r\n case UIClass.Visible:\r\n if (!this.autoplayService.isAutoplayStopped)\r\n this.autoplayService.play();\r\n break;\r\n case UIClass.Hidden:\r\n this.autoplayService.pause();\r\n break;\r\n }\r\n }\r\n };\r\n\r\n ngOnInit() {\r\n this.carouselWindowWidth = this.clientWidth;\r\n this.initDataStreams();\r\n }\r\n\r\n ngAfterContentInit() {\r\n if (any(this.slides.toArray())) {\r\n this.carouselService.setup(this.carouselWindowWidth, this.slides.toArray(), this.options);\r\n this.carouselService.initialize(this.slides.toArray());\r\n\r\n this.initResizeWatcher();\r\n }\r\n\r\n this.slidesChangesSubscription = this.slides.changes.pipe(\r\n tap((slides) => {\r\n if (any(slides)) {\r\n this.carouselService.setup(this.carouselWindowWidth, slides.toArray(), this.options);\r\n this.carouselService.initialize(slides.toArray());\r\n } else {\r\n this.carouselLoaded = false;\r\n }\r\n })\r\n ).subscribe();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.resizeSubscription)\r\n this.resizeSubscription.unsubscribe();\r\n\r\n if (this.slidesChangesSubscription)\r\n this.slidesChangesSubscription.unsubscribe();\r\n\r\n if (this.carouselSubscription)\r\n this.carouselSubscription.unsubscribe();\r\n }\r\n\r\n initDataStreams() {\r\n const _viewCurSettings$ = this.carouselService.viewCurrrentSettings.pipe(\r\n tap(data => {\r\n this.carouselDOMModel = data.carouselDOMModel;\r\n this.stageModel = data.stageModel;\r\n this.slidesModel = data.slidesModel;\r\n if (!this.carouselLoaded) {\r\n this.carouselLoaded = true;\r\n }\r\n this.navigationModel = data.navigationModel;\r\n this.navigationDotsModel = data.navigationDotsModel;\r\n this.navigationContext = {\r\n previous: { model: this.navigationModel?.previous, action: this.previous.bind(this) },\r\n next: { model: this.navigationModel?.next, action: this.next.bind(this) }\r\n };\r\n this.changeDetectorRef.markForCheck();\r\n })\r\n );\r\n\r\n const _initializedCarousel$ = this.carouselService.initializedState.pipe(\r\n tap(() => {\r\n this.gatherTranslatedData();\r\n this.initialized.emit(this.slideEvent);\r\n })\r\n )\r\n\r\n const _translatedCarousel$ = this.carouselService.translatedState.pipe(\r\n tap(() => {\r\n this.gatherTranslatedData();\r\n this.translated.emit(this.slideEvent);\r\n })\r\n );\r\n\r\n const _changeCarousel$ = this.carouselService.changeState.pipe(\r\n tap(() => {\r\n this.gatherTranslatedData();\r\n this.changing.emit(this.slideEvent);\r\n })\r\n );\r\n\r\n const _changedCarousel$ = this.carouselService.changeState.pipe(\r\n switchMap(value => {\r\n const changedPosition: Observable<CarouselSlideEvent> = of(value).pipe(\r\n filter(() => value.property.name === CarouselProperty.Position),\r\n switchMap(() => from(this.slidesModel)),\r\n skip(value.property.value),\r\n take(this.carouselService.settings.items || 0),\r\n map(slide => {\r\n const id = slide.id.indexOf(CarouselServiceConstants.CLONE_ID_PREFIX) >= 0 ? slide.id.slice(CarouselServiceConstants.CLONE_ID_PREFIX.length) : slide.id;\r\n return { ...slide, id: id, isActive: true };\r\n }),\r\n toArray(),\r\n map(slides => {\r\n return {\r\n slides: slides,\r\n startPosition: this.carouselService.relative(value.property.value)\r\n }\r\n })\r\n );\r\n\r\n return merge(changedPosition);\r\n }),\r\n tap(slidesData => {\r\n this.gatherTranslatedData();\r\n this.changed.emit(slidesData.slides?.length ? slidesData : this.slideEvent);\r\n })\r\n );\r\n\r\n this.carouselSubscription = merge(\r\n _viewCurSettings$,\r\n _translatedCarousel$,\r\n _changeCarousel$,\r\n _changedCarousel$,\r\n _initializedCarousel$\r\n ).subscribe();\r\n }\r\n\r\n private initResizeWatcher() {\r\n if (Object.keys(this.carouselService.options.responsive || {}).length) {\r\n this.resizeSubscription = this.resizeService.onResize$\r\n .pipe(\r\n filter(() => this.carouselWindowWidth !== this.clientWidth),\r\n delay(this.carouselService.settings.responsiveRefreshRate || 0)\r\n ).subscribe(() => {\r\n this.carouselService.onResize(this.clientWidth);\r\n this.carouselWindowWidth = this.clientWidth;\r\n });\r\n }\r\n }\r\n\r\n onTransitionEnd() {\r\n this.carouselService.onTransitionEnd();\r\n }\r\n\r\n next() {\r\n if (this.carouselLoaded)\r\n this.navigationService.next(this.carouselService.settings.navSpeed || false);\r\n }\r\n\r\n previous() {\r\n if (this.carouselLoaded)\r\n this.navigationService.previous(this.carouselService.settings.navSpeed || false);\r\n }\r\n\r\n moveByDot(dotId: string) {\r\n if (this.carouselLoaded)\r\n this.navigationService.moveByDot(dotId);\r\n }\r\n\r\n pause() {\r\n this.autoplayService.startPausing();\r\n }\r\n\r\n play() {\r\n this.autoplayService.startPlayingMouseLeave();\r\n }\r\n\r\n stopAutoplay() {\r\n this.autoplayService.isAutoplayStopped = true;\r\n this.autoplayService.stop();\r\n }\r\n\r\n startAutoplay() {\r\n this.autoplayService.isAutoplayStopped = false;\r\n this.autoplayService.play();\r\n }\r\n\r\n private gatherTranslatedData() {\r\n let startPosition: number;\r\n const activeSlides: CarouselSlideModel[] = this.slidesModel\r\n .filter(slide => slide.isActive === true)\r\n .map(slide => {\r\n return {\r\n id: slide.id.indexOf(CarouselServiceConstants.CLONE_ID_PREFIX) >= 0 ? slide.id.slice(CarouselServiceConstants.CLONE_ID_PREFIX.length) : slide.id,\r\n width: slide.width,\r\n marginL: slide.marginL,\r\n marginR: slide.marginR,\r\n center: slide.isCentered,\r\n tplRef: null,\r\n classes: {}\r\n }\r\n });\r\n startPosition = this.carouselService.relative(this.carouselService.current() || 0);\r\n this.slideEvent = {\r\n startPosition: startPosition,\r\n slides: activeSlides\r\n }\r\n }\r\n}\r\n","<div class=\"container\" (mouseover)=\"pause()\" (mouseleave)=\"play()\">\r\n <div class=\"upside\">\r\n <ng-container *ngIf=\"slides.toArray().length && !options.navBottom\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel.disabled\">\r\n <ng-container *ngTemplateOutlet=\"navigationAction;context:{$implicit: navigationContext.previous}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <div *ngIf=\"carouselLoaded\" class=\"stage\">\r\n <sfc-carousel-stage [stageModel]=\"stageModel\" [slidesModel]=\"slidesModel\"></sfc-carousel-stage>\r\n </div>\r\n\r\n <ng-container *ngIf=\"slides.toArray().length && !options.navBottom\">\r\n <div class=\"navigation\" [class.disabled]=\"navigationModel.disabled\">\r\n <ng-container *ngTemplateOutlet=\"navigationAction;context:{$implicit: navigationContext.next}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"downside\">\r\n <ng-container *ngIf=\"slides.toArray().length\">\r\n <div class=\"navigation\" *ngIf=\"options.navBottom\" [class.disabled]=\"navigationModel.disabled\">\r\n <ng-container *ngTemplateOutlet=\"navigationAction;context:{$implicit: navigationContext.previous}\">\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"navigationAction;context:{$implicit: navigationContext.next}\">\r\n </ng-container>\r\n </div>\r\n <div class=\"dots\" *ngIf=\"!navigationDotsModel.disabled\">\r\n <sfc-dot *ngFor=\"let dot of navigationDotsModel?.dots\" [disabled]=\"disabled\" [active]=\"dot.active\"\r\n (click)=\"moveByDot(dot.id)\">\r\n </sfc-dot>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #navigationAction let-context>\r\n <sfc-button [disabled]=\"disabled\" [text]=\"context.model?.label\" [iconBefore]=\"context.model?.icon\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"context.action()\">\r\n </sfc-button>\r\n </ng-template>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { Chart } from 'chart.js';\r\nimport {\r\n TabsComponent,\r\n TabLabelIconComponent,\r\n TabLabelIconSliderComponent,\r\n TabLabelLineComponent,\r\n TabLabelLineSliderComponent,\r\n SideMenuComponent,\r\n DropdownMenuComponent,\r\n NavigationMenuComponent,\r\n RouterMenuComponent,\r\n StarsComponent,\r\n AvatarComponent,\r\n ProgressLineComponent,\r\n ProgressSemiCircleComponent,\r\n ProgressCircleComponent,\r\n TagsComponent,\r\n SliderComponent,\r\n TimelineComponent,\r\n NotificationComponent,\r\n ChartComponent,\r\n TableComponent,\r\n DefaultTableColumnComponent,\r\n SelectableTableColumnComponent,\r\n ColumnsToggleComponent,\r\n DefaultTableRowComponent,\r\n ExpandedTableRowComponent,\r\n DefaultTableCardComponent,\r\n CarouselComponent,\r\n CarouselSlideDirective\r\n} from './components';\r\nimport {\r\n DropdownMenuItemComponent,\r\n NavigationMenuItemComponent,\r\n SideMenuHeaderComponent,\r\n SideMenuItemComponent,\r\n SideMenuItemContentComponent,\r\n SideMenuTitleComponent,\r\n RouterMenuItemComponent,\r\n SliderItemComponent,\r\n SliderButtonComponent,\r\n SliderPaginationComponent,\r\n TimelineItemComponent,\r\n NotificationContentComponent,\r\n CarouselStageComponent,\r\n AvatarBadgeComponent,\r\n SortingColumnComponent\r\n} from './components/no-export-index';\r\n\r\nimport {\r\n ArcElement,\r\n BarController,\r\n BarElement,\r\n BubbleController,\r\n CategoryScale,\r\n DoughnutController,\r\n Filler,\r\n Legend,\r\n LinearScale,\r\n LineController,\r\n LineElement,\r\n PieController,\r\n PointElement,\r\n PolarAreaController,\r\n RadarController,\r\n RadialLinearScale,\r\n ScatterController,\r\n TimeSeriesScale,\r\n Title,\r\n Tooltip\r\n} from 'chart.js';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { NgxSfcCommonModule } from 'ngx-sfc-common';\r\n\r\nChart.register(\r\n Title, Tooltip, Filler, Legend,\r\n LineController, LineElement, PointElement, LinearScale, CategoryScale,\r\n BarController, BarElement,\r\n DoughnutController, ArcElement,\r\n RadarController, RadialLinearScale,\r\n PieController,\r\n PolarAreaController,\r\n BubbleController,\r\n ScatterController,\r\n TimeSeriesScale);\r\n\r\n@NgModule({\r\n declarations: [\r\n // Tabs\r\n TabsComponent,\r\n TabLabelLineComponent,\r\n TabLabelIconComponent,\r\n TabLabelLineSliderComponent,\r\n TabLabelIconSliderComponent,\r\n // Menus\r\n SideMenuComponent,\r\n SideMenuHeaderComponent,\r\n SideMenuItemComponent,\r\n SideMenuTitleComponent,\r\n SideMenuItemContentComponent,\r\n DropdownMenuComponent,\r\n DropdownMenuItemComponent,\r\n NavigationMenuComponent,\r\n NavigationMenuItemComponent,\r\n RouterMenuComponent,\r\n RouterMenuItemComponent,\r\n // Stars\r\n StarsComponent,\r\n // Avatar\r\n AvatarComponent,\r\n AvatarBadgeComponent,\r\n // Progress\r\n ProgressLineComponent,\r\n ProgressSemiCircleComponent,\r\n ProgressCircleComponent,\r\n // Tags\r\n TagsComponent,\r\n // Slider\r\n SliderComponent,\r\n SliderItemComponent,\r\n SliderButtonComponent,\r\n SliderPaginationComponent,\r\n // Timeline\r\n TimelineComponent,\r\n TimelineItemComponent,\r\n // Notification\r\n NotificationComponent,\r\n NotificationContentComponent,\r\n // Chart\r\n ChartComponent,\r\n // Table\r\n TableComponent,\r\n DefaultTableColumnComponent,\r\n SelectableTableColumnComponent,\r\n ColumnsToggleComponent,\r\n SortingColumnComponent,\r\n DefaultTableRowComponent,\r\n ExpandedTableRowComponent,\r\n DefaultTableCardComponent,\r\n // Carousel\r\n CarouselComponent,\r\n CarouselStageComponent,\r\n CarouselSlideDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n NgxSfcCommonModule\r\n ],\r\n exports: [\r\n // Tabs\r\n TabsComponent,\r\n TabLabelLineComponent,\r\n TabLabelIconComponent,\r\n TabLabelLineSliderComponent,\r\n TabLabelIconSliderComponent,\r\n // Menus\r\n SideMenuComponent,\r\n DropdownMenuComponent,\r\n NavigationMenuComponent,\r\n RouterMenuComponent,\r\n // Stars\r\n StarsComponent,\r\n // Avatar\r\n AvatarComponent,\r\n // Progress\r\n ProgressLineComponent,\r\n ProgressSemiCircleComponent,\r\n ProgressCircleComponent,\r\n // Tags\r\n TagsComponent,\r\n // Slider\r\n SliderComponent,\r\n // Timeline\r\n TimelineComponent,\r\n // Notification\r\n NotificationComponent,\r\n // Chart\r\n ChartComponent,\r\n // Table\r\n TableComponent,\r\n ExpandedTableRowComponent,\r\n // Carousel\r\n CarouselComponent,\r\n CarouselSlideDirective\r\n ]\r\n})\r\nexport class NgxSfcComponentsModule { }\r\n","/*\r\n * Public API Surface of ngx-sfc-components\r\n */\r\n\r\nexport * from './lib/ngx-sfc-components.module';\r\nexport * from './lib/components';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TabService","i2","i3","i1","i2.SideMenuItemContentComponent","i2.SideMenuHeaderComponent","i3.SideMenuItemComponent","i4.SideMenuTitleComponent","i4.DropdownMenuItemComponent","i2.NavigationMenuItemComponent","i2.RouterMenuItemComponent","i2.StarsComponent","i3.AvatarBadgeComponent","i1.SliderService","i2.SliderAutomaticService","i4","i5","i6.SliderItemComponent","i7.SliderButtonComponent","i8.SliderPaginationComponent","i2.TimelineItemComponent","i3.NotificationContentComponent","i1.ChartThemeService","i2.ChartSettingsService","i1.TableSelectService","i1.ColumnsToggleService","i2.TableSelectService","i5.DefaultTableColumnComponent","i6.SelectableTableColumnComponent","i7.ColumnsToggleComponent","i8.SortingColumnComponent","i9.DefaultTableRowComponent","i10.DefaultTableCardComponent","i1.CarouselService","i2.CarouselAnimateService","i7","i8.CarouselStageComponent"],"mappings":"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"}