ngx-sfc-common 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-sfc-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/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/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/utils/common.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/string.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/date-time.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/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/pipes/switch-multi-case/switch-multi-case.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/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/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.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/modal/directive/click/modal-open-on-click.directive.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/directive/open/modal-open.directive.ts","../../../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/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/service/pagination.service.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/sorting/sorting.constants.ts","../../../projects/ngx-sfc-common/src/lib/components/sorting/service/sorting.service.ts","../../../projects/ngx-sfc-common/src/lib/components/sorting/sorting.component.ts","../../../projects/ngx-sfc-common/src/lib/components/sorting/sorting.component.html","../../../projects/ngx-sfc-common/src/lib/components/load-container/service/load-more.service.ts","../../../projects/ngx-sfc-common/src/lib/components/load-container/load-container.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/load-container/load-container.constants.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/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};","/**\r\n * Sequence types\r\n */\r\nexport enum Sequence {\r\n Previous = 'previous',\r\n Next = 'next'\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 {\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 this._clickSubscription = fromEvent(this.document, 'click')\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) {\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 MOUSE_BUTTON_LEFT = 0;\r\n static FULL_PERCENTAGE = 100;\r\n static COMMON_TEXT_DELIMETER = '/';\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}\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\r\n static CSS_INITIAL = 'initial';\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\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 { Observable } from 'rxjs';\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' && !Array.isArray(value));\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 \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 - 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 * 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}","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 { 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 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 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}","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}","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 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 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): 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}","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(value: HTMLElement) {\r\n if (!isDefined(value))\r\n return;\r\n\r\n if (isChromeBrowser())\r\n (value as any).scrollIntoViewIfNeeded();\r\n else\r\n value.scrollIntoView(this.options);\r\n }\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 { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'sfcSwitchMultiCase'\r\n})\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","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\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 get label(): string {\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 get classes() {\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 { 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;\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 @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 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 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, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n private subjectClose = new Subject<void>();\r\n\r\n private subjectOpen = new Subject<any>();\r\n\r\n close$: Observable<void> = this.subjectClose.asObservable();\r\n\r\n open$: Observable<any> = this.subjectOpen.asObservable();\r\n\r\n close() {\r\n this.subjectClose.next();\r\n }\r\n\r\n open(options?: any) {\r\n this.subjectOpen.next(options);\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 { 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 <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\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 private readonly DEFAULT_MODAL_HEADER_MODEL: IDefaultModalHeaderModel = {\r\n icon: faWindowRestore,\r\n showCloseIcon: true,\r\n text: 'Modal'\r\n }\r\n\r\n @Input()\r\n model?: IDefaultModalHeaderModel;\r\n\r\n get icon(): IconDefinition {\r\n return this.model?.icon || faWindowRestore;\r\n }\r\n\r\n constructor(private modalService: ModalService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.model))\r\n this.model = this.DEFAULT_MODAL_HEADER_MODEL;\r\n }\r\n\r\n onClose() {\r\n this.modalService.close();\r\n }\r\n}\r\n","<div class=\"container\">\r\n <fa-icon *ngIf=\"model?.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>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IDefaultModalFooterModel } from './default-modal-footer.model';\r\nimport { isDefined } from '../../../../utils';\r\nimport { ButtonType } from '../../../button/button-type.enum';\r\nimport { ComponentSize } from '../../../../enums';\r\nimport { ModalService } from '../../service/modal.service';\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 private readonly DEFAULT_MODAL_FOOTER_MODEL: IDefaultModalFooterModel = {\r\n cancelButton: true,\r\n applyButton: true\r\n }\r\n\r\n readonly BUTTON_CUSTOM_SIZE = 0.9;\r\n\r\n ComponentSize = ComponentSize;\r\n ButtonType = ButtonType;\r\n\r\n @Input()\r\n model?: IDefaultModalFooterModel;\r\n\r\n constructor(private modalService: ModalService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.model)) {\r\n this.model = this.DEFAULT_MODAL_FOOTER_MODEL;\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();\r\n }\r\n } else {\r\n if (this.model?.onApply) {\r\n return this.model?.onApply();\r\n }\r\n }\r\n\r\n this.modalService.close();\r\n }\r\n}\r\n","<div class=\"container\">\r\n <sfc-button *ngIf=\"model?.applyButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Ok\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick()\">\r\n </sfc-button>\r\n <sfc-button *ngIf=\"model?.cancelButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Cancel\"\r\n [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 Component, ContentChildren, HostListener, Input,\r\n QueryList, TemplateRef\r\n} from '@angular/core';\r\nimport { TemplateReferenceDirective } from '../../directives';\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\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 {\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 @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 constructor(private modalService: ModalService) { }\r\n\r\n close() {\r\n this.modalService.close();\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 class=\"header\">\r\n\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 [model]=\"defaultHeaderModel\"> </sfc-default-modal-header>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"ModalTemplate.Body\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n\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 [model]=\"defaultFooterModel\"></sfc-default-modal-footer>\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n</div>","import { Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ModalService } from '../../service/modal.service';\r\nimport { isDefined } from '../../../../utils/index';\r\n\r\n@Directive({\r\n selector: '[sfcModalOpenOnClick]'\r\n})\r\nexport class ModalOpenOnClickDirective implements OnInit, OnDestroy {\r\n\r\n @Input('sfcModalOpenOnClick')\r\n set modalOpenOnClick(elements: HTMLElement | HTMLElement[]) {\r\n if (!isDefined(elements))\r\n return;\r\n\r\n if (elements instanceof HTMLElement)\r\n this.elements = [elements];\r\n else\r\n this.elements = elements;\r\n\r\n this.elements.forEach(el => {\r\n el.addEventListener('click', this.clickHandler);\r\n });\r\n }\r\n\r\n private clickHandler = ((event: MouseEvent): void => {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.modalService.open(event.currentTarget);\r\n }).bind(this);\r\n\r\n private elements: HTMLElement[] = [];\r\n\r\n private _closeSubscription?: Subscription;\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.close$\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 { Directive, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\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 private _closeSubscription: Subscription;\r\n private _openSubscription: Subscription;\r\n\r\n constructor(private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n private modalService: ModalService) {\r\n this._closeSubscription = this.modalService.close$.subscribe(() => this.viewContainer.clear());\r\n\r\n this._openSubscription = this.modalService.open$\r\n .subscribe(() => {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._closeSubscription.unsubscribe();\r\n this._openSubscription.unsubscribe();\r\n }\r\n}\r\n","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, 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\r\n}\r\n","<div class=\"container\">\r\n <div class=\"dots-container\">\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n </div>\r\n</div>","import { Component, HostBinding, HostListener, Input } 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 @HostListener('click')\r\n onClick = () => this.active = !this.active;\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\">\r\n <fa-icon *ngIf=\"leftModel.icon\" [icon]=\"leftModel.icon\"></fa-icon>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <fa-icon *ngIf=\"rightModel.icon\" [icon]=\"rightModel.icon\"></fa-icon>\r\n <span>{{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}","import { Component, HostBinding, 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 @Input()\r\n showNotActive: boolean = true;\r\n}\r\n","<div class=\"container\">\r\n <span class=\"check\">\r\n <fa-icon *ngIf=\"showNotActive || active\" [icon]=\"icon\"></fa-icon>\r\n </span>\r\n</div>","export class PaginationConstants {\r\n static DEFAULT_SIZE = 5;\r\n static DEFAULT_PAGE = 1;\r\n static DEFAULT_COUNT = 3;\r\n}","import { Injectable } from '@angular/core';\r\nimport { combineLatest, map, Observable, startWith, Subject } from 'rxjs';\r\nimport { isDefined } from '../../../utils';\r\nimport { PaginationConstants } from '../pagination.constants';\r\nimport { IPaginationEvent } from './pagination.event';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaginationService {\r\n\r\n /**\r\n * Handle page changing\r\n */\r\n private pageSubject = new Subject<number>();\r\n private page$ = this.pageSubject.asObservable();\r\n\r\n /** Total items */\r\n public total$!: Observable<number>;\r\n\r\n /** Total pages */\r\n public totalPages$!: Observable<number>;\r\n\r\n /** Pagination event data */\r\n public pagination$!: Observable<IPaginationEvent>;\r\n\r\n /** Need for init pagination observables */\r\n public init(\r\n data$: Observable<any[]>,\r\n page: number = PaginationConstants.DEFAULT_PAGE,\r\n pageSize: number = PaginationConstants.DEFAULT_SIZE) {\r\n\r\n if (isDefined(data$))\r\n this.initObservables(data$, page, pageSize);\r\n }\r\n\r\n /**\r\n * Move to page\r\n */\r\n public page(page: number) {\r\n this.pageSubject.next(page);\r\n }\r\n\r\n private initObservables(data$: Observable<any[]>, page: number, pageSize: number) {\r\n this.total$ = data$.pipe(map((p: any[]) => p.length));\r\n\r\n this.totalPages$ = this.total$.pipe(map((total: number) => Math.ceil(total / pageSize)));\r\n\r\n this.pagination$ = combineLatest([this.totalPages$, this.page$.pipe(startWith(page))])\r\n .pipe(\r\n map(([total, page]) => {\r\n return {\r\n page: page > total ? PaginationConstants.DEFAULT_PAGE : page,\r\n next: Math.min(page + 1, total),\r\n previous: Math.max(1, page - 1),\r\n total: total\r\n };\r\n })\r\n )\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { map, Observable } from 'rxjs';\r\nimport { hasItem, isDefined } from '../../utils';\r\nimport { IPaginationViewModel } from './models/pagination-view.model';\r\nimport { PaginationConstants } from './pagination.constants';\r\nimport { IPaginationEvent } from './service/pagination.event';\r\nimport { PaginationService } from './service/pagination.service';\r\nimport { faChevronLeft, faChevronRight } from '@fortawesome/free-solid-svg-icons';\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 implements OnInit {\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 data$!: Observable<any[]>;\r\n\r\n public vm$!: Observable<IPaginationViewModel>;\r\n\r\n constructor(private service: PaginationService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.service.pagination$))\r\n this.service.init(this.data$);\r\n\r\n if (isDefined(this.service.pagination$)) {\r\n this.vm$ = this.service.pagination$.pipe(\r\n map((event) => {\r\n const range = this.initRange(event);\r\n return {\r\n range: range, // range of pagination data\r\n any: event.total > 0, // if exist range of pages\r\n firstPage: this.showStartLimit(range, event), // show first page of range\r\n lastPage: this.showEndLimit(range, event), // show last page of range\r\n previousPage: event.page != PaginationConstants.DEFAULT_PAGE, // show previous btn\r\n nextPage: event.total > event.page, // show next btn\r\n page: event.page,\r\n previous: event.previous,\r\n next: event.next,\r\n total: event.total\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n onPageClick(page: number) {\r\n this.service.page(page);\r\n }\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[], event: IPaginationEvent): boolean {\r\n return this.showLimitPages && event.page !== PaginationConstants.DEFAULT_PAGE\r\n && !hasItem(range, PaginationConstants.DEFAULT_PAGE);\r\n }\r\n\r\n private showEndLimit(range: number[], event: IPaginationEvent): boolean {\r\n return this.showLimitPages && event.total !== event.page && !hasItem(range, event.total);\r\n }\r\n\r\n private initRange(event: IPaginationEvent): number[] {\r\n let start = 1,\r\n end = event.total + 1;\r\n\r\n if (!this.full) {\r\n const fullRange = this.range(1, event.total + 1),\r\n pageIndex = fullRange.indexOf(event.page),\r\n pageCount = Math.min(event.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 >= event.total)\r\n leftValue += pageIndex + rightValue - event.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(event.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\" *ngIf=\"vm$ | async as vm\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"vm.any\">\r\n <li [sfcShowHideElement]=\"vm.previousPage\" (click)=\"onPageClick(vm.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of vm.range\" (click)=\"onPageClick(page)\">\r\n <button [class.active]=\"vm.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\" (click)=\"onPageClick(vm.total)\">\r\n <button>{{vm.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"vm.nextPage\" (click)=\"onPageClick(vm.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>","import { faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons';\r\n\r\nexport class SortingConstants {\r\n static DEFAULT_ASCENDING_ICON = faChevronUp;\r\n static DEFAULT_DESCENDING_ICON = faChevronDown;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ISortingEvent } from './sorting.event';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SortingService {\r\n private sortingSubject = new Subject<ISortingEvent>();\r\n\r\n sorting$ = this.sortingSubject.asObservable();\r\n\r\n sort(event: ISortingEvent) {\r\n this.sortingSubject.next(event);\r\n }\r\n}\r\n","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonConstants } from '../../constants';\r\nimport { SortingDirection, UIClass } from '../../enums';\r\nimport { firstOrDefault, isDefined } from '../../utils';\r\nimport { SortingService } from './service/sorting.service';\r\nimport { SortingConstants } from './sorting.constants';\r\nimport { ISortingModel } from './sorting.model';\r\n\r\n@Component({\r\n selector: 'sfc-sorting',\r\n templateUrl: './sorting.component.html',\r\n styleUrls: ['./sorting.component.scss']\r\n})\r\nexport class SortingComponent implements OnInit, OnDestroy {\r\n\r\n SortingDirection = SortingDirection;\r\n\r\n @Input()\r\n id: string = CommonConstants.EMPTY_STRING;\r\n\r\n @Input()\r\n model: ISortingModel = { active: false, enabled: false, direction: SortingDirection.Ascending };\r\n\r\n @HostBinding(`class.${UIClass.Enabled}`)\r\n get enabled(): boolean {\r\n return this.model.enabled;\r\n }\r\n\r\n @HostBinding(`class.${UIClass.Active}`)\r\n get active(): boolean {\r\n return this.model.active || false;\r\n }\r\n\r\n @HostListener('click')\r\n sort() {\r\n if (this.enabled) {\r\n\r\n if (this.active) {\r\n this.model.direction = this.model.direction === SortingDirection.Ascending\r\n ? SortingDirection.Descending\r\n : SortingDirection.Ascending;\r\n }\r\n\r\n this.service.sort({ id: this.id, direction: this.model.direction });\r\n }\r\n }\r\n\r\n get icon(): IconDefinition {\r\n const modelIcon = firstOrDefault(this.model.icons, i => i.direction == this.model.direction);\r\n return modelIcon ? modelIcon.icon : this.model.direction === SortingDirection.Ascending\r\n ? SortingConstants.DEFAULT_ASCENDING_ICON : SortingConstants.DEFAULT_DESCENDING_ICON;\r\n }\r\n\r\n private _subscription!: Subscription;\r\n\r\n constructor(private service: SortingService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.model))\r\n this.model = { active: false, enabled: false, direction: SortingDirection.Ascending };\r\n\r\n // subscribe to sort changes so we can react when other columns are sorted\r\n this._subscription = this.service.sorting$.subscribe(event => {\r\n // reset this column's sort direction to hide the sort icons\r\n if (this.id != event.id)\r\n this.model.direction = SortingDirection.Ascending;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscription.unsubscribe();\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>","import { 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 readonly START_PAGE: number = 1;\r\n\r\n private _page = this.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 more(): void {\r\n this._page++;\r\n this.moreSubject.next(this._page);\r\n }\r\n\r\n reset(): void {\r\n this._page = this.START_PAGE;\r\n }\r\n}\r\n","export enum LoadContainerType {\r\n Dropdown = 'dropdown',\r\n Table = 'table'\r\n}","export class LoadContainerConstants {\r\n static DEFAULT_PAGE_SIZE: number = 5;\r\n static DEFAULT_NOT_FOUND_LABEL: string = 'Not found';\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, withLatestFrom, of, Observable } from 'rxjs';\r\nimport { ComponentSize, Position, UIClass } from '../../enums';\r\nimport { ILoadMoreModel } from './models/load-more.model';\r\nimport { any, isDefined, skip } from '../../utils';\r\nimport { LoaderService } from '../loader/service/loader.service';\r\nimport { LoadMoreService } from './service/load-more.service';\r\nimport { ILoadMoreParameters } from './models/load-more-parameters.model';\r\nimport { ILoadContainerModel, LoaderFunction } from './models/load-container.model';\r\nimport { LoadContainerType } from './load-container.enum';\r\nimport { LoadContainerConstants } from './load-container.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]\r\n})\r\nexport class LoadContainerComponent implements OnDestroy {\r\n\r\n ComponentSize = ComponentSize;\r\n Position = Position;\r\n\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 @Input()\r\n size: number = LoadContainerConstants.DEFAULT_PAGE_SIZE;\r\n\r\n @Input()\r\n loadMore: boolean = true;\r\n\r\n @Input()\r\n showEmpty: boolean = true;\r\n\r\n @Input()\r\n showLoadMoreButton: boolean = true;\r\n\r\n @Input()\r\n loadMoreLabel!: string;\r\n\r\n @Input()\r\n notFoundLabel: string = LoadContainerConstants.DEFAULT_NOT_FOUND_LABEL;\r\n\r\n @Input()\r\n set model(model: ILoadContainerModel) {\r\n if (isDefined(model)) {\r\n const parameters$ = this.buildParameters(model.predicate$),\r\n data$: Observable<ILoadMoreModel<any>> = isDefined(model.loader) ?\r\n this.buildDynamic(parameters$, model.loader as LoaderFunction) : this.buildStatic(parameters$, 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: ILoadMoreModel<any>) => this.success(result),\r\n error: (error) => this.error(error)\r\n }\r\n );\r\n }\r\n }\r\n\r\n @Input()\r\n scrollTarget!: HTMLElement;\r\n\r\n @Output()\r\n handleError: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n handleSuccess: EventEmitter<ILoadMoreModel<any>> = new EventEmitter<ILoadMoreModel<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 next: boolean = false;\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 empty: boolean = false;\r\n\r\n @HostBinding(`class.${UIClass.Empty}`)\r\n public get isEmpty(): boolean { return this.empty && this.showEmpty; }\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 _subscription!: Subscription;\r\n\r\n constructor(private loaderService: LoaderService, private loadMoreService: LoadMoreService) { }\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: ILoadMoreModel<any>): void {\r\n this.next = result.next;\r\n this.loading = false;\r\n this.empty = !any(result.items);\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.handleError.emit(error);\r\n }\r\n\r\n private buildParameters(predicate$: Observable<any> | undefined): Observable<ILoadMoreParameters> {\r\n const parameters$ = (predicate$ || EMPTY.pipe(startWith(null))).pipe(\r\n tap(() => {\r\n if (isDefined(this.contentEl))\r\n this.contentEl.nativeElement.scrollTop = 0;\r\n this.loadMoreService.reset();\r\n }),\r\n switchMap((value: any) => {\r\n return this.loadMoreService.more$.pipe(\r\n startWith(this.loadMoreService.START_PAGE),\r\n tap(() => this.loading = true),\r\n map((page: number) => {\r\n return { params: value, page: page }\r\n })\r\n )\r\n })\r\n );\r\n\r\n return parameters$;\r\n }\r\n\r\n private buildDynamic(parameters$: Observable<ILoadMoreParameters>, loader: LoaderFunction): Observable<ILoadMoreModel<any>> {\r\n return parameters$.pipe(\r\n switchMap((parameters: ILoadMoreParameters) => loader(parameters))\r\n );\r\n }\r\n\r\n private buildStatic(parameters$: Observable<ILoadMoreParameters>, model: ILoadContainerModel): Observable<ILoadMoreModel<any>> {\r\n return parameters$.pipe(\r\n withLatestFrom(model.data$ || of([])),\r\n map(([parameters, items]) => {\r\n const filtered = model.filter ? model.filter(items, parameters) : items,\r\n data: ILoadMoreModel<any> = filtered ? {\r\n items: skip(filtered, parameters.page, this.size),\r\n next: parameters.page < Math.ceil(filtered.length / this.size)\r\n } : { items: [], next: false };\r\n return data;\r\n }));\r\n }\r\n}","<div class=\"container\">\r\n <sfc-bounce-loader [id]=\"id\" [sfcComponentSize]=\"ComponentSize.Small\"></sfc-bounce-loader>\r\n <div #content class=\"content\" [sfcScrollIntoView]=\"scrollTarget\" (sfcScrollTracker)=\"onScroll()\" [positions]=\"scrollPosition\">\r\n <ng-content></ng-content>\r\n <div (sfcMouseDown)=\"$event.preventDefault()\">\r\n <sfc-load-more-button [hidden]=\"hideLoadMoreButton\" (more)=\"more($event)\" [label]=\"loadMoreLabel\">\r\n </sfc-load-more-button>\r\n <div *ngIf=\"isEmpty\" class=\"empty\">{{notFoundLabel}}</div>\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;\r\n\r\n @Input()\r\n imageSrc?: string;\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>","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 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} from './directives';\r\nimport { SwitchMultiCasePipe } 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 DotsComponent,\r\n ToggleSwitcherComponent,\r\n CheckmarkComponent,\r\n TemplateContentComponent,\r\n CloseComponent,\r\n PaginationComponent,\r\n SortingComponent,\r\n LoadContainerComponent,\r\n LoadMoreButtonComponent,\r\n IconComponent\r\n} from './components';\r\n\r\n@NgModule({\r\n declarations: [\r\n // directives\r\n ClickOutsideDirective,\r\n ShowHideElementDirective,\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 // 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 DotsComponent,\r\n PaginationComponent,\r\n SortingComponent,\r\n LoadMoreButtonComponent,\r\n LoadContainerComponent,\r\n IconComponent,\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 ],\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 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 // components\r\n ButtonComponent,\r\n TooltipComponent,\r\n DelimeterComponent,\r\n CloseComponent,\r\n CheckmarkComponent,\r\n TemplateContentComponent,\r\n ToggleSwitcherComponent,\r\n DotsComponent,\r\n HamburgerComponent,\r\n HamburgerMenuComponent,\r\n PaginationComponent,\r\n SortingComponent,\r\n LoadMoreButtonComponent,\r\n LoadContainerComponent,\r\n IconComponent,\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 ],\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\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ImageLoadService","i1","i1.LoaderService","i1.ModalService","i2","i3","i4.CloseComponent","i3.ComponentSizeDirective","i4.ButtonComponent","i2.TemplateContentComponent","i3.DefaultModalHeaderComponent","i4.DefaultModalFooterComponent","i1.PaginationService","i4.ShowHideElementDirective","i5.DelimeterComponent","i1.SortingService","i2.MouseDownDirective","i3.DelimeterComponent","i2.LoadMoreService","i4.MouseDownDirective","i5.ComponentSizeDirective","i6.ScrollTrackerDirective","i7.ScrollIntoViewDirective","i8.LoadMoreButtonComponent","i9.BounceLoaderComponent"],"mappings":";;;;;;;;;;;AACA;;AAEG;AACS,IAAA,cAKX;AALD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA;;ACTD;;AAEG;AACS,IAAA,UAGX;AAHD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACzB,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA;;ACND;;AAEG;AACS,IAAA,YAOX;AAPD,CAAA,UAAY,WAAW,EAAA;IACnB,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,IAAA,CAAA,GAAA,aAAkB,CAAA;IAClB,WAAA,CAAA,WAAA,CAAA,QAAA,CAAA,GAAA,IAAA,CAAA,GAAA,QAAa,CAAA;IACb,WAAA,CAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAY,CAAA;IACZ,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAiB,CAAA;IACjB,WAAA,CAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAA,CAAA,GAAA,QAAY,CAAA;IACZ,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,GAAA,CAAA,GAAA,aAAiB,CAAA;AACrB,CAAC,EAPW,WAAW,KAAX,WAAW,GAOtB,EAAA,CAAA,CAAA;;ACVD;;AAEG;AACS,IAAA,SAMX;AAND,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EANW,QAAQ,KAAR,QAAQ,GAMnB,EAAA,CAAA,CAAA;;ACTD;;AAEG;AACS,IAAA,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC7B,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA;;ACND;;AAEG;AACS,IAAA,MAGX;AAHD,CAAA,UAAY,KAAK,EAAA;AACb,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,mBAA6B,CAAA;AAC7B,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,gBAAuB,CAAA;AAC3B,CAAC,EAHW,KAAK,KAAL,KAAK,GAGhB,EAAA,CAAA,CAAA;;ACND;;AAEG;AACS,IAAA,QAuBX;AAvBD,CAAA,UAAY,OAAO,EAAA;AACf,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,OAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,OAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,OAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,OAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACrC,CAAC,EAvBW,OAAO,KAAP,OAAO,GAuBlB,EAAA,CAAA,CAAA,CAAA;AAAA;;AC1BD;;AAEG;AACS,IAAA,SAGX;AAHD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA;;ACFD;;AAEG;MACU,QAAQ,GAAG,IAAI,cAAc,CAAW,eAAe,EAAE;AACtE;;AAEG;MACmB,WAAW,CAAA;AAC/B,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;AACF,CAAA;AAED;;AAEG;AAEG,MAAO,kBAAmB,SAAQ,WAAW,CAAA;AACjD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;AAED;;AAEG;AACH,IAAA,IAAa,cAAc,GAAA;AACzB,QAAA,OAAO,QAAQ,CAAC;KACjB;;+GAVU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;AAcX;;;;;AAKG;AACa,SAAA,eAAe,CAC7B,kBAAsC,EACtC,UAAkB,EAAA;AAElB,IAAA,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE;QACjC,OAAO,kBAAkB,CAAC,cAAc,CAAC;AAC1C,KAAA;AACD,IAAA,MAAM,GAAG,GAAG;AACV,QAAA,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,OAAO,CAAC,OAAO;KACjC,CAAA;AACD,IAAA,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;AAEG;AACU,MAAA,uBAAuB,GAAkB;AACpD,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,QAAQ,EAAE,kBAAkB;EAC5B;AAEF;;AAEG;AACU,MAAA,gBAAgB,GAAoB;AAC/C,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,IAAI,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;EAChC;AAEF;;AAEG;MACU,kBAAkB,GAAG,CAAC,uBAAuB,EAAE,gBAAgB;;ACvE5E;;AAEG;MACU,MAAM,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE;AAExD;;AAEG;MACmB,SAAS,CAAA;AAC7B,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;AACF,CAAA;AAED;;AAEG;AAEG,MAAO,gBAAiB,SAAQ,SAAS,CAAA;AAC7C,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;KACT;AAED;;AAEG;AACH,IAAA,IAAa,YAAY,GAAA;AACvB,QAAA,OAAO,MAAM,CAAC;KACf;;6GAVU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iHAAhB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;AAcX;;;;;AAKG;AACa,SAAA,aAAa,CAC3B,gBAAkC,EAClC,UAAkB,EAAA;AAElB,IAAA,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE;QACjC,OAAO,gBAAgB,CAAC,YAAY,CAAC;AACtC,KAAA;AACD,IAAA,MAAM,GAAG,GAAG;QACV,UAAU,EAAE,CAAC,IAAS,EAAE,IAAS,QAAQ;AACzC,QAAA,YAAY,EAAE,CAAC,CAAM,QAAQ;KAC9B,CAAA;AACD,IAAA,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;AAEG;AACU,MAAA,qBAAqB,GAAkB;AAClD,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,QAAQ,EAAE,gBAAgB;EAC1B;AAEF;;AAEG;AACU,MAAA,cAAc,GAAoB;AAC7C,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,aAAa;AACzB,IAAA,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;EAC9B;AAEF;;AAEG;MACU,gBAAgB,GAAG,CAAC,qBAAqB,EAAE,cAAc;;MCnEzD,aAAa,CAAA;AAmBxB,IAAA,WAAA,CAAoB,YAA0B,EAAA;AAA1B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACtC,QAAQ,EACR,QAAQ,EACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACzB,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACtC,QAAQ,EACR,QAAQ,EACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACzB,CAAC;KACH;AAzBD;;;AAGG;AACH,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAC1C;AAqBD;;;AAGG;AACK,IAAA,QAAQ,CAAC,KAAc,EAAA;QAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAS,KAAK,CAAC,MAAM,CAAC,CAAC;KAC/C;AAED;;;AAGG;AACK,IAAA,QAAQ,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAW,KAAK,CAAC,MAAM,CAAC;KACzC;;0GA/CU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCMY,qBAAqB,CAAA;IAiBhC,WACU,CAAA,UAAsB,EACJ,QAAkB,EAAA;AADpC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACJ,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAjB9C;;AAEG;AAEI,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAElC;;AAEG;AAEI,QAAA,IAAA,CAAA,MAAM,GACT,IAAI,YAAY,EAAqB,CAAC;KAOzC;IAED,eAAe,GAAA;QACb,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;AACxD,aAAA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAC5C;IAED,WAAW,GAAA;;AACT,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,kBAAkB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KACxC;AAEO,IAAA,OAAO,CAAC,KAAY,EAAA;AAC1B,QAAA,IAAI,KAAK,YAAY,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;AACjD,YAAA,MAAM,iBAAiB,GAAsB;gBAC3C,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,gBAAA,KAAK,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,MAAqB,CAAC;aACtF,CAAC;AAEF,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACrC,SAAA;KACF;IAEO,YAAY,CAAC,MAAmB,EAAE,KAAkB,EAAA;QAC1D,IAAI,IAAI,GAAgB,KAAK,CAAC;QAC9B,OAAO,IAAI,KAAK,IAAI,EAAE;YACpB,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,GAAG,IAAI,CAAC,UAAyB,CAAC;AACvC,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;;AApDU,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,4CAmBtB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAnBP,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;iBAC9B,CAAA;;;8BAoBI,MAAM;+BAAC,QAAQ,CAAA;;yBAbX,SAAS,EAAA,CAAA;sBADf,KAAK;uBAAC,iBAAiB,CAAA;gBAOjB,MAAM,EAAA,CAAA;sBADZ,MAAM;;;MCvBI,eAAe,CAAA;;AACjB,eAAe,CAAA,eAAA,GAAG,CAAC,CAAC,CAAC;AACrB,eAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AAClB,eAAiB,CAAA,iBAAA,GAAG,CAAC,CAAC;AACtB,eAAe,CAAA,eAAA,GAAG,GAAG,CAAC;AACtB,eAAqB,CAAA,qBAAA,GAAG,GAAG;;MCLzB,iBAAiB,CAAA;;AACnB,iBAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AACjB,iBAAmB,CAAA,mBAAA,GAAG,EAAE,CAAC;AACzB,iBAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AACnB,iBAAa,CAAA,aAAA,GAAG,CAAC,CAAC;AAClB,iBAAe,CAAA,eAAA,GAAG,EAAE,CAAC;AACrB,iBAAA,CAAA,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnD,iBAAA,CAAA,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;;MCPhE,WAAW,CAAA;;AACb,WAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAClB,WAAc,CAAA,cAAA,GAAG,GAAG,CAAC;AACrB,WAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AACpB,WAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AAEd,WAAW,CAAA,WAAA,GAAG,SAAS,CAAC;AACxB,WAAsB,CAAA,sBAAA,GAAG,SAAS,CAAC;AACnC,WAAqB,CAAA,qBAAA,GAAG,QAAQ,CAAC;AAEjC,WAAS,CAAA,SAAA,GAAG,OAAO,CAAC;AACpB,WAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;AAClB,WAAS,CAAA,SAAA,GAAG,OAAO,CAAC;AACpB,WAAS,CAAA,SAAA,GAAG,OAAO,CAAC;AACpB,WAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAChB,WAAU,CAAA,UAAA,GAAG,QAAQ,CAAC;AACtB,WAAe,CAAA,eAAA,GAAG,OAAO,CAAC;AAC1B,WAAoB,CAAA,oBAAA,GAAG,YAAY,CAAC;AACpC,WAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAEtB,WAAuB,CAAA,uBAAA,GAAG,WAAW;;MCdnC,wBAAwB,CAAA;AAqBnC,IAAA,WAAA,CAAoB,EAAc,EAAA;AAAd,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAnBjB,QAAA,IAAkC,CAAA,kCAAA,GAAW,GAAG,CAAC;QAoBhE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;KACnD;IAnBD,IACI,eAAe,CAAC,IAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI;cACxB,WAAW,CAAC,sBAAsB;AACpC,cAAE,WAAW,CAAC,qBAAqB,CAAC;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;KACnC;IAED,IACI,KAAK,CAAC,KAAa,EAAA;QACrB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;KACxD;;AAED,IAAA,IAAY,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;KACpC;AAMO,IAAA,kBAAkB,CAAC,KAAA,GAAgB,IAAI,CAAC,kCAAkC,EAAA;AAChF,QAAA,OAAO,cAAc,KAAK,CAAA;sBACR,KAAK,CAAA;mBACR,CAAC;KACjB;;qHA7BU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,CAAA,oBAAA,EAAA,iBAAA,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;iBACjC,CAAA;iGAMK,eAAe,EAAA,CAAA;sBADlB,KAAK;uBAAC,oBAAoB,CAAA;gBASvB,KAAK,EAAA,CAAA;sBADR,KAAK;;;AChBR;;;;AAIG;AACG,SAAU,SAAS,CAAI,KAA2B,EAAA;AACpD,IAAA,OAAU,KAAK,KAAK,SAAS,IAAO,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAED;;;;AAIG;AACG,SAAU,QAAQ,CAAC,KAAU,EAAA;AAC/B,IAAA,QAAQ,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACpF,CAAC;AAED;;;;AAIG;AACG,SAAU,WAAW,CAAC,IAAS,EAAA;IACjC,OAAO,IAAI,YAAY,UAAU,CAAC;AACtC,CAAC;AAED;;;;;;AAMG;AACG,SAAU,mBAAmB,CAAC,GAAQ,EAAE,QAAgB,EAAE,QAAa,IAAI,EAAA;AAC7E,IAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;QACtD,IAAI,MAAM,GAAQ,EAAE,CAAC;AACrB,QAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;AACzB,QAAA,GAAG,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CAAK,EAAA,MAAM,CAAE,CAAC;AAC/B,KAAA;AAED,IAAA,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;AAIG;AACa,SAAA,wBAAwB,CAAC,GAAQ,EAAE,QAAgB,EAAA;AAC/D,IAAA,IAAI,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC9B,QAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxB,KAAA;AACL,CAAC;AAED;;;;AAII;AAEJ;;;;;AAKG;SACa,SAAS,CAAC,MAAW,EAAE,GAAG,OAAc,EAAA;IACpD,IAAI,CAAC,OAAO,CAAC,MAAM;AACf,QAAA,OAAO,MAAM,CAAC;AAElB,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAE/B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AACtC,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,YAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAAE,oBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;gBACvD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,aAAA;AAAM,iBAAA;AACH,gBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjD,aAAA;AACJ,SAAA;AACJ,KAAA;AAED,IAAA,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;;;AAIG;AACU,MAAA,MAAM,GAAG,CAAI,IAAa,KAAK,KAAK;AAEjD;;;;AAIK;AACC,SAAU,SAAS,CAAC,MAAW,EAAA;IACjC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;AAGG;SACa,eAAe,GAAA;AAC3B,IAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACrF;;AC5GA;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,KAAgC,EAAA;IAChE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,eAAe,CAAC,YAAY,CAAC;AACvE,CAAC;AAED;;;;;AAKG;AACa,SAAA,QAAQ,CAAC,KAAgC,EAAE,YAAoB,EAAA;IAC3E,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;AACpE,UAAG,KAAgB,CAAC,WAAW,EAAE;AAC5B,aAAA,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;UACvC,KAAK,CAAC;AAChB,CAAC;AAED;;;;AAIG;AACG,SAAU,IAAI,CAAC,KAAa,EAAA;AAC9B,IAAA,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACxE;;AC7BA;;;;;AAKG;AACa,SAAA,UAAU,CAAC,IAAU,EAAE,MAAc,EAAA;AACjD,IAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC1B,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;AAKG;AACa,SAAA,QAAQ,CAAC,IAAU,EAAE,IAAY,EAAA;AAC7C,IAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtB,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;AAKG;AACa,SAAA,MAAM,CAAC,IAAU,EAAE,SAAiB,EAAA;AAChD,IAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,IAAA,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B,IAAA,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;;AAKG;AACa,SAAA,OAAO,CAAC,IAAU,EAAE,IAAY,EAAA;AAC5C,IAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACzB,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;AAKG;AACa,SAAA,UAAU,CAAC,IAAU,EAAE,KAAa,EAAA;AAChD,IAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzB,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;AAKG;AACa,SAAA,eAAe,CAAC,IAAU,EAAE,KAAa,EAAA;AACrD,IAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC9B,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;AAIG;AACG,SAAU,+BAA+B,CAAC,IAAU,EAAA;AACtD,IAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAA,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACrB,IAAA,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;AAIG;AACG,SAAU,WAAW,CAAC,IAAU,EAAA;AAClC,IAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AACpC,IAAA,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;AAIG;AACG,SAAU,YAAY,CAAC,IAAU,EAAA;AACnC,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AACvC,IAAA,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,IAAU,EAAA;AACvC,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AACxC,IAAA,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;AAIG;AACG,SAAU,WAAW,CAAC,IAAU,EAAA;AAClC,IAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7C,IAAA,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;AAIG;AACG,SAAU,eAAe,CAAC,IAAU,EAAA;AACtC,IAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7C,IAAA,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;AAIG;AACG,SAAU,kBAAkB,CAAC,IAAU,EAAA;IACzC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,IAAI,EAAE;AACzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,EAC3B,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACnC,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;AAIG;AACG,SAAU,iBAAiB,CAAC,IAAU,EAAA;IACxC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,IAAI,EAAE;AACzC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,EAC3B,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;AAIG;AACG,SAAU,iBAAiB,CAAC,IAAU,EAAA;IACxC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,IAAI,EAAE;AACzC,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,IAAU,EAAA;IACvC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,IAAI,EAAE;AACzC,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9C,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;AAKG;AACa,SAAA,gCAAgC,CAAC,IAAY,EAAE,KAAa,EAAA;IACxE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;;;AAKG;AACa,SAAA,+BAA+B,CAAC,IAAY,EAAE,KAAa,EAAA;IACvE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;AAIG;AACG,SAAU,qBAAqB,CAAC,IAAU,EAAA;IAC5C,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,EACzC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,EACrC,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;IACzD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;AAKG;AACa,SAAA,YAAY,CAAC,KAAW,EAAE,KAAW,EAAA;AACjD,IAAA,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAC9B,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhC,OAAO,UAAU,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;AACzD,CAAC;AAED;;;;;AAKG;AACa,SAAA,WAAW,CAAC,KAAW,EAAE,KAAW,EAAA;AAChD,IAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AACjE,UAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;AAKG;AACa,SAAA,kBAAkB,CAAC,KAAW,EAAE,KAAW,EAAA;AACvD,IAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;AAChE,WAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;AAKG;AACa,SAAA,eAAe,CAAC,KAAW,EAAE,KAAW,EAAA;IACpD,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,EAClE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;UACnC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,EAC7D,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;AAKG;AACa,SAAA,sBAAsB,CAAC,KAAW,EAAE,KAAW,EAAA;IAC3D,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,EAClE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;WAClC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,EAC9D,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;AAClD;;AChSA;;;;;AAKG;SACa,aAAa,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC,EAAA;IACrD,IAAI,KAAK,KAAK,CAAC;AACX,QAAA,OAAO,GAAG,CAAC;IAEf,MAAM,CAAC,GAAG,IAAI,CAAC;AACf,IAAA,MAAM,EAAE,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,IAAU,EAAA;AACvC,IAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAChB,OAAO,eAAe,CAAC,YAAY,CAAC;AAExC,IAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,eAAe,EAAE;QAC5D,OAAO,eAAe,CAAC,YAAY,CAAC;AACvC,KAAA;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAY,CAAC;AAChD,CAAC;AAED;;;;AAIG;AACa,SAAA,aAAa,CAAC,IAAU,EAAE,MAAqD,EAAA;AAC3F,IAAA,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;AACjB,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC9B,KAAA;;AACG,QAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;AACrF,CAAC;AAED;;;;AAIG;AACG,SAAU,OAAO,CAAC,IAAU,EAAA;AAC9B,IAAA,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxF;;ACvDA;;;;AAIG;AACG,SAAU,eAAe,CAAC,KAAa,EACzC,IAAe,GAAA,WAAW,CAAC,UAAU,EAAA;IACrC,OAAO,KAAK,GAAG,IAAI,CAAC;AACxB,CAAC;AAED;;;;AAIG;AACG,SAAU,wBAAwB,CAAC,KAAa,EAClD,IAAe,GAAA,WAAW,CAAC,UAAU,EAAA;IACrC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;AAKG;SACa,YAAY,CAAC,IAAY,EAAE,QAAgB,GAAG,EAAA;IAC1D,OAAO,CAAA,KAAA,EAAQ,KAAK,CAAG,EAAA,WAAW,CAAC,cAAc,CAAA,GAAA,EAAM,IAAI,CAAA,EAAA,CAAI,CAAC;AACpE,CAAC;AAED;;;;AAIG;AACG,SAAU,cAAc,CAAC,KAAa,EAAA;IACxC,OAAO,CAAA,OAAA,EAAU,KAAK,CAAA,IAAA,CAAM,CAAC;AACjC,CAAC;AAED;;;;AAIG;SACa,UAAU,CAAC,OAAoB,EAAE,GAAG,UAAyB,EAAA;AACzE,IAAA,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE;AACpB,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,KAAA;AACL,CAAC;AAED;;;;AAIG;SACa,aAAa,CAAC,OAAoB,EAAE,GAAG,UAAyB,EAAA;AAC5E,IAAA,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE;AACpB,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1E,KAAA;AACL,CAAC;AAED;;;;;;AAMG;SACa,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AACpD,IAAA,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;AAIG;AACG,SAAU,QAAQ,CAAC,GAAW,EAAA;IAChC,IAAI,MAAM,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnE,IAAA,IAAI,MAAM,EAAE;QACR,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,OAAO,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAK,EAAA,EAAA,CAAC,GAAG,CAAC;AAClC,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;AAKG;AACa,SAAA,iBAAiB,CAAC,GAAW,EAAE,OAAe,EAAA;AAC1D,IAAA,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChF;;AC9FA;;;;AAIG;AACG,SAAU,GAAG,CAAI,UAAuC,EAAA;IAC1D,OAAO,SAAS,CAAC,UAAU,CAAC,IAAK,UAAuB,CAAC,MAAM,GAAG,CAAC,CAAC;AACxE,CAAC;AAED;;;;;AAKG;AACa,SAAA,OAAO,CAAI,UAAoB,EAAE,KAAQ,EAAA;IACrD,OAAO,GAAG,CAAC,UAAU,CAAC;AACf,WAAA,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,KAAK,eAAe,CAAC,eAAe,CAAC;AAC5F,CAAC;AAED;;;;;AAKG;AACa,SAAA,SAAS,CAAI,UAAoB,EAAE,SAA+B,EAAA;AAC9E,IAAA,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,eAAe,CAAC,eAAe,CAAC;AAClG,CAAC;AAED;;;;;;AAMG;AACa,SAAA,aAAa,CAAI,UAAsB;AACnD,QAAgB,EAAE,KAAQ,EAAA;IAC1B,OAAO,GAAG,CAAC,UAAU,CAAC;AACf,WAAA,UAAU,CAAC,SAAS,CAAC,IAAI,IACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;eAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,KAAK,eAAe,CAAC,eAAe,CAAC;AAC7E,CAAC;AAED;;;;;AAKG;AACa,SAAA,cAAc,CAAI,UAAuC,EACrE,SAA+B,EAAA;IAE/B,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;AACrE,CAAC;AAED;;;;AAIG;AACG,SAAU,SAAS,CAAI,UAAoB,EAAA;AAC7C,IAAA,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAED;;;;AAIG;AACG,SAAU,QAAQ,CAAI,UAAoB,EAAA;AAC5C,IAAA,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACtE,CAAC;AAED;;;;;AAKG;AACa,SAAA,GAAG,CAAI,UAAoB,EAAE,SAA+B,EAAA;IACxE,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;AAC9F,CAAC;AAED;;;;;AAKG;AACa,SAAA,KAAK,CAAI,UAAoB,EAAE,SAA+B,EAAA;AAE1E,IAAA,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AACjE,CAAC;AAED;;;;;;AAMG;SACa,IAAI,CAAI,UAAoB,EAAE,IAAY,EAAE,IAAY,EAAA;AACpE,IAAA,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE;QACjB,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC;QAC9B,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AAChD,KAAA;AAED,IAAA,OAAO,UAAU,CAAC;AACtB,CAAC;AAEK,SAAU,IAAI,CAAI,UAAoB,EAAE,SAA8B,GAAA,gBAAgB,CAAC,SAAS,EAAA;AAClG,IAAA,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE;AACjB,QAAA,OAAO,SAAS,IAAI,gBAAgB,CAAC,SAAS;AAC1C,cAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,cAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,KAAA;AAED,IAAA,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;;;;AAMG;SACa,MAAM,CAAI,UAAoB,EAAE,QAAgB,EAC5D,SAA2B,EAAA;AAC3B,IAAA,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE;AACjB,QAAA,IAAI,SAAS,GAAG,CAAC,CAAM,EAAE,CAAM,KAC3B,CAAC,EAAU,EAAE,EAAU,MAClB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAE9C,QAAA,OAAO,SAAS,IAAI,gBAAgB,CAAC,SAAS;cACxC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;cAC3D,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,KAAA;AAED,IAAA,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;;;;AAMG;SACa,UAAU,CAAI,UAAoB,EAAE,IAAY,EAAE,SAA2B,EAAA;AAEzF,IAAA,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE;QACjB,IAAI,mBAAmB,CAAC,IAAI,CAAC;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAEnF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAElC,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;AAEvF,QAAA,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;QAErC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,KAAI;YAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,OAAO,CAAC,GAAG,WAAW,EAAE;gBAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAAC,gBAAA,CAAC,EAAE,CAAC;AAAE,aAAA;AAE1E,YAAA,OAAO,SAAS,IAAI,gBAAgB,CAAC,SAAS;AAC1C,kBAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,kBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,UAAU,CAAC;AACrB,KAAA;AAED,IAAA,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;;AAIG;AACG,SAAU,QAAQ,CAAI,UAAoB,EAAA;IAC5C,OAAO,GAAG,CAAC,UAAU,CAAC;UAChB,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;UACxE,UAAU,CAAC;AACrB,CAAC;AAED;;;;;AAKG;AACa,SAAA,GAAG,CAAI,UAAoB,EAAE,MAA2B,EAAA;IACpE,OAAO,GAAG,CAAC,UAAU,CAAC;AAClB,UAAE,UAAU;aACP,GAAG,CAAC,MAAM,CAAC;AACX,aAAA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,EAAG,OAAO,CAAC,GAAG,CAAC,CAAA,EAAE,EAAE,CAAC,CAAC;UACxC,CAAC,CAAC;AACZ,CAAC;AAED;;;;;AAKG;AACa,SAAA,GAAG,CAAI,UAAoB,EAAE,MAA2B,EAAA;IACpE,IAAI,GAAG,CAAC,UAAU,CAAC;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/C,IAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;AAC/E,CAAC;AAED;;;;AAIG;AACa,SAAA,MAAM,CAAI,UAAoB,EAAE,SAA+B,EAAA;AAC3E,IAAA,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,EAAE;AACR,QAAA,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;AAC1B,YAAA,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,SAAA;AACJ,KAAA;AACL,CAAC;AAED;;;;;;AAMG;SACa,OAAO,CAAI,UAAoB,EAAE,IAAO,EACpD,SAA+B,EAAA;AAE/B,IAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACtB,QAAA,UAAU,GAAG,IAAI,KAAK,EAAK,CAAC;IAEhC,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC;AACvC,QAAA,OAAO,KAAK,CAAC;AAEjB,IAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEtB,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;AAKG;AACa,SAAA,UAAU,CAAI,UAAoB,EAAE,IAAO,EAAA;IACvD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AAC9C,QAAA,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;AAKG;AACa,SAAA,YAAY,CAAI,UAAoB,EAAE,SAA+B,EAAA;IACjF,MAAM,SAAS,GAAyB,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9E,IAAA,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;AACtB,QAAA,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,SAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;AAKG;SACa,YAAY,CAAI,UAAoB,EAAE,SAA+B,EAAE,OAAU,EAAA;IAE7F,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAElD,IAAA,IAAI,SAAS,KAAK,eAAe,CAAC,eAAe,EAAE;QAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,SAAS,CAAC,GACV,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,UAAU,CAAC,SAAS,CAAC,CAAA,EACrB,OAAO,CACb,CAAC;AACF,QAAA,OAAO,MAAM,CAAA;AAChB,KAAA;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;AAIG;AACG,SAAU,oBAAoB,CAAI,UAAoB,EAAA;AACxD,IAAA,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC;AACnD;;MCvTa,4BAA4B,CAAA;AAiBvC,IAAA,WAAA,CAAoB,EAAc,EAAA;AAAd,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;KAAK;IAZX,YAAY,GAAA;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC7B;IAE2B,YAAY,GAAA;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAClB;AAED,IAAA,IAAY,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;KACpC;AAIO,IAAA,KAAK,CAAC,KAAqB,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,GAAG,cAAc,eAAe,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,GAAG,IAAI,CAAC;KAC/E;;yHArBU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAA5B,4BAA4B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,wBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;iBACrC,CAAA;iGAIC,UAAU,EAAA,CAAA;sBADT,KAAK;uBAAC,wBAAwB,CAAA;gBAGH,YAAY,EAAA,CAAA;sBAAvC,YAAY;uBAAC,YAAY,CAAA;gBAIE,YAAY,EAAA,CAAA;sBAAvC,YAAY;uBAAC,YAAY,CAAA;;;MCTf,0BAA0B,CAAA;AAQrC,IAAA,WAAA,CAA4B,QAA0B,EAAA;AAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;AALtD,QAAA,IAAA,CAAA,YAAY,GAAW,eAAe,CAAC,YAAY,CAAC;KAKO;;uHARhD,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,CAAA,sBAAA,EAAA,cAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;iBACnC,CAAA;kGAIC,YAAY,EAAA,CAAA;sBADX,KAAK;uBAAC,sBAAsB,CAAA;gBAI7B,IAAI,EAAA,CAAA;sBADH,KAAK;;;MCLK,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAKE;;AAEG;AAEH,QAAA,IAAA,CAAA,MAAM,GAAW,eAAe,CAAC,iBAAiB,CAAC;AAGnD,QAAA,IAAA,CAAA,MAAM,GAA6B,IAAI,YAAY,EAAc,CAAC;KAWnE;AARC,IAAA,WAAW,CAAC,MAAkB,EAAA;AAC5B,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,SAAA;AACI,aAAA;YACH,MAAM,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACF;;+GAnBU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;iBAC3B,CAAA;8BAOC,MAAM,EAAA,CAAA;sBADL,KAAK;gBAIN,MAAM,EAAA,CAAA;sBADL,MAAM;uBAAC,cAAc,CAAA;gBAItB,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCT1B,sBAAsB,CAAA;AAgCjC,IAAA,WAAA,CAAoB,EAAc,EAAA;AAAd,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AApB1B,QAAA,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;AAqBxC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KACrF;IA/BD,IACI,IAAI,CAAC,KAAuC,EAAA;AAC9C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KACrF;AACD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAGD,IACI,UAAU,CAAC,KAAoB,EAAA;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW;AAClB,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KAC/E;AACD,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACpD;AAED,IAAA,IAAY,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;KACpC;IAMO,iBAAiB,GAAA;QACvB,QAAQ,IAAI,CAAC,IAAI;YACf,KAAK,aAAa,CAAC,KAAK;AACtB,gBAAA,OAAO,GAAG,CAAC;YACb,KAAK,aAAa,CAAC,MAAM;AACvB,gBAAA,OAAO,CAAC,CAAC;YACX,KAAK,aAAa,CAAC,KAAK;AACtB,gBAAA,OAAO,CAAC,CAAC;AACX,YAAA;AACE,gBAAA,OAAO,CAAC,CAAC;AACZ,SAAA;KACF;;mHA/CU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;iBAC/B,CAAA;iGAKK,IAAI,EAAA,CAAA;sBADP,KAAK;uBAAC,kBAAkB,CAAA;gBAWrB,UAAU,EAAA,CAAA;sBADb,KAAK;;;MChBK,sBAAsB,CAAA;AAY/B,IAAA,WAAA,CAAoB,EAAc,EAAA;AAAd,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAFlC,QAAA,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;KAEqB;IAVvC,IACI,aAAa,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,KAAK,EAAE;YACP,UAAU,CAAC,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,EAAE,CAAA,EAAA,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/E,SAAA;KACJ;;mHAPQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;iBACjC,CAAA;iGAIO,aAAa,EAAA,CAAA;sBADhB,KAAK;uBAAC,kBAAkB,CAAA;gBAQzB,KAAK,EAAA,CAAA;sBADJ,KAAK;;;MCTG,mBAAmB,CAAA;AAc9B,IAAA,WAAA,CAAoB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAXnC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAkB,CAAC;QAG1D,IAAA,CAAA,OAAO,GAAyB;AAC9B,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,aAAa,EAAE,IAAI;SACpB,CAAC;AAKA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAE9C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAA2B,KAC9D,SAAS,CAAC,OAAO,CAAC,CAAC,QAAwB,KACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC7C;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;KAC3B;;gHA1BU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;iBAC5B,CAAA;iGAIQ,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAIP,OAAO,EAAA,CAAA;sBADN,KAAK;;;MCHK,sBAAsB,CAAA;AAHnC,IAAA,WAAA,GAAA;AAME,QAAA,IAAS,CAAA,SAAA,GAAe,EAAE,CAAC;AAG3B,QAAA,IAAA,CAAA,gBAAgB,GAA2B,IAAI,YAAY,EAAY,CAAC;KAqBzE;AAlBS,IAAA,QAAQ,CAAC,KAAY,EAAA;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC/C,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxC;AAEO,IAAA,WAAW,CAAC,KAAY,EAAA;QAC9B,MAAM,OAAO,GAAQ,KAAK,CAAC,MAAM,EAC/B,KAAK,GAAG,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,EACnD,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAE/C,IAAI,cAAc,IAAI,KAAK;YACzB,OAAO,QAAQ,CAAC,MAAM,CAAC;aACpB,IAAI,cAAc,IAAI,CAAC;YAC1B,OAAO,QAAQ,CAAC,GAAG,CAAC;AAEtB,QAAA,OAAO,IAAI,CAAC;KACb;;mHA1BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;iBAC/B,CAAA;8BAIC,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,MAAM;gBAIC,QAAQ,EAAA,CAAA;sBADf,YAAY;uBAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCTvB,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAiBE,QAAA,IAAA,CAAA,OAAO,GAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;KAC3F;IAbC,IACI,iBAAiB,CAAC,KAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YACnB,OAAO;AAET,QAAA,IAAI,eAAe,EAAE;YAClB,KAAa,CAAC,sBAAsB,EAAE,CAAC;;AAExC,YAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACtC;;oHAXU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;iBAChC,CAAA;8BAIK,iBAAiB,EAAA,CAAA;sBADpB,KAAK;gBAYN,OAAO,EAAA,CAAA;sBADN,KAAK;;;MCZK,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAKU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAkB,CAAC;QAE7C,IAAA,CAAA,KAAK,GAA+B,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACvE,aAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KAKjC;AAHQ,IAAA,IAAI,CAAC,KAAqB,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;;6GATU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCEY,kBAAkB,CAAA;IAwB7B,WAAoB,CAAA,EAAc,EAAU,WAA6B,EAAA;AAArD,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;AAAU,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AArBlE,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAS,CAAC;KAqBoC;AAlBtE,IAAA,MAAM,CAAC,KAAY,EAAA;AACzB,QAAA,MAAM,SAAS,GAAmB;AAChC,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa;AAC3C,gBAAA,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY;AAC1C,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY;AAC1C,gBAAA,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;AACzC,aAAA;SACF,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEjC,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;;+GAtBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;iBAC3B,CAAA;6HAIQ,MAAM,EAAA,CAAA;sBADZ,MAAM;uBAAC,cAAc,CAAA;gBAId,MAAM,EAAA,CAAA;sBADb,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCRrB,mBAAmB,CAAA;IAE9B,SAAS,CAAC,KAAY,EAAE,YAAiB,EAAA;AACvC,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,CAAC,YAAY,CAAC;KACpE;;gHAJU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,oBAAoB;iBAC3B,CAAA;;;ACJW,IAAA,WAMX;AAND,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EANW,UAAU,KAAV,UAAU,GAMrB,EAAA,CAAA,CAAA;;MCKY,eAAe,CAAA;AAL5B,IAAA,WAAA,GAAA;AAOmB,QAAA,IAAmB,CAAA,mBAAA,GAAW,QAAQ,CAAC;AAaxD,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAG1B,IAAA,CAAA,KAAK,GAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KAelD;AAbC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;cAC9F,IAAI,CAAC,mBAAmB;AAC1B,cAAE,IAAI,CAAC,IAAI,CAAC;KACf;AAED,IAAA,IAAI,OAAO,GAAA;QACT,MAAM,OAAO,GAAQ,EAAE,CAAC;AAExB,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAE3D,QAAA,OAAO,OAAO,CAAC;KAChB;;4GAhCU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,iOCX5B,sRAII,EAAA,MAAA,EAAA,CAAA,2iFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOS,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,YAAY,EAAA,QAAA,EAAA,sRAAA,EAAA,MAAA,EAAA,CAAA,2iFAAA,CAAA,EAAA,CAAA;8BAStB,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,CAAA,MAAA,EAAS,OAAO,CAAC,QAAQ,EAAE,CAAA;gBAIxC,KAAK,EAAA,CAAA;sBADJ,KAAK;;;AE5BI,IAAA,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA;;MCYY,gBAAgB,CAAA;IA8B3B,WAAoB,CAAA,aAA4B,EAA0B,MAAc,EAAA;AAApE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAA0B,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAtBxF,QAAA,IAAA,CAAA,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC;AAIhC,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC;AAI/B,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;;AAUrB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC;KAI4D;IAX7F,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,EAAE;AACzC,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACtC,SAAA;KACF;IASD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;KACvC;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS;AACpD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,aAAA,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM;cAC/E,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;KACzC;IAED,WAAW,GAAA;;AACT,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,mBAAmB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KACzC;;AA7CU,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,4CA8B+B,MAAM,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA9BrD,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,mYAHjB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,k3FAAA,CAAA,EAAA,CAAA,CAAA;2FAG1B,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;AAEE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,YACf,CAAA,yBAAA,CAA2B,EAAA,MAAA,EAAA,CAAA,k3FAAA,CAAA,EAAA,CAAA;;;8BAiCc,MAAM;+BAAC,MAAM,CAAA;;yBA1BhE,KAAK,EAAA,CAAA;sBAFJ,KAAK;uBAAC,aAAa,CAAA;;sBACnB,WAAW;uBAAC,YAAY,CAAA;gBAKzB,WAAW,EAAA,CAAA;sBAFV,KAAK;;sBACL,WAAW;uBAAC,WAAW,CAAA;gBAKxB,eAAe,EAAA,CAAA;sBAFd,KAAK;;sBACL,WAAW;uBAAC,eAAe,CAAA;gBAK5B,WAAW,EAAA,CAAA;sBAFV,KAAK;;sBACL,WAAW;uBAAC,YAAY,CAAA;gBAIzB,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,OAAO,CAAA;;;MCxBV,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;AAYE,QAAA,IAAA,CAAA,SAAS,GAAc,SAAS,CAAC,UAAU,CAAC;KAI7C;IAFC,IACY,MAAM,GAAc,EAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,EAAE;;;+GAV7D,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,4LAHnB,CAAwB,sBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2nFAAA,CAAA,EAAA,CAAA,CAAA;2FAGvB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,YACf,CAAA,sBAAA,CAAwB,EAAA,MAAA,EAAA,CAAA,2nFAAA,CAAA,EAAA,CAAA;8BAMlC,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAKN,SAAS,EAAA,CAAA;sBAFR,KAAK;;sBACL,WAAW;uBAAC,OAAO,CAAA;gBAIR,MAAM,EAAA,CAAA;sBADjB,WAAW;uBAAC,CAAA,MAAA,EAAS,OAAO,CAAC,KAAK,EAAE,CAAA;;;MClB1B,eAAe,CAAA;;AACjB,eAAgB,CAAA,gBAAA,GAAG,QAAQ,CAAC;AAC5B,eAAe,CAAA,eAAA,GAAG,OAAO,CAAC;AAC1B,eAAoB,CAAA,oBAAA,GAAG,YAAY;;MCMjC,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;QAKU,IAAA,CAAA,aAAa,GAAoC,IAAI,eAAe,CAAiB,EAAE,CAAC,CAAC;AAEzF,QAAA,IAAQ,CAAA,QAAA,GAA+B,IAAI,CAAC,aAAa;AAC9D,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CACH,MAAM,CAAiB,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,EAC/C,oBAAoB,EAAE,CACvB,CAAC;KA6EL;AA3EC;;;;AAIG;IACI,IAAI,CAAC,EAAa,GAAA,eAAe,CAAC,gBAAgB,EAAE,WAAoB,KAAK,EAAA;QAElF,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;KACjD;AAED;;;AAGG;AACI,IAAA,IAAI,CAAC,EAAA,GAAa,eAAe,CAAC,gBAAgB,EAAA;AACvD,QAAA,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;KACjC;AAED;;;;AAIG;AACI,IAAA,QAAQ,CAAC,KAAmB,EAAA;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE9C,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,EACxB,MAAM,aAAa,CAAC,OAAO,EAAE,MAAM,CAAe,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;AACrE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,SAAA;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACxC;AAED;;;AAGG;AACI,IAAA,MAAM,CAAC,EAAA,GAAa,eAAe,CAAC,gBAAgB,EAAA;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAE9C,QAAA,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,SAAA;KACF;AAEO,IAAA,gBAAgB,CAAC,EAAU,EAAA;QACjC,OAAO,IAAI,CAAC,QAAQ;aACjB,IAAI,CACH,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,CAAiB,CAAC,EACvE,oBAAoB,EAAE,CACvB,CAAC;KACL;AAEO,IAAA,eAAe,CAAC,EAAU,EAAE,MAAe,EAAE,WAAoB,KAAK,EAAA;AAC5E,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAC3C,YAAY,GAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,EAC3C,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhE,QAAA,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,MAAM,KAAI,MAAM;AAC/C,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAEnC,QAAA,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;AAExF,QAAA,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAgC,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACpC,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;;0GArFU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCAqB,mBAAmB,CAAA;AAsBrC,IAAA,WAAA,CAAsB,aAA4B,EAAA;AAA5B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AApBlD,QAAA,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;AAElB;;AAEE;AAEF,QAAA,IAAA,CAAA,EAAE,GAAW,eAAe,CAAC,gBAAgB,CAAC;AAE9C;;AAEG;AAEH,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;AAEvB;;AAEG;AAEH,QAAA,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;AAKpB,QAAA,IAAK,CAAA,KAAA,GAAwB,KAAK,CAAC;KAFzC;IAIM,QAAQ,GAAA;;QAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aACxE,IAAI,CACD,GAAG,CAAC,CAAC,KAAmB,KAAK,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CACrE,CAAC;KACT;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,IAAI,OAAO,GAAQ,EAAE,CAAC;AAEtB,QAAA,IAAI,IAAI,CAAC,EAAE,KAAK,eAAe,CAAC,gBAAgB;AAC5C,YAAA,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;;AAEjD,YAAA,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;QAEpD,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AAEhE,QAAA,OAAO,OAAO,CAAC;KAClB;;gHA9CiB,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC,SAAS;iGASN,EAAE,EAAA,CAAA;sBADD,KAAK;gBAON,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,UAAU,EAAA,CAAA;sBADT,KAAK;;;ACnBJ,MAAO,qBAAsB,SAAQ,mBAAmB,CAAA;;kHAAjD,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,gFCRlC,iQAMM,EAAA,MAAA,EAAA,CAAA,+bAAA,EAAA,2fAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,iQAAA,EAAA,MAAA,EAAA,CAAA,+bAAA,EAAA,2fAAA,CAAA,EAAA,CAAA;;;AEJnB,IAAA,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA;;ACMK,MAAO,qBAAsB,SAAQ,mBAAmB,CAAA;AAL9D,IAAA,WAAA,GAAA;;AAQE,QAAA,IAAA,CAAA,IAAI,GAAqB,gBAAgB,CAAC,OAAO,CAAC;KACnD;;kHAJY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,0GCTlC,qpBAeM,EAAA,MAAA,EAAA,CAAA,+bAAA,EAAA,m4DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDNO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,qpBAAA,EAAA,MAAA,EAAA,CAAA,+bAAA,EAAA,m4DAAA,CAAA,EAAA,CAAA;8BAO7B,IAAI,EAAA,CAAA;sBADH,KAAK;;;AEXI,IAAA,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA;;MCEY,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;AAKU,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEnC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAO,CAAC;QAEzC,IAAA,CAAA,MAAM,GAAqB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QAE5D,IAAA,CAAA,KAAK,GAAoB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KAS1D;IAPC,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;KAC1B;AAED,IAAA,IAAI,CAAC,OAAa,EAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;;yGAhBU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCIY,wBAAwB,CAAA;AAiBnC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACnC,eAAA,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,eAAe,GAAA;;QACjB,MAAM,WAAW,GAAG,cAAc,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,EACjE,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5C,OAAO,CAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAX,WAAW,CAAE,QAAQ,KAAI,IAAI,CAAC;KACtC;;qHA3BU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,gPCTrC,0hBAWe,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDFF,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,0hBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,CAAA;8BAOhC,WAAW,EAAA,CAAA;sBADV,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAIN,cAAc,EAAA,CAAA;sBADb,KAAK;;;MEfK,cAAc,CAAA;AAL3B,IAAA,WAAA,GAAA;AAME,QAAA,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;KACnB;;2GAFY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,iDCR3B,mFAEM,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,mFAAA,EAAA,MAAA,EAAA,CAAA,iEAAA,CAAA,EAAA,CAAA;;;MEOV,2BAA2B,CAAA;AAetC,IAAA,WAAA,CAAoB,YAA0B,EAAA;AAA1B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAb7B,IAAA,CAAA,0BAA0B,GAA6B;AACtE,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,IAAI,EAAE,OAAO;SACd,CAAA;KASkD;AAJnD,IAAA,IAAI,IAAI,GAAA;;QACN,OAAO,CAAA,MAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,KAAI,eAAe,CAAC;KAC5C;IAID,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,0BAA0B,CAAC;KAChD;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;KAC3B;;wHAxBU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,4FCXxC,mRAIM,EAAA,MAAA,EAAA,CAAA,6VAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,mRAAA,EAAA,MAAA,EAAA,CAAA,6VAAA,CAAA,EAAA,CAAA;gGAapC,KAAK,EAAA,CAAA;sBADJ,KAAK;;;MEPK,2BAA2B,CAAA;AAetC,IAAA,WAAA,CAAoB,YAA0B,EAAA;AAA1B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAb7B,IAAA,CAAA,0BAA0B,GAA6B;AACtE,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,WAAW,EAAE,IAAI;SAClB,CAAA;AAEQ,QAAA,IAAkB,CAAA,kBAAA,GAAG,GAAG,CAAC;AAElC,QAAA,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;AAC9B,QAAA,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;KAK2B;IAEnD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,0BAA0B,CAAC;AAC9C,SAAA;KACF;IAED,aAAa,CAAC,iBAA0B,KAAK,EAAA;;AAC3C,QAAA,IAAI,cAAc,EAAE;AAClB,YAAA,IAAI,MAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;AACxB,gBAAA,OAAO,MAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;AAC/B,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,MAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,EAAE;AACvB,gBAAA,OAAO,MAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;AAC9B,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;KAC3B;;wHAnCU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,4FCZxC,gdAOM,EAAA,MAAA,EAAA,CAAA,maAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDKO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,gdAAA,EAAA,MAAA,EAAA,CAAA,maAAA,CAAA,EAAA,CAAA;gGAiBpC,KAAK,EAAA,CAAA;sBADJ,KAAK;;;MEkBK,cAAc,CAAA;AA0CvB,IAAA,WAAA,CAAoB,YAA0B,EAAA;AAA1B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAxC9C,QAAA,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;;AA0B9B,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAG1B,QAAA,IAAkB,CAAA,kBAAA,GAAY,IAAI,CAAC;KAWgB;IARnD,sBAAsB,GAAA;QAClB,IAAI,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,KAAK,EAAE,CAAC;KACpB;IAOD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;KAC7B;;2GA9CQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,+WAuCN,0BAA0B,EAAA,IAAA,EAAU,0BAA0B,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjFnF,+3CAmCM,EDjBU,MAAA,EAAA,CAAA,u7BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;QACR,OAAO,CAAC,aAAa,EAAE;AACnB,YAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9D,YAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE1D,UAAU,CAAC,WAAW,EAAE;AACpB,gBAAA,KAAK,CAAC;oBACF,KAAK,CAAC,OAAO,EAAE;AACX,wBAAA,OAAO,CAAC,mCAAmC,EAAE,KAAK,CAAC;AAC/C,4BAAA,OAAO,EAAE,CAAC;AACV,4BAAA,UAAU,EAAE,QAAQ;AACvB,yBAAA,CAAC,CAAC;qBACN,CAAC;AACF,oBAAA,KAAK,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;iBAC1C,CAAC;aACL,CAAC;SACL,CAAC;QACF,OAAO,CAAC,aAAa,EAAE;AACnB,YAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACrF,YAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AACnF,YAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAC;SACxE,CAAC;AACL,KAAA,EAAA,CAAA,CAAA;2FAEQ,cAAc,EAAA,UAAA,EAAA,CAAA;kBA5B1B,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGT,UAAA,EAAA;wBACR,OAAO,CAAC,aAAa,EAAE;AACnB,4BAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9D,4BAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;4BAE1D,UAAU,CAAC,WAAW,EAAE;AACpB,gCAAA,KAAK,CAAC;oCACF,KAAK,CAAC,OAAO,EAAE;AACX,wCAAA,OAAO,CAAC,mCAAmC,EAAE,KAAK,CAAC;AAC/C,4CAAA,OAAO,EAAE,CAAC;AACV,4CAAA,UAAU,EAAE,QAAQ;AACvB,yCAAA,CAAC,CAAC;qCACN,CAAC;AACF,oCAAA,KAAK,CAAC,cAAc,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;iCAC1C,CAAC;6BACL,CAAC;yBACL,CAAC;wBACF,OAAO,CAAC,aAAa,EAAE;AACnB,4BAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AACrF,4BAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AACnF,4BAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAC;yBACxE,CAAC;qBACL,EAAA,QAAA,EAAA,+3CAAA,EAAA,MAAA,EAAA,CAAA,u7BAAA,CAAA,EAAA,CAAA;gGASD,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAIN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAQN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAIN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAMN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAIN,sBAAsB,EAAA,CAAA;sBADrB,YAAY;uBAAC,yBAAyB,CAAA;gBAOvC,SAAS,EAAA,CAAA;sBADR,eAAe;gBAAC,IAAA,EAAA,CAAA,0BAA0B,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAA;;;MEzExE,yBAAyB,CAAA;AA2BpC,IAAA,WAAA,CACU,WAA6B,EAC7B,aAA+B,EAC/B,YAA0B,EAAA;AAF1B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AAC7B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAC/B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAb5B,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,CAAC,KAAiB,KAAU;AAClD,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC9C,SAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAEN,QAAA,IAAQ,CAAA,QAAA,GAAkB,EAAE,CAAC;KAQpC;IA7BD,IACI,gBAAgB,CAAC,QAAqC,EAAA;AACxD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACtB,OAAO;QAET,IAAI,QAAQ,YAAY,WAAW;AACjC,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;;AAE3B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAE3B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAG;YACzB,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAClD,SAAC,CAAC,CAAC;KACJ;IAkBD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;aAC/C,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;KAChD;IAED,WAAW,GAAA;;AACT,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,kBAAkB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;KACjF;;sHAzCU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,CAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;iBAClC,CAAA;yJAIK,gBAAgB,EAAA,CAAA;sBADnB,KAAK;uBAAC,qBAAqB,CAAA;;;MCHjB,kBAAkB,CAAA;AAK7B,IAAA,WAAA,CAAoB,WAA6B,EACvC,aAA+B,EAC/B,YAA0B,EAAA;AAFhB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AACvC,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;AAC/B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;AAE/F,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK;aAC7C,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;KACtC;;+GApBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;iBAC3B,CAAA;;;MCFqB,sBAAsB,CAAA;AAD5C,IAAA,WAAA,GAAA;AAKE,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;AAGtB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;KACxC;;mHARqB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAD3C,SAAS;8BAKR,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAA;gBAIpC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;;ACFjB,MAAO,kBAAmB,SAAQ,sBAAsB,CAAA;;+GAAjD,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,4ECR/B,+JAIM,EAAA,MAAA,EAAA,CAAA,g4BAAA,CAAA,EAAA,CAAA,CAAA;2FDIO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,+JAAA,EAAA,MAAA,EAAA,CAAA,g4BAAA,CAAA,EAAA,CAAA;;;AEIrB,MAAO,sBAAuB,SAAQ,sBAAsB,CAAA;AALlE,IAAA,WAAA,GAAA;;AAQE,QAAA,IAAK,CAAA,KAAA,GAAW,MAAM,CAAC;KACxB;;mHAJY,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,6GCRnC,kMAMM,EAAA,MAAA,EAAA,CAAA,siCAAA,CAAA,EAAA,CAAA,CAAA;2FDEO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,kMAAA,EAAA,MAAA,EAAA,CAAA,siCAAA,CAAA,EAAA,CAAA;8BAO9B,KAAK,EAAA,CAAA;sBADJ,KAAK;;;MEFK,aAAa,CAAA;AAL1B,IAAA,WAAA,GAAA;AASE,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;AAItB,QAAA,IAAA,CAAA,SAAS,GAAc,SAAS,CAAC,UAAU,CAAC;AAG5C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;KAExC;;0GAbY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,uNCR1B,wMAMM,EAAA,MAAA,EAAA,CAAA,8yCAAA,CAAA,EAAA,CAAA,CAAA;2FDEO,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,wMAAA,EAAA,MAAA,EAAA,CAAA,8yCAAA,CAAA,EAAA,CAAA;8BAQpB,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAA;gBAKpC,SAAS,EAAA,CAAA;sBAFR,KAAK;;sBACL,WAAW;uBAAC,OAAO,CAAA;gBAIpB,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;;METV,uBAAuB,CAAA;AAmBlC,IAAA,WAAA,GAAA;AAfA,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAIxB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAS1B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAGzC,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;KACtC;;oHAtBU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,kSCTpC,geAYM,EAAA,MAAA,EAAA,CAAA,wqDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDHO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,geAAA,EAAA,MAAA,EAAA,CAAA,wqDAAA,CAAA,EAAA,CAAA;0EAQ/B,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAA;gBAKtC,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;gBAIxC,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;;AEzBX,IAAA,cAGX;AAHD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA;;MCOY,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;AASE,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAIxB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAG1B,QAAA,IAAI,CAAA,IAAA,GAAmB,OAAO,CAAC;AAI/B,QAAA,IAAA,CAAA,IAAI,GAAkB,aAAa,CAAC,OAAO,CAAC;AAG5C,QAAA,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;KAC/B;;+GAnBY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,uRCV/B,mKAIM,EAAA,MAAA,EAAA,CAAA,syDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,mKAAA,EAAA,MAAA,EAAA,CAAA,syDAAA,CAAA,EAAA,CAAA;8BAQzB,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAA;gBAKtC,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;gBAIxC,IAAI,EAAA,CAAA;sBADH,KAAK;gBAKN,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,OAAO,CAAA;gBAIpB,aAAa,EAAA,CAAA;sBADZ,KAAK;;;ME3BK,mBAAmB,CAAA;;AACrB,mBAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AACjB,mBAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AACjB,mBAAa,CAAA,aAAA,GAAG,CAAC;;MCMf,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;AAKE;;AAEG;AACK,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAU,CAAC;QACpC,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KA6CjD;;AAjCQ,IAAA,IAAI,CACT,KAAwB,EACxB,IAAe,GAAA,mBAAmB,CAAC,YAAY,EAC/C,QAAA,GAAmB,mBAAmB,CAAC,YAAY,EAAA;QAEnD,IAAI,SAAS,CAAC,KAAK,CAAC;YAClB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;KAC/C;AAED;;AAEG;AACI,IAAA,IAAI,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;AAEO,IAAA,eAAe,CAAC,KAAwB,EAAE,IAAY,EAAE,QAAgB,EAAA;AAC9E,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAa,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEzF,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnF,IAAI,CACH,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAI;YACpB,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,mBAAmB,CAAC,YAAY,GAAG,IAAI;gBAC5D,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC;gBAC/B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;AAC/B,gBAAA,KAAK,EAAE,KAAK;aACb,CAAC;SACH,CAAC,CACH,CAAA;KACJ;;8GAlDU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCMY,mBAAmB,CAAA;AA0B9B,IAAA,WAAA,CAAoB,OAA0B,EAAA;AAA1B,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;AAxB9C,QAAA,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;AAC9B,QAAA,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;;AAIhC,QAAA,IAAA,CAAA,KAAK,GAAW,mBAAmB,CAAC,aAAa,CAAC;AAElD;;AAEE;AAEF,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;AAEtB;;AAEG;AAEH,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;KAO2B;IAEnD,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CACtC,GAAG,CAAC,CAAC,KAAK,KAAI;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACpC,OAAO;AACL,oBAAA,KAAK,EAAE,KAAK;AACZ,oBAAA,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC;oBACpB,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;oBAC5C,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC;AACzC,oBAAA,YAAY,EAAE,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,YAAY;AAC5D,oBAAA,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI;oBAClC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB,CAAA;aACF,CAAC,CACH,CAAC;AACH,SAAA;KACF;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;AAED,IAAA,IAAY,cAAc,GAAA;QACxB,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;KAClC;IAEO,cAAc,CAAC,KAAe,EAAE,KAAuB,EAAA;QAC7D,OAAO,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,YAAY;eACxE,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;KACxD;IAEO,YAAY,CAAC,KAAe,EAAE,KAAuB,EAAA;QAC3D,OAAO,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1F;AAEO,IAAA,SAAS,CAAC,KAAuB,EAAA;QACvC,IAAI,KAAK,GAAG,CAAC,EACX,GAAG,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAC9C,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EACzC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAEhD,YAAA,IAAI,UAAU,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;AAEjC,YAAA,IAAI,SAAS,IAAI,mBAAmB,CAAC,YAAY,EAAE;AACjD,gBAAA,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnC,aAAA;AAAM,iBAAA;gBACL,IAAI,YAAY,GAAG,SAAS,GAAG,CAAC,EAC9B,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EACvC,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS,EAC7D,aAAa,GAAG,YAAY,GAAG,SAAS,EACxC,UAAU,GAAG,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;AAErD,gBAAA,IAAI,SAAS,GAAG,UAAU,IAAI,KAAK,CAAC,KAAK;oBACvC,SAAS,IAAI,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AAExD,gBAAA,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AACnC,gBAAA,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AACnC,aAAA;AAED,YAAA,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;AACvB,YAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC/C,SAAA;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KAC/B;AAEO,IAAA,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,OAAe,CAAC,EAAA;QACzD,IAAI,CAAC,IAAI,EAAE;YAAE,KAAK,GAAG,CAAC,CAAC;YAAC,IAAI,GAAG,KAAK,CAAC;AAAE,SAAA;AACvC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;KACzF;;gHA3GU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAW,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,kICdhC,wuCA8BM,EAAA,MAAA,EAAA,CAAA,8tEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDhBO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,wuCAAA,EAAA,MAAA,EAAA,CAAA,8tEAAA,CAAA,EAAA,CAAA;qGAW1B,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAON,IAAI,EAAA,CAAA;sBADH,KAAK;gBAON,MAAM,EAAA,CAAA;sBADL,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;;;MEjCK,gBAAgB,CAAA;;AAClB,gBAAsB,CAAA,sBAAA,GAAG,WAAW,CAAC;AACrC,gBAAuB,CAAA,uBAAA,GAAG,aAAa;;MCGrC,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAiB,CAAC;QAEtD,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KAK/C;AAHC,IAAA,IAAI,CAAC,KAAoB,EAAA;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;;2GAPU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCSY,gBAAgB,CAAA;AA0C3B,IAAA,WAAA,CAAoB,OAAuB,EAAA;AAAvB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;AAxC3C,QAAA,IAAgB,CAAA,gBAAA,GAAG,gBAAgB,CAAC;AAGpC,QAAA,IAAA,CAAA,EAAE,GAAW,eAAe,CAAC,YAAY,CAAC;AAG1C,QAAA,IAAA,CAAA,KAAK,GAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC;KAkChD;AAhChD,IAAA,IACI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC3B;AAED,IAAA,IACI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;KACnC;IAGD,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,OAAO,EAAE;YAEhB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,gBAAgB,CAAC,SAAS;sBACtE,gBAAgB,CAAC,UAAU;AAC7B,sBAAE,gBAAgB,CAAC,SAAS,CAAC;AAChC,aAAA;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;AACrE,SAAA;KACF;AAED,IAAA,IAAI,IAAI,GAAA;QACN,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7F,QAAA,OAAO,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,gBAAgB,CAAC,SAAS;cACnF,gBAAgB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,uBAAuB,CAAC;KACxF;IAMD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC;;AAGxF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAG;;AAE3D,YAAA,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;AACtD,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;KAClC;;6GA1DU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAW,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,qNCf7B,mOAOM,EAAA,MAAA,EAAA,CAAA,yhBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDQO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,mOAAA,EAAA,MAAA,EAAA,CAAA,yhBAAA,CAAA,EAAA,CAAA;kGASvB,EAAE,EAAA,CAAA;sBADD,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIF,OAAO,EAAA,CAAA;sBADV,WAAW;uBAAC,CAAA,MAAA,EAAS,OAAO,CAAC,OAAO,EAAE,CAAA;gBAMnC,MAAM,EAAA,CAAA;sBADT,WAAW;uBAAC,CAAA,MAAA,EAAS,OAAO,CAAC,MAAM,EAAE,CAAA;gBAMtC,IAAI,EAAA,CAAA;sBADH,YAAY;uBAAC,OAAO,CAAA;;;ME7BV,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;AAKoB,QAAA,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;AAE/B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;AAExB,QAAA,IAAA,CAAA,WAAW,GAAoB,IAAI,OAAO,EAAU,CAAC;QAEtD,IAAA,CAAA,KAAK,GAAuB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KAUtE;IARG,IAAI,GAAA;QACA,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;KAChC;;4GAjBQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;ACLW,IAAA,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;MCHY,sBAAsB,CAAA;;AACxB,sBAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;AAC9B,sBAAuB,CAAA,uBAAA,GAAW,WAAW;;MCO3C,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;AAOmB,QAAA,IAAa,CAAA,aAAA,GAAG,WAAW,CAAC;AAM7C,QAAA,IAAI,CAAA,IAAA,GAAmB,mBAAmB,CAAC;AAG3C,QAAA,IAAA,CAAA,IAAI,GAA6B,IAAI,YAAY,EAAc,CAAC;KAMjE;IAJC,QAAQ,GAAA;AACN,QAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;KACnC;;oHAhBU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,iICTpC,8OAMM,EAAA,MAAA,EAAA,CAAA,okBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDGO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,8OAAA,EAAA,MAAA,EAAA,CAAA,okBAAA,CAAA,EAAA,CAAA;8BAShC,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,MAAM;;;MEDI,sBAAsB,CAAA;IAiGjC,WAAoB,CAAA,aAA4B,EAAU,eAAgC,EAAA;AAAtE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAAU,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AA/F1F,QAAA,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;AAC9B,QAAA,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;AAOpB,QAAA,IAAA,CAAA,IAAI,GAAsB,iBAAiB,CAAC,QAAQ,CAAC;AAIrD,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;AAGtB,QAAA,IAAA,CAAA,IAAI,GAAW,sBAAsB,CAAC,iBAAiB,CAAC;AAGxD,QAAA,IAAQ,CAAA,QAAA,GAAY,IAAI,CAAC;AAGzB,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAG1B,QAAA,IAAkB,CAAA,kBAAA,GAAY,IAAI,CAAC;AAMnC,QAAA,IAAA,CAAA,aAAa,GAAW,sBAAsB,CAAC,uBAAuB,CAAC;AAyBvE,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAO,CAAC;AAGzD,QAAA,IAAA,CAAA,aAAa,GAAsC,IAAI,YAAY,EAAuB,CAAC;AAG3F,QAAA,IAAA,CAAA,aAAa,GAA0B,IAAI,YAAY,EAAW,CAAC;AAK5D,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;AAUtB,QAAA,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;AAMtB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;KAa6D;IA/D/F,IACI,KAAK,CAAC,KAA0B,EAAA;AAClC,QAAA,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;YACpB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,EACxD,KAAK,GAAoC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC9D,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,MAAwB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAE1G,YAAA,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AAC/B,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AAEnC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAClC;gBACE,IAAI,EAAE,CAAC,MAA2B,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC3D,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,aAAA,CACF,CAAC;AACH,SAAA;KACF;AAmBD,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAChF;AAED,IAAA,IAAW,aAAa,GAAA,EAAc,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AAE1E,IAAA,IAAW,kBAAkB,GAAA,EAAc,OAAO,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE;AAIrG,IAAA,IACW,OAAO,GAAA,EAAc,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE;IAItE,IAAY,OAAO,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,KAAK;YACP,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;;YAEvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEnC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAMD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,aAAa;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;KACpC;AAEM,IAAA,IAAI,CAAC,KAAiB,EAAA;QAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC7B;IAEM,QAAQ,GAAA;QACb,IAAI,IAAI,CAAC,aAAa;AACpB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC/B;AAEO,IAAA,OAAO,CAAC,MAA2B,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjC;AAEO,IAAA,KAAK,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;AAEO,IAAA,eAAe,CAAC,UAAuC,EAAA;QAC7D,MAAM,WAAW,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAClE,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;AAC/B,SAAC,CAAC,EACF,SAAS,CAAC,CAAC,KAAU,KAAI;AACvB,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CACpC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAC1C,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAC9B,GAAG,CAAC,CAAC,IAAY,KAAI;gBACnB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;aACrC,CAAC,CACH,CAAA;SACF,CAAC,CACH,CAAC;AAEF,QAAA,OAAO,WAAW,CAAC;KACpB;IAEO,YAAY,CAAC,WAA4C,EAAE,MAAsB,EAAA;AACvF,QAAA,OAAO,WAAW,CAAC,IAAI,CACrB,SAAS,CAAC,CAAC,UAA+B,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CACnE,CAAC;KACH;IAEO,WAAW,CAAC,WAA4C,EAAE,KAA0B,EAAA;QAC1F,OAAO,WAAW,CAAC,IAAI,CACrB,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EACrC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,KAAI;YAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,KAAK,EACrE,IAAI,GAAwB,QAAQ,GAAG;AACrC,gBAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;AACjD,gBAAA,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;aAC/D,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACjC,YAAA,OAAO,IAAI,CAAC;SACb,CAAC,CAAC,CAAC;KACP;;mHArKU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAf,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAFtB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,eAAe,CAAC,gIChB9B,uoBAUM,EAAA,MAAA,EAAA,CAAA,g9BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDQO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,oBAAoB,EAAA,SAAA,EAGnB,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,uoBAAA,EAAA,MAAA,EAAA,CAAA,g9BAAA,CAAA,EAAA,CAAA;4HAQ5B,EAAE,EAAA,CAAA;sBADD,KAAK;gBAKN,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,OAAO,CAAA;gBAKpB,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,CAAA,MAAA,EAAS,OAAO,CAAC,IAAI,EAAE,CAAA;gBAIpC,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAIN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAIN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAIF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAoBN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,WAAW,EAAA,CAAA;sBADV,MAAM;gBAIP,aAAa,EAAA,CAAA;sBADZ,MAAM;gBAIP,aAAa,EAAA,CAAA;sBADZ,MAAM;gBAIC,SAAS,EAAA,CAAA;sBADhB,SAAS;uBAAC,SAAS,CAAA;gBAgBT,OAAO,EAAA,CAAA;sBADjB,WAAW;uBAAC,CAAA,MAAA,EAAS,OAAO,CAAC,KAAK,EAAE,CAAA;gBAI7B,QAAQ,EAAA,CAAA;sBADf,WAAW;uBAAC,CAAA,MAAA,EAAS,OAAO,CAAC,OAAO,EAAE,CAAA;;;ME5F5B,aAAa,CAAA;AAQxB,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrE;;0GAVU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,gGCT1B,mJAGM,EAAA,MAAA,EAAA,CAAA,4IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMO,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,mJAAA,EAAA,MAAA,EAAA,CAAA,4IAAA,CAAA,EAAA,CAAA;8BAOpB,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;;;MEyHK,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA;;QAtF3B,qBAAqB;QACrB,wBAAwB;QACxB,4BAA4B;QAC5B,0BAA0B;QAC1B,kBAAkB;QAClB,sBAAsB;QACtB,sBAAsB;QACtB,mBAAmB;QACnB,sBAAsB;QACtB,uBAAuB;QACvB,kBAAkB;;QAElB,eAAe;QACf,gBAAgB;QAChB,kBAAkB;QAClB,uBAAuB;QACvB,kBAAkB;QAClB,wBAAwB;QACxB,cAAc;QACd,kBAAkB;QAClB,sBAAsB;QACtB,aAAa;QACb,mBAAmB;QACnB,gBAAgB;QAChB,uBAAuB;QACvB,sBAAsB;QACtB,aAAa;;QAEb,qBAAqB;QACrB,qBAAqB;;QAErB,cAAc;QACd,kBAAkB;QAClB,yBAAyB;QACzB,2BAA2B;QAC3B,2BAA2B;;QAE3B,mBAAmB;iBAGnB,YAAY;QACZ,iBAAiB,CAAA,EAAA,OAAA,EAAA;;QAIjB,qBAAqB;QACrB,wBAAwB;QACxB,4BAA4B;QAC5B,0BAA0B;QAC1B,kBAAkB;QAClB,sBAAsB;QACtB,sBAAsB;QACtB,mBAAmB;QACnB,sBAAsB;QACtB,uBAAuB;QACvB,kBAAkB;;QAElB,eAAe;QACf,gBAAgB;QAChB,kBAAkB;QAClB,cAAc;QACd,kBAAkB;QAClB,wBAAwB;QACxB,uBAAuB;QACvB,aAAa;QACb,kBAAkB;QAClB,sBAAsB;QACtB,mBAAmB;QACnB,gBAAgB;QAChB,uBAAuB;QACvB,sBAAsB;QACtB,aAAa;;QAEb,qBAAqB;QACrB,qBAAqB;;QAErB,cAAc;QACd,kBAAkB;QAClB,yBAAyB;QACzB,2BAA2B;QAC3B,2BAA2B;;QAE3B,mBAAmB;AAAA,KAAA,EAAA,CAAA,CAAA;AAIV,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,aAFlB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,YA5C/C,YAAY;QACZ,iBAAiB,CAAA,EAAA,CAAA,CAAA;2FA6CR,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAzF9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;;wBAEZ,qBAAqB;wBACrB,wBAAwB;wBACxB,4BAA4B;wBAC5B,0BAA0B;wBAC1B,kBAAkB;wBAClB,sBAAsB;wBACtB,sBAAsB;wBACtB,mBAAmB;wBACnB,sBAAsB;wBACtB,uBAAuB;wBACvB,kBAAkB;;wBAElB,eAAe;wBACf,gBAAgB;wBAChB,kBAAkB;wBAClB,uBAAuB;wBACvB,kBAAkB;wBAClB,wBAAwB;wBACxB,cAAc;wBACd,kBAAkB;wBAClB,sBAAsB;wBACtB,aAAa;wBACb,mBAAmB;wBACnB,gBAAgB;wBAChB,uBAAuB;wBACvB,sBAAsB;wBACtB,aAAa;;wBAEb,qBAAqB;wBACrB,qBAAqB;;wBAErB,cAAc;wBACd,kBAAkB;wBAClB,yBAAyB;wBACzB,2BAA2B;wBAC3B,2BAA2B;;wBAE3B,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;;wBAEP,qBAAqB;wBACrB,wBAAwB;wBACxB,4BAA4B;wBAC5B,0BAA0B;wBAC1B,kBAAkB;wBAClB,sBAAsB;wBACtB,sBAAsB;wBACtB,mBAAmB;wBACnB,sBAAsB;wBACtB,uBAAuB;wBACvB,kBAAkB;;wBAElB,eAAe;wBACf,gBAAgB;wBAChB,kBAAkB;wBAClB,cAAc;wBACd,kBAAkB;wBAClB,wBAAwB;wBACxB,uBAAuB;wBACvB,aAAa;wBACb,kBAAkB;wBAClB,sBAAsB;wBACtB,mBAAmB;wBACnB,gBAAgB;wBAChB,uBAAuB;wBACvB,sBAAsB;wBACtB,aAAa;;wBAEb,qBAAqB;wBACrB,qBAAqB;;wBAErB,cAAc;wBACd,kBAAkB;wBAClB,yBAAyB;wBACzB,2BAA2B;wBAC3B,2BAA2B;;wBAE3B,mBAAmB;AACpB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;iBAClD,CAAA;;;ACtID;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"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/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/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/utils/common.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/string.utils.ts","../../../projects/ngx-sfc-common/src/lib/utils/date-time.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/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/pipes/switch-multi-case/switch-multi-case.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/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/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.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/modal/directive/click/modal-open-on-click.directive.ts","../../../projects/ngx-sfc-common/src/lib/components/modal/directive/open/modal-open.directive.ts","../../../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/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/service/pagination.service.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/sorting/sorting.constants.ts","../../../projects/ngx-sfc-common/src/lib/components/sorting/service/sorting.service.ts","../../../projects/ngx-sfc-common/src/lib/components/sorting/sorting.component.ts","../../../projects/ngx-sfc-common/src/lib/components/sorting/sorting.component.html","../../../projects/ngx-sfc-common/src/lib/components/load-container/service/load-more.service.ts","../../../projects/ngx-sfc-common/src/lib/components/load-container/load-container.enum.ts","../../../projects/ngx-sfc-common/src/lib/components/load-container/load-container.constants.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/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};","/**\r\n * Sequence types\r\n */\r\nexport enum Sequence {\r\n Previous = 'previous',\r\n Next = 'next'\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 {\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 this._clickSubscription = fromEvent(this.document, 'click')\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) {\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 MOUSE_BUTTON_LEFT = 0;\r\n static FULL_PERCENTAGE = 100;\r\n static COMMON_TEXT_DELIMETER = '/';\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}\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\r\n static CSS_INITIAL = 'initial';\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\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 { Observable } from 'rxjs';\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' && !Array.isArray(value));\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 \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 - 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 * 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}","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 { 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 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 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}","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}","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 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 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): 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}","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(value: HTMLElement) {\r\n if (!isDefined(value))\r\n return;\r\n\r\n if (isChromeBrowser())\r\n (value as any).scrollIntoViewIfNeeded();\r\n else\r\n value.scrollIntoView(this.options);\r\n }\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 { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'sfcSwitchMultiCase'\r\n})\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","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\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 get label(): string {\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 get classes() {\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 { 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;\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 @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 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 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, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n private subjectClose = new Subject<void>();\r\n\r\n private subjectOpen = new Subject<any>();\r\n\r\n close$: Observable<void> = this.subjectClose.asObservable();\r\n\r\n open$: Observable<any> = this.subjectOpen.asObservable();\r\n\r\n close() {\r\n this.subjectClose.next();\r\n }\r\n\r\n open(options?: any) {\r\n this.subjectOpen.next(options);\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 { 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 <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\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 private readonly DEFAULT_MODAL_HEADER_MODEL: IDefaultModalHeaderModel = {\r\n icon: faWindowRestore,\r\n showCloseIcon: true,\r\n text: 'Modal'\r\n }\r\n\r\n @Input()\r\n model?: IDefaultModalHeaderModel;\r\n\r\n get icon(): IconDefinition {\r\n return this.model?.icon || faWindowRestore;\r\n }\r\n\r\n constructor(private modalService: ModalService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.model))\r\n this.model = this.DEFAULT_MODAL_HEADER_MODEL;\r\n }\r\n\r\n onClose() {\r\n this.modalService.close();\r\n }\r\n}\r\n","<div class=\"container\">\r\n <fa-icon *ngIf=\"model?.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>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IDefaultModalFooterModel } from './default-modal-footer.model';\r\nimport { isDefined } from '../../../../utils';\r\nimport { ButtonType } from '../../../button/button-type.enum';\r\nimport { ComponentSize } from '../../../../enums';\r\nimport { ModalService } from '../../service/modal.service';\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 private readonly DEFAULT_MODAL_FOOTER_MODEL: IDefaultModalFooterModel = {\r\n cancelButton: true,\r\n applyButton: true\r\n }\r\n\r\n readonly BUTTON_CUSTOM_SIZE = 0.9;\r\n\r\n ComponentSize = ComponentSize;\r\n ButtonType = ButtonType;\r\n\r\n @Input()\r\n model?: IDefaultModalFooterModel;\r\n\r\n constructor(private modalService: ModalService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.model)) {\r\n this.model = this.DEFAULT_MODAL_FOOTER_MODEL;\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();\r\n }\r\n } else {\r\n if (this.model?.onApply) {\r\n return this.model?.onApply();\r\n }\r\n }\r\n\r\n this.modalService.close();\r\n }\r\n}\r\n","<div class=\"container\">\r\n <sfc-button *ngIf=\"model?.applyButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Ok\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick()\">\r\n </sfc-button>\r\n <sfc-button *ngIf=\"model?.cancelButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Cancel\"\r\n [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 Component, ContentChildren, HostListener, Input,\r\n QueryList, TemplateRef\r\n} from '@angular/core';\r\nimport { TemplateReferenceDirective } from '../../directives';\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\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 {\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 @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 constructor(private modalService: ModalService) { }\r\n\r\n close() {\r\n this.modalService.close();\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 class=\"header\">\r\n\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 [model]=\"defaultHeaderModel\"> </sfc-default-modal-header>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <sfc-template-content [referenceContent]=\"body\" [templatesContent]=\"templates\"\r\n [templateType]=\"ModalTemplate.Body\">\r\n </sfc-template-content>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n\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 [model]=\"defaultFooterModel\"></sfc-default-modal-footer>\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n</div>","import { Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ModalService } from '../../service/modal.service';\r\nimport { isDefined } from '../../../../utils/index';\r\n\r\n@Directive({\r\n selector: '[sfcModalOpenOnClick]'\r\n})\r\nexport class ModalOpenOnClickDirective implements OnInit, OnDestroy {\r\n\r\n @Input('sfcModalOpenOnClick')\r\n set modalOpenOnClick(elements: HTMLElement | HTMLElement[]) {\r\n if (!isDefined(elements))\r\n return;\r\n\r\n if (elements instanceof HTMLElement)\r\n this.elements = [elements];\r\n else\r\n this.elements = elements;\r\n\r\n this.elements.forEach(el => {\r\n el.addEventListener('click', this.clickHandler);\r\n });\r\n }\r\n\r\n private clickHandler = ((event: MouseEvent): void => {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.modalService.open(event.currentTarget);\r\n }).bind(this);\r\n\r\n private elements: HTMLElement[] = [];\r\n\r\n private _closeSubscription?: Subscription;\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.close$\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 { Directive, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\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 private _closeSubscription: Subscription;\r\n private _openSubscription: Subscription;\r\n\r\n constructor(private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n private modalService: ModalService) {\r\n this._closeSubscription = this.modalService.close$.subscribe(() => this.viewContainer.clear());\r\n\r\n this._openSubscription = this.modalService.open$\r\n .subscribe(() => {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._closeSubscription.unsubscribe();\r\n this._openSubscription.unsubscribe();\r\n }\r\n}\r\n","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, 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\r\n}\r\n","<div class=\"container\">\r\n <div class=\"dots-container\">\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n <div class=\"dot\"></div>\r\n </div>\r\n</div>","import { Component, HostBinding, HostListener, Input } 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 @HostListener('click')\r\n onClick = () => this.active = !this.active;\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\">\r\n <fa-icon *ngIf=\"leftModel.icon\" [icon]=\"leftModel.icon\"></fa-icon>\r\n <span>{{leftModel.label}}</span>\r\n </p>\r\n <p class=\"right\">\r\n <fa-icon *ngIf=\"rightModel.icon\" [icon]=\"rightModel.icon\"></fa-icon>\r\n <span>{{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, 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 @Input()\r\n showNotActive: boolean = true;\r\n}\r\n","<div class=\"container\">\r\n <span class=\"check\">\r\n <fa-icon [sfcShowHideElement]=\"showNotActive || active\" [icon]=\"icon\"></fa-icon>\r\n </span>\r\n</div>","export class PaginationConstants {\r\n static DEFAULT_SIZE = 5;\r\n static DEFAULT_PAGE = 1;\r\n static DEFAULT_COUNT = 3;\r\n}","import { Injectable } from '@angular/core';\r\nimport { combineLatest, map, Observable, startWith, Subject } from 'rxjs';\r\nimport { isDefined } from '../../../utils';\r\nimport { PaginationConstants } from '../pagination.constants';\r\nimport { IPaginationEvent } from './pagination.event';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaginationService {\r\n\r\n /**\r\n * Handle page changing\r\n */\r\n private pageSubject = new Subject<number>();\r\n private page$ = this.pageSubject.asObservable();\r\n\r\n /** Total items */\r\n public total$!: Observable<number>;\r\n\r\n /** Total pages */\r\n public totalPages$!: Observable<number>;\r\n\r\n /** Pagination event data */\r\n public pagination$!: Observable<IPaginationEvent>;\r\n\r\n /** Need for init pagination observables */\r\n public init(\r\n data$: Observable<any[]>,\r\n page: number = PaginationConstants.DEFAULT_PAGE,\r\n pageSize: number = PaginationConstants.DEFAULT_SIZE) {\r\n\r\n if (isDefined(data$))\r\n this.initObservables(data$, page, pageSize);\r\n }\r\n\r\n /**\r\n * Move to page\r\n */\r\n public page(page: number) {\r\n this.pageSubject.next(page);\r\n }\r\n\r\n private initObservables(data$: Observable<any[]>, page: number, pageSize: number) {\r\n this.total$ = data$.pipe(map((p: any[]) => p.length));\r\n\r\n this.totalPages$ = this.total$.pipe(map((total: number) => Math.ceil(total / pageSize)));\r\n\r\n this.pagination$ = combineLatest([this.totalPages$, this.page$.pipe(startWith(page))])\r\n .pipe(\r\n map(([total, page]) => {\r\n return {\r\n page: page > total ? PaginationConstants.DEFAULT_PAGE : page,\r\n next: Math.min(page + 1, total),\r\n previous: Math.max(1, page - 1),\r\n total: total\r\n };\r\n })\r\n )\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { map, Observable } from 'rxjs';\r\nimport { hasItem, isDefined } from '../../utils';\r\nimport { IPaginationViewModel } from './models/pagination-view.model';\r\nimport { PaginationConstants } from './pagination.constants';\r\nimport { IPaginationEvent } from './service/pagination.event';\r\nimport { PaginationService } from './service/pagination.service';\r\nimport { faChevronLeft, faChevronRight } from '@fortawesome/free-solid-svg-icons';\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 implements OnInit {\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 data$!: Observable<any[]>;\r\n\r\n public vm$!: Observable<IPaginationViewModel>;\r\n\r\n constructor(private service: PaginationService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.service.pagination$))\r\n this.service.init(this.data$);\r\n\r\n if (isDefined(this.service.pagination$)) {\r\n this.vm$ = this.service.pagination$.pipe(\r\n map((event) => {\r\n const range = this.initRange(event);\r\n return {\r\n range: range, // range of pagination data\r\n any: event.total > 0, // if exist range of pages\r\n firstPage: this.showStartLimit(range, event), // show first page of range\r\n lastPage: this.showEndLimit(range, event), // show last page of range\r\n previousPage: event.page != PaginationConstants.DEFAULT_PAGE, // show previous btn\r\n nextPage: event.total > event.page, // show next btn\r\n page: event.page,\r\n previous: event.previous,\r\n next: event.next,\r\n total: event.total\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n onPageClick(page: number) {\r\n this.service.page(page);\r\n }\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[], event: IPaginationEvent): boolean {\r\n return this.showLimitPages && event.page !== PaginationConstants.DEFAULT_PAGE\r\n && !hasItem(range, PaginationConstants.DEFAULT_PAGE);\r\n }\r\n\r\n private showEndLimit(range: number[], event: IPaginationEvent): boolean {\r\n return this.showLimitPages && event.total !== event.page && !hasItem(range, event.total);\r\n }\r\n\r\n private initRange(event: IPaginationEvent): number[] {\r\n let start = 1,\r\n end = event.total + 1;\r\n\r\n if (!this.full) {\r\n const fullRange = this.range(1, event.total + 1),\r\n pageIndex = fullRange.indexOf(event.page),\r\n pageCount = Math.min(event.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 >= event.total)\r\n leftValue += pageIndex + rightValue - event.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(event.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\" *ngIf=\"vm$ | async as vm\">\r\n <sfc-delimeter></sfc-delimeter>\r\n <ul *ngIf=\"vm.any\">\r\n <li [sfcShowHideElement]=\"vm.previousPage\" (click)=\"onPageClick(vm.previous)\">\r\n <button class=\"limit\">\r\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\r\n </button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\" (click)=\"onPageClick(1)\">\r\n <button>1</button>\r\n </li>\r\n <li *ngIf=\"vm.firstPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngFor=\"let page of vm.range\" (click)=\"onPageClick(page)\">\r\n <button [class.active]=\"vm.page === page\">{{page}}</button>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\">\r\n <span>...</span>\r\n </li>\r\n <li *ngIf=\"vm.lastPage\" (click)=\"onPageClick(vm.total)\">\r\n <button>{{vm.total}}</button>\r\n </li>\r\n <li [sfcShowHideElement]=\"vm.nextPage\" (click)=\"onPageClick(vm.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>","import { faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons';\r\n\r\nexport class SortingConstants {\r\n static DEFAULT_ASCENDING_ICON = faChevronUp;\r\n static DEFAULT_DESCENDING_ICON = faChevronDown;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ISortingEvent } from './sorting.event';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SortingService {\r\n private sortingSubject = new Subject<ISortingEvent>();\r\n\r\n sorting$ = this.sortingSubject.asObservable();\r\n\r\n sort(event: ISortingEvent) {\r\n this.sortingSubject.next(event);\r\n }\r\n}\r\n","import { Component, HostBinding, HostListener, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/free-solid-svg-icons';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommonConstants } from '../../constants';\r\nimport { SortingDirection, UIClass } from '../../enums';\r\nimport { firstOrDefault, isDefined } from '../../utils';\r\nimport { SortingService } from './service/sorting.service';\r\nimport { SortingConstants } from './sorting.constants';\r\nimport { ISortingModel } from './sorting.model';\r\n\r\n@Component({\r\n selector: 'sfc-sorting',\r\n templateUrl: './sorting.component.html',\r\n styleUrls: ['./sorting.component.scss']\r\n})\r\nexport class SortingComponent implements OnInit, OnDestroy {\r\n\r\n SortingDirection = SortingDirection;\r\n\r\n @Input()\r\n id: string = CommonConstants.EMPTY_STRING;\r\n\r\n @Input()\r\n model: ISortingModel = { active: false, enabled: false, direction: SortingDirection.Ascending };\r\n\r\n @HostBinding(`class.${UIClass.Enabled}`)\r\n get enabled(): boolean {\r\n return this.model.enabled;\r\n }\r\n\r\n @HostBinding(`class.${UIClass.Active}`)\r\n get active(): boolean {\r\n return this.model.active || false;\r\n }\r\n\r\n @HostListener('click')\r\n sort() {\r\n if (this.enabled) {\r\n\r\n if (this.active) {\r\n this.model.direction = this.model.direction === SortingDirection.Ascending\r\n ? SortingDirection.Descending\r\n : SortingDirection.Ascending;\r\n }\r\n\r\n this.service.sort({ id: this.id, direction: this.model.direction });\r\n }\r\n }\r\n\r\n get icon(): IconDefinition {\r\n const modelIcon = firstOrDefault(this.model.icons, i => i.direction == this.model.direction);\r\n return modelIcon ? modelIcon.icon : this.model.direction === SortingDirection.Ascending\r\n ? SortingConstants.DEFAULT_ASCENDING_ICON : SortingConstants.DEFAULT_DESCENDING_ICON;\r\n }\r\n\r\n private _subscription!: Subscription;\r\n\r\n constructor(private service: SortingService) { }\r\n\r\n ngOnInit(): void {\r\n if (!isDefined(this.model))\r\n this.model = { active: false, enabled: false, direction: SortingDirection.Ascending };\r\n\r\n // subscribe to sort changes so we can react when other columns are sorted\r\n this._subscription = this.service.sorting$.subscribe(event => {\r\n // reset this column's sort direction to hide the sort icons\r\n if (this.id != event.id)\r\n this.model.direction = SortingDirection.Ascending;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscription.unsubscribe();\r\n }\r\n}\r\n","<div class=\"container\">\r\n <div class=\"content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"enabled\" class=\"icons\">\r\n <fa-icon [icon]=\"icon\"></fa-icon>\r\n </div>\r\n</div>","import { 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 readonly START_PAGE: number = 1;\r\n\r\n private _page = this.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 more(): void {\r\n this._page++;\r\n this.moreSubject.next(this._page);\r\n }\r\n\r\n reset(): void {\r\n this._page = this.START_PAGE;\r\n }\r\n}\r\n","export enum LoadContainerType {\r\n Dropdown = 'dropdown',\r\n Table = 'table'\r\n}","export class LoadContainerConstants {\r\n static DEFAULT_PAGE_SIZE: number = 5;\r\n static DEFAULT_NOT_FOUND_LABEL: string = 'Not found';\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, withLatestFrom, of, Observable } from 'rxjs';\r\nimport { ComponentSize, Position, UIClass } from '../../enums';\r\nimport { ILoadMoreModel } from './models/load-more.model';\r\nimport { any, isDefined, skip } from '../../utils';\r\nimport { LoaderService } from '../loader/service/loader.service';\r\nimport { LoadMoreService } from './service/load-more.service';\r\nimport { ILoadMoreParameters } from './models/load-more-parameters.model';\r\nimport { ILoadContainerModel, LoaderFunction } from './models/load-container.model';\r\nimport { LoadContainerType } from './load-container.enum';\r\nimport { LoadContainerConstants } from './load-container.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]\r\n})\r\nexport class LoadContainerComponent implements OnDestroy {\r\n\r\n ComponentSize = ComponentSize;\r\n Position = Position;\r\n\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 @Input()\r\n size: number = LoadContainerConstants.DEFAULT_PAGE_SIZE;\r\n\r\n @Input()\r\n loadMore: boolean = true;\r\n\r\n @Input()\r\n showEmpty: boolean = true;\r\n\r\n @Input()\r\n showLoadMoreButton: boolean = true;\r\n\r\n @Input()\r\n loadMoreLabel!: string;\r\n\r\n @Input()\r\n notFoundLabel: string = LoadContainerConstants.DEFAULT_NOT_FOUND_LABEL;\r\n\r\n @Input()\r\n set model(model: ILoadContainerModel) {\r\n if (isDefined(model)) {\r\n const parameters$ = this.buildParameters(model.predicate$),\r\n data$: Observable<ILoadMoreModel<any>> = isDefined(model.loader) ?\r\n this.buildDynamic(parameters$, model.loader as LoaderFunction) : this.buildStatic(parameters$, 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: ILoadMoreModel<any>) => this.success(result),\r\n error: (error) => this.error(error)\r\n }\r\n );\r\n }\r\n }\r\n\r\n @Input()\r\n scrollTarget!: HTMLElement;\r\n\r\n @Output()\r\n handleError: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n handleSuccess: EventEmitter<ILoadMoreModel<any>> = new EventEmitter<ILoadMoreModel<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 next: boolean = false;\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 empty: boolean = false;\r\n\r\n @HostBinding(`class.${UIClass.Empty}`)\r\n public get isEmpty(): boolean { return this.empty && this.showEmpty; }\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 _subscription!: Subscription;\r\n\r\n constructor(private loaderService: LoaderService, private loadMoreService: LoadMoreService) { }\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: ILoadMoreModel<any>): void {\r\n this.next = result.next;\r\n this.loading = false;\r\n this.empty = !any(result.items);\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.handleError.emit(error);\r\n }\r\n\r\n private buildParameters(predicate$: Observable<any> | undefined): Observable<ILoadMoreParameters> {\r\n const parameters$ = (predicate$ || EMPTY.pipe(startWith(null))).pipe(\r\n tap(() => {\r\n if (isDefined(this.contentEl))\r\n this.contentEl.nativeElement.scrollTop = 0;\r\n this.loadMoreService.reset();\r\n }),\r\n switchMap((value: any) => {\r\n return this.loadMoreService.more$.pipe(\r\n startWith(this.loadMoreService.START_PAGE),\r\n tap(() => this.loading = true),\r\n map((page: number) => {\r\n return { params: value, page: page }\r\n })\r\n )\r\n })\r\n );\r\n\r\n return parameters$;\r\n }\r\n\r\n private buildDynamic(parameters$: Observable<ILoadMoreParameters>, loader: LoaderFunction): Observable<ILoadMoreModel<any>> {\r\n return parameters$.pipe(\r\n switchMap((parameters: ILoadMoreParameters) => loader(parameters))\r\n );\r\n }\r\n\r\n private buildStatic(parameters$: Observable<ILoadMoreParameters>, model: ILoadContainerModel): Observable<ILoadMoreModel<any>> {\r\n return parameters$.pipe(\r\n withLatestFrom(model.data$ || of([])),\r\n map(([parameters, items]) => {\r\n const filtered = model.filter ? model.filter(items, parameters) : items,\r\n data: ILoadMoreModel<any> = filtered ? {\r\n items: skip(filtered, parameters.page, this.size),\r\n next: parameters.page < Math.ceil(filtered.length / this.size)\r\n } : { items: [], next: false };\r\n return data;\r\n }));\r\n }\r\n}","<div class=\"container\">\r\n <sfc-bounce-loader [id]=\"id\" [sfcComponentSize]=\"ComponentSize.Small\"></sfc-bounce-loader>\r\n <div #content class=\"content\" [sfcScrollIntoView]=\"scrollTarget\" (sfcScrollTracker)=\"onScroll()\" [positions]=\"scrollPosition\">\r\n <ng-content></ng-content>\r\n <div (sfcMouseDown)=\"$event.preventDefault()\">\r\n <sfc-load-more-button [hidden]=\"hideLoadMoreButton\" (more)=\"more($event)\" [label]=\"loadMoreLabel\">\r\n </sfc-load-more-button>\r\n <div *ngIf=\"isEmpty\" class=\"empty\">{{notFoundLabel}}</div>\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;\r\n\r\n @Input()\r\n imageSrc?: string;\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>","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 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} from './directives';\r\nimport { SwitchMultiCasePipe } 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 DotsComponent,\r\n ToggleSwitcherComponent,\r\n CheckmarkComponent,\r\n TemplateContentComponent,\r\n CloseComponent,\r\n PaginationComponent,\r\n SortingComponent,\r\n LoadContainerComponent,\r\n LoadMoreButtonComponent,\r\n IconComponent\r\n} from './components';\r\n\r\n@NgModule({\r\n declarations: [\r\n // directives\r\n ClickOutsideDirective,\r\n ShowHideElementDirective,\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 // 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 DotsComponent,\r\n PaginationComponent,\r\n SortingComponent,\r\n LoadMoreButtonComponent,\r\n LoadContainerComponent,\r\n IconComponent,\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 ],\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 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 // components\r\n ButtonComponent,\r\n TooltipComponent,\r\n DelimeterComponent,\r\n CloseComponent,\r\n CheckmarkComponent,\r\n TemplateContentComponent,\r\n ToggleSwitcherComponent,\r\n DotsComponent,\r\n HamburgerComponent,\r\n HamburgerMenuComponent,\r\n PaginationComponent,\r\n SortingComponent,\r\n LoadMoreButtonComponent,\r\n LoadContainerComponent,\r\n IconComponent,\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 ],\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\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ImageLoadService","i1","i2","i1.LoaderService","i1.ModalService","i4.CloseComponent","i3.ComponentSizeDirective","i4.ButtonComponent","i2.TemplateContentComponent","i3.DefaultModalHeaderComponent","i4.DefaultModalFooterComponent","i2.ShowHideElementDirective","i1.PaginationService","i4.ShowHideElementDirective","i5.DelimeterComponent","i1.SortingService","i2.MouseDownDirective","i3.DelimeterComponent","i2.LoadMoreService","i3","i4.MouseDownDirective","i5.ComponentSizeDirective","i6.ScrollTrackerDirective","i7.ScrollIntoViewDirective","i8.LoadMoreButtonComponent","i9.BounceLoaderComponent"],"mappings":"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"}