{"version":3,"file":"ngx-sfc-common.mjs","sources":["../../../projects/ngx-sfc-common/src/lib/enums/size.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/direction.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/media.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/position.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/sorting-direction.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/theme.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/ui.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/sequence.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/compare.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/state.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/notification-type.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/select.enum.ts","../../../projects/ngx-sfc-common/src/lib/enums/items-view.enum.ts","../../../projects/ngx-sfc-common/src/lib/services/document-ref.service.ts","../../../projects/ngx-sfc-common/src/lib/services/window-ref.service.ts","../../../projects/ngx-sfc-common/src/lib/services/resize.service.ts","../../../projects/ngx-sfc-common/src/lib/services/load-more/load-more.service.ts","../../../projects/ngx-sfc-common/src/lib/services/pagination/pagination.service.ts","../../../projects/ngx-sfc-common/src/lib/services/sorting/sorting.service.ts","../../../projects/ngx-sfc-common/src/lib/models/observable.model.ts","../../../projects/ngx-sfc-common/src/lib/services/reload/reload.service.ts","../../../projects/ngx-sfc-common/src/lib/directives/click-outside/click-outside.directive.ts","../../../projects/ngx-sfc-common/src/lib/constants/common.constants.ts","../../../projects/ngx-sfc-common/src/lib/constants/date-time.constants.ts","../../../projects/ngx-sfc-common/src/lib/constants/ui.constants.ts","../../../projects/ngx-sfc-common/src/lib/directives/show-hide-element/show-hide-element.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/if/if.directive.ts","../../../projects/ngx-sfc-common/src/lib/utils/date-time.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/common.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/string.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/file.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/ui.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/collections.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/http.utils.ts","../../../projects/ngx-sfc-common/src/lib/directives/throw-element-on-hover/throw-element-on-hover.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/template-reference/template-reference.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/mouse-down/mouse-down.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/component-size/component-size.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/destroy-parent/destroy-parent.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/dom-changes/dom-changes.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/scroll-tracker/scroll-tracker.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/scroll-into-view/scroll-into-view.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/image-size/services/image-load.service.ts","../../../projects/ngx-sfc-common/src/lib/directives/image-size/image-load.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/collapse-expand/collapse-expand.directive.ts","../../../projects/ngx-sfc-common/src/lib/directives/component-reference/component-reference.directive.ts","../../../projects/ngx-sfc-common/src/lib/pipes/switch-multi-case/switch-multi-case.pipe.ts","../../../projects/ngx-sfc-common/src/lib/pipes/sort-by/sort-by.pipe.ts","../../../projects/ngx-sfc-common/src/lib/pipes/repeat/repeat.pipe.ts","../../../projects/ngx-sfc-common/src/lib/components/button/button-type.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/button/button.component.ts","../../../projects/ngx-sfc-common/src/lib/components/button/button.component.html","../../../projects/ngx-sfc-common/src/lib/components/tooltip/tooltip-type.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/tooltip/tooltip.component.ts","../../../projects/ngx-sfc-common/src/lib/components/delimeter/delimeter.component.ts","../../../projects/ngx-sfc-common/src/lib/components/loader/loader.constants.ts","../../../projects/ngx-sfc-common/src/lib/components/loader/service/loader.service.ts","../../../projects/ngx-sfc-common/src/lib/components/loader/loader-base.component.ts","../../../projects/ngx-sfc-common/src/lib/components/loader/bounce/bounce-loader.component.ts","../../../projects/ngx-sfc-common/src/lib/components/loader/bounce/bounce-loader.component.html","../../../projects/ngx-sfc-common/src/lib/components/loader/circle/circle-loader-type.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/loader/circle/circle-loader.component.ts","../../../projects/ngx-sfc-common/src/lib/components/loader/circle/circle-loader.component.html","../../../projects/ngx-sfc-common/src/lib/components/modal/modal-template.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/service/modal.service.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/directive/open/modal-open.directive.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/directive/click/modal-open-on-click.directive.ts","../../../projects/ngx-sfc-common/src/lib/components/template-content/template-content.component.ts","../../../projects/ngx-sfc-common/src/lib/components/template-content/template-content.component.html","../../../projects/ngx-sfc-common/src/lib/components/modal/header/default/default-modal-header.constants.ts","../../../projects/ngx-sfc-common/src/lib/components/close/close.component.ts","../../../projects/ngx-sfc-common/src/lib/components/close/close.component.html","../../../projects/ngx-sfc-common/src/lib/components/modal/header/default/default-modal-header.component.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/header/default/default-modal-header.component.html","../../../projects/ngx-sfc-common/src/lib/components/modal/footer/default/default-modal-footer.constants.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/footer/default/default-modal-footer.component.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/footer/default/default-modal-footer.component.html","../../../projects/ngx-sfc-common/src/lib/components/modal/modal.component.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/modal.component.html","../../../projects/ngx-sfc-common/src/lib/components/hamburger/hamburger-base.component.ts","../../../projects/ngx-sfc-common/src/lib/components/hamburger/default/hamburger.component.ts","../../../projects/ngx-sfc-common/src/lib/components/hamburger/default/hamburger.component.html","../../../projects/ngx-sfc-common/src/lib/components/hamburger/menu/hamburger-menu.component.ts","../../../projects/ngx-sfc-common/src/lib/components/hamburger/menu/hamburger-menu.component.html","../../../projects/ngx-sfc-common/src/lib/components/dot/dot.component.ts","../../../projects/ngx-sfc-common/src/lib/components/dots/dots.component.ts","../../../projects/ngx-sfc-common/src/lib/components/dots/dots.component.html","../../../projects/ngx-sfc-common/src/lib/components/toggle-switcher/toggle-switcher.component.ts","../../../projects/ngx-sfc-common/src/lib/components/toggle-switcher/toggle-switcher.component.html","../../../projects/ngx-sfc-common/src/lib/components/checkmark/checkmark-type.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/checkmark/checkmark.component.ts","../../../projects/ngx-sfc-common/src/lib/components/checkmark/checkmark.component.html","../../../projects/ngx-sfc-common/src/lib/components/pagination/pagination.constants.ts","../../../projects/ngx-sfc-common/src/lib/components/pagination/pagination.component.ts","../../../projects/ngx-sfc-common/src/lib/components/pagination/pagination.component.html","../../../projects/ngx-sfc-common/src/lib/components/load-container/enums/load-container-load-type.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/load-container/load-container.constants.ts","../../../projects/ngx-sfc-common/src/lib/components/load-container/enums/load-container-changes-source.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/load-container/enums/load-container-type.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/load-more-button/load-more-button.component.ts","../../../projects/ngx-sfc-common/src/lib/components/load-more-button/load-more-button.component.html","../../../projects/ngx-sfc-common/src/lib/components/load-container/load-container.component.ts","../../../projects/ngx-sfc-common/src/lib/components/load-container/load-container.component.html","../../../projects/ngx-sfc-common/src/lib/components/icon/icon.component.ts","../../../projects/ngx-sfc-common/src/lib/components/icon/icon.component.html","../../../projects/ngx-sfc-common/src/lib/components/collapse-expand/collapse-expand.constants.ts","../../../projects/ngx-sfc-common/src/lib/components/collapse-expand/collapse-expand.component.ts","../../../projects/ngx-sfc-common/src/lib/components/collapse-expand/collapse-expand.component.html","../../../projects/ngx-sfc-common/src/lib/components/collapse-expand-container/collapse-expand-container.component.ts","../../../projects/ngx-sfc-common/src/lib/components/collapse-expand-container/collapse-expand-container.component.html","../../../projects/ngx-sfc-common/src/lib/components/toggle/toggle.component.ts","../../../projects/ngx-sfc-common/src/lib/components/message/message.component.ts","../../../projects/ngx-sfc-common/src/lib/components/message/message.component.html","../../../projects/ngx-sfc-common/src/lib/ngx-sfc-common.module.ts","../../../projects/ngx-sfc-common/src/public-api.ts","../../../projects/ngx-sfc-common/src/ngx-sfc-common.ts"],"sourcesContent":["\r\n/**\r\n * Component sizes\r\n */\r\nexport enum ComponentSize {\r\n    Small = 'small',\r\n    Medium = 'medium',\r\n    Large = 'large',\r\n    Custom = 'custom'\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","/**\r\n * Direction types\r\n */\r\nexport enum Direction {\r\n    Horizontal = 'horizontal',\r\n    Vertical = 'vertical'\r\n}","/**\r\n * CSS Media limits\r\n */\r\nexport enum MediaLimits {\r\n    LaptopLarge = 1440,\r\n    Laptop = 1024,\r\n    Tablet = 768,\r\n    MobileLarge = 425,\r\n    Mobile = 375,\r\n    MobileSmall = 320\r\n}","/**\r\n * Position directions\r\n */\r\nexport enum Position {\r\n    Top = 'top',\r\n    Bottom = 'bottom',\r\n    Left = 'left',\r\n    Right = 'right',\r\n    Center = 'center'\r\n}","/**\r\n * Type of sorting\r\n */\r\nexport enum SortingDirection {\r\n    Ascending = 'ascending',\r\n    Descending = 'descending'\r\n}","/**\r\n * Theme types\r\n */\r\nexport enum Theme {\r\n    Default = 'sfc-default-theme',\r\n    Dark = 'sfc-dark-theme'\r\n}","/**\r\n * UI classes\r\n */\r\nexport enum UIClass {\r\n    Active = 'active',\r\n    Valid = 'valid',\r\n    Invalid = 'invalid',\r\n    InnerInvalid = 'inner-invalid',\r\n    Enabled = 'enabled',\r\n    Disabled = 'disabled',\r\n    Selected = 'selected',\r\n    Empty = 'empty',\r\n    Focus = 'focus',\r\n    Open = 'open',\r\n    Loading = 'loading',\r\n    Removed = 'removed',\r\n    Visible = 'visible',\r\n    Hidden = 'hidden',\r\n    Animated = 'animated',\r\n    Expanded = 'expanded',\r\n    Fixed = 'fixed',\r\n    Bordered = 'bordered',\r\n    Even = 'even',\r\n    Pointer = 'pointer',\r\n    Default = 'default',\r\n    Initialization = 'initialization',\r\n    Filled = 'filled'\r\n};","/**\r\n * Sequence types\r\n */\r\nexport enum Sequence {\r\n    Previous = 'previous',\r\n    Next = 'next'\r\n}","/**\r\n * Flag for validation compare\r\n */\r\nexport enum Compare {\r\n    More = 'more',\r\n    Less = 'less'\r\n};","export enum State {\r\n    Added = 'added',\r\n    Removed = 'removed'\r\n}","export enum NotificationType {\r\n    Info = 'info',\r\n    Success = 'success',\r\n    Failed = 'failed'\r\n}","export enum Select {\r\n    Single = 'single',\r\n    Multiple = 'multiple'\r\n}","export enum ItemsView {\r\n    List = 'list',\r\n    Icons = 'icons',\r\n    Cards = 'cards'\r\n}","import { isPlatformBrowser } from '@angular/common';\r\nimport { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID, Injectable } from '@angular/core';\r\nimport { UIClass } from '../enums';\r\n\r\n/**\r\n * Create a new injection token for injecting the Document into a component.\r\n */\r\nexport const DOCUMENT = new InjectionToken<Document>('DocumentToken');\r\n/**\r\n * Define abstract class for obtaining reference to the global Document object.\r\n */\r\nexport abstract class DocumentRef {\r\n  get nativeDocument(): Document | Object {\r\n    throw new Error('Not implemented.');\r\n  }\r\n}\r\n\r\n/**\r\n * Define class that implements the abstract class and returns the native Document object.\r\n */\r\n@Injectable()\r\nexport class BrowserDocumentRef extends DocumentRef {\r\n  constructor() {\r\n    super();\r\n  }\r\n\r\n  /**\r\n   * @returns Document object\r\n   */\r\n  override get nativeDocument(): Document | Object {\r\n    return document;\r\n  }\r\n}\r\n\r\n/**\r\n * Create an factory function that returns the native Document object.\r\n * @param browserDocumentRef Native Document object\r\n * @param platformId id of platform\r\n * @returns type of platform of empty object\r\n */\r\nexport function documentFactory(\r\n  browserDocumentRef: BrowserDocumentRef,\r\n  platformId: Object\r\n): Document | Object {\r\n  if (isPlatformBrowser(platformId)) {\r\n    return browserDocumentRef.nativeDocument;\r\n  }\r\n  const doc = {\r\n    hidden: false,\r\n    visibilityState: UIClass.Visible\r\n  }\r\n  return doc;\r\n}\r\n\r\n/**\r\n * Create a injectable provider for the DocumentRef token that uses the BrowserDocumentRef class.\r\n */\r\nexport const browserDocumentProvider: ClassProvider = {\r\n  provide: DocumentRef,\r\n  useClass: BrowserDocumentRef\r\n};\r\n\r\n/**\r\n * Create an injectable provider that uses the DocumentFactory function for returning the native Document object.\r\n */\r\nexport const documentProvider: FactoryProvider = {\r\n  provide: DOCUMENT,\r\n  useFactory: documentFactory,\r\n  deps: [DocumentRef, PLATFORM_ID]\r\n};\r\n\r\n/**\r\n * Create an array of providers.\r\n */\r\nexport const DOCUMENT_PROVIDERS = [browserDocumentProvider, documentProvider];","import { isPlatformBrowser } from '@angular/common';\r\nimport { ClassProvider, FactoryProvider, InjectionToken, PLATFORM_ID, Injectable } from '@angular/core';\r\n\r\n/**\r\n * Create a new injection token for injecting the window into a component.\r\n */\r\nexport const WINDOW = new InjectionToken('WindowToken');\r\n\r\n/**\r\n * Define abstract class for obtaining reference to the global window object.\r\n */\r\nexport abstract class WindowRef {\r\n  get nativeWindow(): Window | Object {\r\n    throw new Error('Not implemented.');\r\n  }\r\n}\r\n\r\n/**\r\n * Define class that implements the abstract class and returns the native window object.\r\n */\r\n@Injectable()\r\nexport class BrowserWindowRef extends WindowRef {\r\n  constructor() {\r\n    super();\r\n  }\r\n\r\n  /**\r\n   * @returns window object\r\n   */\r\n  override get nativeWindow(): Window | Object {\r\n    return window;\r\n  }\r\n}\r\n\r\n/**\r\n * Create an factory function that returns the native window object.\r\n * @param browserWindowRef Native window object\r\n * @param platformId id of platform\r\n * @returns type of platform of empty object\r\n */\r\nexport function windowFactory(\r\n  browserWindowRef: BrowserWindowRef,\r\n  platformId: Object\r\n): Window | Object {\r\n  if (isPlatformBrowser(platformId)) {\r\n    return browserWindowRef.nativeWindow;\r\n  }\r\n  const obj = {\r\n    setTimeout: (func: any, time: any) => { },\r\n    clearTimeout: (a: any) => { }\r\n  }\r\n  return obj;\r\n}\r\n\r\n/**\r\n * Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class.\r\n */\r\nexport const browserWindowProvider: ClassProvider = {\r\n  provide: WindowRef,\r\n  useClass: BrowserWindowRef\r\n};\r\n\r\n/**\r\n * Create an injectable provider that uses the windowFactory function for returning the native window object.\r\n */\r\nexport const windowProvider: FactoryProvider = {\r\n  provide: WINDOW,\r\n  useFactory: windowFactory,\r\n  deps: [WindowRef, PLATFORM_ID]\r\n};\r\n\r\n/**\r\n * Create an array of providers.\r\n */\r\nexport const WINDOW_PROVIDERS = [browserWindowProvider, windowProvider];\r\n","import { Injectable } from '@angular/core';\r\nimport { EventManager } from '@angular/platform-browser';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ResizeService {\r\n  /**\r\n     * Width of window\r\n     */\r\n  public windowWidth: any;\r\n\r\n  /**\r\n   * Makes resizeSubject become Observable\r\n   * @returns Observable of resizeSubject\r\n   */\r\n  get onResize$(): Observable<Window> {\r\n    return this.resizeSubject.asObservable();\r\n  }\r\n\r\n  /**\r\n   * Subject of 'resize' event\r\n   */\r\n  private resizeSubject: Subject<Window>;\r\n\r\n  constructor(private eventManager: EventManager) {\r\n    this.resizeSubject = new Subject();\r\n    this.eventManager.addGlobalEventListener(\r\n      'window',\r\n      'resize',\r\n      this.onResize.bind(this)\r\n    );\r\n    this.eventManager.addGlobalEventListener(\r\n      'window',\r\n      'onload',\r\n      this.onLoaded.bind(this)\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Handler of 'resize' event. Passes data throw resizeSubject\r\n   * @param event Event Object of 'resize' event\r\n   */\r\n  private onResize(event: UIEvent) {\r\n    this.resizeSubject.next(<Window>event.target);\r\n  }\r\n\r\n  /**\r\n   * Handler of 'onload' event. Defines the width of window\r\n   * @param event Event Object of 'onload' event\r\n   */\r\n  private onLoaded(event: UIEvent) {\r\n    this.windowWidth = <Window>event.target;\r\n  }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class LoadMoreService {\r\n\r\n    public static readonly START_PAGE: number = 1;\r\n\r\n    public pageValue = LoadMoreService.START_PAGE;\r\n\r\n    private moreSubject: Subject<number> = new Subject<number>();\r\n\r\n    public more$: Observable<number> = this.moreSubject.asObservable();\r\n\r\n    public more(): void {\r\n        this.pageValue++;\r\n        this.moreSubject.next(this.pageValue);\r\n    }\r\n\r\n    public reset(): void {\r\n        this.pageValue = LoadMoreService.START_PAGE;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PaginationService {\r\n  public static readonly START_PAGE: number = 1;\r\n\r\n  public pageValue = PaginationService.START_PAGE;\r\n\r\n  private pageSubject = new Subject<number>();\r\n\r\n  public page$ = this.pageSubject.asObservable();\r\n\r\n  public page(page: number) {\r\n    this.pageValue = page;\r\n    this.pageSubject.next(page);\r\n  }\r\n\r\n  public reset(): void {\r\n    this.pageValue = PaginationService.START_PAGE;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ISortingModel } from './sorting.model';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SortingService {\r\n  private sortingSubject = new Subject<ISortingModel>();\r\n\r\n  public sorting$ = this.sortingSubject.asObservable();\r\n\r\n  public sort(model: ISortingModel): void {\r\n    this.sortingSubject.next(model);\r\n  }\r\n}\r\n","import { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\n\r\nexport class ObservableModel<T> {\r\n\r\n    public subject: Subject<T> =  new Subject<T>();\r\n\r\n    public value$: Observable<T> = this.subject.asObservable();\r\n}\r\n\r\n\r\nexport class ObservableBehaviorModel<T> {\r\n\r\n    constructor(private defaultValue: T | null = null) { }\r\n\r\n    public subject: BehaviorSubject<T> = new BehaviorSubject<T>(this.defaultValue!);\r\n\r\n    public value$: Observable<T> = this.subject.asObservable();\r\n\r\n    public get value(): T | null { return this.subject.value; }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ObservableModel } from \"../../models\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ReloadService {\r\n\r\n    /* Properties */\r\n\r\n    private model: ObservableModel<string[]> = new ObservableModel<string[]>();\r\n\r\n    public get reload$(): Observable<string[]> { return this.model.value$; }\r\n\r\n    /* End Properties */\r\n\r\n    public reload(...ids: string[]): void {\r\n        this.model.subject.next(ids);\r\n    }\r\n}","import {\r\n  AfterViewInit,\r\n  Directive, ElementRef, EventEmitter,\r\n  Inject, Input, OnDestroy, Output\r\n} from '@angular/core';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { DOCUMENT } from '../../services';\r\nimport { ClickOutsideEvent } from './click-outside.event';\r\n\r\n@Directive({\r\n  selector: '[sfcClickOutside]'\r\n})\r\nexport class ClickOutsideDirective implements AfterViewInit, OnDestroy {\r\n\r\n  /**\r\n   * Toggler for checking ouside click event\r\n   */\r\n  @Input('sfcClickOutside')\r\n  public listening: boolean = false;\r\n\r\n  /**\r\n   * Emitter for click event\r\n   */\r\n  @Output()\r\n  public action: EventEmitter<ClickOutsideEvent>\r\n    = new EventEmitter<ClickOutsideEvent>();\r\n\r\n  private _clickSubscription?: Subscription;\r\n\r\n  constructor(\r\n    private elementRef: ElementRef,\r\n    @Inject(DOCUMENT) private document: Document) {\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    // capture: true allow to catch event in early state (ignore stop propagation)\r\n    this._clickSubscription = fromEvent(this.document, 'click', { capture: true })\r\n      .subscribe(event => this.onClick(event));\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this._clickSubscription?.unsubscribe();\r\n  }\r\n\r\n  private onClick(event: Event) {\r\n    if (event instanceof MouseEvent && this.listening) {\r\n      const clickOutsideEvent: ClickOutsideEvent = {\r\n        target: event.target,\r\n        value: !this.isDescendant(this.elementRef.nativeElement, event.target as HTMLElement)\r\n      };\r\n\r\n      this.action.emit(clickOutsideEvent);\r\n    }\r\n  }\r\n\r\n  private isDescendant(parent: HTMLElement, child: HTMLElement): boolean {\r\n    let node: HTMLElement = child;\r\n    while (node !== null) {\r\n      if (node === parent) {\r\n        return true;\r\n      } else {\r\n        node = node.parentNode as HTMLElement;\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n}","export class CommonConstants {\r\n    static NOT_FOUND_INDEX = -1;\r\n    static EMPTY_STRING = '';\r\n    static DEFAULT_KEY_VALUE = 0;\r\n    static MOUSE_BUTTON_LEFT = 0;\r\n    static FULL_PERCENTAGE = 100;\r\n    static COMMON_TEXT_DELIMETER = '/';\r\n    static PERCENTAGE_SYMBOL = '%';\r\n    static DOT = '.';\r\n}","export class DateTimeConstants {\r\n    static DAYS_IN_WEEK = 7;\r\n    static HOURS_IN_SHORT_TIME = 12;\r\n    static HOURS_IN_TIME = 24;\r\n    static MIDNIGHT_HOUR = 0;\r\n    static MINUTES_IN_HOUR = 60;\r\n    static DAYS_OF_WEEK = [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"];\r\n    static DAYS_OF_WEEK_3 = [\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"];\r\n    static DEFAULT_LOCALE = 'en-US';\r\n}\r\n","export class UIConstants {\r\n    static CSS_PIXELS = 'px';\r\n    static CSS_PERCENTAGE = '%';\r\n    static CSS_DEGREES = 'deg';\r\n    static CSS_EM = 'em';\r\n    static CSS_CH = 'ch';\r\n\r\n    static CSS_INITIAL = 'initial';\r\n    static CSS_INHERIT = 'inherit';\r\n    static CSS_NONE = 'none';\r\n    static CSS_VISIBILITY_VISIBLE = 'visible';\r\n    static CSS_VISIBILITY_HIDDEN = 'hidden';\r\n\r\n    static CSS_WIDTH = 'width';\r\n    static CSS_LEFT = 'left';\r\n    static CSS_RIGHT = 'right';\r\n    static CSS_START = 'start';\r\n    static CSS_END = 'end';\r\n    static CSS_CENTER = 'center';\r\n    static CSS_CLASS_FIXED = 'fixed';\r\n    static CSS_CLASS_BACKGROUND = 'background';\r\n    static CSS_CLASS_TOP = 'top';\r\n    static CSS_CLASS_SCROLL = 'scroll';\r\n\r\n    static RGB_OPACITY_PLACEHOLDER = '{opacity}';\r\n}\r\n","import { Directive, ElementRef, Input } from '@angular/core';\r\nimport { UIConstants } from '../../constants';\r\n\r\n@Directive({\r\n  selector: '[sfcShowHideElement]'\r\n})\r\nexport class ShowHideElementDirective {\r\n\r\n  private readonly SHOW_HIDE_TRANSITION_DELAY_DEFAULT: number = 0.5;\r\n\r\n  @Input('sfcShowHideElement')\r\n  set showHideElement(show: boolean) {\r\n    this.style.visibility = show\r\n      ? UIConstants.CSS_VISIBILITY_VISIBLE\r\n      : UIConstants.CSS_VISIBILITY_HIDDEN;\r\n    this.style.opacity = show ? 1 : 0;\r\n  }\r\n\r\n  @Input()\r\n  set delay(value: number) {\r\n    this.style.transition = this.getTransitionValue(value);\r\n  };\r\n\r\n  private get style(): any {\r\n    return this.el.nativeElement.style;\r\n  }\r\n\r\n  constructor(private el: ElementRef) {\r\n    this.style.transition = this.getTransitionValue();\r\n  }\r\n\r\n  private getTransitionValue(delay: number = this.SHOW_HIDE_TRANSITION_DELAY_DEFAULT) {\r\n    return `visibility ${delay}s, \r\n            opacity ${delay}s \r\n            linear`;\r\n  }\r\n}","import { Directive, ElementRef, Input } from '@angular/core';\r\nimport { UIConstants } from '../../constants';\r\n\r\n@Directive({\r\n  selector: '[sfcIf]'\r\n})\r\nexport class IfDirective {\r\n\r\n  /* Inputs */\r\n\r\n  @Input()\r\n  set sfcIf(show: boolean) {\r\n    this.style.display = show\r\n      ? this.display || UIConstants.CSS_INITIAL\r\n      : UIConstants.CSS_NONE;\r\n  }\r\n\r\n  /* End Inputs */\r\n\r\n  /* Properties */\r\n\r\n  private get style(): any { return this.el.nativeElement.style; }\r\n\r\n  private display: string;\r\n\r\n  /* End Properties */\r\n\r\n  constructor(private el: ElementRef) {\r\n    this.display = this.style.display;\r\n  }\r\n}","import { formatDate } from \"@angular/common\";\r\nimport { DateTimeConstants } from \"../constants\";\r\nimport { isDefined } from \"./common.utils\";\r\n\r\n/**\r\n * Set minutes for date\r\n * @param date Date value\r\n * @param minute Minute value\r\n * @returns Date with minute value\r\n */\r\nexport function setMinutes(date: Date, minute: number): Date {\r\n    const result = new Date(date);\r\n    result.setMinutes(minute);\r\n    return result;\r\n}\r\n\r\n/**\r\n * Set hours for date\r\n * @param date Date value\r\n * @param hour Hour value\r\n * @returns Date with hour value\r\n */\r\nexport function setHours(date: Date, hour: number): Date {\r\n    const result = new Date(date);\r\n    result.setHours(hour);\r\n    return result;\r\n}\r\n\r\n/**\r\n * Set day for date value\r\n * @param date Date value\r\n * @param dayNumber Day number \r\n * @returns Date with day number\r\n */\r\nexport function setDay(date: Date, dayNumber: number): Date {\r\n    const nextDate = new Date(date);\r\n    nextDate.setDate(dayNumber);\r\n    return nextDate;\r\n}\r\n\r\n/**\r\n * Set year for date\r\n * @param date Date value\r\n * @param year Year value\r\n * @returns Date with year value\r\n */\r\nexport function setYear(date: Date, year: number): Date {\r\n    const result = new Date(date);\r\n    result.setFullYear(year);\r\n    return result;\r\n}\r\n\r\n/**\r\n * Set seconds for date\r\n * @param date Date value\r\n * @param value Seconds value\r\n * @returns Date with minute value\r\n */\r\nexport function setSeconds(date: Date, value: number): Date {\r\n    const result = new Date(date);\r\n    result.setSeconds(value);\r\n    return result;\r\n}\r\n\r\n/**\r\n * Set milliseconds for date\r\n * @param date Date value\r\n * @param value Milliseconds value\r\n * @returns Date with minute value\r\n */\r\nexport function setMilliseconds(date: Date, value: number): Date {\r\n    const result = new Date(date);\r\n    result.setMilliseconds(value);\r\n    return result;\r\n}\r\n\r\n/**\r\n * Set 0 for seconds and milliseconds of date\r\n * @param date Date value\r\n * @returns Date with minute value\r\n */\r\nexport function setDefaultSecondsAndMiliseconds(date: Date): Date {\r\n    const result = new Date(date);\r\n    result.setSeconds(0);\r\n    result.setMilliseconds(0);\r\n    return result;\r\n}\r\n\r\n/**\r\n * Get next date\r\n * @param date Date value\r\n * @returns Next date\r\n */\r\nexport function getNextDate(date: Date): Date {\r\n    const nextDate = new Date(date);\r\n    nextDate.setDate(date.getDate() + 1)\r\n    return nextDate;\r\n}\r\n\r\n/**\r\n * Get previous date\r\n * @param date Date value\r\n * @returns Previous date\r\n */\r\nexport function getPreviousDate(date: Date): Date {\r\n    const nextDate = new Date(date);\r\n    nextDate.setDate(date.getDate() - 1)\r\n    return nextDate;\r\n}\r\n\r\n/**\r\n * Get next month as date\r\n * @param date Date value\r\n * @returns Next month as date\r\n */\r\nexport function getNextMonth(date: Date): Date {\r\n    const nextMonth = new Date(date);\r\n    nextMonth.setMonth(date.getMonth() + 1)\r\n    return nextMonth;\r\n}\r\n\r\n/**\r\n * Get previous month as date\r\n * @param date Date value\r\n * @returns Previous month as date\r\n */\r\nexport function getPreviousMonth(date: Date): Date {\r\n    const prevMonth = new Date(date);\r\n    prevMonth.setMonth(date.getMonth() - 1);\r\n    return prevMonth;\r\n}\r\n\r\n/**\r\n * Get next year as date\r\n * @param date Date value\r\n * @returns Next year as date\r\n */\r\nexport function getNextYear(date: Date): Date {\r\n    const nextYear = new Date(date);\r\n    nextYear.setFullYear(date.getFullYear() + 1);\r\n    return nextYear;\r\n}\r\n\r\n/**\r\n * Get previous year as date\r\n * @param date Date value\r\n * @returns Previous year as date\r\n */\r\nexport function getPreviousYear(date: Date): Date {\r\n    const prevYear = new Date(date);\r\n    prevYear.setFullYear(date.getFullYear() - 1);\r\n    return prevYear;\r\n}\r\n\r\n/**\r\n * Return first day of month as date from date value\r\n * @param date Date value\r\n * @returns First day of month as date\r\n */\r\nexport function getFirstDayOfMonth(date: Date): Date {\r\n    if (isDefined(date) && date instanceof Date) {\r\n        const year = date.getFullYear(),\r\n            month = date.getMonth();\r\n        return new Date(year, month, 1);\r\n    }\r\n\r\n    return date;\r\n}\r\n\r\n/**\r\n * Return last day of month as date from date value\r\n * @param date Date value\r\n * @returns Last day of month as date\r\n */\r\nexport function getLastDayOfMonth(date: Date): Date {\r\n    if (isDefined(date) && date instanceof Date) {\r\n        const year = date.getFullYear(),\r\n            month = date.getMonth();\r\n        return new Date(year, month + 1, 0);\r\n    }\r\n\r\n    return date;\r\n}\r\n\r\n/**\r\n * Return first day of year as date from date value\r\n * @param date Date value\r\n * @returns First day of year as date\r\n */\r\nexport function getFirstDayOfYear(date: Date): Date {\r\n    if (isDefined(date) && date instanceof Date) {\r\n        return new Date(date.getFullYear(), 0, 1);\r\n    }\r\n\r\n    return date;\r\n}\r\n\r\n/**\r\n * Return last day of year as date from date value\r\n * @param date Date value\r\n * @returns Last day of year as date\r\n */\r\nexport function getLastDayOfYear(date: Date): Date {\r\n    if (isDefined(date) && date instanceof Date) {\r\n        return new Date(date.getFullYear(), 12, 0);\r\n    }\r\n\r\n    return date;\r\n}\r\n\r\n/**\r\n * Return first day of month as date\r\n * @param year Year value\r\n * @param month Month value\r\n * @returns First day of month\r\n */\r\nexport function getFirstDayOfMonthByYearAndMonth(year: number, month: number): Date {\r\n    return new Date(year, month, 1);\r\n}\r\n\r\n/**\r\n * Return last day of month as date\r\n * @param year Year value\r\n * @param month Month value\r\n * @returns Last day of month\r\n */\r\nexport function getLastDayOfMonthByYearAndMonth(year: number, month: number): Date {\r\n    return new Date(year, month + 1, 0);\r\n}\r\n\r\n/**\r\n * Return week number in month from date value\r\n * @param date Date value\r\n * @returns Week number\r\n */\r\nexport function getWeeksNumberInMonth(date: Date): number {\r\n    const firstOfMonth = getFirstDayOfMonth(date),\r\n        lastOfMonth = getLastDayOfMonth(date),\r\n        used = firstOfMonth.getDay() + lastOfMonth.getDate();\r\n    return Math.ceil(used / DateTimeConstants.DAYS_IN_WEEK);\r\n}\r\n\r\n/**\r\n * Return true if first and second date are equal\r\n * @param date1 First date value\r\n * @param date2 Second date value\r\n * @returns True if first and second date are equal\r\n */\r\nexport function isEqualDates(date1: Date, date2: Date): boolean {\r\n    const date1Value = new Date(date1),\r\n        date2Value = new Date(date2);\r\n    date1Value.setHours(0, 0, 0, 0);\r\n    date2Value.setHours(0, 0, 0, 0);\r\n\r\n    return date1Value.getTime() === date2Value.getTime();\r\n}\r\n\r\n/**\r\n * Return true if first and second datetime are equal\r\n * @param date1 First datetime value\r\n * @param date2 Second datetime value\r\n * @returns True if first and second datetime are equal\r\n */\r\nexport function isEqualDateTimes(date1: Date, date2: Date): boolean {\r\n    const date1Value = new Date(date1),\r\n        date2Value = new Date(date2);\r\n\r\n    return date1Value.getTime() === date2Value.getTime();\r\n}\r\n\r\n/**\r\n * Return true if first date greater than second date\r\n * @param date1 First date value\r\n * @param date2 Second date value\r\n * @returns True if first date greater than second date\r\n */\r\nexport function isDateGreat(date1: Date, date2: Date): boolean {\r\n    return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate())\r\n        > new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\r\n}\r\n\r\n/**\r\n * Return true if first date greater or equal to second date\r\n * @param date1 First date value\r\n * @param date2 Second date value\r\n * @returns True if first date greater or equal to second date\r\n */\r\nexport function isDateGreatOrEqual(date1: Date, date2: Date): boolean {\r\n    return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate())\r\n        >= new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\r\n}\r\n\r\n/**\r\n * Return true if first date time greater than second date time\r\n * @param date1 First date time value\r\n * @param date2 Second date time value\r\n * @returns True if first date time greater than second date time\r\n */\r\nexport function isDateTimeGreat(date1: Date, date2: Date): boolean {\r\n    return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate(),\r\n        date1.getHours(), date1.getMinutes())\r\n        > new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(),\r\n            date2.getHours(), date2.getMinutes());\r\n}\r\n\r\n/**\r\n * Return true if first date time greater or equal to second date time\r\n * @param date1 First date time value\r\n * @param date2 Second date time value\r\n * @returns True if first date time greater or equal to second date time\r\n */\r\nexport function isDateTimeGreatOrEqual(date1: Date, date2: Date): boolean {\r\n    return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate(),\r\n        date1.getHours(), date1.getMinutes())\r\n        >= new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(),\r\n            date2.getHours(), date2.getMinutes());\r\n}\r\n\r\n/**\r\n * Return true if first time greater or equal to second time\r\n * @param date1 First date time value\r\n * @param date2 Second date time value\r\n * @returns True if first time greater or equal to second time\r\n */\r\nexport function isTimeGreatOrEqual(date1: Date, date2: Date): boolean {\r\n    return new Date(0, 0, 0, date1.getHours(), date1.getMinutes())\r\n        >= new Date(0, 0, 0, date2.getHours(), date2.getMinutes());\r\n}\r\n\r\n/**\r\n * Return true if first time less or equal to second time\r\n * @param date1 First date time value\r\n * @param date2 Second date time value\r\n * @returns True if first time less or equal to second time\r\n */\r\nexport function isDateTimeLessOrEqual(date1: Date, date2: Date): boolean {\r\n    return new Date(0, 0, 0, date1.getHours(), date1.getMinutes())\r\n        <= new Date(0, 0, 0, date2.getHours(), date2.getMinutes());\r\n}\r\n\r\n/**\r\n * Return true if first time less or equal to second time\r\n * @param date1 First date time value\r\n * @param date2 Second date time value\r\n * @returns True if first time less or equal to second time\r\n */\r\nexport function isTimeLessOrEqual(date1: Date, date2: Date): boolean {\r\n    return new Date(date1.getFullYear(), date1.getMonth(), date1.getDate(),\r\n        date1.getHours(), date1.getMinutes())\r\n        <= new Date(date2.getFullYear(), date2.getMonth(), date2.getDate(),\r\n            date2.getHours(), date2.getMinutes());\r\n}\r\n\r\n/**\r\n * Convert UTC date to local\r\n * @param date Date value\r\n * @returns Locale date\r\n */\r\nexport function convertUTCDateToLocalDate(date: Date): Date {\r\n    return new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);\r\n}\r\n\r\n/**\r\n * Convert Json representation of timestamp to date value\r\n * @param timestamp Timestamp for example - 12:23:45\r\n * @returns Date value\r\n */\r\nexport function convertTimestampToDate(timestamp: string): Date {\r\n    const tempTime = timestamp.split(\":\"),\r\n        result = new Date();\r\n    result.setHours(+tempTime[0]);\r\n    result.setMinutes(+tempTime[1]);\r\n    result.setSeconds(+tempTime[2]);\r\n    return result;\r\n}\r\n\r\n/**\r\n * Convert Date object to timestamp string\r\n * @param date Date value\r\n * @param locale Locale value\r\n * @returns String representation of date value, for example - 12:23\r\n */\r\nexport function convertDateToTimestamp(date: Date, locale: string = DateTimeConstants.DEFAULT_LOCALE): string {\r\n    return `${formatDate(date, 'HH', locale)}:${formatDate(date, 'mm', locale)}`;\r\n}\r\n\r\n/**\r\n * Get age from\r\n * @param birthdate Date of birth\r\n * @returns Age\r\n */\r\nexport function getAge(birthdate: Date | null): number | null {\r\n    if (!birthdate)\r\n        return null;\r\n\r\n    const now = new Date();\r\n    let age = now.getFullYear() - birthdate.getFullYear();\r\n    const monthDifference = now.getMonth() - birthdate.getMonth();\r\n\r\n    if (monthDifference < 0 || (monthDifference === 0 && now.getDate() < birthdate.getDate())) {\r\n        age--;\r\n    }\r\n\r\n    return age;\r\n}","import { Observable } from 'rxjs';\r\nimport { isEqualDateTimes } from './date-time.utils';\r\n\r\n/**\r\n * Return true if value defined\r\n * @param value Value to check\r\n * @returns True if value is not null and defined\r\n */\r\nexport function isDefined<T>(value: T | undefined | null): boolean {\r\n  return <T>value !== undefined && <T>value !== null;\r\n}\r\n\r\n/**\r\n * Return true if value is object\r\n * @param value Value to check\r\n * @returns True if value is object\r\n */\r\nexport function isObject(value: any): boolean {\r\n  return (isDefined(value) && typeof value === 'object'\r\n    && !Array.isArray(value)\r\n    && !(value instanceof Date || value instanceof File));\r\n}\r\n\r\n/**\r\n * Return true if data is observable\r\n * @param data Object to check\r\n * @returns True if data is observable\r\n */\r\nexport function isAsyncData(data: any) {\r\n  return data instanceof Observable;\r\n}\r\n\r\n/**\r\n * Return extended object with new property\r\n * @param obj Object to extend by property\r\n * @param property New property name \r\n * @param value Value for new property\r\n * @returns Extended object with new property\r\n */\r\nexport function addPropertyToObject(obj: any, property: string, value: any = null): any {\r\n  if (isDefined(property) && !obj.hasOwnProperty(property)) {\r\n    let newObj: any = {};\r\n    newObj[property] = value;\r\n    obj = { ...obj, ...newObj };\r\n  }\r\n\r\n  return obj;\r\n}\r\n\r\n/**\r\n * Remove property from object\r\n * @param obj Object for removing property\r\n * @param property Property name to remove\r\n */\r\nexport function removePropertyFromObject(obj: any, property: string): void {\r\n  if (obj.hasOwnProperty(property)) {\r\n    delete obj[property];\r\n  }\r\n}\r\n\r\n/**\r\n * Deep merge object with others\r\n * @param target  Object to merge\r\n * @param sources Objects to be merged with target\r\n * @returns Merged object\r\n */\r\nexport function mergeDeep(target: any, ...sources: any[]): any {\r\n  if (!sources.length)\r\n    return target;\r\n\r\n  const source = sources.shift();\r\n\r\n  if (isObject(target) && isObject(source)) {\r\n    for (const key in source) {\r\n      if (isObject(source[key])) {\r\n        if (!target[key]) Object.assign(target, { [key]: {} });\r\n        mergeDeep(target[key], source[key]);\r\n      } else {\r\n        Object.assign(target, { [key]: source[key] });\r\n      }\r\n    }\r\n  }\r\n\r\n  return mergeDeep(target, ...sources);\r\n}\r\n\r\n/**\r\n * Get type's property name safety\r\n * @param name KeyOf property\r\n * @returns Type's property name\r\n */\r\nexport const nameof = <T>(name: keyof T) => name;\r\n\r\n/**\r\n   * Determines if the input is a Number or something that can be coerced to a Number\r\n   * @param number The input to be tested\r\n   * @returns - An indication if the input is a Number or can be coerced to a Number\r\n   */\r\nexport function isNumeric(number: any): boolean {\r\n  return !isNaN(parseFloat(number));\r\n}\r\n\r\n/**\r\n *  Determines if the input is a string\r\n * @param value The input to be tested\r\n * @returns An indication if the input is a string\r\n */\r\nexport function isString(value: any): boolean {\r\n  return typeof value === 'string';\r\n}\r\n\r\n/**\r\n * Return true if current browser is Chrome\r\n * @returns If current browser is Chrome\r\n */\r\nexport function isChromeBrowser(): boolean {\r\n  return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\r\n}\r\n\r\n/**\r\n * Return true if value is valid email address\r\n * @returns True if it's valid email address\r\n */\r\nexport function isEmail(value: string): boolean {\r\n  return isDefined(value.match(\r\n    /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n  ));\r\n}\r\n\r\n/**\r\n * Return true if string is \"true\"\r\n * @returns parsed string as boolean\r\n */\r\nexport function parseBoolean(value: string): boolean {\r\n  return /^true$/i.test(value);\r\n}\r\n\r\n/**\r\n * Return true if values equal\r\n * @param obj1 First value to compare\r\n * @param obj2 Second value to compare\r\n * @returns True if equal\r\n */\r\nexport function isEqual(obj1: any, obj2: any) {\r\n  /**\r\n   * More accurately check the type of a JavaScript object\r\n   * @param  {Object} obj The object\r\n   * @return {String}     The object type\r\n   */\r\n  function getType(obj: any) {\r\n    return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();\r\n  }\r\n\r\n  function areArraysEqual() {\r\n\r\n    // Check length\r\n    if (obj1.length !== obj2.length) return false;\r\n\r\n    // Check each item in the array\r\n    for (let i = 0; i < obj1.length; i++) {\r\n      if (!isEqual(obj1[i], obj2[i])) return false;\r\n    }\r\n\r\n    // If no errors, return true\r\n    return true;\r\n\r\n  }\r\n\r\n  function areObjectsEqual() {\r\n\r\n    if (Object.keys(obj1).length !== Object.keys(obj2).length) return false;\r\n\r\n    // Check each item in the object\r\n    for (let key in obj1) {\r\n      if (Object.prototype.hasOwnProperty.call(obj1, key)) {\r\n        if (!isEqual(obj1[key], obj2[key])) {\r\n          return false;\r\n        }\r\n      }\r\n    }\r\n\r\n    // If no errors, return true\r\n    return true;\r\n  }\r\n\r\n  function areFilesEqual() {\r\n    return obj1.lastModified === obj2.lastModified\r\n      && obj1.size === obj2.size\r\n      && obj1.type === obj2.type;\r\n  }\r\n\r\n  function areFunctionsEqual() {\r\n    return obj1.toString() === obj2.toString();\r\n  }\r\n\r\n  function arePrimativesEqual() {\r\n    return obj1 === obj2;\r\n  }\r\n\r\n  function areDatesEqual() {\r\n    return isEqualDateTimes(obj1, obj2);\r\n  }\r\n\r\n  // Get the object type\r\n  let type = getType(obj1);\r\n\r\n  // If the two items are not the same type, return false\r\n  if (type !== getType(obj2)) return false;\r\n\r\n  // Compare based on type\r\n  if (type === 'array') return areArraysEqual();\r\n\r\n  if (type === 'date') return areDatesEqual();\r\n\r\n  if (type === 'file') return areFilesEqual();\r\n\r\n  if (type === 'object') return areObjectsEqual();\r\n\r\n  if (type === 'function') return areFunctionsEqual();\r\n\r\n  return arePrimativesEqual();\r\n}\r\n\r\n/**\r\n * Generate unique identificator\r\n * @returns Random GUID\r\n */\r\nexport function generateGuid(): string {\r\n  let S4 = function () {\r\n    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n  };\r\n  return (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\r\n}\r\n\r\n/**\r\n * Check if value is Json parsable string\r\n * @param value string value\r\n * @returns True if string can be JSON parsed\r\n */\r\nexport function isJsonString(value: string): boolean {\r\n  try {\r\n    const json = JSON.parse(value);\r\n    return (typeof json === 'object');\r\n  } catch (e) {\r\n    return false;\r\n  }\r\n}\r\n\r\n/**\r\n * Stop propagation and prevent default\r\n * @param event Event object\r\n */\r\nexport function stopAndPreventPropagation(event: Event): void {\r\n  event.preventDefault();\r\n  event.stopPropagation();\r\n}","import { CommonConstants } from \"../constants\";\r\nimport { isDefined } from \"./common.utils\";\r\n\r\n/**\r\n * Return true if string has value(not empty string)\r\n * @param value String value to check\r\n * @returns True if string is not null and defined(not empty string)\r\n */\r\nexport function isNullOrEmptyString(value: string | undefined | null) {\r\n    return !isDefined(value) || value === CommonConstants.EMPTY_STRING;\r\n}\r\n\r\n/**\r\n * Return true if value contains includeValue\r\n * @param value String value to check\r\n * @param includeValue Value to check if it include\r\n * @returns True if value contains includeValue\r\n */\r\nexport function contains(value: string | undefined | null, includeValue: string): boolean {\r\n    return !isNullOrEmptyString(value) && !isNullOrEmptyString(includeValue)\r\n        ? (value as string).toLowerCase()\r\n            .includes(includeValue.toLowerCase())\r\n        : false;\r\n}\r\n\r\n/**\r\n * Return trimed value\r\n * @param value Value for trim modification\r\n * @returns Trimed value\r\n */\r\nexport function trim(value: string) {\r\n    return isNullOrEmptyString(value) ? value : value.replace(/\\s/g, '')\r\n}","import { CommonConstants } from \"../constants\";\r\nimport { isDefined } from \"./common.utils\";\r\n\r\n/**\r\n * Return parsed file size as string\r\n * @param bytes Bytes count\r\n * @param decimals Value after dot\r\n * @returns Parsed file size\r\n */\r\nexport function parseFileSize(bytes: number, decimals = 2): string {\r\n    if (bytes === 0)\r\n        return '0';\r\n\r\n    const k = 1024;\r\n    const dm = decimals < 0 ? 0 : decimals;\r\n    const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n    const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n}\r\n\r\n/**\r\n * Return file extension\r\n * @param file File value \r\n * @returns File extension\r\n */\r\nexport function getFileExtension(file: File): string {\r\n    if (!isDefined(file))\r\n        return CommonConstants.EMPTY_STRING;\r\n\r\n    if (file.name.indexOf('.') === CommonConstants.NOT_FOUND_INDEX) {\r\n        return CommonConstants.EMPTY_STRING;\r\n    }\r\n\r\n    return file.name.split('.').pop() as string;\r\n}\r\n\r\n/**\r\n * Read file as data URL\r\n * @param file File value\r\n * @param onLoad On load action\r\n */\r\nexport function readAsDataURL(file: File, onLoad: (result: string | ArrayBuffer | null) => void): void {\r\n    if (isDefined(file)) {\r\n        const reader = new FileReader();\r\n        reader.onload = () => onLoad(reader.result);\r\n        reader.readAsDataURL(file);\r\n    } else\r\n        throw new Error('File utils | Read as data URL function --> File is empty.');\r\n}\r\n\r\n/**\r\n * Return true if file is image\r\n * @param file File value\r\n * @returns True if file is image\r\n */\r\nexport function isImage(file: File): boolean {\r\n    return isDefined(file) && (/\\.(gif|jpe?g|jpg|tiff|png|webp|bmp)$/i).test(file.name);\r\n}\r\n\r\n/**\r\n * Convert file to base64 string\r\n * @param file File value\r\n * @returns Base64 string\r\n */\r\nexport function convertToBase64String(file: File): Promise<string> {\r\n    return new Promise<string>((resolve, reject) => {\r\n        const reader = new FileReader();\r\n        reader.readAsDataURL(file);\r\n        reader.onload = () => resolve(reader.result as string);\r\n        reader.onerror = reject;\r\n    });\r\n}\r\n\r\n/**\r\n * Convert base64 string to file\r\n * @param base64 Base64 string\r\n * @param name File name\r\n * @returns File value\r\n */\r\nexport async function convertFromBase64String(base64: string, name: string): Promise<File> {\r\n    const res: Response = await fetch(base64),\r\n        blob: Blob = await res.blob(),\r\n        extension = base64.substring(\"data:image/\".length, base64.indexOf(\";base64\"));\r\n\r\n    return new File([blob], `${name}.${extension}`, { type: `image/${extension}` });\r\n}","import { CommonConstants, UIConstants } from \"../constants\";\r\nimport { isDefined } from \"./common.utils\";\r\n\r\n/**\r\n * Return CSS like value\r\n * @param value Value as number\r\n * @returns Value as '1px'\r\n */\r\nexport function getCssLikeValue(value: number,\r\n    type: string = UIConstants.CSS_PIXELS): string {\r\n    return value + type;\r\n}\r\n\r\n/**\r\n * Parse CSS like value to number\r\n * @param value CSS like value\r\n * @returns Number value\r\n */\r\nexport function getValueFromCssLikeValue(value: string,\r\n    type: string = UIConstants.CSS_PIXELS): number {\r\n    return +value.replace(type, CommonConstants.EMPTY_STRING);\r\n}\r\n\r\n/**\r\n * Return CCS like calc value\r\n * @param value All value (100% by default)\r\n * @param part Part value\r\n * @returns Calc value\r\n */\r\nexport function getCalcValue(part: number, value: number = 100): string {\r\n    return `calc(${value}${UIConstants.CSS_PERCENTAGE} / ${part} )`;\r\n}\r\n\r\n/**\r\n * Return CCS like rotate value\r\n * @param value value as degrees\r\n * @returns Rotate value\r\n */\r\nexport function getRotateValue(value: number): string {\r\n    return `rotate(${value}deg)`;\r\n}\r\n\r\n/**\r\n * Add classes to HTML element\r\n * @param element HTML element\r\n * @param classNames Array of CSS classes\r\n */\r\nexport function addClasses(element: HTMLElement, ...classNames: Array<string>): void {\r\n    if (isDefined(element)) {\r\n        classNames.forEach((className) => element.classList.add(className));\r\n    }\r\n}\r\n\r\n/**\r\n * Remove classes to HTML element\r\n * @param element HTML element\r\n * @param classNames Array of CSS classes\r\n */\r\nexport function removeClasses(element: HTMLElement, ...classNames: Array<string>): void {\r\n    if (isDefined(element)) {\r\n        classNames.forEach((className) => element.classList.remove(className));\r\n    }\r\n}\r\n\r\n/**\r\n * Convert RGB color to HEX\r\n * @param r Red\r\n * @param g Green\r\n * @param b Blue\r\n * @returns HEX value\r\n */\r\nexport function rgbToHex(r: number, g: number, b: number) {\r\n    return \"#\" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\r\n}\r\n\r\n/**\r\n * Convert HEX to RGB value\r\n * @param hex HEX value\r\n * @returns RGB value\r\n */\r\nexport function hexToRgb(hex: string): string | null {\r\n    var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n    if (result) {\r\n        var r = parseInt(result[1], 16);\r\n        var g = parseInt(result[2], 16);\r\n        var b = parseInt(result[3], 16);\r\n        return `rgb(${r}, ${g}, ${b})`;\r\n    }\r\n    return null;\r\n}\r\n\r\n/**\r\n * Set opacity for RGB value\r\n * @param rgb Rgb value with {opacity} placeholder\r\n * @param opacity Opacity value\r\n * @returns RGB value with relevant opacity\r\n */\r\nexport function replaceRgbOpacity(rgb: string, opacity: number) {\r\n    return rgb.replace(UIConstants.RGB_OPACITY_PLACEHOLDER, opacity.toString());\r\n}","import { CommonConstants } from \"../constants\";\r\nimport { SortingDirection } from \"../enums\";\r\nimport { isDefined } from \"./common.utils\";\r\nimport { isNullOrEmptyString } from \"./string.utils\";\r\n\r\n/**\r\n * Return true if collection not empty\r\n * @param collection Array of items\r\n * @returns True if collection not empty\r\n */\r\nexport function any<T>(collection: Array<T> | null | undefined): boolean {\r\n    return isDefined(collection) && (collection as Array<T>).length > 0;\r\n}\r\n\r\n/**\r\n * Return true if collection has such value\r\n * @param collection Array of items\r\n * @param value Value to check\r\n * @returns True if found value in collection\r\n */\r\nexport function hasItem<T>(collection: Array<T>, value: T): boolean {\r\n    return any(collection)\r\n        && collection.findIndex(item => item === value) !== CommonConstants.NOT_FOUND_INDEX;\r\n}\r\n\r\n/**\r\n * Return true if collection has such value by predicate function\r\n * @param collection Array of items\r\n * @param predicate Function to define check logic\r\n * @returns True if found value in collection\r\n */\r\nexport function hasItemBy<T>(collection: Array<T>, predicate: (item: T) => boolean): boolean {\r\n    return any(collection) && collection.findIndex(predicate) !== CommonConstants.NOT_FOUND_INDEX;\r\n}\r\n\r\n/**\r\n * Return true if collection of objects has such value as object\r\n * @param collection Array of objects\r\n * @param property Property name\r\n * @param value Value to check\r\n * @returns True if found value in collection\r\n */\r\nexport function hasObjectItem<T>(collection: Array<any>, // TODO <-- Array<T>\r\n    property: string, value: T): boolean {\r\n    return any(collection)\r\n        && collection.findIndex(item =>\r\n            item.hasOwnProperty(property)\r\n            && item[property] === value) !== CommonConstants.NOT_FOUND_INDEX;\r\n}\r\n\r\n/**\r\n * Return true if first collection has item in second collection\r\n * @param collection1 Array of objects where search\r\n * @param collection2 Array of objects where try to find\r\n * @returns \r\n */\r\nexport function hasAnyItem<T>(collection1: T[], collection2: T[]): boolean {\r\n    return collection1.some(item => collection2.includes(item));\r\n}\r\n\r\n/**\r\n * Return value from collection by predicate function\r\n * @param collection Array of items\r\n * @param predicate Function to define search logic\r\n * @returns Value from collection\r\n */\r\nexport function firstOrDefault<T>(collection: Array<T> | null | undefined,\r\n    predicate: (item: T) => boolean)\r\n    : T | undefined {\r\n    return any(collection) ? collection?.find(predicate) : undefined;\r\n}\r\n\r\n/**\r\n * Return first item from collection\r\n * @param collection Array of items\r\n * @returns First value from collection\r\n */\r\nexport function firstItem<T>(collection: Array<T>): T | null | undefined {\r\n    return any(collection) ? collection[0] : null;\r\n}\r\n\r\n/**\r\n * Return last item from collection\r\n * @param collection Array of items\r\n * @returns Last value from collection\r\n */\r\nexport function lastItem<T>(collection: Array<T>): T | null | undefined {\r\n    return any(collection) ? collection[collection.length - 1] : null;\r\n}\r\n\r\n/**\r\n * Return True if all values match predicate function\r\n * @param collection Array of objects\r\n * @param predicate Function to define check logic\r\n * @returns True if all values match predicate\r\n */\r\nexport function all<T>(collection: Array<T>, predicate: (item: T) => boolean): boolean {\r\n    return any(collection) ? collection.filter(predicate).length == collection.length : false;\r\n}\r\n\r\n/**\r\n * Return count by predicate\r\n * @param collection Array of objects\r\n * @param predicate Function to define check logic\r\n * @returns Items count\r\n */\r\nexport function count<T>(collection: Array<T>, predicate: (item: T) => boolean): number {\r\n    return collection.filter(predicate).length;\r\n}\r\n\r\n/**\r\n * Return items from collection by predicate function\r\n * @param collection Array of items\r\n * @param predicate Function to define search logic\r\n * @returns Values from collection\r\n */\r\nexport function where<T>(collection: Array<T>, predicate: (item: T) => boolean)\r\n    : Array<T> | null | undefined {\r\n    return any(collection) ? collection.filter(predicate) : null;\r\n}\r\n\r\n/**\r\n * Return sliced collection by page number and page size\r\n * @param collection Array of items\r\n * @param page Page number\r\n * @param size Page size\r\n * @returns Sliced collection\r\n */\r\nexport function skip<T>(collection: Array<T>, page: number, size: number): Array<T> {\r\n    if (any(collection)) {\r\n        let start = (page - 1) * size;\r\n        return collection.slice(start, start + size);\r\n    }\r\n\r\n    return collection;\r\n}\r\n\r\nexport function sort<T>(collection: Array<T>, direction: SortingDirection = SortingDirection.Ascending): Array<T> {\r\n    if (any(collection)) {\r\n        return direction == SortingDirection.Ascending\r\n            ? collection.sort((a: any, b: any) => a - b)\r\n            : collection.sort((a: any, b: any) => b - a);\r\n    }\r\n\r\n    return collection;\r\n}\r\n\r\n/**\r\n * Return sorted collection of objects by property\r\n * @param collection Array of items\r\n * @param property Property name\r\n * @param direction Sorting direction\r\n * @returns Sorted collection\r\n */\r\nexport function sortBy<T>(collection: Array<T>, property: string,\r\n    direction: SortingDirection): Array<T> {\r\n    if (any(collection)) {\r\n        let _sortFunc = (a: any, b: any) =>\r\n            (t1: number, t2: number) =>\r\n                (a[property] > b[property] ? t1 : t2);\r\n\r\n        return direction == SortingDirection.Ascending\r\n            ? collection.sort((a: any, b: any) => _sortFunc(a, b)(1, -1))\r\n            : collection.sort((a: any, b: any) => _sortFunc(a, b)(-1, 1));\r\n    }\r\n\r\n    return collection;\r\n}\r\n\r\n/**\r\n * Return sorted collection of objects by path\r\n * @param collection Array of items\r\n * @param path Path to property\r\n * @param direction Sorting direction\r\n * @returns Sorted collection\r\n */\r\nexport function sortByPath<T>(collection: Array<T>, path: string, direction: SortingDirection)\r\n    : Array<T> {\r\n    if (any(collection)) {\r\n        if (isNullOrEmptyString(path))\r\n            throw new Error('Collection utils | Sort By Path function --> Path is empty.');\r\n\r\n        const pathParts = path.split('.');\r\n\r\n        if (!any(pathParts))\r\n            throw new Error('Collection utils | Sort By Path function --> Path is incorrect.');\r\n\r\n        const partsLength = pathParts.length;\r\n\r\n        collection.sort((a: any, b: any) => {\r\n            var i = 0;\r\n            while (i < partsLength) { a = a[pathParts[i]]; b = b[pathParts[i]]; i++; }\r\n\r\n            return direction == SortingDirection.Ascending\r\n                ? a >= b ? 1 : -1\r\n                : a > b ? -1 : 1;\r\n        });\r\n\r\n        return collection;\r\n    }\r\n\r\n    return collection;\r\n}\r\n\r\n/**\r\n * Return collection without matches\r\n * @param collection Array of items\r\n * @returns Collection without matches\r\n */\r\nexport function distinct<T>(collection: Array<T>): Array<T> {\r\n    return any(collection)\r\n        ? collection.filter((value, index, self) => self.indexOf(value) === index)\r\n        : collection;\r\n}\r\n\r\n/**\r\n * Return sum value from collection items by map function\r\n * @param collection Array of items\r\n * @param select Map function\r\n * @returns Sum value of colection items\r\n */\r\nexport function sum<T>(collection: Array<T>, select: (item: T) => number): number {\r\n    return any(collection)\r\n        ? collection\r\n            .map(select)\r\n            .reduce((a, b) => { return a + b }, 0)\r\n        : 0;\r\n}\r\n\r\n/**\r\n * Return max value from collection items by map function\r\n * @param collection Array of items\r\n * @param select Map function\r\n * @returns Max value of collection items\r\n */\r\nexport function max<T>(collection: Array<T>, select: (item: T) => number): number {\r\n    if (any(collection))\r\n        return Math.max(...collection.map(select));\r\n\r\n    throw new Error('Collection utils | Max function --> Collection is empty.')\r\n}\r\n\r\n/**\r\n * Delete items from collection by predicate\r\n * @param collection Array of items\r\n * @param predicate Function to define remove logic\r\n */\r\nexport function remove<T>(collection: Array<T>, predicate: (item: T) => boolean): void {\r\n    var i = collection.length;\r\n    while (i--) {\r\n        if (predicate(collection[i])) {\r\n            collection.splice(i, 1);\r\n        }\r\n    }\r\n}\r\n\r\n/**\r\n * Add item to collection\r\n * @param collection Array of items\r\n * @param item New item\r\n * @param predicate Function to define if allowed to add new item\r\n * @returns True if successfully added\r\n */\r\nexport function addItem<T>(collection: Array<T>, item: T,\r\n    predicate: ((item: T) => boolean) | null = null): boolean {\r\n\r\n    if (!isDefined(collection))\r\n        collection = new Array<T>();\r\n\r\n    if (isDefined(predicate) && predicate!(item))\r\n        return false;\r\n\r\n    collection.push(item);\r\n\r\n    return true;\r\n}\r\n\r\n/**\r\n * Delete item from collection\r\n * @param collection Array of items\r\n * @param item Item to delete\r\n * @returns True if successfully removed\r\n */\r\nexport function removeItem<T>(collection: Array<T>, item: T): boolean {\r\n    if (isDefined(item) && hasItem(collection, item)) {\r\n        collection.splice(collection.indexOf(item), 1);\r\n        return true;\r\n    }\r\n\r\n    return false;\r\n}\r\n\r\n/**\r\n * Delete item from collection by predicate\r\n * @param collection Array of items\r\n * @param predicate Function to define remove logic\r\n * @returns True if successfully removed\r\n */\r\nexport function removeItemBy<T>(collection: Array<T>, predicate: (item: T) => boolean): boolean {\r\n    const foundItem: T | null | undefined = firstOrDefault(collection, predicate);\r\n    if (isDefined(foundItem)) {\r\n        collection.splice(collection.indexOf(foundItem as T), 1);\r\n        return true;\r\n    }\r\n\r\n    return false;\r\n}\r\n\r\n/**\r\n * Update item in collection by predicate\r\n * @param collection Array of items\r\n * @param predicate Function to define item for deleting\r\n * @returns True if successfully removed\r\n */\r\nexport function updateItemBy<T>(collection: Array<T>, predicate: (item: T) => boolean, newItem: T)\r\n    : Array<T> | null {\r\n    const itemIndex = collection.findIndex(predicate);\r\n\r\n    if (itemIndex !== CommonConstants.NOT_FOUND_INDEX) {\r\n        const result = collection.slice(0);\r\n        result[itemIndex] = {\r\n            ...collection[itemIndex],\r\n            ...newItem\r\n        };\r\n        return result\r\n    }\r\n\r\n    return null;\r\n}\r\n\r\n/**\r\n * Return collection or empty if collection is not defined\r\n * @param collection Array of items\r\n * @returns Collection or empty\r\n */\r\nexport function getCollectionOrEmpty<T>(collection: Array<T>): Array<T> {\r\n    return isDefined(collection) ? collection : [];\r\n}\r\n\r\n/**\r\n * Check if arrays are equal\r\n * @param a First array\r\n * @param b Second array\r\n * @returns True if arrays are equal\r\n */\r\nexport function isArraysEquals<T>(a: Array<T>, b: Array<T>): boolean {\r\n    if (a.length !== b.length) return false;\r\n\r\n    a.sort();\r\n    b.sort();\r\n\r\n    for (let i = 0; i < a.length; i++) {\r\n        if (a[i] !== b[i]) return false;\r\n    }\r\n\r\n    return true;\r\n}","import { HttpParams } from \"@angular/common/http\";\r\nimport { CommonConstants } from \"../constants\";\r\nimport { isDefined } from \"./common.utils\";\r\n\r\n/**\r\n * Build HTTP parameters (GET) from request object\r\n * @param value Request object\r\n *  * @returns HTTP parameters\r\n */\r\nexport function buildHttpParams(value: any): HttpParams {\r\n    let params: any = {}, httpParams = new HttpParams();\r\n\r\n    _build(params, value, CommonConstants.EMPTY_STRING);\r\n\r\n    Object.keys(params).forEach(key => httpParams = httpParams.append(key, params[key]));\r\n\r\n    return httpParams;\r\n\r\n    function _build(params: any, value: any, path: string, isArray: boolean = false): void {\r\n        const ARRAY_PART: string = ']';\r\n\r\n        if (!value) return;\r\n\r\n        Object.keys(value).forEach(key => {\r\n            if (value[key] instanceof Array) {\r\n                _build(params, value[key], `${path}${key}[`, true);\r\n            } else if (value[key] instanceof Object) {\r\n                _build(params, value[key], `${path}${key}${isArray ? `${ARRAY_PART}${CommonConstants.DOT}` : CommonConstants.DOT}`);\r\n            } else {\r\n                if (isDefined(value[key]))\r\n                    params[`${path}${key}${isArray ? ARRAY_PART : CommonConstants.EMPTY_STRING}`] = value[key];\r\n            }\r\n        });\r\n    }\r\n}","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { getCssLikeValue } from '../../utils';\r\n\r\n@Directive({\r\n  selector: '[sfcThrowElementOnHover]'\r\n})\r\nexport class ThrowElementOnHoverDirective {\r\n\r\n  @Input('sfcThrowElementOnHover')\r\n  throwValue?: number;\r\n\r\n  @HostListener('mouseenter') onMouseEnter() {\r\n    this.throw(this.throwValue);\r\n  }\r\n\r\n  @HostListener('mouseleave') onMouseLeave() {\r\n    this.throw(null);\r\n  }\r\n\r\n  private get style(): any {\r\n    return this.el.nativeElement.style;\r\n  }\r\n\r\n  constructor(private el: ElementRef) { }\r\n\r\n  private throw(value?: number | null) {\r\n    this.style.transform = value ? `translateY(${getCssLikeValue(value)})` : null;\r\n  }\r\n}","import { Directive, Input, TemplateRef } from '@angular/core';\r\nimport { CommonConstants } from '../../constants';\r\n\r\n@Directive({\r\n  selector: '[sfcTemplateReference]'\r\n})\r\nexport class TemplateReferenceDirective {\r\n\r\n  @Input('sfcTemplateReference')\r\n  templateName: string = CommonConstants.EMPTY_STRING;\r\n\r\n  @Input()\r\n  data: any;\r\n\r\n  constructor(public readonly template: TemplateRef<any>) { }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { CommonConstants } from '../../constants';\r\n\r\n@Directive({\r\n  selector: '[sfcMouseDown]'\r\n})\r\nexport class MouseDownDirective {\r\n\r\n  /**\r\n   * Allowed mouse button\r\n   */\r\n  @Input()\r\n  button: number = CommonConstants.MOUSE_BUTTON_LEFT;\r\n\r\n  @Output('sfcMouseDown')\r\n  action: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n  @HostListener('mousedown', ['$event'])\r\n  onMouseDown($event: MouseEvent) {\r\n    if ($event.button === this.button) {\r\n      this.action.emit($event);\r\n    }\r\n    else {\r\n      $event.preventDefault();\r\n    }\r\n  }\r\n}","import { Directive, ElementRef, Input } from '@angular/core';\r\nimport { UIConstants } from '../../constants';\r\nimport { ComponentSize } from '../../enums';\r\nimport { getCssLikeValue } from '../../utils';\r\n\r\n@Directive({\r\n  selector: '[sfcComponentSize]'\r\n})\r\nexport class ComponentSizeDirective {\r\n\r\n  private _size: ComponentSize | null | undefined;\r\n  @Input('sfcComponentSize')\r\n  set size(value: ComponentSize | null | undefined) {\r\n    this._size = value;\r\n    this.style.fontSize = getCssLikeValue(this.getSizeProportion(), UIConstants.CSS_EM);\r\n  }\r\n  get size(): ComponentSize | null | undefined {\r\n    return this._size;\r\n  }\r\n\r\n  private _customSize: number | null = null;\r\n  @Input()\r\n  set customSize(value: number | null) {\r\n    this._customSize = value;\r\n\r\n    if (this._customSize)\r\n      this.style.fontSize = getCssLikeValue(this._customSize, UIConstants.CSS_EM);\r\n  }\r\n  get customSize(): number | null {\r\n    return this._customSize;\r\n  }\r\n\r\n  public get proportion(): number {\r\n    return this.customSize || this.getSizeProportion();\r\n  }\r\n\r\n  private get style(): any {\r\n    return this.el.nativeElement.style;\r\n  }\r\n\r\n  constructor(private el: ElementRef) {\r\n    this.style.fontSize = getCssLikeValue(this.getSizeProportion(), UIConstants.CSS_EM);\r\n  }\r\n\r\n  private getSizeProportion(): number {\r\n    switch (this.size) {\r\n      case ComponentSize.Small:\r\n        return 0.5;\r\n      case ComponentSize.Medium:\r\n        return 1;\r\n      case ComponentSize.Large:\r\n        return 2;\r\n      default:\r\n        return 1;\r\n    }\r\n  }\r\n}\r\n","import { Directive, ElementRef, Input } from \"@angular/core\";\r\n\r\n@Directive({\r\n    selector: '[sfcDestroyParent]'\r\n})\r\nexport class DestroyParentDirective {\r\n\r\n    @Input('sfcDestroyParent')\r\n    set destroyParent(value: boolean) {\r\n        if (value) {\r\n            setTimeout(() => this.el.nativeElement.parentElement?.remove(), this.delay);\r\n        }\r\n    }\r\n\r\n    @Input()\r\n    delay: number = 0;\r\n\r\n    constructor(private el: ElementRef) { }\r\n}","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[sfcDomChanges]'\r\n})\r\nexport class DomChangesDirective implements OnDestroy {\r\n\r\n  @Output()\r\n  public sfcDomChanges = new EventEmitter<MutationRecord>();\r\n\r\n  @Input()\r\n  options: MutationObserverInit = {\r\n    attributes: true,\r\n    childList: true,\r\n    characterData: true\r\n  };\r\n\r\n  private changes: MutationObserver;\r\n\r\n  constructor(private elementRef: ElementRef) {\r\n    const element = this.elementRef.nativeElement;\r\n\r\n    this.changes = new MutationObserver((mutations: MutationRecord[]) =>\r\n      mutations.forEach((mutation: MutationRecord) =>\r\n        this.sfcDomChanges.emit(mutation)));\r\n\r\n    this.changes.observe(element, this.options);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.changes.disconnect();\r\n  }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\nimport { Position } from '../../enums';\r\nimport { hasItem } from '../../utils';\r\n\r\n@Directive({\r\n  selector: '[sfcScrollTracker]'\r\n})\r\nexport class ScrollTrackerDirective {\r\n\r\n  @Input()\r\n  positions: Position[] = [];\r\n\r\n  @Output()\r\n  sfcScrollTracker: EventEmitter<Position> = new EventEmitter<Position>();\r\n\r\n  @HostListener('scroll', ['$event'])\r\n  private onScroll(event: Event) {\r\n    const position = this.getPosition(event)\r\n    if (position && hasItem(this.positions, position))\r\n      this.sfcScrollTracker.emit(position);\r\n  }\r\n\r\n  private getPosition(event: Event): Position | null {\r\n    const tracker: any = event.target,\r\n      limit = tracker.scrollHeight - tracker.clientHeight,\r\n      scrollTopFixed = tracker.scrollTop.toFixed();\r\n\r\n    if (scrollTopFixed >= limit)\r\n      return Position.Bottom;\r\n    else if (scrollTopFixed <= 0)\r\n      return Position.Top;\r\n\r\n    return null;\r\n  }\r\n}","import { Directive, Input } from '@angular/core';\r\nimport { isChromeBrowser, isDefined } from '../../utils';\r\n\r\n@Directive({\r\n  selector: '[sfcScrollIntoView]'\r\n})\r\nexport class ScrollIntoViewDirective {\r\n\r\n  @Input()\r\n  set sfcScrollIntoView(target: HTMLElement) {\r\n    if (!isDefined(target))\r\n      return;\r\n\r\n    if (this.local)\r\n      target.scrollTop = target.offsetHeight / 2;\r\n    else {\r\n      if (isChromeBrowser())\r\n        (target as any).scrollIntoViewIfNeeded();\r\n      else\r\n        target.scrollIntoView(this.options);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Scroll into middle of local container(not whole page)\r\n   */\r\n  @Input()\r\n  local: boolean = false;\r\n\r\n  @Input()\r\n  options: ScrollIntoViewOptions = { behavior: 'smooth', block: 'center', inline: 'start' };\r\n}","import { Injectable } from '@angular/core';\r\nimport { distinctUntilChanged, Observable, Subject } from 'rxjs';\r\nimport { ImageLoadEvent } from './image-load.event';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ImageLoadService {\r\n\r\n  private loadSubject = new Subject<ImageLoadEvent>();\r\n\r\n  public load$: Observable<ImageLoadEvent> = this.loadSubject.asObservable()\r\n    .pipe(distinctUntilChanged());\r\n\r\n  public load(value: ImageLoadEvent) {\r\n    this.loadSubject.next(value);\r\n  }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\r\nimport { isDefined } from '../../utils';\r\nimport { ImageLoadEvent } from './services/image-load.event';\r\nimport { ImageLoadService } from './services/image-load.service';\r\n\r\n@Directive({\r\n  selector: '[sfcImageLoad]'\r\n})\r\nexport class ImageLoadDirective {\r\n\r\n  @Output('sfcImageLoad')\r\n  public action = new EventEmitter<Event>();\r\n\r\n  @HostListener('load', ['$event'])\r\n  private onLoad(event: Event) {\r\n    const loadEvent: ImageLoadEvent = {\r\n      natural: {\r\n        height: this.el.nativeElement.naturalHeight,\r\n        width: this.el.nativeElement.naturalWidth\r\n      },\r\n      offset: {\r\n        height: this.el.nativeElement.offsetHeight,\r\n        width: this.el.nativeElement.offsetWidth\r\n      }\r\n    };\r\n    \r\n    this.loadService.load(loadEvent);\r\n\r\n    if (isDefined(this.action))\r\n      this.action.emit(event);\r\n  }\r\n\r\n  constructor(private el: ElementRef, private loadService: ImageLoadService) { }\r\n}\r\n","import { Directive, ElementRef, Input } from '@angular/core';\r\nimport { UIClass } from '../../enums';\r\nimport { getCssLikeValue } from '../../utils';\r\n\r\n@Directive({\r\n  selector: '[sfcCollapseExpand]'\r\n})\r\nexport class CollapseExpandDirective {\r\n\r\n  private readonly EXPAND_COLLAPSE_TRANSITION_DELAY_DEFAULT: number = 0.5;\r\n\r\n  @Input('sfcCollapseExpand')\r\n  set expand(expand: boolean) {\r\n    this.style.maxHeight = expand\r\n      ? getCssLikeValue(this.el.nativeElement.scrollHeight)\r\n      : 0;\r\n  }\r\n\r\n  @Input()\r\n  set delay(value: number) {\r\n    this.style.transition = this.getTransitionValue(value);\r\n  };\r\n\r\n  private get style(): any {\r\n    return this.el.nativeElement.style;\r\n  }\r\n\r\n  constructor(private el: ElementRef) {\r\n    this.style.transition = this.getTransitionValue();\r\n    this.style.overflow = UIClass.Hidden;\r\n  }\r\n\r\n  private getTransitionValue(delay: number = this.EXPAND_COLLAPSE_TRANSITION_DELAY_DEFAULT) {\r\n    return `max-height ${delay}s ease-out`;\r\n  }\r\n}","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[sfcComponentReference]',\r\n  exportAs: 'componentRef',\r\n})\r\nexport class ComponentReferenceDirective {\r\n  constructor(public elementRef: ElementRef) { }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'sfcSwitchMultiCase' })\r\nexport class SwitchMultiCasePipe implements PipeTransform {\r\n\r\n  transform(cases: any[], switchOption: any): any {\r\n    return cases.includes(switchOption) ? switchOption : !switchOption;\r\n  }\r\n  \r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { SortingDirection } from '../../enums';\r\nimport { any, isNullOrEmptyString, sortByPath } from '../../utils';\r\n\r\n// This pipe has \"pure: false\" (impure pipe) which has huge impact on performance!\r\n@Pipe({ name: 'sfcSortBy', pure: false })\r\nexport class SortByPipe implements PipeTransform {\r\n\r\n  transform(value: any[], path: string, direction: SortingDirection = SortingDirection.Ascending): any[] {\r\n    if (!any(value)) { return value; } // no array\r\n    if (value.length <= 1) { return value; } // array with only one item\r\n    if (isNullOrEmptyString(path)) { return value; } // no path\r\n\r\n    return sortByPath(value, path, direction)\r\n  }\r\n  \r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'sfcRepeat' })\r\nexport class RepeatPipe implements PipeTransform {\r\n\r\n    transform(value: number): number[] {\r\n        return [].constructor(value);\r\n    }\r\n}","export enum ButtonType {\r\n    Bordered = 'bordered',\r\n    Filled = 'filled',\r\n    Rounded = 'rounded',\r\n    Circled = 'circled',\r\n    Texted = 'texted'\r\n}","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { UIClass } from '../../enums';\r\nimport { distinct, isDefined, isNullOrEmptyString } from '../../utils';\r\nimport { ButtonType } from './button-type.enum';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { IClassModel } from '../../models';\r\n\r\n@Component({\r\n  selector: 'sfc-button',\r\n  templateUrl: './button.component.html',\r\n  styleUrls: ['./button.component.scss']\r\n})\r\nexport class ButtonComponent {\r\n\r\n  private readonly BUTTON_DEFAULT_TEXT: string = 'Button';\r\n\r\n  @Input()\r\n  text?: string;\r\n\r\n  @Input()\r\n  iconBefore?: IconDefinition;\r\n\r\n  @Input()\r\n  iconAfter?: IconDefinition;\r\n\r\n  @Input()\r\n  @HostBinding(`class.${UIClass.Disabled}`)\r\n  disabled: boolean = false;\r\n\r\n  @Input()\r\n  types: Array<ButtonType> = [ButtonType.Bordered];\r\n\r\n  public get label(): string | undefined {\r\n    return isNullOrEmptyString(this.text) && !isDefined(this.iconBefore) && !isDefined(this.iconAfter)\r\n      ? this.BUTTON_DEFAULT_TEXT\r\n      : this.text;\r\n  }\r\n\r\n  public get classes(): IClassModel {\r\n    const classes: any = {};\r\n\r\n    distinct(this.types).forEach(type => classes[type] = true);\r\n\r\n    return classes;\r\n  }\r\n}\r\n","<a class=\"button\" [ngClass]=\"classes\">\r\n    <fa-icon *ngIf=\"iconBefore\" class=\"icon before\" [icon]=\"iconBefore\"></fa-icon>\r\n    <span class=\"text\">{{label}}</span>\r\n    <fa-icon *ngIf=\"iconAfter\" class=\"icon after\" [icon]=\"iconAfter\"></fa-icon>\r\n</a>","export enum TooltipType {\r\n    Hover = 'hover',\r\n    Click = 'click'\r\n}","import {\r\n  AfterContentInit, Component, HostBinding, HostListener,\r\n  Inject, Input, OnDestroy, OnInit\r\n} from '@angular/core';\r\nimport { startWith, Subscription } from 'rxjs';\r\nimport { Position, MediaLimits } from '../../enums';\r\nimport { ResizeService, WINDOW } from '../../services';\r\nimport { empty } from '../../types';\r\nimport { TooltipType } from './tooltip-type.enum';\r\n\r\n@Component({\r\n  /* eslint-disable */\r\n  selector: '[sfc-tooltip]',\r\n  template: `<ng-content></ng-content>`,\r\n  styleUrls: ['./tooltip.component.scss']\r\n})\r\nexport class TooltipComponent implements OnInit, OnDestroy, AfterContentInit {\r\n\r\n  @Input('sfc-tooltip')\r\n  @HostBinding('attr.value')\r\n  value?: string | empty;\r\n\r\n  @Input()\r\n  @HostBinding('attr.type')\r\n  tooltipType = TooltipType.Hover;\r\n\r\n  @Input()\r\n  @HostBinding('attr.position')\r\n  tooltipPosition = Position.Top;\r\n\r\n  @Input()\r\n  @HostBinding('class.show')\r\n  tooltipShow: boolean = false;\r\n\r\n  @Input()\r\n  resize: boolean = true;\r\n\r\n  @HostListener('click')\r\n  click() {\r\n    if (this.tooltipType == TooltipType.Click) {\r\n      this.tooltipShow = !this.tooltipShow;\r\n    }\r\n  }\r\n\r\n  // preserved position\r\n  private _position = Position.Top;\r\n\r\n  private _resizeSubscription?: Subscription;\r\n\r\n  constructor(private resizeService: ResizeService, @Inject(WINDOW) private window: Window) { }\r\n\r\n  ngOnInit(): void {\r\n    this._position = this.tooltipPosition;\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    if (this.resize) {\r\n      this._resizeSubscription = this.resizeService.onResize$\r\n        .pipe(startWith(this.window))\r\n        .subscribe(window => this.tooltipPosition = window.innerWidth <= MediaLimits.Tablet\r\n          ? Position.Bottom : this._position);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this._resizeSubscription?.unsubscribe();\r\n  }\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { Direction, UIClass } from '../../enums';\r\nimport { isNullOrEmptyString } from '../../utils';\r\n\r\n@Component({\r\n  selector: 'sfc-delimeter',\r\n  template: `<span>{{label}}</span>`,\r\n  styleUrls: ['./delimeter.component.scss']\r\n})\r\nexport class DelimeterComponent {\r\n\r\n  @Input()\r\n  label!: string;\r\n\r\n  @Input()\r\n  @HostBinding('class')\r\n  direction: Direction = Direction.Horizontal;\r\n\r\n  @HostBinding(`class.${UIClass.Empty}`)\r\n  private get _empty(): boolean { return isNullOrEmptyString(this.label) };\r\n}\r\n","export class LoaderConstants {\r\n    static GLOBAL_LOADER_ID = 'global';\r\n    static LOCAL_LOADER_ID = 'local';\r\n    static CSS_CLASS_BACKGROUND = 'background';\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, distinctUntilChanged, filter, map, Observable } from 'rxjs';\r\nimport { addItem, any, firstOrDefault, hasObjectItem, isDefined, nameof, removeItemBy, updateItemBy } from '../../../utils';\r\nimport { LoaderConstants } from '../loader.constants';\r\nimport { ILoaderEvent } from '../loader.event';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n  private loaderSubject: BehaviorSubject<ILoaderEvent[]> = new BehaviorSubject<ILoaderEvent[]>([]);\r\n\r\n  private loaders$: Observable<ILoaderEvent[]> = this.loaderSubject\r\n    .asObservable()\r\n    .pipe(\r\n      filter<ILoaderEvent[]>(loaders => any(loaders)),\r\n      distinctUntilChanged()\r\n    );\r\n\r\n  /**\r\n   * Show loader by Id\r\n   * @param id Loader Id\r\n   * @param register If true register loader and show it\r\n   */\r\n  public show(id: string = LoaderConstants.GLOBAL_LOADER_ID, register: boolean = false)\r\n    : Observable<ILoaderEvent> | null {\r\n    return this.setLoaderStatus(id, true, register);\r\n  }\r\n\r\n  /**\r\n   * Hide loader\r\n   * @param id Loader Id\r\n   */\r\n  public hide(id: string = LoaderConstants.GLOBAL_LOADER_ID): void {\r\n    this.setLoaderStatus(id, false);\r\n  }\r\n\r\n  /**\r\n   * Register loader for next use\r\n   * @param event Loader event\r\n   * @returns Registred loade observable\r\n   */\r\n  public register(event: ILoaderEvent): Observable<ILoaderEvent> {\r\n\r\n    const loaders = this.loaderSubject.getValue();\r\n\r\n    if (addItem(loaders, event,\r\n      () => hasObjectItem(loaders, nameof<ILoaderEvent>('id'), event.id))) {\r\n      this.loaderSubject.next(loaders);\r\n    }\r\n\r\n    return this.selectLoaderById(event.id);\r\n  }\r\n\r\n  /**\r\n   * Remove loader\r\n   * @param id Loader Id\r\n   */\r\n  public remove(id: string = LoaderConstants.GLOBAL_LOADER_ID): void {\r\n    const loaders = this.loaderSubject.getValue();\r\n\r\n    if (removeItemBy(loaders, loader => loader.id == id)) {\r\n      this.loaderSubject.next(loaders);\r\n    }\r\n  }\r\n\r\n  private selectLoaderById(id: string): Observable<ILoaderEvent> {\r\n    return this.loaders$\r\n      .pipe(\r\n        map(loaders => loaders.find(loader => loader.id == id) as ILoaderEvent),\r\n        distinctUntilChanged()\r\n      );\r\n  }\r\n\r\n  private setLoaderStatus(id: string, status: boolean, register: boolean = false): Observable<ILoaderEvent> | null {\r\n    const loaders = this.loaderSubject.getValue(),\r\n      ILoaderEvent: ILoaderEvent = { id, status },\r\n      loader = firstOrDefault(loaders, (loader) => loader.id == id);\r\n\r\n    if (isDefined(loader) && loader?.status == status)\r\n      return this.selectLoaderById(id);\r\n\r\n    const updatedLoaders = updateItemBy(loaders, (loader) => loader.id == id, ILoaderEvent);\r\n\r\n    if (isDefined(updatedLoaders)) {\r\n      this.loaderSubject.next(updatedLoaders as ILoaderEvent[]);\r\n    }\r\n\r\n    if (register) {\r\n      return this.register(ILoaderEvent);\r\n    }\r\n\r\n    return null;\r\n  }\r\n}\r\n","import { Directive, Input, OnInit } from \"@angular/core\";\r\nimport { EMPTY, map, Observable } from \"rxjs\";\r\nimport { UIClass } from \"../../enums\";\r\nimport { LoaderConstants } from \"./loader.constants\";\r\nimport { ILoaderEvent } from \"./loader.event\";\r\nimport { LoaderService } from \"./service/loader.service\";\r\n\r\n@Directive()\r\nexport abstract class LoaderBaseComponent implements OnInit {\r\n\r\n    UIClass = UIClass;\r\n\r\n    /**\r\n    * Loader identificator (global by default)\r\n    */\r\n    @Input()\r\n    id: string = LoaderConstants.GLOBAL_LOADER_ID;\r\n\r\n    /**\r\n     * Is start on init (loader register with show = True)\r\n     */\r\n    @Input()\r\n    start: boolean = false;\r\n\r\n    /**\r\n     * Loader when active(show) has background(low opacity)\r\n     */\r\n    @Input()\r\n    background: boolean = true;\r\n\r\n    constructor(protected loaderService: LoaderService) {\r\n    }\r\n\r\n    public show$: Observable<boolean> = EMPTY;\r\n\r\n    public ngOnInit(): void {\r\n        // register new loader\r\n        this.show$ = this.loaderService.register({ id: this.id, status: this.start })\r\n            .pipe(\r\n                map((event: ILoaderEvent) => this.id === event.id && event.status)\r\n            );\r\n    }\r\n\r\n    get preLoaderClasses() {\r\n        let classes: any = {};\r\n\r\n        if (this.id === LoaderConstants.GLOBAL_LOADER_ID)\r\n            classes[LoaderConstants.GLOBAL_LOADER_ID] = true;\r\n        else\r\n            classes[LoaderConstants.LOCAL_LOADER_ID] = true;\r\n\r\n        classes[LoaderConstants.CSS_CLASS_BACKGROUND] = this.background;\r\n\r\n        return classes;\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { LoaderBaseComponent } from '../loader-base.component';\r\n\r\n@Component({\r\n  selector: 'sfc-bounce-loader',\r\n  templateUrl: './bounce-loader.component.html',\r\n  styleUrls: ['../styles/loader-base.component.scss', './bounce-loader.component.scss']\r\n})\r\nexport class BounceLoaderComponent extends LoaderBaseComponent {\r\n}\r\n","<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n    <div class=\"spinner\">\r\n        <div class=\"bounce\"></div>\r\n        <div class=\"bounce\"></div>\r\n        <div class=\"bounce\"></div>\r\n    </div>\r\n</div>","export enum CircleLoaderType {\r\n    Default = 'default',\r\n    Fading = 'fading'\r\n}","import { Component, Input } from '@angular/core';\r\nimport { LoaderBaseComponent } from '../loader-base.component';\r\nimport { CircleLoaderType } from './circle-loader-type.enum';\r\n\r\n@Component({\r\n  selector: 'sfc-circle-loader',\r\n  templateUrl: './circle-loader.component.html',\r\n  styleUrls: ['../styles/loader-base.component.scss', './circle-loader.component.scss']\r\n})\r\nexport class CircleLoaderComponent extends LoaderBaseComponent {\r\n  \r\n  @Input()\r\n  type: CircleLoaderType = CircleLoaderType.Default;\r\n}\r\n","<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n    <div class=\"circles-container\" [ngClass]=\"type\">\r\n        <div class=\"circle1\"></div>\r\n        <div class=\"circle2\"></div>\r\n        <div class=\"circle3\"></div>\r\n        <div class=\"circle4\"></div>\r\n        <div class=\"circle5\"></div>\r\n        <div class=\"circle6\"></div>\r\n        <div class=\"circle7\"></div>\r\n        <div class=\"circle8\"></div>\r\n        <div class=\"circle9\"></div>\r\n        <div class=\"circle10\"></div>\r\n        <div class=\"circle11\"></div>\r\n        <div class=\"circle12\"></div>\r\n    </div>\r\n</div>","export enum ModalTemplate {\r\n    Body = 'body',\r\n    Header = 'header',\r\n    Footer = 'footer'\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ObservableModel } from '../../../models';\r\nimport { IModalEvent } from './modal.event';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n  private model: ObservableModel<IModalEvent> = new ObservableModel<IModalEvent>();\r\n\r\n  /* Properties */\r\n\r\n  public get modal$(): Observable<IModalEvent> { return this.model.value$; }\r\n\r\n  public isOpen: boolean = false;\r\n\r\n  public args: any;\r\n\r\n  /* End Properties */\r\n\r\n  public toggle(id: any, args?: any): void {\r\n    this.emit({ open: !this.isOpen, id: id, args: args });\r\n  }\r\n\r\n  public close(id: any, args?: any): void {\r\n    this.emit({ open: false, id: id, args: args });\r\n  }\r\n\r\n  public open(id: any, args?: any): void {\r\n    this.emit({ open: true, id: id, args: args });\r\n  }\r\n\r\n  private emit(event: IModalEvent): void {\r\n    this.args = event.args;\r\n    this.isOpen = event.open;\r\n    this.model.subject.next(event);\r\n  }\r\n}","import { Directive, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { filter, Subscription } from 'rxjs';\r\nimport { IModalEvent } from '../../service/modal.event';\r\nimport { ModalService } from '../../service/modal.service';\r\n\r\n@Directive({\r\n  selector: '[sfcModalOpen]'\r\n})\r\nexport class ModalOpenDirective implements OnDestroy {\r\n\r\n  /* Inputs */\r\n\r\n  @Input('sfcModalOpen')\r\n  public id!: string;\r\n\r\n  /* End Inputs */\r\n\r\n  /* Subscriptions */\r\n\r\n  private _openSubscription: Subscription;\r\n\r\n  /* End Subscriptions */\r\n\r\n  constructor(\r\n    private templateRef: TemplateRef<any>,\r\n    private viewContainer: ViewContainerRef,\r\n    private modalService: ModalService) {\r\n\r\n    this._openSubscription = this.modalService.modal$\r\n      .pipe(filter((event: IModalEvent) => event.id === this.id))\r\n      .subscribe((event: IModalEvent) => {\r\n        this.viewContainer.clear();\r\n\r\n        if (event.open)\r\n          this.viewContainer.createEmbeddedView(this.templateRef);\r\n      });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this._openSubscription.unsubscribe();\r\n  }\r\n}","import { Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { filter, Subscription } from 'rxjs';\r\nimport { ModalService } from '../../service/modal.service';\r\nimport { isDefined } from '../../../../utils/index';\r\nimport { IModalEvent } from '../../service/modal.event';\r\nimport { IModalOpenOnClickModel } from './modal-open-on-click.model';\r\n\r\n@Directive({\r\n  selector: '[sfcModalOpenOnClick]'\r\n})\r\nexport class ModalOpenOnClickDirective implements OnInit, OnDestroy {\r\n\r\n  /* Inputs */\r\n\r\n  @Input('sfcModalOpenOnClick')\r\n  set modalOpenOnClick(model: IModalOpenOnClickModel) {\r\n    if (!isDefined(model.elements) || !isDefined(model.id))\r\n      return;\r\n\r\n    this._id = model.id;\r\n\r\n    if (model.elements instanceof HTMLElement)\r\n      this.elements = [model.elements];\r\n    else\r\n      this.elements = model.elements;\r\n\r\n    this.elements.forEach(el => el.addEventListener('click', this.clickHandler));\r\n  }\r\n\r\n  /* End Inputs */\r\n\r\n  /* Properties */\r\n\r\n  private _id!: string;\r\n  public get id(): string { return this._id; }\r\n\r\n  private elements: HTMLElement[] = [];\r\n\r\n  private clickHandler = ((): void => {\r\n    this.viewContainer.clear();\r\n    this.viewContainer.createEmbeddedView(this.templateRef);\r\n    this.modalService.toggle(this.id);\r\n  }).bind(this);\r\n\r\n  /* End Properties */\r\n\r\n  /* Subscriptions */\r\n\r\n  private _closeSubscription?: Subscription;\r\n\r\n  /* End Subscriptions */\r\n\r\n  constructor(\r\n    private templateRef: TemplateRef<any>,\r\n    private viewContainer: ViewContainerRef,\r\n    private modalService: ModalService) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this._closeSubscription = this.modalService.modal$\r\n      .pipe(filter((event: IModalEvent) => !event.open && this.id === event.id))\r\n      .subscribe(() => this.viewContainer.clear());\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this._closeSubscription?.unsubscribe();\r\n    this.elements.forEach(el => el.removeEventListener('click', this.clickHandler));\r\n  }\r\n}\r\n","import { Component, Input, QueryList, TemplateRef } from '@angular/core';\r\nimport { TemplateReferenceDirective } from '../../directives';\r\nimport { firstOrDefault, isDefined } from '../../utils';\r\n\r\n@Component({\r\n  selector: 'sfc-template-content',\r\n  templateUrl: './template-content.component.html',\r\n  styles: [':host{ display: contents;}']\r\n})\r\nexport class TemplateContentComponent {\r\n\r\n  @Input()\r\n  contextData?: any;\r\n\r\n  @Input()\r\n  referenceContent?: TemplateRef<any>;\r\n\r\n  @Input()\r\n  templateType?: string;\r\n\r\n  @Input()\r\n  templatesContent: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n  @Input()\r\n  defaultContent?: TemplateRef<any>;\r\n\r\n  get showDefault(): boolean {\r\n    return !isDefined(this.referenceContent)\r\n      && !isDefined(this.templateContent);\r\n  }\r\n\r\n  get templateContent(): TemplateRef<any> | null {\r\n    const templateRef = firstOrDefault(this.templatesContent?.toArray(),\r\n      t => t.templateName == this.templateType);\r\n\r\n    return templateRef?.template || null;\r\n  }\r\n}\r\n","<ng-container *ngIf=\"referenceContent;else template\">\r\n    <ng-container *ngTemplateOutlet=\"referenceContent;context:{$implicit: contextData}\"></ng-container>\r\n</ng-container>\r\n\r\n<ng-template #template>\r\n    <ng-container *ngTemplateOutlet=\"templateContent;context:{$implicit: contextData}\">\r\n    </ng-container>\r\n</ng-template>\r\n\r\n<ng-container *ngIf=\"defaultContent && showDefault\">\r\n    <ng-container *ngTemplateOutlet=\"defaultContent;context:{$implicit: contextData}\"></ng-container>\r\n</ng-container>","import { faWindowRestore } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { IDefaultModalHeaderModel } from \"./default-modal-header.model\";\r\n\r\nexport class DefaultModalHeaderConstants {\r\n    static DEFAULT_MODAL_HEADER_MODEL: IDefaultModalHeaderModel = {\r\n        icon: faWindowRestore,\r\n        showCloseIcon: true,\r\n        text: 'Modal'\r\n    };\r\n}","import { Component } from '@angular/core';\r\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Component({\r\n  selector: 'sfc-close',\r\n  templateUrl: './close.component.html',\r\n  styleUrls: ['./close.component.scss']\r\n})\r\nexport class CloseComponent {\r\n  faTimes = faTimes;\r\n}\r\n","<div class=\"container\">\r\n    <ng-content></ng-content>\r\n    <fa-icon [icon]=\"faTimes\"></fa-icon>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IDefaultModalHeaderModel } from './default-modal-header.model';\r\nimport { isDefined } from '../../../../utils';\r\nimport { ModalService } from '../../service/modal.service';\r\nimport { faWindowRestore, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { DefaultModalHeaderConstants } from './default-modal-header.constants';\r\n\r\n@Component({\r\n  selector: 'sfc-default-modal-header',\r\n  templateUrl: './default-modal-header.component.html',\r\n  styleUrls: ['./default-modal-header.component.scss']\r\n})\r\nexport class DefaultModalHeaderComponent implements OnInit {\r\n\r\n  /* Inputs */\r\n\r\n  @Input()\r\n  id!: string;\r\n\r\n  @Input()\r\n  model!: IDefaultModalHeaderModel;\r\n\r\n  /* End Inputs */\r\n\r\n  /* Properties */\r\n\r\n  public get icon(): IconDefinition { return this.model?.icon || faWindowRestore; }\r\n\r\n  /* End Properties */\r\n\r\n  constructor(private modalService: ModalService) { }\r\n\r\n  ngOnInit(): void {\r\n    if (!isDefined(this.model))\r\n      this.model = DefaultModalHeaderConstants.DEFAULT_MODAL_HEADER_MODEL;\r\n  }\r\n\r\n  public onClose(): void {\r\n    this.modalService.close(this.id);\r\n  }\r\n}\r\n","<div class=\"container\">\r\n    <div class=\"content\">\r\n        <fa-icon *ngIf=\"icon\" class=\"icon\" [icon]=\"icon\"></fa-icon>\r\n        <span *ngIf=\"model.text\" class=\"label\">{{model.text}}</span>\r\n        <sfc-close *ngIf=\"model.showCloseIcon\" (click)=\"onClose()\"></sfc-close>\r\n    </div>\r\n\r\n    <sfc-delimeter></sfc-delimeter>\r\n</div>","import { IDefaultModalFooterModel } from \"./default-modal-footer.model\";\r\n\r\nexport class DefaultModalFooterConstants {\r\n    static BUTTON_CUSTOM_SIZE: number = 0.9;\r\n    static DEFAULT_MODAL_FOOTER_MODEL: IDefaultModalFooterModel = {\r\n        cancelButton: true,\r\n        applyButton: true,\r\n        applyButtonText: 'Ok',\r\n        cancelButtonText: 'Cancel'\r\n    }\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IDefaultModalFooterModel } from './default-modal-footer.model';\r\nimport { isDefined, isNullOrEmptyString } from '../../../../utils';\r\nimport { ButtonType } from '../../../button/button-type.enum';\r\nimport { ComponentSize } from '../../../../enums';\r\nimport { ModalService } from '../../service/modal.service';\r\nimport { DefaultModalFooterConstants } from './default-modal-footer.constants';\r\n\r\n@Component({\r\n  selector: 'sfc-default-modal-footer',\r\n  templateUrl: './default-modal-footer.component.html',\r\n  styleUrls: ['./default-modal-footer.component.scss']\r\n})\r\nexport class DefaultModalFooterComponent implements OnInit {\r\n\r\n  ComponentSize = ComponentSize;\r\n  ButtonType = ButtonType;\r\n\r\n  // component\r\n  Constants = DefaultModalFooterConstants;\r\n\r\n  /* Inputs */\r\n\r\n  @Input()\r\n  id!: string;\r\n\r\n  @Input()\r\n  model!: IDefaultModalFooterModel;\r\n\r\n  /* End Inputs */\r\n\r\n  constructor(private modalService: ModalService) { }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.model) {\r\n      this.model = Object.assign({}, DefaultModalFooterConstants.DEFAULT_MODAL_FOOTER_MODEL);\r\n    } else {\r\n      if (isNullOrEmptyString(this.model.applyButtonText))\r\n        this.model.applyButtonText = DefaultModalFooterConstants.DEFAULT_MODAL_FOOTER_MODEL.applyButtonText;\r\n\r\n      if (isNullOrEmptyString(this.model.cancelButtonText))\r\n        this.model.cancelButtonText = DefaultModalFooterConstants.DEFAULT_MODAL_FOOTER_MODEL.cancelButtonText;\r\n\r\n      if (!isDefined(this.model.applyButton))\r\n        this.model.applyButton = DefaultModalFooterConstants.DEFAULT_MODAL_FOOTER_MODEL.applyButton;\r\n\r\n      if (!isDefined(this.model.cancelButton))\r\n        this.model.cancelButton = DefaultModalFooterConstants.DEFAULT_MODAL_FOOTER_MODEL.cancelButton;\r\n    }\r\n  }\r\n\r\n  onButtonClick(isCancelButton: boolean = false): void {\r\n    if (isCancelButton) {\r\n      if (this.model.onCancel) {\r\n        return this.model?.onCancel(this.modalService.args);\r\n      }\r\n    } else {\r\n      if (this.model.onApply) {\r\n        return this.model.onApply(this.modalService.args);\r\n      }\r\n    }\r\n\r\n    this.modalService.toggle(this.id);\r\n  }\r\n}","<div class=\"container\">\r\n    <sfc-button *ngIf=\"model.applyButton\" [sfcComponentSize] [customSize]=\"Constants.BUTTON_CUSTOM_SIZE\"\r\n        [text]=\"model.applyButtonText\" [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick()\">\r\n    </sfc-button>\r\n    <sfc-button *ngIf=\"model.cancelButton\" [sfcComponentSize] [customSize]=\"Constants.BUTTON_CUSTOM_SIZE\"\r\n        [text]=\"model.cancelButtonText\" [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick(true)\">\r\n    </sfc-button>\r\n</div>","import {\r\n    animate, animateChild, group, query,\r\n    state, style, transition, trigger\r\n} from '@angular/animations';\r\nimport {\r\n    AfterViewInit, Component, ContentChildren, HostListener, Inject, Input, OnDestroy,\r\n    Optional, QueryList, TemplateRef\r\n} from '@angular/core';\r\nimport { ModalOpenDirective } from './directive/open/modal-open.directive';\r\nimport { UIConstants } from '../../constants';\r\nimport { TemplateReferenceDirective } from '../../directives';\r\nimport { DOCUMENT } from '../../services';\r\nimport { IDefaultModalFooterModel } from './footer/default/default-modal-footer.model';\r\nimport { IDefaultModalHeaderModel } from './header/default/default-modal-header.model';\r\nimport { ModalTemplate } from './modal-template.enum';\r\nimport { ModalService } from './service/modal.service';\r\nimport { ModalOpenOnClickDirective } from './directive/click/modal-open-on-click.directive';\r\nimport { isDefined } from '../../utils';\r\n\r\n@Component({\r\n    selector: 'sfc-modal',\r\n    templateUrl: './modal.component.html',\r\n    styleUrls: ['./modal.component.scss'],\r\n    animations: [\r\n        trigger('hideOverlay', [\r\n            state('initial', style({ opacity: 1, visibility: 'visible' })),\r\n            state('void', style({ opacity: 0, visibility: 'hidden' })),\r\n\r\n            transition('* => void', [\r\n                group([\r\n                    query(':self', [\r\n                        animate('400ms cubic-bezier(.55, 0, .1, 1)', style({\r\n                            opacity: 0,\r\n                            visibility: 'hidden'\r\n                        }))\r\n                    ]),\r\n                    query('@hideContent', [animateChild()])\r\n                ])\r\n            ])\r\n        ]),\r\n        trigger('hideContent', [\r\n            state('initial', style({ opacity: 1, visibility: 'visible', transform: 'scale(1)' })),\r\n            state('void', style({ opacity: 0, visibility: 'hidden', transform: 'scale(1.2)' })),\r\n            transition('* => void', animate('400ms cubic-bezier(.55, 0, .1, 1)'))\r\n        ])\r\n    ]\r\n})\r\nexport class ModalComponent implements AfterViewInit, OnDestroy {\r\n\r\n    ModalTemplate = ModalTemplate;\r\n\r\n    // Template references \r\n\r\n    @Input()\r\n    body?: TemplateRef<any>;\r\n\r\n    @Input()\r\n    header?: TemplateRef<any>;\r\n\r\n    @Input()\r\n    footer?: TemplateRef<any>;\r\n\r\n    // End Template references        \r\n\r\n    // Defaults\r\n\r\n    @Input()\r\n    defaultHeaderModel!: IDefaultModalHeaderModel;\r\n\r\n    @Input()\r\n    defaultFooterModel!: IDefaultModalFooterModel;\r\n\r\n    // End Defaults\r\n\r\n    @Input()\r\n    hideOnEsc: boolean = true;\r\n\r\n    @Input()\r\n    hideOnClickOutside: boolean = true;\r\n\r\n    // hide modal header (even default)\r\n    @Input()\r\n    showHeader: boolean = true;\r\n\r\n    // hide modal footer (even default)\r\n    @Input()\r\n    showFooter: boolean = true;\r\n\r\n    @HostListener('document:keydown.escape')\r\n    onEscapeKeyDownHandler() {\r\n        if (this.hideOnEsc)\r\n            this.close();\r\n    }\r\n\r\n    @ContentChildren(TemplateReferenceDirective, { read: TemplateReferenceDirective })\r\n    templates: QueryList<TemplateReferenceDirective> | undefined;\r\n\r\n    /* Properties */\r\n\r\n    public get id(): string {\r\n        return isDefined(this.openOnClickDirective)\r\n            ? this.openOnClickDirective.id : this.openDirective.id;\r\n    }\r\n\r\n    // value of body overflow style when modal created\r\n    // this prevent scrolling when modal has opened\r\n    private bodyOverflow: string;\r\n\r\n    /* End Properties */\r\n\r\n    constructor(\r\n        public modalService: ModalService,\r\n        @Inject(DOCUMENT) private document: Document,\r\n        @Optional() private openDirective: ModalOpenDirective,\r\n        @Optional() private openOnClickDirective: ModalOpenOnClickDirective) {\r\n        // remember body overflow\r\n        this.bodyOverflow = this.document.body.style.overflow;\r\n    }\r\n\r\n    ngAfterViewInit(): void {\r\n        // set body overflow to hidden, to prevent page scrolling\r\n        this.document.body.style.overflow = UIConstants.CSS_VISIBILITY_HIDDEN;\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        // return back body overflow value when modal has closed\r\n        this.document.body.style.overflow = this.bodyOverflow;\r\n    }\r\n\r\n    public close(): void {\r\n        this.modalService.close(this.id);\r\n    }\r\n}\r\n","<div class=\"overlay\" [@hideOverlay] (click)=\"hideOnClickOutside && close()\">\r\n    <div class=\"content\" [@hideContent] (click)=\"$event.stopPropagation()\">\r\n\r\n        <div *ngIf=\"showHeader\" class=\"header\">\r\n            <sfc-template-content [referenceContent]=\"header\" [templatesContent]=\"templates\"\r\n                [templateType]=\"ModalTemplate.Header\" [defaultContent]=\"defaultHeader\">\r\n            </sfc-template-content>\r\n\r\n            <ng-template #defaultHeader>\r\n                <sfc-default-modal-header [id]=\"id\" [model]=\"defaultHeaderModel\"></sfc-default-modal-header>\r\n            </ng-template>\r\n        </div>\r\n\r\n        <div class=\"body\">\r\n            <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n                [templateType]=\"ModalTemplate.Body\" [contextData]=\"modalService.args\">\r\n            </sfc-template-content>\r\n        </div>\r\n\r\n        <div *ngIf=\"showFooter\" class=\"footer\">\r\n            <sfc-template-content [referenceContent]=\"footer\" [templatesContent]=\"templates\"\r\n                [templateType]=\"ModalTemplate.Footer\" [defaultContent]=\"defaultFooter\">\r\n            </sfc-template-content>\r\n\r\n            <ng-template #defaultFooter>\r\n                <sfc-default-modal-footer [id]=\"id\" [model]=\"defaultFooterModel\"></sfc-default-modal-footer>\r\n            </ng-template>\r\n        </div>\r\n    </div>\r\n</div>","import { Directive, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { UIClass } from '../../enums';\r\n\r\n@Directive()\r\nexport abstract class HamburgerBaseComponent {\r\n\r\n  @Input()\r\n  @HostBinding('class.' + UIClass.Open)\r\n  open: boolean = false;\r\n\r\n  @HostListener('click')\r\n  onClick = () => this.open = !this.open;\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { HamburgerBaseComponent } from '../hamburger-base.component';\r\n\r\n@Component({\r\n  selector: 'sfc-hamburger',\r\n  templateUrl: './hamburger.component.html',\r\n  styleUrls: ['./hamburger.component.scss']\r\n})\r\nexport class HamburgerComponent extends HamburgerBaseComponent { }\r\n","<div class=\"container\">\r\n    <div class=\"line half start\"></div>\r\n    <div class=\"line\"></div>\r\n    <div class=\"line half end\"></div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { HamburgerBaseComponent } from '../hamburger-base.component';\r\n\r\n@Component({\r\n  selector: 'sfc-hamburger-menu',\r\n  templateUrl: './hamburger-menu.component.html',\r\n  styleUrls: ['./hamburger-menu.component.scss']\r\n})\r\nexport class HamburgerMenuComponent extends HamburgerBaseComponent {\r\n\r\n  @Input()\r\n  label: string = 'Menu';\r\n}\r\n","<div class=\"container\">\r\n    <span> &nbsp;</span>\r\n    <span> &nbsp;</span>\r\n    <span> &nbsp;</span>\r\n    <span> &nbsp;</span>\r\n    <span class=\"text\">{{label}}</span>\r\n</div>","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { UIClass } from '../../enums';\r\n\r\n@Component({\r\n  selector: 'sfc-dot',\r\n  template: ``,\r\n  styleUrls: ['./dot.component.scss']\r\n})\r\nexport class DotComponent {\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.Disabled)\r\n  disabled: boolean = false;\r\n}","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { Direction, UIClass } from '../../enums';\r\n\r\n@Component({\r\n  selector: 'sfc-dots',\r\n  templateUrl: './dots.component.html',\r\n  styleUrls: ['./dots.component.scss']\r\n})\r\nexport class DotsComponent {\r\n\r\n  @Input()\r\n  @HostBinding('class.' + UIClass.Open)\r\n  open: boolean = false;\r\n\r\n  @Input()\r\n  @HostBinding('class')\r\n  direction: Direction = Direction.Horizontal;\r\n\r\n  @HostListener('click')\r\n  onClick = () => this.open = !this.open;\r\n}","<div class=\"container\">\r\n    <div class=\"dots-container\">\r\n        <sfc-dot></sfc-dot>\r\n        <sfc-dot></sfc-dot>\r\n        <sfc-dot></sfc-dot>\r\n    </div>\r\n</div>","import { Component, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';\r\nimport { UIClass } from '../../enums';\r\nimport { IToggleSwitcherModel } from './toggle-switcher.model';\r\n\r\n@Component({\r\n  selector: 'sfc-toggle-switcher',\r\n  templateUrl: './toggle-switcher.component.html',\r\n  styleUrls: ['./toggle-switcher.component.scss']\r\n})\r\nexport class ToggleSwitcherComponent {\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.Disabled)\r\n  disabled: boolean = false;\r\n\r\n  @Input()\r\n  leftModel: IToggleSwitcherModel;\r\n\r\n  @Input()\r\n  rightModel: IToggleSwitcherModel;\r\n\r\n  @Output()\r\n  toggle: EventEmitter<boolean> = new EventEmitter<boolean>(this.active);\r\n\r\n  @HostListener('click')\r\n  onClick = () => {\r\n    this.active = !this.active;\r\n    this.toggle.emit(this.active);\r\n  }\r\n\r\n  constructor() {\r\n    this.leftModel = { label: 'Left' };\r\n    this.rightModel = { label: 'Right' };\r\n  }\r\n}\r\n","<div class=\"container\">\r\n    <div class=\"toggle\"></div>\r\n    <div class=\"names\">\r\n        <p class=\"left\" *ngIf=\"leftModel\">\r\n            <fa-icon *ngIf=\"leftModel.icon\" [icon]=\"leftModel.icon\"></fa-icon>\r\n            <span *ngIf=\"leftModel.label\">{{leftModel.label}}</span>\r\n        </p>\r\n        <p class=\"right\" *ngIf=\"rightModel\">\r\n            <fa-icon *ngIf=\"rightModel.icon\" [icon]=\"rightModel.icon\"></fa-icon>\r\n            <span *ngIf=\"rightModel.label\">{{rightModel.label}}</span>\r\n        </p>\r\n    </div>\r\n</div>","export enum CheckmarkType {\r\n    Square = 'square',\r\n    Rounded = 'rounded',\r\n    Circle = 'circle'\r\n}","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { UIClass } from '../../enums';\r\nimport { faCheck, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { CheckmarkType } from './checkmark-type.enum';\r\n\r\n@Component({\r\n  selector: 'sfc-checkmark',\r\n  templateUrl: './checkmark.component.html',\r\n  styleUrls: ['./checkmark.component.scss']\r\n})\r\nexport class CheckmarkComponent {\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.Disabled)\r\n  disabled: boolean = false;\r\n\r\n  @Input()\r\n  icon: IconDefinition = faCheck;\r\n\r\n  @Input()\r\n  @HostBinding('class')\r\n  type: CheckmarkType = CheckmarkType.Rounded;\r\n\r\n  @HostListener('click')\r\n  onClick() { this.active = !this.active; }\r\n}\r\n","<div class=\"container\">\r\n    <span class=\"check\">\r\n        <fa-icon [sfcShowHideElement]=\"active\" [icon]=\"icon\"></fa-icon>\r\n    </span>\r\n</div>","import { IPaginationModel } from \"./pagination.model\";\r\n\r\nexport class PaginationConstants {\r\n    static DEFAULT_SIZE = 5;\r\n    static DEFAULT_PAGE = 1;\r\n    static DEFAULT_COUNT = 3;\r\n    static DEFAULT_TOTAL = 0;\r\n    static DEFAULT_PAGINATION: IPaginationModel = { page: this.DEFAULT_PAGE, size: this.DEFAULT_SIZE };\r\n}","import { Component, Input } from '@angular/core';\r\nimport { hasItem } from '../../utils';\r\nimport { IPaginationViewModel } from './pagination-view.model';\r\nimport { PaginationConstants } from './pagination.constants';\r\nimport { faChevronLeft, faChevronRight } from '@fortawesome/free-solid-svg-icons';\r\nimport { PaginationService } from '../../services';\r\n\r\n@Component({\r\n  selector: 'sfc-pagination',\r\n  templateUrl: './pagination.component.html',\r\n  styleUrls: ['./pagination.component.scss']\r\n})\r\nexport class PaginationComponent {\r\n\r\n  faChevronLeft = faChevronLeft;\r\n  faChevronRight = faChevronRight;\r\n\r\n  // max limit for pagination bts\r\n  @Input()\r\n  count: number = PaginationConstants.DEFAULT_COUNT;\r\n\r\n  /**\r\n  * show full range of data\r\n  */\r\n  @Input()\r\n  full: boolean = false;\r\n\r\n  /**\r\n   * show first and last page's btn\r\n   */\r\n  @Input()\r\n  limits: boolean = false;\r\n\r\n  @Input()\r\n  page: number = PaginationConstants.DEFAULT_PAGE;\r\n\r\n  @Input()\r\n  total: number = PaginationConstants.DEFAULT_TOTAL;\r\n\r\n  /**\r\n   * Page size\r\n   */\r\n  @Input()\r\n  size: number = PaginationConstants.DEFAULT_SIZE;\r\n\r\n  get model(): IPaginationViewModel {\r\n    const totalPages = Math.ceil(this.total / this.size),\r\n      page = this.page > totalPages ? PaginationConstants.DEFAULT_PAGE : this.page,\r\n      next = Math.min(this.page + 1, totalPages),\r\n      previous = Math.max(1, this.page - 1),\r\n      range = this.initRange(totalPages, page);\r\n\r\n    return {\r\n      range: range, // range of pagination data\r\n      any: totalPages > 0, // if exist range of pages\r\n      firstPage: this.showStartLimit(range, page), // show first page of range\r\n      lastPage: this.showEndLimit(range, totalPages, page), // show last page of range\r\n      previousPage: page != PaginationConstants.DEFAULT_PAGE, // show previous btn\r\n      nextPage: totalPages > page, // show next btn\r\n      page: page,\r\n      previous: previous,\r\n      next: next,\r\n      total: totalPages\r\n    }\r\n  }\r\n\r\n  constructor(private service: PaginationService) { }\r\n\r\n  onPageClick(page: number) { this.service.page(page); }\r\n\r\n  private get showLimitPages(): boolean {\r\n    return this.limits && !this.full;\r\n  }\r\n\r\n  private showStartLimit(range: number[], page: number): boolean {\r\n    return this.showLimitPages && page !== PaginationConstants.DEFAULT_PAGE\r\n      && !hasItem(range, PaginationConstants.DEFAULT_PAGE);\r\n  }\r\n\r\n  private showEndLimit(range: number[], total: number, page: number): boolean {\r\n    return this.showLimitPages && total !== page && !hasItem(range, total);\r\n  }\r\n\r\n  private initRange(total: number, page: number): number[] {\r\n    let start = 1,\r\n      end = total + 1;\r\n\r\n    if (!this.full) {\r\n      const fullRange = this.range(1, total + 1),\r\n        pageIndex = fullRange.indexOf(page),\r\n        pageCount = Math.min(total, this.count);\r\n\r\n      let rangeStart = 0, rangeEnd = 0;\r\n\r\n      if (pageCount == PaginationConstants.DEFAULT_PAGE) {\r\n        rangeStart = rangeEnd = pageIndex;\r\n      } else {\r\n        let allowedCount = pageCount - 1,\r\n          partValue = Math.ceil(allowedCount / 2),\r\n          leftValue = pageIndex - partValue < 0 ? pageIndex : partValue,\r\n          rightToExtend = allowedCount - leftValue,\r\n          rightValue = rightToExtend < 0 ? 0 : rightToExtend;\r\n\r\n        if (pageIndex + rightValue >= total)\r\n          leftValue += pageIndex + rightValue - total + 1;\r\n\r\n        rangeStart = pageIndex - leftValue;\r\n        rangeEnd = pageIndex + rightValue;\r\n      }\r\n\r\n      start = rangeStart + 1;\r\n      end = Math.min(total + 1, rangeEnd + 2);\r\n    }\r\n\r\n    return this.range(start, end);\r\n  }\r\n\r\n  private range(start: number, stop: number, step: number = 1): number[] {\r\n    if (!stop) { start = 0; stop = start; }\r\n    return Array.from(new Array(Number((stop - start) / step)), (_, i) => start + i * step);\r\n  }\r\n}\r\n","<div class=\"container\">\r\n    <sfc-delimeter></sfc-delimeter>\r\n    <ul *ngIf=\"model.any\">\r\n        <li [sfcShowHideElement]=\"model.previousPage\" (click)=\"onPageClick(model.previous)\">\r\n            <button class=\"limit\">\r\n                <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n            </button>\r\n        </li>\r\n        <li *ngIf=\"model.firstPage\" (click)=\"onPageClick(1)\">\r\n            <button>1</button>\r\n        </li>\r\n        <li *ngIf=\"model.firstPage\">\r\n            <span>...</span>\r\n        </li>\r\n        <li *ngFor=\"let page of model.range\" (click)=\"model.page !== page && onPageClick(page)\">\r\n            <button [class.active]=\"model.page === page\">{{page}}</button>\r\n        </li>\r\n        <li *ngIf=\"model.lastPage\">\r\n            <span>...</span>\r\n        </li>\r\n        <li *ngIf=\"model.lastPage\" (click)=\"onPageClick(model.total)\">\r\n            <button>{{model.total}}</button>\r\n        </li>\r\n        <li [sfcShowHideElement]=\"model.nextPage\" (click)=\"onPageClick(model.next)\">\r\n            <button class=\"limit\">\r\n                <fa-icon [icon]=\"faChevronRight\"></fa-icon>\r\n            </button>\r\n        </li>\r\n    </ul>\r\n    <sfc-delimeter></sfc-delimeter>\r\n</div>","export enum LoadContainerLoadType {\r\n    Common = 'common',\r\n    Button = 'button',\r\n    Scroll = 'scroll',\r\n    Pagination = 'pagination'\r\n}","export class LoadContainerConstants {\r\n    static DEFAULT_TOTAL: number = 0;\r\n    static DEFAULT_EMPTY_LABEL: string = 'Not found';\r\n    static DEFAULT_SHOW_MORE_LABEL: string = 'Show more';\r\n}","\r\nexport enum LoadContainerChangesSource {\r\n    Initial = 'initial',\r\n    Predicate = 'predicate',\r\n    Page = 'page',\r\n    More = 'more',\r\n    Data = 'data'\r\n}","export enum LoadContainerType {\r\n    Dropdown = 'dropdown',\r\n    Table = 'table',\r\n    Container = 'container'\r\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faChevronCircleDown, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { isNullOrEmptyString } from '../../utils';\r\n\r\n@Component({\r\n  selector: 'sfc-load-more-button',\r\n  templateUrl: './load-more-button.component.html',\r\n  styleUrls: ['./load-more-button.component.scss']\r\n})\r\nexport class LoadMoreButtonComponent implements OnInit {\r\n\r\n  private readonly DEFAULT_LABEL = 'Show more';\r\n\r\n  @Input()\r\n  label!: string;\r\n\r\n  @Input()\r\n  icon: IconDefinition = faChevronCircleDown;\r\n\r\n  @Output()\r\n  more: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\r\n\r\n  ngOnInit(): void {\r\n    if (isNullOrEmptyString(this.label))\r\n      this.label = this.DEFAULT_LABEL;\r\n  }\r\n}","<div class=\"container\">\r\n    <sfc-delimeter></sfc-delimeter>\r\n    <div class=\"button\" (sfcMouseDown)=\"more.emit($event)\">\r\n        <fa-icon [icon]=\"icon\"></fa-icon>\r\n        <span>{{label}}</span>\r\n    </div>\r\n</div>","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output, ViewChild } from '@angular/core';\r\nimport { map, tap, switchMap, startWith, EMPTY, Subscription, of, Observable, combineLatest } from 'rxjs';\r\nimport { ComponentSize, Position, UIClass } from '../../enums';\r\nimport { ILoadContainerLoaderResultModel, ILoadContainerResultModel } from './models/load-container-result.model';\r\nimport { any, isDefined, skip, sortBy } from '../../utils';\r\nimport { LoaderService } from '../loader/service/loader.service';\r\nimport { ILoadContainerParameters } from './models/load-container-parameters.model';\r\nimport { ILoadContainerModel, LoaderFunction } from './models/load-container.model';\r\nimport { LoadContainerLoadType } from './enums/load-container-load-type.enum';\r\nimport { LoadContainerConstants } from './load-container.constants';\r\nimport { ILoadContainerPredicateParameters } from './models/load-container-predicate-parameters.model';\r\nimport { LoadMoreService, PaginationService, ReloadService, SortingService } from '../../services';\r\nimport { LoadContainerChangesSource } from './enums/load-container-changes-source.enum';\r\nimport { LoadContainerType } from './enums/load-container-type.enum';\r\nimport { PaginationConstants } from '../pagination/pagination.constants';\r\n\r\n@Component({\r\n  selector: 'sfc-load-container',\r\n  templateUrl: './load-container.component.html',\r\n  styleUrls: ['./load-container.component.scss'],\r\n  providers: [LoadMoreService, PaginationService, ReloadService]\r\n})\r\nexport class LoadContainerComponent implements OnDestroy {\r\n\r\n  ComponentSize = ComponentSize;\r\n  Position = Position;\r\n\r\n  // loader identificator\r\n  @Input()\r\n  id!: string;\r\n\r\n  @Input()\r\n  @HostBinding('class')\r\n  type: LoadContainerType = LoadContainerType.Dropdown;\r\n\r\n  @Input()\r\n  @HostBinding(`class.${UIClass.Open}`)\r\n  open: boolean = false;\r\n\r\n  // outer flag to allow load more or not\r\n  @Input()\r\n  loadMore: boolean = true;\r\n\r\n  @Input()\r\n  loadMoreLabel: string = LoadContainerConstants.DEFAULT_SHOW_MORE_LABEL;\r\n\r\n  @Input()\r\n  showEmpty: boolean = true;\r\n\r\n  @Input()\r\n  emptyLabel: string = LoadContainerConstants.DEFAULT_EMPTY_LABEL;\r\n\r\n  @Input()\r\n  set model(value: ILoadContainerModel) {\r\n    this._model = value;\r\n    this.subscribe();\r\n  }\r\n  get model(): ILoadContainerModel {\r\n    return this._model;\r\n  }\r\n  _model!: ILoadContainerModel;\r\n\r\n  @Input()\r\n  scrollTarget!: HTMLElement;\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  @Output()\r\n  handleError: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  @Output()\r\n  handleSuccess: EventEmitter<ILoadContainerResultModel<any>> = new EventEmitter<ILoadContainerResultModel<any>>();\r\n\r\n  @Output()\r\n  handleLoading: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n  @ViewChild('content')\r\n  private contentEl!: ElementRef;\r\n\r\n  public get scrollPosition(): Position[] {\r\n    return !this.allowLoadMore || this.showLoadMoreButton ? [] : [Position.Bottom];\r\n  }\r\n\r\n  public get allowLoadMore(): boolean { return this.next && this.loadMore; }\r\n\r\n  public get hideLoadMoreButton(): boolean { return !(this.allowLoadMore && this.showLoadMoreButton); }\r\n\r\n  public next: boolean = false;\r\n\r\n  public empty: boolean = false;\r\n\r\n  public total: number = LoadContainerConstants.DEFAULT_TOTAL;\r\n\r\n  @HostBinding(`class.${UIClass.Empty}`)\r\n  public get isEmpty(): boolean { return this.empty && this.showEmpty; }\r\n\r\n  public get page(): number { return this.pagination ? this.paginationService.pageValue : this.loadMoreService.pageValue; }\r\n\r\n  public get showPagination(): boolean { return Boolean(this.total) && !this.empty && this.pagination; }\r\n\r\n  @HostBinding(`class.${UIClass.Loading}`)\r\n  private _loading: boolean = false;\r\n  private set loading(value: boolean) {\r\n    this._loading = value;\r\n    if (value)\r\n      this.loaderService.show(this.id, true);\r\n    else\r\n      this.loaderService.hide(this.id);\r\n\r\n    this.handleLoading.emit(value);\r\n  }\r\n\r\n  private get showLoadMoreButton(): boolean {\r\n    return this.model.loadType == LoadContainerLoadType.Button;\r\n  }\r\n\r\n  private get reset(): boolean {\r\n    return this.source == LoadContainerChangesSource.Predicate ||\r\n      this.source == LoadContainerChangesSource.Page ||\r\n      this.source == LoadContainerChangesSource.Data;\r\n  }\r\n\r\n  private get pagination(): boolean { return this.model.loadType == LoadContainerLoadType.Pagination && isDefined(this.model.pagination); }\r\n\r\n  private _subscription!: Subscription;\r\n\r\n  // define what source emit changes for data\r\n  private source: LoadContainerChangesSource = LoadContainerChangesSource.Initial;\r\n\r\n  private predicateChanged: boolean = false;\r\n\r\n  constructor(\r\n    private loaderService: LoaderService,\r\n    private loadMoreService: LoadMoreService,\r\n    private paginationService: PaginationService,\r\n    private sortingService: SortingService,\r\n    private reloadService: ReloadService) { }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this._subscription)\r\n      this._subscription.unsubscribe();\r\n  }\r\n\r\n  public more(event: MouseEvent): void {\r\n    event.preventDefault();\r\n    this.loadMoreService.more();\r\n  }\r\n\r\n  public onScroll(): void {\r\n    if (this.allowLoadMore)\r\n      this.loadMoreService.more();\r\n  }\r\n\r\n  private success(result: ILoadContainerResultModel<any>): void {\r\n    this.next = result.next;\r\n    this.loading = false;\r\n    this.empty = !any(result.items);\r\n    this.total = result.total!;\r\n    this.loadMore = true;\r\n    this.handleSuccess.emit(result);\r\n  }\r\n\r\n  private error(error: any): void {\r\n    this.loading = false;\r\n    this.empty = false;\r\n    this.total = 0;\r\n    this.handleError.emit(error);\r\n  }\r\n\r\n  private subscribe(): void {\r\n    if (!this.model) return;\r\n\r\n    this.paginationService.pageValue = this.model.pagination?.page || PaginationConstants.DEFAULT_PAGINATION.page;\r\n\r\n    if (!this.model.predicate$) {\r\n      this.model.predicate$ = EMPTY.pipe(startWith(null));\r\n    }\r\n\r\n    const predicate$: Observable<ILoadContainerPredicateParameters | null> = combineLatest([\r\n      this.model.predicate$,\r\n      this.reloadService.reload$.pipe(startWith(null))\r\n    ]).pipe(map(([model, _]) => model)),\r\n      parameters$ = this.buildParameters(predicate$),\r\n      data$: Observable<ILoadContainerResultModel<any>> = isDefined(this.model.loader)\r\n        ? this.buildDynamic(parameters$, this.model.loader as LoaderFunction)\r\n        : this.buildStatic(parameters$, this.model);\r\n\r\n    if (isDefined(this._subscription))\r\n      this._subscription.unsubscribe();\r\n\r\n    this._subscription = data$.subscribe(\r\n      {\r\n        next: (result: ILoadContainerResultModel<any>) => this.success(result),\r\n        error: (error) => this.error(error)\r\n      }\r\n    );\r\n  }\r\n\r\n  private buildParameters(predicate$: Observable<ILoadContainerPredicateParameters | null>)\r\n    : Observable<ILoadContainerParameters> {\r\n    const parameters$ = predicate$.pipe(\r\n      tap((params: ILoadContainerPredicateParameters | null) => {\r\n        if (this.source != LoadContainerChangesSource.Initial && !params?.reload)\r\n          this.resetParameters();\r\n\r\n        this.source = LoadContainerChangesSource.Predicate;\r\n        this.predicateChanged = true;\r\n      }),\r\n      switchMap((params: ILoadContainerPredicateParameters | null) => {\r\n        const more$ = this.loadMoreService.more$.pipe(\r\n          startWith(PaginationConstants.DEFAULT_PAGE),\r\n          tap(() => {\r\n            if (!this.predicateChanged)\r\n              this.source = LoadContainerChangesSource.More;\r\n\r\n            this.loadMore = false;\r\n            this.predicateChanged = false;\r\n          })\r\n        ),\r\n          pagination$ = this.paginationService.page$.pipe(\r\n            startWith(this.model.pagination?.page || PaginationConstants.DEFAULT_PAGE),\r\n            tap(() => {\r\n              if (!this.predicateChanged)\r\n                this.source = LoadContainerChangesSource.Page;\r\n\r\n              this.predicateChanged = false;\r\n            })\r\n          ),\r\n          loader$ = this.pagination ? pagination$ : more$;\r\n\r\n        return loader$.pipe(\r\n          map(() => ({ params: params!, page: this.page }))\r\n        );\r\n      })\r\n    );\r\n\r\n    return combineLatest([this.sortingService.sorting$.pipe(startWith(this.model.sorting)), parameters$]).pipe(\r\n      tap(() => this.loading = true),\r\n      map(([sorting, parameters]) => ({ params: parameters.params!, page: parameters.page, sorting: sorting }))\r\n    );\r\n  }\r\n\r\n  private buildDynamic(parameters$: Observable<ILoadContainerParameters>, loader: LoaderFunction)\r\n    : Observable<ILoadContainerResultModel<any>> {\r\n    return parameters$.pipe(\r\n      switchMap((parameters: ILoadContainerParameters) => loader(parameters)),\r\n      map((model: ILoadContainerLoaderResultModel<any>) => ({ ...model, reset: this.reset, page: this.page }))\r\n    );\r\n  }\r\n\r\n  private buildStatic(parameters$: Observable<ILoadContainerParameters>, model: ILoadContainerModel)\r\n    : Observable<ILoadContainerResultModel<any>> {\r\n    const data$ = (model.data$ || of([])).pipe(\r\n      map((data, index) => ({ data, index })),\r\n      tap(model => this.source = model.index ? LoadContainerChangesSource.Data : this.source),\r\n      map(model => model.data)\r\n    );\r\n\r\n    return combineLatest([parameters$, data$]).pipe(\r\n      map(([parameters, items]) => {\r\n        // if data changed need to start from start (pagination)\r\n        if (this.source == LoadContainerChangesSource.Data\r\n          && parameters.page != LoadMoreService.START_PAGE) {\r\n          this.resetParameters();\r\n          parameters = { params: parameters.params, page: this.page, sorting: parameters.sorting };\r\n        }\r\n\r\n        const filtered = model.filter ? model.filter(items, parameters) : items,\r\n          sorted = parameters.sorting ? sortBy([...filtered], parameters.sorting.id, parameters.sorting.direction) : filtered,\r\n          data: ILoadContainerResultModel<any> = sorted ? {\r\n            items: this.model.pagination ? skip(sorted, parameters.page, this.model.pagination?.size!) : sorted,\r\n            next: this.model.pagination ? parameters.page < Math.ceil(sorted.length / this.model.pagination?.size!) : false,\r\n            reset: this.reset,\r\n            total: sorted.length,\r\n            page: parameters.page\r\n          } : { items: [], next: false, reset: this.reset, total: items.length, page: parameters.page };\r\n\r\n        return data;\r\n      }));\r\n  }\r\n\r\n  private resetParameters(): void {\r\n    if (isDefined(this.contentEl))\r\n      this.contentEl.nativeElement.scrollTop = 0;\r\n\r\n    if (this.pagination)\r\n      this.paginationService.reset();\r\n    else\r\n      this.loadMoreService.reset();\r\n  }\r\n}","<div class=\"container\">\r\n    <sfc-bounce-loader *ngIf=\"showLoading\" [id]=\"id\" [sfcComponentSize]=\"ComponentSize.Small\"></sfc-bounce-loader>\r\n    <div #content class=\"content\" [sfcScrollIntoView]=\"scrollTarget\" (sfcScrollTracker)=\"onScroll()\"\r\n        [positions]=\"scrollPosition\">\r\n        <div class=\"items\">\r\n            <ng-content></ng-content>\r\n        </div>\r\n        <div class=\"actions\" (sfcMouseDown)=\"$event.preventDefault()\">\r\n            <sfc-load-more-button [hidden]=\"hideLoadMoreButton\" (more)=\"more($event)\" [label]=\"loadMoreLabel\">\r\n            </sfc-load-more-button>\r\n            <sfc-pagination *ngIf=\"showPagination\" [limits]=\"paginationLimits\" [count]=\"paginationCount\" [full]=\"false\"\r\n                [total]=\"total\" [size]=\"model.pagination?.size!\" [page]=\"page\">\r\n            </sfc-pagination>\r\n            <sfc-delimeter *ngIf=\"isEmpty\" [label]=\"emptyLabel\"></sfc-delimeter>\r\n        </div>\r\n    </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { isDefined, isNullOrEmptyString } from '../../utils';\r\n\r\n@Component({\r\n  selector: 'sfc-icon',\r\n  templateUrl: './icon.component.html',\r\n  styleUrls: ['./icon.component.scss']\r\n})\r\nexport class IconComponent {\r\n\r\n  @Input()\r\n  icon?: IconDefinition | null = null;\r\n\r\n  @Input()\r\n  imageSrc?: string| null = null;\r\n\r\n  get showImage(): boolean {\r\n    return !isNullOrEmptyString(this.imageSrc) && !isDefined(this.icon);\r\n  }\r\n}\r\n","<div class=\"container\">\r\n    <fa-icon *ngIf=\"icon\" [icon]=\"icon\"></fa-icon>\r\n    <img *ngIf=\"showImage\" [src]=\"imageSrc\">\r\n</div>","export class CollapseExpandConstants{\r\n    static LABEL_EXPAND_DEFAULT = 'Expand';\r\n    static LABEL_COLLAPSE_DEFAULT = 'Collapse';\r\n}","import { Component, Input } from '@angular/core';\r\nimport { faChevronDown, faChevronUp, IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { CollapseExpandConstants } from './collapse-expand.constants';\r\n\r\n@Component({\r\n  selector: 'sfc-collapse-expand',\r\n  templateUrl: './collapse-expand.component.html',\r\n  styleUrls: ['./collapse-expand.component.scss']\r\n})\r\nexport class CollapseExpandComponent {\r\n\r\n  @Input()\r\n  expand: boolean = false;\r\n\r\n  @Input()\r\n  labelExpand: string = CollapseExpandConstants.LABEL_EXPAND_DEFAULT;\r\n\r\n  @Input()\r\n  labelCollapse: string = CollapseExpandConstants.LABEL_COLLAPSE_DEFAULT;\r\n\r\n  public get label(): string {\r\n    return this.expand ? this.labelCollapse : this.labelExpand;\r\n  }\r\n\r\n  public get icon(): IconDefinition {\r\n    return this.expand ? faChevronUp : faChevronDown;\r\n  }\r\n}\r\n","<div class=\"container\">\r\n    <span>{{label}}</span>\r\n    <fa-icon [icon]=\"icon\"></fa-icon>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons';\r\n\r\n@Component({\r\n  selector: 'sfc-collapse-expand-container',\r\n  templateUrl: './collapse-expand-container.component.html',\r\n  styleUrls: ['./collapse-expand-container.component.scss']\r\n})\r\nexport class CollapseExpandContainerComponent {\r\n\r\n  faChevronDown = faChevronDown;\r\n  faChevronUp = faChevronUp;\r\n\r\n  @Input()\r\n  expand: boolean = false;\r\n\r\n  @Input()\r\n  labelExpand!: string;\r\n\r\n  @Input()\r\n  labelCollapse!: string;\r\n\r\n  @Input()\r\n  delimeter: boolean = false;\r\n}\r\n","<div class=\"container\">\r\n    <sfc-collapse-expand [expand]=\"expand\" [labelExpand]=\"labelExpand\" [labelCollapse]=\"labelCollapse\"\r\n        (click)=\"expand = !expand\" [sfcComponentSize] [customSize]=\"0.8\">\r\n    </sfc-collapse-expand>\r\n    <div class=\"content\" [sfcIf]=\"expand\">\r\n        <ng-content></ng-content>\r\n    </div>\r\n    <sfc-delimeter *ngIf=\"delimeter\"></sfc-delimeter>\r\n</div>","import { Component, HostBinding, HostListener, Input } from '@angular/core';\r\nimport { UIClass } from '../../enums';\r\n\r\n@Component({\r\n  selector: 'sfc-toggle',\r\n  template: `<div class=\"container\"><label></label></div>`,\r\n  styleUrls: ['./toggle.component.scss']\r\n})\r\nexport class ToggleComponent {\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.Disabled)\r\n  disabled: boolean = false;\r\n\r\n  @HostListener('click')\r\n  onClick = () => this.active = !this.active;\r\n}\r\n","import { Component, HostBinding, Input } from '@angular/core';\r\nimport { NotificationType } from '../../enums';\r\nimport { empty } from '../../types';\r\n\r\n@Component({\r\n  selector: 'sfc-message',\r\n  templateUrl: './message.component.html',\r\n  styleUrls: ['./message.component.scss']\r\n})\r\nexport class MessageComponent {\r\n\r\n  @Input()\r\n  message: string | empty;\r\n\r\n  @Input()\r\n  @HostBinding('class')\r\n  type: NotificationType = NotificationType.Info;\r\n}","<div class=\"container\">\r\n    <div class=\"content\">\r\n        <span class=\"message\">{{message}}</span>\r\n    </div>    \r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport {\r\n  DOCUMENT_PROVIDERS,\r\n  WINDOW_PROVIDERS\r\n} from './services';\r\nimport {\r\n  ClickOutsideDirective,\r\n  ShowHideElementDirective,\r\n  CollapseExpandDirective,\r\n  IfDirective,\r\n  ThrowElementOnHoverDirective,\r\n  TemplateReferenceDirective,\r\n  MouseDownDirective,\r\n  ComponentSizeDirective,\r\n  DestroyParentDirective,\r\n  DomChangesDirective,\r\n  ScrollTrackerDirective,\r\n  ScrollIntoViewDirective,\r\n  ImageLoadDirective,\r\n  ComponentReferenceDirective\r\n} from './directives';\r\nimport { \r\n  SwitchMultiCasePipe, \r\n  SortByPipe,\r\n  RepeatPipe\r\n } from './pipes';\r\nimport {\r\n  ButtonComponent,\r\n  TooltipComponent,\r\n  DelimeterComponent,\r\n  BounceLoaderComponent,\r\n  CircleLoaderComponent,\r\n  ModalComponent,\r\n  ModalOpenOnClickDirective,\r\n  ModalOpenDirective,\r\n  DefaultModalHeaderComponent,\r\n  DefaultModalFooterComponent,\r\n  HamburgerComponent,\r\n  HamburgerMenuComponent,\r\n  DotComponent,\r\n  DotsComponent,\r\n  ToggleSwitcherComponent,\r\n  CheckmarkComponent,\r\n  TemplateContentComponent,\r\n  CloseComponent,\r\n  PaginationComponent,\r\n  LoadContainerComponent,\r\n  LoadMoreButtonComponent,\r\n  IconComponent,\r\n  CollapseExpandComponent,\r\n  CollapseExpandContainerComponent,\r\n  ToggleComponent,\r\n  MessageComponent\r\n} from './components';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    // directives\r\n    ClickOutsideDirective,\r\n    ShowHideElementDirective,\r\n    CollapseExpandDirective,\r\n    IfDirective,\r\n    ThrowElementOnHoverDirective,\r\n    TemplateReferenceDirective,\r\n    MouseDownDirective,\r\n    ComponentSizeDirective,\r\n    DestroyParentDirective,\r\n    DomChangesDirective,\r\n    ScrollTrackerDirective,\r\n    ScrollIntoViewDirective,\r\n    ImageLoadDirective,\r\n    ComponentReferenceDirective,\r\n    // components\r\n    ButtonComponent,\r\n    TooltipComponent,\r\n    DelimeterComponent,\r\n    ToggleSwitcherComponent,\r\n    CheckmarkComponent,\r\n    TemplateContentComponent,\r\n    CloseComponent,\r\n    HamburgerComponent,\r\n    HamburgerMenuComponent,\r\n    DotComponent,\r\n    DotsComponent,\r\n    PaginationComponent,\r\n    LoadMoreButtonComponent,\r\n    LoadContainerComponent,\r\n    IconComponent,\r\n    CollapseExpandComponent,\r\n    CollapseExpandContainerComponent,\r\n    ToggleComponent,\r\n    MessageComponent,\r\n    // loaders\r\n    BounceLoaderComponent,\r\n    CircleLoaderComponent,\r\n    // modal\r\n    ModalComponent,\r\n    ModalOpenDirective,\r\n    ModalOpenOnClickDirective,\r\n    DefaultModalHeaderComponent,\r\n    DefaultModalFooterComponent,\r\n    // pipes\r\n    SwitchMultiCasePipe,\r\n    SortByPipe,\r\n    RepeatPipe\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FontAwesomeModule\r\n  ],\r\n  exports: [\r\n    // directives\r\n    ClickOutsideDirective,\r\n    ShowHideElementDirective,\r\n    CollapseExpandDirective,\r\n    IfDirective,\r\n    ThrowElementOnHoverDirective,\r\n    TemplateReferenceDirective,\r\n    MouseDownDirective,\r\n    ComponentSizeDirective,\r\n    DestroyParentDirective,\r\n    DomChangesDirective,\r\n    ScrollTrackerDirective,\r\n    ScrollIntoViewDirective,\r\n    ImageLoadDirective,\r\n    ComponentReferenceDirective,\r\n    // components\r\n    ButtonComponent,\r\n    TooltipComponent,\r\n    DelimeterComponent,\r\n    CloseComponent,\r\n    CheckmarkComponent,\r\n    TemplateContentComponent,\r\n    ToggleSwitcherComponent,\r\n    DotComponent,\r\n    DotsComponent,\r\n    HamburgerComponent,\r\n    HamburgerMenuComponent,\r\n    PaginationComponent,\r\n    LoadMoreButtonComponent,\r\n    LoadContainerComponent,\r\n    IconComponent,\r\n    CollapseExpandComponent,\r\n    CollapseExpandContainerComponent,\r\n    ToggleComponent,\r\n    MessageComponent,\r\n    // loaders\r\n    BounceLoaderComponent,\r\n    CircleLoaderComponent,\r\n    // modal\r\n    ModalComponent,\r\n    ModalOpenDirective,\r\n    ModalOpenOnClickDirective,\r\n    DefaultModalHeaderComponent,\r\n    DefaultModalFooterComponent,\r\n    // pipes\r\n    SwitchMultiCasePipe,\r\n    SortByPipe,\r\n    RepeatPipe\r\n  ],\r\n  providers: [DOCUMENT_PROVIDERS, WINDOW_PROVIDERS]\r\n})\r\nexport class NgxSfcCommonModule { }\r\n","/*\r\n * Public API Surface of ngx-sfc-common\r\n */\r\n\r\nexport * from './lib/ngx-sfc-common.module';\r\nexport * from './lib/constants';\r\nexport * from './lib/enums';\r\nexport * from './lib/utils';\r\nexport * from './lib/services';\r\nexport * from './lib/directives';\r\nexport * from './lib/pipes';\r\nexport * from './lib/components';\r\nexport * from './lib/types';\r\nexport * from './lib/models';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ImageLoadService","i1","i2","i1.LoaderService","i1.ModalService","i3","i4.DelimeterComponent","i5.CloseComponent","i3.ComponentSizeDirective","i4.ButtonComponent","i2.ModalOpenDirective","i3.ModalOpenOnClickDirective","i4","i5.TemplateContentComponent","i6.DefaultModalHeaderComponent","i7.DefaultModalFooterComponent","i1.DotComponent","i2.ShowHideElementDirective","i1.PaginationService","i4.ShowHideElementDirective","i5.DelimeterComponent","i2.MouseDownDirective","i3.DelimeterComponent","i2.LoadMoreService","i2.PaginationService","i2.SortingService","i2.ReloadService","i4.MouseDownDirective","i5.ComponentSizeDirective","i6.ScrollTrackerDirective","i7.ScrollIntoViewDirective","i8.DelimeterComponent","i9.PaginationComponent","i10.LoadMoreButtonComponent","i11.BounceLoaderComponent","i2.IfDirective","i5.CollapseExpandComponent"],"mappings":"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"}