@ts-core/angular 19.0.2 → 19.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-core-angular.mjs","sources":["../../src/application/ApplicationBaseComponent.ts","../../src/application/ApplicationComponent.ts","../../src/application/MessageBaseComponent.ts","../../src/ApplicationInjector.ts","../../src/util/ViewUtil.ts","../../src/asset/AssetBackgroundDirective.ts","../../src/asset/AssetBackgroundPipe.ts","../../src/asset/AssetIconPipe.ts","../../src/asset/AssetFilePipe.ts","../../src/asset/AssetVideoPipe.ts","../../src/asset/AssetSoundPipe.ts","../../src/asset/AssetImagePipe.ts","../../src/asset/AssetModule.ts","../../src/cookie/CookieService.ts","../../src/service/PlatformService.ts","../../src/cookie/CookieModule.ts","../../src/cookie/CookieOptions.ts","../../src/manager/ResizeManager.ts","../../src/directive/AspectRatioResizeDirective.ts","../../src/directive/ScrollDirective.ts","../../src/directive/InfiniteScrollDirective.ts","../../src/directive/AutoScrollBottomDirective.ts","../../src/directive/ClickToCopyDirective.ts","../../src/directive/ClickToSelectDirective.ts","../../src/manager/FocusManager.ts","../../src/directive/FocusDirective.ts","../../src/directive/SelectOnFocusDirective.ts","../../src/directive/ResizeDirective.ts","../../src/directive/StructureDirective.ts","../../src/directive/ScrollCheckDirective.ts","../../src/language/LanguagePipe.ts","../../src/directive/HTMLTitleDirective.ts","../../src/directive/HTMLContentTitleDirective.ts","../../src/directive/IsBrowserDirective.ts","../../src/directive/IsServerDirective.ts","../../src/language/LanguagePipePure.ts","../../src/language/LanguageRequireResolver.ts","../../src/language/LanguageResolver.ts","../../src/language/LanguageDirective.ts","../../src/language/LanguagePipeHas.ts","../../src/language/LanguagePipeHasPure.ts","../../src/language/LanguageHasDirective.ts","../../src/language/LanguageModule.ts","../../src/login/LoginBaseService.ts","../../src/login/LoginRequireResolver.ts","../../src/login/LoginGuard.ts","../../src/login/LoginNotGuard.ts","../../src/login/LoginIfCanGuard.ts","../../src/login/LoginResolver.ts","../../src/storage/ValueStorage.ts","../../src/login/LoginTokenStorage.ts","../../src/menu/MenuItemBase.ts","../../src/menu/MenuItem.ts","../../src/menu/MenuItems.ts","../../src/menu/NavigationMenuItem.ts","../../src/list/ListItem.ts","../../src/list/ListItems.ts","../../src/list/select/SelectListItem.ts","../../src/list/select/SelectListItems.ts","../../src/list/select/RouterSelectListItems.ts","../../src/pipe/PrettifyPipe.ts","../../src/pipe/CamelCasePipe.ts","../../src/pipe/FinancePipe.ts","../../src/pipe/MomentDatePipe.ts","../../src/pipe/MomentDateAdaptivePipe.ts","../../src/pipe/MomentDateFromNowPipe.ts","../../src/pipe/MomentTimePipe.ts","../../src/pipe/NgModelErrorPipe.ts","../../src/pipe/SanitizePipe.ts","../../src/pipe/StartCasePipe.ts","../../src/pipe/TruncatePipe.ts","../../src/pipe/TimePipe.ts","../../src/question/IQuestion.ts","../../src/question/QuestionManager.ts","../../src/service/PipeBaseService.ts","../../src/service/RouterBaseService.ts","../../src/notification/NotificationService.ts","../../src/service/ServiceWorkerService.ts","../../src/service/route/CanDeactivateGuard.ts","../../src/theme/ThemeStyleDirective.ts","../../src/theme/ThemeStyleHoverDirective.ts","../../src/theme/ThemeAssetDirective.ts","../../src/theme/ThemeAssetBackgroundDirective.ts","../../src/theme/ThemeAssetImageDirective.ts","../../src/theme/ThemeAssetIconDirective.ts","../../src/theme/ThemeToggleDirective.ts","../../src/theme/ThemeModule.ts","../../src/user/IUser.ts","../../src/user/UserBaseService.ts","../../src/window/IWindow.ts","../../src/window/IWindowConfig.ts","../../src/window/WindowBase.ts","../../src/window/WindowConfig.ts","../../src/window/WindowService.ts","../../src/window/WindowServiceEvent.ts","../../src/window/IWindowContent.ts","../../src/window/WindowClosedError.ts","../../src/notification/INotification.ts","../../src/notification/INotificationContent.ts","../../src/notification/NotificationConfig.ts","../../src/notification/NotificationServiceEvent.ts","../../src/bottomSheet/BottomSheetService.ts","../../src/storage/LocalStorageService.ts","../../src/storage/JSONValueStorage.ts","../../src/storage/DateValueStorage.ts","../../src/storage/BooleanValueStorage.ts","../../src/module/LazyModuleLoader.ts","../../src/transport/TransportLazyModuleLoadedEvent.ts","../../src/transport/TransportLazy.ts","../../src/transport/TransportLazyModule.ts","../../src/VIModule.ts","../../src/public-api.ts","../../src/ts-core-angular.ts"],"sourcesContent":["import { AfterViewInit, Component } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { PromiseHandler } from '@ts-core/common';\nimport * as _ from 'lodash';\n\n@Component({ template: '' })\nexport abstract class ApplicationBaseComponent extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected timeout: any;\n protected isReadyAlreadyCalled: boolean;\n\n protected viewReadyDelay: number = NaN;\n protected viewReadyPromise: PromiseHandler<void, void>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n this.viewReadyPromise = PromiseHandler.create();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private makeViewReady = (): void => {\n this.viewReadyPromise.resolve();\n this.viewReadyHandler();\n this.checkReady();\n };\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected checkReady(): void {\n if (this.isReadyAlreadyCalled || !this.isReady()) {\n return;\n }\n this.isReadyAlreadyCalled = true;\n this.readyHandler();\n }\n\n protected isReady(): boolean {\n return this.isViewReady;\n }\n\n protected viewReadyHandler(): void {}\n\n protected abstract readyHandler(): void | Promise<void>;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n if (this.viewReadyDelay > 0) {\n PromiseHandler.delay(this.viewReadyDelay).then(this.makeViewReady);\n } else {\n this.makeViewReady();\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this.viewReadyPromise)) {\n this.viewReadyPromise.reject();\n this.viewReadyPromise = null;\n }\n\n if (!_.isNil(this.timeout)) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isViewReady(): boolean {\n return !_.isNil(this.viewReadyPromise) ? this.viewReadyPromise.isResolved : false;\n }\n public get viewReady(): Promise<void> {\n return !_.isNil(this.viewReadyPromise) ? this.viewReadyPromise.promise : null;\n }\n}\n","import { LoadableEvent } from '@ts-core/common';\nimport { Assets, AssetUrlProvider, ThemeService, LanguageService, SettingsBaseService } from '@ts-core/frontend';\nimport { Language } from '@ts-core/language';\nimport { takeUntil } from 'rxjs';\nimport { ApplicationBaseComponent } from './ApplicationBaseComponent';\nimport * as _ from 'lodash';\nimport moment from 'moment';\nimport numeral from 'numeral';\n\nexport abstract class ApplicationComponent<T extends SettingsBaseService> extends ApplicationBaseComponent {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private isLanguageLoaded: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n this.initializeAssets();\n this.initializeTheme();\n this.initializeLanguage();\n }\n\n protected initializeAssets(): void {\n Assets.provider = new AssetUrlProvider(this.settings.assetsUrl);\n }\n\n protected initializeTheme(): void {\n this.theme.initialize(this.settings.themes);\n }\n\n protected initializeLanguage(): void {\n this.language.initialize(`${this.settings.assetsUrl}language/`, this.settings.languages);\n this.language.events.pipe(takeUntil(this.destroyed)).subscribe(data => {\n switch (data.type) {\n case LoadableEvent.COMPLETE:\n this.languageLoadingComplete(data.data as Language);\n break;\n case LoadableEvent.ERROR:\n this.languageLoadingError(data.data as Language, data.error);\n break;\n }\n });\n }\n\n protected isReady(): boolean {\n return super.isReady() && this.isLanguageLoaded;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n protected languageLoadingComplete(item: Language): void {\n this.isLanguageLoaded = true;\n this.setLocale(item);\n this.checkReady();\n }\n\n protected abstract languageLoadingError(item: Language, error: Error): void;\n\n protected viewReadyHandler(): void {\n this.initialize();\n }\n\n protected setLocale(item: Language): void {\n moment.locale(item.locale);\n numeral.locale(item.locale);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Service Properties\n //\n // --------------------------------------------------------------------------\n\n protected abstract get settings(): T;\n\n protected abstract get theme(): ThemeService;\n protected abstract get language(): LanguageService;\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\n\nexport abstract class MessageBaseComponent extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n public text: string;\n public refreshText: string = 'Refresh';\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n protected route: ActivatedRoute,\n protected language: LanguageService\n ) {\n super();\n // this.login.isAutoLogin = true\n\n this.text = this.getText();\n if (this.language.isLoaded) {\n this.commitLanguageProperties();\n }\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(() => this.commitLanguageProperties());\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitLanguageProperties(): void {\n if (this.language.isHasTranslation('general.refresh')) {\n this.refreshText = this.language.translate('general.refresh');\n }\n }\n\n protected getText(): string {\n let value = this.getValue(this.route.snapshot.queryParams);\n if (_.isNil(value)) {\n value = this.getValue(this.route.snapshot.params);\n }\n return value;\n }\n\n protected getValue(data: any): string {\n for (let item of this.getMessageFields()) {\n let value = data[item];\n if (!_.isEmpty(value)) {\n return value;\n }\n }\n return null;\n }\n\n protected getMessageFields(): Array<string> {\n return ['text', 'message', 'error'];\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract refresh(): void;\n}\n","import { Injector } from '@angular/core';\nimport * as _ from 'lodash';\n\nlet applicationInjector: Injector;\n\nexport const APPLICATION_INJECTOR = (value?: Injector): Injector => {\n if (!_.isNil(value)) {\n applicationInjector = value;\n }\n return applicationInjector;\n};\n","import { ElementRef, Renderer2, RendererStyleFlags2, ViewContainerRef } from '@angular/core';\nimport { ExtendedError } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class ViewUtil {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n private static _renderer: Renderer2 = null;\n private static _document: Document = null;\n\n public static get renderer(): Renderer2 {\n if (_.isNil(ViewUtil._renderer)) {\n throw new ExtendedError(`ViewUtil is not initialized: renderer in nil`);\n }\n return ViewUtil._renderer;\n }\n public static set renderer(value: Renderer2) {\n if (value === ViewUtil._renderer) {\n return;\n }\n ViewUtil._renderer = value;\n }\n\n public static get document(): Document {\n return !_.isNil(ViewUtil._document) ? ViewUtil._document : document;\n }\n public static set document(value: Document) {\n ViewUtil._document = value;\n }\n\n public static get window(): Window {\n return this.document.defaultView;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private static copyToClipboard(): void {\n try {\n ViewUtil.document.execCommand('copy');\n } catch (error) {}\n }\n\n // --------------------------------------------------------------------------\n //\n //\tCommon Properties\n //\n // --------------------------------------------------------------------------\n\n public static parseElement<T extends HTMLElement = HTMLElement>(element: IViewElement<T>): T {\n if (element instanceof HTMLElement) {\n return element as T;\n }\n if (element instanceof ViewContainerRef) {\n element = element.element;\n }\n return !_.isNil(element) ? element.nativeElement : null;\n }\n\n public static createBase64(element: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): string {\n let value = null;\n let canvas = ViewUtil.createElement('canvas');\n ViewUtil.setProperty(canvas, 'width', element.offsetWidth);\n ViewUtil.setProperty(canvas, 'height', element.offsetHeight);\n\n try {\n let context = canvas.getContext('2d');\n context.drawImage(element, 0, 0, element.offsetWidth, element.offsetHeight);\n value = canvas.toDataURL('image/jpeg', 1.0);\n value = value.replace('data:image/jpeg;base64,', '');\n } catch (error) {}\n return value;\n }\n\n public static selectContent(container: IViewElement, isNeedCopyToClipboard: boolean = false): void {\n container = ViewUtil.parseElement(container);\n if (container instanceof HTMLInputElement || container instanceof HTMLTextAreaElement) {\n let isWasDisabled = container.disabled;\n if (isWasDisabled) {\n container.disabled = false;\n }\n container.select();\n if (isNeedCopyToClipboard) {\n ViewUtil.copyToClipboard();\n }\n if (isWasDisabled) {\n container.disabled = true;\n }\n } else {\n let selection = ViewUtil.window.getSelection();\n selection.removeAllRanges();\n\n let range = ViewUtil.document.createRange();\n if (!_.isNil(container)) {\n range.selectNodeContents(container);\n }\n selection.addRange(range);\n\n if (isNeedCopyToClipboard) {\n ViewUtil.copyToClipboard();\n }\n }\n }\n\n public static setBackground(container: IViewElement, image: string, repeat: string = 'repeat', error?: string): void {\n if (_.isNil(image)) {\n ViewUtil.removeStyle(container, 'backgroundImage');\n ViewUtil.removeStyle(container, 'backgroundRepeat');\n return;\n }\n\n image = ViewUtil.getBackgroundUrl(image);\n if (!_.isEmpty(error)) {\n image += `, ${ViewUtil.getBackgroundUrl(error)}`;\n }\n\n ViewUtil.setStyle(container, 'backgroundImage', image);\n ViewUtil.setStyle(container, 'backgroundRepeat', repeat);\n }\n\n public static getBackgroundUrl(item: string): string {\n return !item.includes('url(') ? `url(${item})` : item;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tChild Methods\n //\n // --------------------------------------------------------------------------\n\n public static createElement<T = any>(name: string, className?: string, innerHTML?: string): T {\n let element = ViewUtil.renderer.createElement(name);\n if (!_.isNil(name)) {\n ViewUtil.setProperty(element, 'className', className);\n }\n if (!_.isNil(innerHTML)) {\n ViewUtil.setProperty(element, 'innerHTML', innerHTML);\n }\n return element;\n }\n\n public static appendChild(parent: any, child: any): void {\n if (!_.isNil(parent) && !_.isNil(child)) {\n ViewUtil.renderer.appendChild(parent, child);\n }\n }\n\n public static removeChild(parent: any, child: any): void {\n if (!_.isNil(parent) && !_.isNil(child)) {\n ViewUtil.renderer.removeChild(parent, child);\n }\n }\n\n public static toggleChild(container: Node, child: Node, value: boolean): void {\n let isContains = container.contains(child);\n if (value && !isContains) {\n ViewUtil.appendChild(container, child);\n }\n if (!value && isContains) {\n ViewUtil.removeChild(container, child);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tSize Methods\n //\n // --------------------------------------------------------------------------\n\n public static getStageWidth(): number {\n return ViewUtil.document.body?.clientWidth || ViewUtil.window.innerWidth;\n }\n\n public static getStageHeight(): number {\n return ViewUtil.document.body?.clientHeight || ViewUtil.window.innerHeight;\n }\n\n public static getCanvasContext2d(container: IViewElement<HTMLCanvasElement>, options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D {\n let canvas = ViewUtil.parseElement(container);\n try {\n return canvas.getContext('2d', options);\n } catch (error) {\n return null;\n }\n }\n\n public static getBoundingRectangle(container: IViewElement): DOMRect {\n container = ViewUtil.parseElement(container);\n if (_.isNil(container) || _.isNil(container.getBoundingClientRect)) {\n return {\n x: NaN,\n y: NaN,\n width: NaN,\n height: NaN,\n top: NaN,\n right: NaN,\n left: NaN,\n bottom: NaN\n } as DOMRect;\n }\n return container.getBoundingClientRect();\n }\n\n public static getWidth(container: IViewElement): number {\n container = ViewUtil.parseElement(container);\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'width'));\n if (_.isNaN(value)) {\n value = ViewUtil.getBoundingRectangle(container).width;\n }\n if (_.isNaN(value)) {\n value = container.offsetWidth;\n }\n return value;\n }\n\n public static setWidth(container: IViewElement, value: number, isNeedCheckLimits: boolean = false): boolean {\n if (_.isNil(container) || _.isNaN(value)) {\n return false;\n }\n\n if (\n isNeedCheckLimits &&\n (value < ViewUtil.getMinWidth(container) || value > ViewUtil.getMaxWidth(container) || value === ViewUtil.getWidth(container))\n ) {\n return false;\n }\n\n ViewUtil.setStyle(container, 'width', value + 'px');\n return true;\n }\n\n public static getMaxWidth(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'maxWidth'));\n if (_.isNaN(value)) {\n value = Number.POSITIVE_INFINITY;\n }\n return value;\n }\n\n public static getMinWidth(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'minWidth'));\n if (_.isNaN(value)) {\n value = 0;\n }\n return value;\n }\n\n public static getHeight(container: IViewElement): number {\n container = ViewUtil.parseElement(container);\n if (_.isNil(container)) {\n return NaN;\n }\n\n let value = parseFloat(ViewUtil.getStyle(container, 'height'));\n if (_.isNaN(value)) {\n value = ViewUtil.getBoundingRectangle(container).height;\n }\n if (_.isNaN(value)) {\n value = container.offsetHeight;\n }\n return value;\n }\n public static setHeight(container: IViewElement, value: number, isNeedCheckLimits: boolean = false): boolean {\n if (_.isNil(container) || _.isNaN(value)) {\n return false;\n }\n if (\n isNeedCheckLimits &&\n (value < ViewUtil.getMinHeight(container) || value > ViewUtil.getMaxHeight(container) || value === ViewUtil.getHeight(container))\n ) {\n return false;\n }\n ViewUtil.setStyle(container, 'height', value + 'px');\n return true;\n }\n public static getMaxHeight(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'maxHeight'));\n if (_.isNaN(value)) {\n value = Number.POSITIVE_INFINITY;\n }\n return value;\n }\n public static getMinHeight(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'minHeight'));\n if (isNaN(value)) {\n value = 0;\n }\n return value;\n }\n\n public static size(container: IViewElement, width: number, height: number, isNeedCheckLimits: boolean): void {\n ViewUtil.setWidth(container, width, isNeedCheckLimits);\n ViewUtil.setHeight(container, height, isNeedCheckLimits);\n }\n\n public static getX(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'left'));\n return _.isNaN(value) ? 0 : value;\n }\n\n public static setX(container: IViewElement, value: number): void {\n if (!_.isNil(container) && !_.isNaN(value)) {\n ViewUtil.setStyle(container, 'left', value + 'px');\n }\n }\n\n public static getY(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'top'));\n return _.isNaN(value) ? 0 : value;\n }\n public static setY(container: IViewElement, value: number): void {\n if (!_.isNil(container) && !_.isNaN(value)) {\n ViewUtil.setStyle(container, 'top', value + 'px');\n }\n }\n public static move(container: IViewElement, x: number, y: number): void {\n ViewUtil.setX(container, x);\n ViewUtil.setY(container, y);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tFocus Methods\n //\n // --------------------------------------------------------------------------\n\n public static focusInput(input: HTMLInputElement | HTMLTextAreaElement): void {\n let caretIndex = 0;\n if (!_.isNil(input.value)) {\n caretIndex = Math.max(0, input.value.toString().length);\n }\n input.focus();\n input.setSelectionRange(caretIndex, caretIndex);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tClasses Methods\n //\n // --------------------------------------------------------------------------\n\n public static addClass(container: IViewElement, name: string): void {\n if (_.isEmpty(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (!_.isNil(container)) {\n ViewUtil.renderer.addClass(container, name);\n }\n }\n\n public static addClasses(container: IViewElement, names: string): void {\n if (_.isEmpty(names)) {\n return;\n }\n names.split(' ').forEach(name => ViewUtil.addClass(container, name));\n }\n\n public static removeClass(container: IViewElement, name: string): void {\n if (_.isEmpty(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (!_.isNil(container)) {\n ViewUtil.renderer.removeClass(container, name);\n }\n }\n\n public static removeClasses(container: IViewElement, names: string): void {\n if (_.isEmpty(names)) {\n return;\n }\n names.split(' ').forEach(name => ViewUtil.removeClass(container, name));\n }\n\n public static hasClass(container: IViewElement, name: string): boolean {\n if (_.isNil(name)) {\n return false;\n }\n container = ViewUtil.parseElement(container);\n return !_.isNil(container) ? container.classList.contains(name) : false;\n }\n\n public static toggleClass(container: IViewElement, name: string, value: boolean): void {\n if (value) {\n ViewUtil.addClass(container, name);\n } else {\n ViewUtil.removeClass(container, name);\n }\n }\n\n public static toggleClasses(container: IViewElement, name: string, value: boolean): void {\n if (value) {\n ViewUtil.addClasses(container, name);\n } else {\n ViewUtil.removeClasses(container, name);\n }\n }\n\n public static getProperty(container: IViewElement, name: string): any {\n if (_.isNil(name)) {\n return null;\n }\n container = ViewUtil.parseElement(container);\n return !_.isNil(container) ? container[name] : null;\n }\n\n public static setProperty(container: IViewElement, name: string, value: any): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n if (!_.isNil(value)) {\n ViewUtil.renderer.setProperty(container, name, value);\n } else {\n ViewUtil.removeProperty(container, name);\n }\n }\n\n public static removeProperty(container: IViewElement, name: string): void {\n ViewUtil.removeAttribute(container, name);\n }\n\n public static getAttribute(container: IViewElement, name: string): any {\n if (_.isNil(name)) {\n return null;\n }\n container = ViewUtil.parseElement(container);\n return !_.isNil(container) ? container.getAttribute(name) : null;\n }\n\n public static removeAttribute(container: IViewElement, name: string): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n ViewUtil.renderer.removeAttribute(container, name);\n }\n\n public static setAttribute(container: IViewElement, name: string, value: any): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n if (!_.isNil(value)) {\n ViewUtil.renderer.setAttribute(container, name, value);\n } else {\n ViewUtil.removeAttribute(container, name);\n }\n }\n\n public static getStyle(container: IViewElement, name: string): any {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return null;\n }\n return container.style[name];\n }\n\n public static setStyle(container: IViewElement, name: string, value: any, flags?: RendererStyleFlags2): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n if (value !== ViewUtil.getStyle(container, name)) {\n ViewUtil.renderer.setStyle(container, name, value, flags);\n }\n }\n\n public static removeStyle(container: IViewElement, name: string, flags?: RendererStyleFlags2): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n ViewUtil.renderer.removeStyle(container, name, flags);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tVideo Methods\n //\n // --------------------------------------------------------------------------\n\n public static createVideo(isMute: boolean = true, isInline: boolean = false): HTMLVideoElement {\n let video = ViewUtil.createElement('video');\n ViewUtil.setProperty(video, 'autoplay', true);\n if (isMute) {\n ViewUtil.setVideoMuteParameters(video, isMute);\n }\n if (isInline) {\n ViewUtil.setVideoInlineParameters(video);\n }\n return video;\n }\n\n public static setVideoMuteParameters(video: HTMLVideoElement, isMute: boolean = true): void {\n if (!_.isNil(video)) {\n video.muted = video.defaultMuted = isMute;\n }\n }\n\n public static setVideoInlineParameters(video: HTMLVideoElement): void {\n ViewUtil.setAttribute(video, 'webkit-playsinline', 1);\n ViewUtil.setAttribute(video, 'playsinline', true);\n }\n\n public static getVideoError(video: HTMLVideoElement): string {\n if (_.isNil(video) || _.isNil(video.error)) {\n return null;\n }\n\n let error: MediaError = video.error;\n let value = 'Video error ' + video.src + ', ';\n switch (error.code) {\n case MediaError.MEDIA_ERR_ABORTED:\n value += 'media aborted';\n break;\n case MediaError.MEDIA_ERR_DECODE:\n value += 'error to decode';\n break;\n case MediaError.MEDIA_ERR_NETWORK:\n value += 'network error';\n break;\n case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:\n value += 'source not supported';\n break;\n }\n return value;\n }\n\n public static playVideo(video: HTMLVideoElement): Promise<void> {\n if (_.isNil(video)) {\n return null;\n }\n\n try {\n return video.play();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n public static playAudio(audio: HTMLAudioElement): Promise<void> {\n if (_.isNil(audio)) {\n return null;\n }\n try {\n return audio.play();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n public static pauseVideo(video: HTMLVideoElement): void {\n if (!_.isNil(video)) {\n video.pause();\n }\n }\n\n public static isVideoPlaying(video: HTMLVideoElement): boolean {\n return !_.isNil(video) ? !video.paused && !video.ended : false;\n }\n\n public static loadVideo(video: HTMLVideoElement): void {\n if (!_.isNil(video)) {\n video.load();\n }\n }\n\n public static stopVideoIfNeed(video: HTMLVideoElement): void {\n if (!_.isNil(video) && (!_.isNil(video.src) || !_.isNil(video.srcObject))) {\n ViewUtil.stopVideo(video);\n }\n }\n\n public static stopVideo(video: HTMLVideoElement): void {\n if (_.isNil(video)) {\n return;\n }\n\n if (video.srcObject instanceof MediaStream) {\n let tracks = video.srcObject.getTracks();\n tracks.forEach(track => track.stop());\n }\n\n video.srcObject = null;\n\n video.pause();\n video.src = '';\n video.load();\n }\n\n public static disposeVideo(video: HTMLVideoElement): void {\n ViewUtil.stopVideo(video);\n ViewUtil.removeChild(video.parentNode, video);\n video.remove();\n }\n\n public static disposeVideos(container: IViewElement): void {\n container = ViewUtil.parseElement(container);\n for (let i = container.children.length - 1; i >= 0; i--) {\n let item = container.children.item(i);\n if (item instanceof HTMLVideoElement) {\n ViewUtil.disposeVideo(item);\n }\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tObject Methods\n //\n // --------------------------------------------------------------------------\n\n public static disposeObjects(container: IViewElement, isIEBrowser?: boolean): void {\n container = ViewUtil.parseElement(container);\n for (let i = container.children.length - 1; i >= 0; i--) {\n let item = container.children.item(i);\n if (item instanceof HTMLObjectElement) {\n ViewUtil.disposeObject(item, isIEBrowser);\n }\n }\n }\n\n public static disposeObject(object: HTMLObjectElement, isIEBrowser?: boolean): void {\n if (isIEBrowser && object['readyState'] === 4) {\n for (let i in object) {\n if (_.isFunction(object[i])) {\n object[i] = null;\n }\n }\n }\n ViewUtil.removeChild(object.parentNode, object);\n }\n}\n\nexport type IViewElement<T extends HTMLElement = HTMLElement> = HTMLElement | ElementRef<T> | ViewContainerRef;\n","import { Directive, ElementRef, Input, booleanAttribute } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { Assets } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-asset-background]',\n standalone: false\n})\nexport class AssetBackgroundDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private _isUrl: boolean = false;\n private _isIcon: boolean = false;\n private _isImage: boolean = false;\n\n private _repeat: string = 'repeat';\n private _extension: string = 'png';\n private _background: string;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private element: ElementRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected setStyleProperties(): void {\n let url = this.getUrl(this.background, this.isImage, this.isIcon, this.isUrl);\n ViewUtil.setBackground(this.element, url, this.repeat);\n }\n\n private getUrl(id: string, isImage?: boolean, isIcon?: boolean, isUrl?: boolean): string {\n if (_.isNil(id)) {\n return null;\n }\n if (isUrl) {\n return id;\n }\n if (isImage) {\n return Assets.getImage(id, this.extension);\n }\n if (isIcon) {\n return Assets.getIcon(id, this.extension);\n }\n return Assets.getBackground(id, this.extension);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.element = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input({ transform: booleanAttribute })\n public set isIcon(value: boolean) {\n if (value === this._isIcon) {\n return;\n }\n this._isIcon = value;\n this.setStyleProperties();\n }\n public get isIcon(): boolean {\n return this._isIcon;\n }\n\n @Input({ transform: booleanAttribute })\n public set isImage(value: boolean) {\n if (value === this._isImage) {\n return;\n }\n this._isImage = value;\n this.setStyleProperties();\n }\n public get isImage(): boolean {\n return this._isImage;\n }\n\n @Input({ transform: booleanAttribute })\n public set isUrl(value: boolean) {\n if (value === this._isUrl) {\n return;\n }\n this._isUrl = value;\n this.setStyleProperties();\n }\n public get isUrl(): boolean {\n return this._isUrl;\n }\n\n @Input()\n public set repeat(value: string) {\n if (value === this._repeat) {\n return;\n }\n this._repeat = value;\n this.setStyleProperties();\n }\n public get repeat(): string {\n return this._repeat;\n }\n\n @Input()\n public set extension(value: string) {\n if (value === this._extension) {\n return;\n }\n this._extension = value;\n this.setStyleProperties();\n }\n public get extension(): string {\n return this._extension;\n }\n\n @Input('vi-asset-background')\n public set background(value: string) {\n if (value === this._background) {\n return;\n }\n this._background = value;\n this.setStyleProperties();\n }\n public get background(): string {\n return this._background;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetBackground',\n standalone: false\n})\nexport class AssetBackgroundPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'png'): string {\n return Assets.getBackground(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetIcon',\n standalone: false\n})\nexport class AssetIconPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'png'): string {\n return Assets.getIcon(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetFile',\n standalone: false\n})\nexport class AssetFilePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string): string {\n return Assets.getFile(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetVideo',\n standalone: false\n})\nexport class AssetVideoPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'mp4'): string {\n return Assets.getVideo(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetSound',\n standalone: false\n})\nexport class AssetSoundPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'mp3'): string {\n return Assets.getSound(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetImage',\n standalone: false\n})\nexport class AssetImagePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'png'): string {\n return Assets.getImage(name, extension);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AssetBackgroundDirective } from './AssetBackgroundDirective';\nimport { AssetBackgroundPipe } from './AssetBackgroundPipe';\nimport { AssetFilePipe } from './AssetFilePipe';\nimport { AssetIconPipe } from './AssetIconPipe';\nimport { AssetImagePipe } from './AssetImagePipe';\nimport { AssetSoundPipe } from './AssetSoundPipe';\nimport { AssetVideoPipe } from './AssetVideoPipe';\n\nlet declarations = [AssetImagePipe, AssetIconPipe, AssetFilePipe, AssetSoundPipe, AssetVideoPipe, AssetBackgroundPipe, AssetBackgroundDirective];\n\n@NgModule({\n imports: [CommonModule],\n exports: declarations,\n declarations\n})\nexport class AssetModule {}\n","import { ICookieOptions, ICookieService } from '@ts-core/frontend';\nimport { CookieOptionsProvider } from 'ngx-cookie';\nimport { CookieOptions } from './CookieOptions';\nimport * as Cookie from 'ngx-cookie';\nimport * as _ from 'lodash';\n\nexport class CookieService extends Cookie.CookieService implements ICookieService {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(document: Document, options: CookieOptions, isPlatformBrowser: boolean) {\n super(document, { options } as CookieOptionsProvider, new CookieWriterService(document, isPlatformBrowser));\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public has(key: string): boolean {\n return !_.isNil(super.get(key));\n }\n\n public get<T = string>(key: string, defaultValue?: T): T {\n return this.has(key) ? (super.get(key) as T) : defaultValue;\n }\n\n public getObject<T = any>(key: string, defaultValue?: T): T {\n return this.has(key) ? (super.getObject(key) as T) : defaultValue;\n }\n\n public put<T = string>(key: string, value: T, options?: CookieOptions): void {\n super.put(key, value as string, options);\n }\n\n public putObject<T = any>(key: string, value: T, options?: CookieOptions): void {\n super.putObject(key, value as object, options);\n }\n\n public update(key: string, value: string, options?: ICookieOptions): void {\n this.put(key, value, options);\n }\n\n public updateObject(key: string, value: Object, options?: ICookieOptions): void {\n this.putObject(key, value, options);\n }\n}\n\nclass CookieWriterService extends Cookie.CookieWriterService {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private isPlatformBrowser: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(document: Document, isPlatformBrowser: boolean) {\n super(document);\n this.isPlatformBrowser = isPlatformBrowser;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public readAllAsString(): string {\n return this.isPlatformBrowser ? super.readAllAsString() : '';\n }\n\n public write(name: string, value: string | undefined, options?: CookieOptions): void {\n if (this.isPlatformBrowser) {\n super.write(name, value, options);\n }\n }\n}\n","import { Injectable, PLATFORM_ID, Inject } from '@angular/core';\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { DestroyableContainer } from '@ts-core/common';\n\n@Injectable({ providedIn: 'root' })\nexport class PlatformService extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n private _isPlatformServer: boolean;\n private _isPlatformBrowser: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(@Inject(PLATFORM_ID) platformId: string) {\n super();\n this._isPlatformServer = isPlatformServer(platformId);\n this._isPlatformBrowser = isPlatformBrowser(platformId);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isPlatformServer(): boolean {\n return this._isPlatformServer;\n }\n\n public get isPlatformBrowser(): boolean {\n return this._isPlatformBrowser;\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ICookieOptions, NativeWindowService } from '@ts-core/frontend';\nimport { CookieService } from './CookieService';\nimport { PlatformService } from '../service/PlatformService';\nimport * as _ from 'lodash';\nimport { DOCUMENT } from '@angular/common';\n\n@NgModule()\nexport class CookieModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: ICookieOptions): ModuleWithProviders<CookieModule> {\n return {\n ngModule: CookieModule,\n providers: [\n {\n provide: COOKIE_OPTIONS,\n useValue: options || {}\n },\n {\n provide: CookieService,\n deps: [NativeWindowService, COOKIE_OPTIONS, PlatformService],\n useFactory: cookieServiceFactory\n }\n ]\n };\n }\n}\n\nexport function cookieServiceFactory(nativeWindow: NativeWindowService, options: ICookieOptions, platform: PlatformService): CookieService {\n options = _.assign(\n {\n path: '/',\n domain: null,\n expires: null,\n secure: false,\n httpOnly: false\n },\n options\n );\n return new CookieService(nativeWindow.document, options, platform.isPlatformBrowser);\n}\n\nexport const COOKIE_OPTIONS = new InjectionToken<ICookieOptions>(`COOKIE_OPTIONS`);\n","import { ICookieOptions } from '@ts-core/frontend';\nimport * as Cookie from 'ngx-cookie';\n\nexport class CookieOptions implements ICookieOptions, Cookie.CookieOptions {\n path?: string;\n domain?: string;\n expires?: string | Date;\n secure?: boolean;\n httpOnly?: boolean;\n storeUnencoded?: boolean;\n}\n","import { IDestroyable } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, distinctUntilChanged, Observable } from 'rxjs';\nimport { IViewElement, ViewUtil } from '../util/ViewUtil';\n\nexport class ResizeManager implements IDestroyable {\n // --------------------------------------------------------------------------\n //\n // Static Methods\n //\n // --------------------------------------------------------------------------\n\n public static isSizeValid(item: ISize): boolean {\n if (_.isNil(item) || item.width <= 0 || item.height <= 0) {\n return false;\n }\n return true;\n }\n\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected size: ISize;\n protected sensor: ResizeObserver;\n protected subject: BehaviorSubject<ISize>;\n protected element: HTMLElement;\n\n // protected sensor: ResizeSensor;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: IViewElement) {\n this.element = ViewUtil.parseElement(element);\n this.subject = new BehaviorSubject({ width: ViewUtil.getWidth(this.element), height: ViewUtil.getHeight(this.element) });\n\n // Could be undefined in ssr\n try {\n this.sensor = new ResizeObserver(this.handler2);\n this.sensor.observe(this.element);\n } catch (error) {}\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n protected handlerItem = (item: ISize) => {\n if (!ResizeManager.isSizeValid(item)) {\n return;\n }\n if (!_.isNil(this.size) && item.width === this.size.width && item.height === this.size.height) {\n return;\n }\n this.size = item;\n this.subject.next(item);\n };\n\n protected handler2 = (items: Array<ResizeObserverEntry>) => {\n if (!_.isEmpty(items)) {\n this.handlerItem(items[0].contentRect);\n }\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get changed(): Observable<ISize> {\n return this.subject.asObservable().pipe(distinctUntilChanged(_.isEqual));\n }\n\n public get value(): ISize {\n return this.subject.getValue();\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (!_.isNil(this.sensor)) {\n this.sensor.unobserve(this.element);\n this.sensor.disconnect();\n this.sensor = null;\n }\n if (!_.isNil(this.subject)) {\n this.subject.complete();\n this.subject = null;\n }\n this.element = null;\n }\n}\n\nexport interface ISize {\n width: number;\n height: number;\n}\n","import { AfterViewInit, Directive, ElementRef, Input, numberAttribute } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { debounceTime, takeUntil } from 'rxjs';\nimport { ResizeManager } from '../manager/ResizeManager';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-aspect-ratio]',\n standalone: false\n})\nexport class AspectRatioResizeDirective extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n //\tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n protected static UPDATE_DELAY: number = 100;\n\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private _ratio: number = NaN;\n private _direction: Direction;\n\n private sensor: ResizeManager;\n private element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.element = ViewUtil.parseElement(element.nativeElement);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private commitResizeProperties = (): void => {\n switch (this.direction) {\n case Direction.HORIZONTAL:\n this.width = this.height / this.ratio;\n break;\n case Direction.VERTICAL:\n this.height = this.width * this.ratio;\n break;\n }\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n this.sensor = new ResizeManager(this.element);\n this.sensor.changed\n .pipe(debounceTime(AspectRatioResizeDirective.UPDATE_DELAY), takeUntil(this.destroyed))\n .subscribe(() => this.commitResizeProperties());\n if (_.isNaN(this.ratio)) {\n this.ratio = 4 / 3;\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.element = null;\n\n if (!_.isNil(this.sensor)) {\n this.sensor.destroy();\n this.sensor = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n private get width(): number {\n return ViewUtil.getWidth(this.element);\n }\n\n private set width(value: number) {\n ViewUtil.setWidth(this.element, value, true);\n }\n\n private get height(): number {\n return ViewUtil.getHeight(this.element);\n }\n\n private set height(value: number) {\n ViewUtil.setHeight(this.element, value, true);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-aspect-ratio')\n public set direction(value: Direction) {\n if (value === this._direction || _.isNil(value)) {\n return;\n }\n this._direction = value;\n this.commitResizeProperties();\n }\n public get direction(): Direction {\n return this._direction;\n }\n\n @Input({ transform: numberAttribute })\n public set ratio(value: number) {\n if (value === this._ratio) {\n return;\n }\n this._ratio = value;\n this.commitResizeProperties();\n }\n public get ratio(): number {\n return this._ratio;\n }\n}\n\nexport enum Direction {\n VERTICAL = 'VERTICAL',\n HORIZONTAL = 'HORIZONTAL'\n}\n","import { Directive, EventEmitter, ElementRef, HostListener, Input, Output, numberAttribute } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-scroll]',\n standalone: false\n})\nexport class ScrollDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static INITIALIZATION_DELAY: number = 1;\n\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public scrolled: EventEmitter<number> = new EventEmitter();\n\n private timer: any;\n protected element: HTMLElement;\n protected isInitialized: boolean = false;\n\n protected _scrollValue: number = 0;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.element = ViewUtil.parseElement(element);\n this.timer = setTimeout(this.initializeHandler, ScrollDirective.INITIALIZATION_DELAY);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n if (!_.isNil(this.scrollValue)) {\n this.scrollTo(this.scrollValue);\n }\n this.isInitialized = true;\n }\n\n protected scrollTo(value: number, behavior?: ScrollBehavior): void {\n this._scrollValue = value;\n this.element.scroll({ top: value, behavior });\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('scroll')\n public scrollHandler() {\n if (this.isInitialized) {\n this.scrollChangedHandler();\n }\n }\n\n protected scrollChangedHandler(): void {\n this._scrollValue = this.scrollTop;\n this.scrolled.next(this._scrollValue);\n }\n\n protected initializeHandler = (): void => this.initialize();\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n protected get scrollTop(): number {\n return this.element.scrollTop;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.element = null;\n this.isInitialized = false;\n\n clearTimeout(this.timer);\n this.timer = null;\n\n this._scrollValue = 0;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input({ transform: numberAttribute })\n public set scrollValue(value: number) {\n if (value === this._scrollValue || _.isNaN(value)) {\n return;\n }\n this._scrollValue = value;\n if (this.isInitialized) {\n this.scrollTo(value);\n }\n }\n\n public get scrollValue(): number {\n return this._scrollValue;\n }\n}\n","import { Directive, EventEmitter, Input, Output, numberAttribute } from '@angular/core';\nimport { ScrollDirective } from './ScrollDirective';\n\n@Directive({\n selector: '[vi-infinite-scroll]',\n standalone: false\n})\nexport class InfiniteScrollDirective extends ScrollDirective {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public top: EventEmitter<number> = new EventEmitter();\n @Output()\n public bottom: EventEmitter<number> = new EventEmitter();\n\n @Input({ transform: numberAttribute })\n public elementHeight: number = 50;\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n protected scrollChangedHandler(): void {\n super.scrollChangedHandler();\n if (!this.isInitialized) {\n return;\n }\n let value = this.scrollTop;\n let bottomValue = value + this.clientHeight + this.elementHeight;\n\n if (bottomValue >= this.scrollHeight) {\n this.bottom.next(value);\n } else if (value <= this.elementHeight) {\n this.top.next(value);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.top = null;\n this.bottom = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n protected get clientHeight(): number {\n return this.element.clientHeight;\n }\n protected get scrollHeight() {\n return this.element.scrollHeight;\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { InfiniteScrollDirective } from './InfiniteScrollDirective';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-auto-scroll-bottom]',\n standalone: false\n})\nexport class AutoScrollBottomDirective extends InfiniteScrollDirective {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input()\n public behavior: ScrollBehavior = 'auto';\n\n @Output()\n public triggerChanged: EventEmitter<number> = new EventEmitter<number>();\n\n private _trigger: any;\n private triggerTimer: any;\n private triggerDelta: number = 0;\n\n private isScrollLocked: boolean = false;\n private lastScrollHeight: number;\n\n private isNeedScroll: boolean = true;\n private isNeedRemainScroll: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n if (!_.isNil(this.scrollHeight)) {\n this._scrollValue = this.scrollHeight;\n }\n super.initialize();\n }\n\n protected checkTrigger = () => {\n this.isScrollLocked = false;\n if (this.isNeedScroll) {\n this.scrollBottom();\n } else if (this.isNeedRemainScroll) {\n this.scrollRemain();\n } else if (this.triggerDelta > 0) {\n this.triggerChanged.emit(this.triggerDelta);\n this.triggerDelta = 0;\n }\n };\n\n protected scrollRemain(): void {\n this.isNeedRemainScroll = false;\n this.scrollTo(this.scrollHeight - this.lastScrollHeight);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n protected scrollChangedHandler() {\n super.scrollChangedHandler();\n if (!this.isInitialized || this.isScrollLocked) {\n return;\n }\n\n let value = this.scrollTop;\n let bottomValue = value + this.clientHeight + this.elementHeight;\n\n this.isNeedScroll = bottomValue >= this.scrollHeight;\n this.isNeedRemainScroll = value <= this.elementHeight;\n\n if (this.isNeedRemainScroll) {\n this.lastScrollHeight = this.scrollHeight;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public scrollCheck(): void {\n clearTimeout(this.triggerTimer);\n this.triggerTimer = setTimeout(this.checkTrigger, InfiniteScrollDirective.INITIALIZATION_DELAY);\n }\n\n public scrollBottom(): void {\n this.scrollTo(this.scrollHeight, this.behavior);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n clearTimeout(this.triggerTimer);\n this.triggerTimer = null;\n this.trigger = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-auto-scroll-bottom')\n public set trigger(value: number) {\n if (value === this._trigger) {\n return;\n }\n if (!isNaN(this._trigger) && !isNaN(value)) {\n this.triggerDelta = value - this._trigger;\n }\n\n this._trigger = value;\n if (!this.isInitialized) {\n return;\n }\n this.isScrollLocked = true;\n this.scrollCheck();\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { DateUtil, Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-click-to-copy]',\n standalone: false\n})\nexport class ClickToCopyDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-click-to-copy')\n public element: HTMLElement;\n private selectionClearTimer: any;\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('click', ['$event'])\n private clickHandler(event: MouseEvent) {\n ViewUtil.selectContent(this.element, true);\n\n clearTimeout(this.selectionClearTimer);\n this.selectionClearTimer = setTimeout(this.selectionRemove, DateUtil.MILLISECONDS_SECOND / 2);\n }\n\n private selectionRemove = (): void => ViewUtil.selectContent(null);\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.element = null;\n clearTimeout(this.selectionClearTimer);\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-click-to-select]',\n standalone: false\n})\nexport class ClickToSelectDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.element = ViewUtil.parseElement(element.nativeElement);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('click', ['$event'])\n private clickHandler(event: MouseEvent) {\n if (event.detail >= 3) {\n ViewUtil.selectContent(this.element, true);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.element = null;\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\nexport class FocusManager extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected timer: any;\n protected delay: number;\n protected element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, delay: number = 100) {\n super();\n this.delay = delay;\n this.element = ViewUtil.parseElement(element);\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n private focusElement = (): void => {\n if (!_.isNil(this.element)) {\n ViewUtil.focusInput(this.element as any);\n }\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public focus(): void {\n clearTimeout(this.timer);\n this.timer = setTimeout(this.focusElement, this.delay);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this.timer)) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n this.element = null;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { FocusManager } from '../manager/FocusManager';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-focus]',\n standalone: false\n})\nexport class FocusDirective<T = any> extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private manager: FocusManager;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.manager = new FocusManager(element);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected focus = (): void => this.manager.focus();\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.manager.destroy();\n this.manager = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-focus')\n public set trigger(value: T) {\n this.focus();\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-select-on-focus]',\n standalone: false\n})\nexport class SelectOnFocusDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private element: ElementRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('focus')\n public focusHandler(): void {\n ViewUtil.selectContent(this.element);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.element = null;\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output, booleanAttribute } from '@angular/core';\nimport { Interactable } from '@interactjs/types';\nimport * as interact from 'interactjs';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-resize]',\n standalone: false\n})\nexport class ResizeDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public resized: EventEmitter<any> = new EventEmitter();\n\n @Input({ transform: booleanAttribute })\n public isTop: boolean = false;\n @Input({ transform: booleanAttribute })\n public isLeft: boolean = false;\n @Input({ transform: booleanAttribute })\n public isRight: boolean = false;\n @Input({ transform: booleanAttribute })\n public isBottom: boolean = false;\n\n private interactable: Interactable;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n\n this.interactable = interact.default(ViewUtil.parseElement(element));\n // this.interactable.styleCursor(false);\n\n let param = {} as any;\n param.top = this.isTop;\n param.left = this.isLeft;\n param.right = this.isRight;\n param.bottom = this.isBottom;\n this.interactable.resizable(param);\n this.interactable.on('resizemove', this.resizeHandler);\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n private resizeHandler = (event: any) => {\n if (event.dx !== 0 || event.dy !== 0) {\n this.resized.emit(event);\n }\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this.interactable)) {\n this.interactable.unset();\n this.interactable = null;\n }\n }\n}\n","import { EmbeddedViewRef, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class StructureDirective<T = any> extends DestroyableContainer {\n //--------------------------------------------------------------------------\n //\n //\tProperties\n //\n //--------------------------------------------------------------------------\n\n protected view: EmbeddedViewRef<T>;\n protected _isNeedAdd: boolean;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n protected template: TemplateRef<T>,\n protected container: ViewContainerRef\n ) {\n super();\n }\n\n protected commitIsNeedAddProperties(): void {\n if (this.isDestroyed) {\n return;\n }\n\n let isNeedAdd = false;\n let isNeedRemove = false;\n if (this.isNeedAdd) {\n if (_.isNil(this.view)) {\n isNeedAdd = true;\n }\n } else {\n if (!_.isNil(this.view)) {\n isNeedRemove = true;\n }\n }\n\n if (isNeedAdd) {\n this.view = this.container.createEmbeddedView(this.template);\n } else if (isNeedRemove) {\n let index = this.container.indexOf(this.view);\n if (index >= 0) {\n this.container.remove(index);\n this.view = null;\n }\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.view = null;\n this.template = null;\n this.container = null;\n }\n\n //--------------------------------------------------------------------------\n //\n //\tProtected Properties\n //\n //--------------------------------------------------------------------------\n\n protected set isNeedAdd(value: boolean) {\n if (value == this._isNeedAdd) {\n return;\n }\n this._isNeedAdd = value;\n this.commitIsNeedAddProperties();\n }\n protected get isNeedAdd(): boolean {\n return this._isNeedAdd;\n }\n}\n","import { Directive, ElementRef, Input, EventEmitter, Output, numberAttribute } from '@angular/core';\nimport { DateUtil, DestroyableContainer } from '@ts-core/common';\nimport { fromEvent, debounceTime, takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-scroll-check]',\n standalone: false\n})\nexport class ScrollCheckDirective extends DestroyableContainer {\n //--------------------------------------------------------------------------\n //\n //\tProperties\n //\n //--------------------------------------------------------------------------\n\n @Output()\n public top: EventEmitter<boolean> = new EventEmitter();\n @Output()\n public bottom: EventEmitter<boolean> = new EventEmitter();\n @Output()\n public limitExceed: EventEmitter<boolean> = new EventEmitter();\n\n private _scrollLimit: number;\n\n private element: HTMLElement;\n private isExceedLimit: boolean = false;\n\n @Input({ transform: numberAttribute })\n public delay: number = DateUtil.MILLISECONDS_SECOND / 10;\n\n @Input({ transform: numberAttribute })\n public offset: number = 50;\n\n //--------------------------------------------------------------------------\n //\n //\tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.delay = DateUtil.MILLISECONDS_SECOND / 10;\n this.element = element.nativeElement;\n\n fromEvent(this.element, 'scroll').pipe(debounceTime(this.delay), takeUntil(this.destroyed)).subscribe(this.check);\n }\n\n //--------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected check = (): void => {\n let value = this.scrollValue >= this.scrollLimit;\n if (value !== this.isExceedLimit) {\n this.isExceedLimit = value;\n this.limitExceed.emit(value);\n }\n\n let offset = !_.isNaN(this.offset) ? this.offset : 0;\n value = this.scrollValue + this.clientHeight + offset >= this.scrollHeight;\n this.bottom.next(value);\n\n value = this.scrollValue <= offset;\n this.top.next(value);\n };\n\n //--------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n //--------------------------------------------------------------------------\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n protected get scrollValue(): number {\n return this.element.scrollTop;\n }\n protected get scrollHeight() {\n return this.element.scrollHeight;\n }\n protected get clientHeight(): number {\n return this.element.clientHeight;\n }\n\n //--------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n @Input('vi-scroll-check')\n public set scrollLimit(value: number) {\n if (value == this._scrollLimit) {\n return;\n }\n this._scrollLimit = value;\n this.check();\n }\n public get scrollLimit(): number {\n return this._scrollLimit;\n }\n}\n","import { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTranslate',\n pure: false,\n standalone: false\n})\nexport class LanguagePipe extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static removeTags(item: string): string {\n if (_.isEmpty(item)) {\n return item;\n }\n item = item.replace(/<br\\s*[\\/]?>/g, '\\n');\n item = item.replace(/<[^>]*>/g, '');\n return item;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private lastKey: string;\n private lastParams: any;\n\n private lastValue: string;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n private detection: ChangeDetectorRef,\n private language: LanguageService\n ) {\n super();\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(this.lastValueUpdate);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private lastValueUpdate = (): void => {\n this.lastValue = this.language.translate(this.lastKey, this.lastParams);\n this.detection.markForCheck();\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string, params?: any): string {\n if (key === this.lastKey) {\n if (params === this.lastParams || (_.isNil(params) && _.isNil(this.lastParams))) {\n return this.lastValue;\n }\n }\n\n this.lastKey = key;\n this.lastParams = params;\n this.lastValueUpdate();\n\n return this.lastValue;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.language = null;\n this.detection = null;\n\n this.lastKey = null;\n this.lastParams = null;\n\n this.lastValue = null;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { LanguagePipe } from '../language/LanguagePipe';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-html-title]',\n standalone: false\n})\nexport class HTMLTitleDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _value: string;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected element: ElementRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitValueProperties(): void {\n ViewUtil.setProperty(this.element, 'title', LanguagePipe.removeTags(this.value));\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this._value = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-html-title')\n public set value(value: string) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n if (!_.isNil(value)) {\n this.commitValueProperties();\n }\n }\n public get value(): string {\n return this._value;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { LanguagePipe } from '../language/LanguagePipe';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-html-content-title]',\n standalone: false\n})\nexport class HTMLContentTitleDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _value: string;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected element: ElementRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitValueProperties(): void {\n ViewUtil.setProperty(this.element, 'title', LanguagePipe.removeTags(this.value));\n ViewUtil.setProperty(this.element, 'innerHTML', this.value);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this._value = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-html-content-title')\n public set value(value: string) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n if (!_.isNil(value)) {\n this.commitValueProperties();\n }\n }\n public get value(): string {\n return this._value;\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PlatformService } from '../service/PlatformService';\nimport { StructureDirective } from './StructureDirective';\n\n@Directive({\n selector: '[viIsBrowser]',\n standalone: false\n})\nexport class IsBrowserDirective extends StructureDirective {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(templateRef: TemplateRef<any>, container: ViewContainerRef, platform: PlatformService) {\n super(templateRef, container);\n this.isNeedAdd = platform.isPlatformBrowser;\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PlatformService } from '../service/PlatformService';\nimport { StructureDirective } from './StructureDirective';\n\n@Directive({\n selector: '[viIsServer]',\n standalone: false\n})\nexport class IsServerDirective extends StructureDirective {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(templateRef: TemplateRef<any>, container: ViewContainerRef, platform: PlatformService) {\n super(templateRef, container);\n this.isNeedAdd = platform.isPlatformServer;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viTranslatePure',\n standalone: false\n})\nexport class LanguagePipePure extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private language: LanguageService) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string, params?: any): string {\n return this.language.translate(key, params);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.language = null;\n }\n}\n","import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\nimport { LoadableEvent } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { PromiseHandler } from '@ts-core/common';\n\nexport class LanguageRequireResolver implements Resolve<void> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected language: LanguageService) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<void> {\n if (this.language.isLoaded) {\n return Promise.resolve();\n }\n\n let promise = PromiseHandler.create<void>();\n let subscription = this.language.events.subscribe(data => {\n if (data.type === LoadableEvent.COMPLETE) {\n promise.resolve();\n } else if (data.type === LoadableEvent.ERROR) {\n promise.reject(data.error.toString());\n } else if (data.type === LoadableEvent.FINISHED) {\n subscription.unsubscribe();\n }\n });\n return promise.promise;\n }\n}\n","import { LanguageService } from '@ts-core/frontend';\nimport { LanguageRequireResolver } from './LanguageRequireResolver';\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageResolver extends LanguageRequireResolver {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(language: LanguageService) {\n super(language);\n }\n}\n","import { Directive, ElementRef, Input, booleanAttribute } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-translate]',\n standalone: false\n})\nexport class LanguageDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input({ transform: booleanAttribute })\n public isNeedTitle: boolean;\n\n protected _key: string;\n protected _params: any;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n protected element: ElementRef,\n protected language: LanguageService\n ) {\n super();\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(() => this.translate);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected translate = (): void => {\n if (_.isNil(this.key)) {\n return;\n }\n let value = this.language.translate(this.key, this.params);\n ViewUtil.setProperty(this.element, 'innerHTML', value);\n if (this.isNeedTitle) {\n ViewUtil.setProperty(this.element, 'title', value);\n }\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n\n super.destroy();\n this.language = null;\n\n this._key = null;\n this._params = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-translate')\n public set key(value: string) {\n if (value === this._key) {\n return;\n }\n this._key = value;\n if (!_.isNil(value)) {\n this.translate();\n }\n }\n public get key(): string {\n return this._key;\n }\n\n @Input()\n public set params(value: any) {\n if (value === this._params) {\n return;\n }\n this._params = value;\n this.translate();\n }\n public get params(): any {\n return this._params;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTranslateHas',\n pure: false,\n standalone: false\n})\nexport class LanguagePipeHas extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private key: string;\n private _value: boolean;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private language: LanguageService) {\n super();\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(this.valueUpdate);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private valueUpdate = (): void => {\n this._value = this.language.isHasTranslation(this.key);\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string): boolean {\n this.key = key;\n if (_.isNil(this._value)) {\n this.valueUpdate();\n }\n return this._value;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.language = null;\n\n this.key = null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTranslateHasPure',\n pure: true,\n standalone: false\n})\nexport class LanguagePipeHasPure extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private language: LanguageService) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string): boolean {\n return this.language.isHasTranslation(key);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.language = null;\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport { StructureDirective } from '../directive/StructureDirective';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[viTranslateHas]',\n standalone: false\n})\nexport class LanguageHasDirective<T = any> extends StructureDirective<T> {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _viTranslateHas: string;\n protected _isOnlyIfNotEmpty: boolean = true;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n template: TemplateRef<T>,\n container: ViewContainerRef,\n protected language: LanguageService\n ) {\n super(template, container);\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(() => this.check());\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected check(): void {\n this.isNeedAdd = !_.isNil(this.viTranslateHas) && this.language.isHasTranslation(this.viTranslateHas, this.viTranslateHasIsOnlyIfNotEmpty);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n\n super.destroy();\n this.language = null;\n this._viTranslateHas = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('viTranslateHas')\n public set viTranslateHas(value: string) {\n if (value === this._viTranslateHas) {\n return;\n }\n this._viTranslateHas = value;\n this.check();\n }\n public get viTranslateHas(): string {\n return this._viTranslateHas;\n }\n\n @Input('viTranslateHasIsOnlyIfNotEmpty')\n public set viTranslateHasIsOnlyIfNotEmpty(value: boolean) {\n if (value === this._isOnlyIfNotEmpty) {\n return;\n }\n this._isOnlyIfNotEmpty = value;\n this.check();\n }\n public get viTranslateHasIsOnlyIfNotEmpty(): boolean {\n return this._isOnlyIfNotEmpty;\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ICookieService } from '@ts-core/frontend';\nimport { ILanguageServiceOptions, LanguageService } from '@ts-core/frontend';\nimport { CookieService } from '../cookie/CookieService';\nimport { LanguagePipe } from './LanguagePipe';\nimport { LanguagePipePure } from './LanguagePipePure';\nimport { LanguageResolver } from './LanguageResolver';\nimport { LanguageDirective } from './LanguageDirective';\nimport { LanguagePipeHas } from './LanguagePipeHas';\nimport { LanguagePipeHasPure } from './LanguagePipeHasPure';\nimport { LanguageHasDirective } from './LanguageHasDirective';\nimport { CookieModule } from '../cookie/CookieModule';\nimport * as _ from 'lodash';\n\nlet declarations = [LanguagePipe, LanguagePipePure, LanguagePipeHas, LanguagePipeHasPure, LanguageHasDirective, LanguageDirective];\n\n@NgModule({\n imports: [CookieModule],\n exports: declarations,\n declarations\n})\nexport class LanguageModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: ILanguageServiceOptions): ModuleWithProviders<LanguageModule> {\n return {\n ngModule: LanguageModule,\n providers: [\n {\n provide: LANGUAGE_OPTIONS,\n useValue: options || {}\n },\n {\n provide: LanguageService,\n deps: [CookieService, LANGUAGE_OPTIONS],\n useFactory: languageServiceFactory\n },\n {\n provide: LanguageResolver,\n deps: [LanguageService],\n useClass: LanguageResolver\n }\n ]\n };\n }\n}\n\nexport function languageServiceFactory(cookie: ICookieService, options?: ILanguageServiceOptions): LanguageService {\n if (!_.isNil(options) && _.isNil(options.service)) {\n options.service = cookie;\n }\n return new LanguageService(options);\n}\n\nexport const LANGUAGE_OPTIONS = new InjectionToken<ILanguageServiceOptions>(`LANGUAGE_OPTIONS`);\n","import { TransportNoConnectionError, TransportTimeoutError, ExtendedError, ObservableData, LoadableEvent, Loadable, LoadableStatus } from '@ts-core/common';\nimport { Observable, map, filter } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport abstract class LoginBaseService<E = any, U = any, V = any> extends Loadable<E | LoginBaseServiceEvent, U | V | ExtendedError> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _sid: string;\n protected _loginData: V;\n protected _isLoggedIn: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected async loginByParam<T = any>(param?: T): Promise<U> {\n return this.loginByFunction(() => this.loginRequest(param));\n }\n\n protected async loginByFunction(sidReturnFunction: (...params) => Promise<U>): Promise<U> {\n if (this.isLoggedIn || this.isLoading) {\n return null;\n }\n\n let response: U;\n this.status = LoadableStatus.LOADING;\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));\n\n try {\n response = await sidReturnFunction();\n this.parseLoginResponse(response);\n if (!this.isCanLoginWithSid()) {\n this.status = LoadableStatus.LOADED;\n } else {\n this.loginBySid();\n }\n } catch (error) {\n let extendedError = ExtendedError.create<any, number>(error as any);\n\n this.status = LoadableStatus.ERROR;\n this.parseLoginErrorResponse(extendedError);\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, extendedError));\n }\n\n if (!this.isLoading) {\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_FINISHED));\n }\n return response;\n }\n\n protected async loginBySid(): Promise<void> {\n if (_.isNil(this.sid)) {\n this._sid = this.getSavedSid();\n }\n\n try {\n let response = await this.loginSidRequest();\n this.parseLoginSidResponse(response);\n\n this._isLoggedIn = true;\n this.status = LoadableStatus.LOADED;\n this.observer.next(new ObservableData(LoadableEvent.COMPLETE, response));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_COMPLETE, response));\n } catch (error) {\n let extendedError = ExtendedError.create<any, number>(error);\n this.parseLoginSidErrorResponse(extendedError);\n\n this._isLoggedIn = false;\n this.status = LoadableStatus.ERROR;\n this.observer.next(new ObservableData(LoadableEvent.ERROR, null, extendedError));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, extendedError));\n }\n\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_FINISHED));\n }\n\n protected reset(): void {\n this._sid = null;\n this._loginData = null;\n }\n\n protected abstract loginRequest(...params): Promise<U>;\n protected abstract loginSidRequest(): Promise<V>;\n\n protected abstract logoutRequest(): Promise<void>;\n protected abstract getSavedSid(): string;\n\n // --------------------------------------------------------------------------\n //\n // \tParse Methods\n //\n // --------------------------------------------------------------------------\n\n protected abstract parseLoginResponse(response: U): void;\n\n protected parseLoginErrorResponse(error: ExtendedError): void {}\n\n protected parseLogoutErrorResponse(error: ExtendedError): void {}\n\n protected parseLoginSidResponse(response: V): void {\n this._loginData = response;\n }\n\n protected parseLoginSidErrorResponse(error: ExtendedError): void {\n if (error instanceof TransportTimeoutError || error instanceof TransportNoConnectionError) {\n return;\n }\n this.reset();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract login(param: any): void;\n\n public async loginByResponse(param: U): Promise<void> {\n if (this.isLoggedIn || this.isLoading) {\n return;\n }\n\n this.status = LoadableStatus.LOADING;\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));\n\n this.parseLoginResponse(param);\n this.status = !this.isCanLoginWithSid() ? LoadableStatus.LOADED : LoadableStatus.LOADING;\n if (this.isLoading) {\n await this.loginBySid();\n }\n }\n\n public loginBySidIfCan(): boolean {\n if (!this.isCanLoginWithSid()) {\n return false;\n }\n\n if (this.isLoggedIn || this.isLoading) {\n return true;\n }\n\n this.status = LoadableStatus.LOADING;\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));\n this.loginBySid();\n return true;\n }\n\n public async logout(): Promise<void> {\n if (!this.isLoggedIn) {\n return;\n }\n\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGOUT_STARTED));\n\n try {\n await this.logoutRequest();\n } catch (error) {\n let extendedError = ExtendedError.create<any, number>(error);\n this.parseLogoutErrorResponse(extendedError);\n } finally {\n this.reset();\n this._isLoggedIn = false;\n this.status = LoadableStatus.NOT_LOADED;\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGOUT_FINISHED));\n }\n }\n\n public isCanLoginWithSid(): boolean {\n return !_.isNil(this.sid) || !_.isNil(this.getSavedSid());\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n this.reset();\n super.destroy();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get logined(): Observable<V> {\n return this.events.pipe(\n filter(item => item.type === LoginBaseServiceEvent.LOGIN_COMPLETE),\n map(item => item.data as V)\n );\n }\n\n public get logouted(): Observable<void> {\n return this.events.pipe(\n filter(item => item.type === LoginBaseServiceEvent.LOGOUT_FINISHED),\n map(() => null)\n );\n }\n\n public get sid(): string {\n return this._sid;\n }\n\n public get loginData(): V {\n return this._loginData;\n }\n\n public get isLoggedIn(): boolean {\n return this._isLoggedIn;\n }\n}\n\nexport enum LoginBaseServiceEvent {\n LOGIN_ERROR = 'LOGIN_ERROR',\n LOGIN_STARTED = 'LOGIN_STARTED',\n LOGIN_COMPLETE = 'LOGIN_COMPLETE',\n LOGIN_FINISHED = 'LOGIN_FINISHED',\n LOGOUT_STARTED = 'LOGOUT_STARTED',\n LOGOUT_FINISHED = 'LOGOUT_FINISHED',\n\n REGISTRATION_ERROR = 'REGISTRATION_ERROR',\n REGISTRATION_STARTED = 'REGISTRATION_STARTED',\n REGISTRATION_COMPLETE = 'REGISTRATION_COMPLETE',\n REGISTRATION_FINISHED = 'REGISTRATION_FINISHED'\n}\n","import { Resolve } from '@angular/router';\nimport { LoginBaseService, LoginBaseServiceEvent } from './LoginBaseService';\nimport { PromiseHandler } from '@ts-core/common';\n\nexport class LoginRequireResolver<U extends LoginBaseService = LoginBaseService, V = void> implements Resolve<V> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected login: U) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public resolve(...params): Promise<V> {\n if (this.isLoggedIn()) {\n return Promise.resolve(null);\n }\n\n let promise = PromiseHandler.create<null>();\n let subscription = this.login.events.subscribe(data => {\n if (data.type === LoginBaseServiceEvent.LOGIN_ERROR) {\n promise.reject(data.error.toString());\n } else if (data.type === LoginBaseServiceEvent.LOGIN_COMPLETE) {\n promise.resolve();\n } else if (data.type === LoginBaseServiceEvent.LOGIN_FINISHED) {\n subscription.unsubscribe();\n }\n });\n return promise.promise;\n }\n\n public isLoggedIn(): boolean {\n return this.login.isLoggedIn;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginRequireResolver } from './LoginRequireResolver';\nimport * as _ from 'lodash';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginGuard<T extends LoginBaseService = LoginBaseService> extends LoginRequireResolver<T> implements CanActivate {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public static redirectUrl: string = '/login';\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n @Inject(LoginBaseService) login: T,\n protected router: Router\n ) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Promise<boolean | UrlTree> {\n return this.isLoggedIn() ? true : this.router.parseUrl(LoginGuard.redirectUrl);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginRequireResolver } from './LoginRequireResolver';\nimport * as _ from 'lodash';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginNotGuard<T extends LoginBaseService = LoginBaseService> extends LoginRequireResolver<T> implements CanActivate {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public static redirectUrl: string = '/';\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n @Inject(LoginBaseService) login: T,\n protected router: Router\n ) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree {\n return !this.isLoggedIn() ? true : this.router.parseUrl(LoginNotGuard.redirectUrl);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport * as _ from 'lodash';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginGuard } from './LoginGuard';\nimport { LoginNotGuard } from './LoginNotGuard';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginIfCanGuard<T extends LoginBaseService = LoginBaseService> extends LoginGuard<T> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n @Inject(LoginBaseService) login: T,\n protected router: Router\n ) {\n super(login, router);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected async loginIfCan(): Promise<void> {\n if (this.login.loginBySidIfCan()) {\n try {\n await this.resolve();\n } catch (error) {}\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean | UrlTree> {\n if (state.url !== LoginGuard.redirectUrl) {\n LoginNotGuard.redirectUrl = state.url;\n }\n if (!this.isLoggedIn()) {\n await this.loginIfCan();\n }\n return super.canActivate(route, state);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginRequireResolver } from './LoginRequireResolver';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginResolver<T extends LoginBaseService> extends LoginRequireResolver<T> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(@Inject(LoginBaseService) login: T) {\n super(login);\n }\n}\n","import { DestroyableContainer } from '@ts-core/common';\nimport { CookieService } from '../cookie/CookieService';\nimport { LocalStorageService } from '../storage/LocalStorageService';\nimport { IValueStorage } from './IValueStorage';\nimport * as _ from 'lodash';\n\nexport class ValueStorage<T = string> extends DestroyableContainer implements IValueStorage<T> {\n //--------------------------------------------------------------------------\n //\n // \tProperties\n //\n //--------------------------------------------------------------------------\n\n protected _name: string;\n\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n name: string,\n protected storage: LocalStorageService,\n protected cookies: CookieService\n ) {\n super();\n this._name = name;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected serialize(value: string): T {\n return value as T;\n }\n\n protected deserialize(value: T): string {\n return value as string;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public get(defaultValue?: T): T {\n if (this.isDestroyed) {\n return null;\n }\n let item = null;\n if (this.storage.has(this.name)) {\n item = this.storage.get(this.name);\n } else if (this.cookies.has(this.name)) {\n item = this.cookies.get(this.name);\n }\n return !_.isNil(item) ? this.serialize(item) : defaultValue;\n }\n\n public has(): boolean {\n if (this.isDestroyed) {\n return false;\n }\n return this.storage.has(this.name) || this.cookies.has(this.name);\n }\n\n public set(value: T): T {\n if (this.isDestroyed) {\n return null;\n }\n let item = !_.isNil(value) ? this.deserialize(value) : null;\n this.cookies.put(this.name, item);\n this.storage.set(this.name, item);\n return value;\n }\n\n public clear(): void {\n this.cookies.put(this.name, null);\n this.storage.set(this.name, null);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.cookies = null;\n this.storage = null;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n public get name(): string {\n return this._name;\n }\n}\n","import { CookieService } from '../cookie/CookieService';\nimport { ValueStorage } from '../storage/ValueStorage';\nimport { LocalStorageService } from '../storage/LocalStorageService';\nimport * as _ from 'lodash';\n\nexport class LoginTokenStorage<T = string> extends ValueStorage<T> {\n //--------------------------------------------------------------------------\n //\n // \tProperties\n //\n //--------------------------------------------------------------------------\n\n public static TOKEN_KEY = 'sid';\n\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(local: LocalStorageService, cookies: CookieService) {\n super(LoginTokenStorage.TOKEN_KEY, local, cookies);\n }\n}\n","export class MenuItemBase {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _name: string;\n protected _isEnabled: boolean = true;\n\n public checkEnabled: (item: MenuItemBase) => boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n public nameId: string,\n public sortIndex: number = NaN,\n public iconId?: string\n ) {}\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitNameProperties(): void {}\n protected commitIsEnabledProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public get isEnabled(): boolean {\n return this._isEnabled;\n }\n public set isEnabled(value: boolean) {\n if (value === this._isEnabled) {\n return;\n }\n this._isEnabled = value;\n this.commitIsEnabledProperties();\n }\n\n public get name(): string {\n return this._name;\n }\n public set name(value: string) {\n if (value === this._name) {\n return;\n }\n this._name = value;\n this.commitNameProperties();\n }\n}\n","import { MenuItemBase } from './MenuItemBase';\n\nexport class MenuItem extends MenuItemBase {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public flag: string;\n public select: (item: MenuItem) => void;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(nameId?: string, sortIndex?: number, flag?: string, iconId?: string) {\n super(nameId, sortIndex, iconId);\n this.flag = flag || 'none';\n }\n}\n","import { DestroyableContainer, LoadableEvent } from '@ts-core/common';\nimport { ArrayUtil } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { filter, takeUntil } from 'rxjs';\nimport { MenuItem } from './MenuItem';\nimport { MenuItemBase } from './MenuItemBase';\n\nexport class MenuItems extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _items: Array<MenuItemBase>;\n protected _enabledItems: Array<MenuItemBase>;\n protected filterFunction: (item: MenuItemBase) => boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n private language: LanguageService,\n filterFunction?: (item: MenuItem) => boolean,\n isAutoTranslate: boolean = false\n ) {\n super();\n\n this._items = [];\n this._enabledItems = [];\n this.filterFunction = filterFunction;\n\n language.completed\n .pipe(\n filter(() => isAutoTranslate),\n takeUntil(this.destroyed)\n )\n .subscribe(() => this.translateItems(this._items));\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private translateItems(items: Array<MenuItemBase>): void {\n for (let item of items) {\n this.translateItem(item);\n }\n }\n\n private translateItem(item: MenuItemBase): void {\n item.name = this.language.translate(item.nameId);\n }\n\n private checkEnabledItems(items: Array<MenuItemBase>): boolean {\n ArrayUtil.sort(items);\n let isMainItems = items === this._items;\n let isAllEnabled = true;\n\n if (isMainItems) {\n ArrayUtil.clear(this._enabledItems);\n }\n\n for (let item of items) {\n if (!item.name && item.nameId) {\n this.translateItem(item);\n }\n\n let isEnabled = item.checkEnabled ? item.checkEnabled(item) : true;\n if (isEnabled && this.filterFunction) {\n isEnabled = this.filterFunction(item);\n }\n\n item.isEnabled = isEnabled;\n if (isEnabled) {\n this._enabledItems.push(item);\n }\n\n if (isAllEnabled && !isEnabled) {\n isAllEnabled = false;\n }\n }\n return isAllEnabled;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public add(item: MenuItemBase): MenuItemBase {\n this._items.push(item);\n return item;\n }\n\n public remove(item: MenuItemBase): MenuItemBase {\n let index = this._items.indexOf(item);\n if (index > -1) {\n this._items.slice(index, 1);\n }\n return item;\n }\n\n public checkEnabled(...args): boolean {\n return this.checkEnabledItems(this._items);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tInterface Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this._items = null;\n this._enabledItems = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get items(): Array<MenuItemBase> {\n return this._items;\n }\n\n public get enabledItems(): Array<MenuItemBase> {\n return this._enabledItems;\n }\n}\n","import { MenuItem } from './MenuItem';\n\nexport class NavigationMenuItem extends MenuItem {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public url: string;\n public isActive: boolean = false;\n declare public select: (item: NavigationMenuItem) => void;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(nameId?: string, sortIndex?: number, iconId?: string, url?: string) {\n super(nameId, sortIndex, null, iconId);\n this.url = url;\n }\n}\n","import { IListItem } from './IListItem';\nimport * as _ from 'lodash';\nimport { IDestroyable } from '@ts-core/common';\n\nexport class ListItem<T = any> implements IListItem<T>, IDestroyable {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _uid: string;\n\n protected _data: T;\n protected _label: string;\n protected _iconId: string;\n protected _className: string;\n protected _sortIndex: number;\n protected _isEnabled: boolean = true;\n protected _translationId: string;\n\n public action: (item: IListItem, ...params) => void;\n public checkEnabled: (item: IListItem, ...params) => boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(translationId: string, sortIndex: number = NaN, data?: T, iconId?: string) {\n this.data = data;\n this.iconId = iconId;\n this.sortIndex = sortIndex;\n this.translationId = translationId;\n\n this._uid = this.getUid();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitDataProperties(): void {}\n protected commitLabelProperties(): void {}\n protected commitIsEnabledProperties(): void {}\n protected commitClassNameProperties(): void {}\n\n protected commitIconIdProperties(): void {}\n protected commitSortIndexProperties(): void {}\n protected commitTranslationIdProperties(): void {}\n\n protected getUid(): string {\n return `${this.translationId}_${this.sortIndex}`;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n this._data = null;\n this.action = null;\n this.checkEnabled = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get uid(): string {\n return this._uid;\n }\n\n public get sortIndex(): number {\n return this._sortIndex;\n }\n public set sortIndex(value: number) {\n if (value === this._sortIndex) {\n return;\n }\n this._sortIndex = value;\n if (!_.isNil(value)) {\n this.commitSortIndexProperties();\n }\n }\n\n public get isEnabled(): boolean {\n return this._isEnabled;\n }\n public set isEnabled(value: boolean) {\n if (value === this._isEnabled) {\n return;\n }\n this._isEnabled = value;\n if (_.isBoolean(value)) {\n this.commitIsEnabledProperties();\n }\n }\n\n public get label(): string {\n return this._label;\n }\n public set label(value: string) {\n if (value === this._label) {\n return;\n }\n this._label = value;\n if (!_.isNil(value)) {\n this.commitLabelProperties();\n }\n }\n\n public get translationId(): string {\n return this._translationId;\n }\n public set translationId(value: string) {\n if (value === this._translationId) {\n return;\n }\n this._translationId = value;\n if (!_.isNil(value)) {\n this.commitTranslationIdProperties();\n }\n }\n\n public get iconId(): string {\n return this._iconId;\n }\n public set iconId(value: string) {\n if (value === this._iconId) {\n return;\n }\n this._iconId = value;\n if (!_.isNil(value)) {\n this.commitIconIdProperties();\n }\n }\n\n public get className(): string {\n return this._className;\n }\n public set className(value: string) {\n if (value === this._className) {\n return;\n }\n this._className = value;\n if (!_.isNil(value)) {\n this.commitClassNameProperties();\n }\n }\n\n public get data(): T {\n return this._data;\n }\n public set data(value: T) {\n if (value === this._data) {\n return;\n }\n this._data = value;\n if (!_.isNil(value)) {\n this.commitDataProperties();\n }\n }\n}\n","import { ArrayUtil } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { IListItem } from './IListItem';\nimport { FilterableMapCollection } from '@ts-core/common';\nimport { Subscription } from 'rxjs';\n\nexport class ListItems<U extends IListItem<V>, V = any> extends FilterableMapCollection<U> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected lastRefreshParams: Array<any>;\n protected languageSubscription: Subscription;\n\n protected _isAllEnabled: boolean;\n protected _isLeastOneEnabled: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n private language: LanguageService,\n isAutoTranslate: boolean = true\n ) {\n super('uid');\n\n this.lastRefreshParams = new Array();\n if (isAutoTranslate) {\n this.languageSubscription = language.completed.subscribe(this.translateItems);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected translate = (item: U): void => {\n item.label = this.language.translate(item.translationId);\n };\n\n protected translateItems = (): void => {\n this.collection.forEach(this.translate);\n };\n\n protected translateIfNeed = (item: U): void => {\n if (_.isNil(item.label) && !_.isNil(item.translationId)) {\n this.translate(item);\n }\n };\n\n protected translateItemsIfNeed = (): void => {\n this.collection.forEach(this.translateIfNeed);\n };\n\n protected sort(): void {\n ArrayUtil.sort(this.collection);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public complete(): void {\n this.translateItemsIfNeed();\n this.sort();\n }\n\n public refresh(...params): void {\n ArrayUtil.clear(this._filtered);\n this.lastRefreshParams = params;\n\n if (_.isEmpty(this.collection)) {\n return;\n }\n\n this._isAllEnabled = true;\n this._isLeastOneEnabled = false;\n for (let item of this._collection) {\n item.isEnabled = !_.isNil(item.checkEnabled) ? item.checkEnabled(item, ...params) : true;\n if (!item.isEnabled) {\n this._isAllEnabled = false;\n } else if (this.filter(item)) {\n this._filtered.push(item);\n this._isLeastOneEnabled = true;\n }\n }\n }\n\n public actionItem(item: U): void {\n if (!_.isNil(item) && item.isEnabled && !_.isNil(item.action)) {\n item.action(item, ...this.lastRefreshParams);\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.language = null;\n this.lastRefreshParams = null;\n\n if (!_.isNil(this.languageSubscription)) {\n this.languageSubscription.unsubscribe();\n this.languageSubscription = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isAllEnabled(): boolean {\n return this._isAllEnabled;\n }\n\n public get isLeastOneEnabled(): boolean {\n return this._isLeastOneEnabled;\n }\n}\n","import { ISelectListItem } from './ISelectListItem';\nimport * as _ from 'lodash';\nimport { ListItem } from '../ListItem';\nimport { IListItem } from '../IListItem';\n\nexport class SelectListItem<T = any> extends ListItem<T> implements ISelectListItem<T> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _isSelected: boolean;\n protected _selectedClassName: string;\n\n public checkSelected?: (item: ISelectListItem, ...params) => boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(translationId: string, sortIndex: number, data: T, checkEnabled?: (item: IListItem, ...params) => boolean) {\n super(translationId, sortIndex, data);\n this.checkEnabled = checkEnabled;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitIsSelectProperties(): void {}\n\n protected commitSelectedClassNameProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n super.destroy();\n this.checkSelected = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isSelected(): boolean {\n return this._isSelected;\n }\n public set isSelected(value: boolean) {\n if (value === this._isSelected) {\n return;\n }\n this._isSelected = value;\n if (!_.isNil(value)) {\n this.commitIsSelectProperties();\n }\n }\n\n public get selectedClassName(): string {\n return this._selectedClassName;\n }\n public set selectedClassName(value: string) {\n if (value === this._selectedClassName) {\n return;\n }\n this._selectedClassName = value;\n if (!_.isNil(value)) {\n this.commitSelectedClassNameProperties();\n }\n }\n}\n","import * as _ from 'lodash';\nimport { ISelectListItem } from './ISelectListItem';\nimport { ListItems } from '../ListItems';\nimport { LanguageService } from '@ts-core/frontend';\nimport { EventEmitter } from '@angular/core';\n\nexport class SelectListItems<U extends ISelectListItem<V>, V = any> extends ListItems<U, V> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _selectedItem: U;\n protected _selectedData: V;\n protected _selectedIndex: number;\n\n protected _changed: EventEmitter<U>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(language: LanguageService, isAutoTranslate: boolean = true) {\n super(language, isAutoTranslate);\n this._changed = new EventEmitter();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitSelectedItemProperties(): void {\n this.selectedData = !_.isNil(this.selectedItem) ? this.selectedItem.data : null;\n this.selectedIndex = !_.isNil(this.selectedItem) ? this.selectedItem.sortIndex : null;\n\n if (!_.isNil(this.changed)) {\n this.changed.emit(this.selectedItem);\n }\n }\n\n protected commitSelectedDataProperties(): void {\n this.selectedItem = !_.isNil(this.selectedData) ? _.find(this.collection, item => item.data === this.selectedData) : null;\n }\n\n protected commitSelectedIndexProperties(): void {\n this.selectedItem = !_.isNil(this.selectedIndex) ? _.find(this.collection, item => item.sortIndex === this.selectedIndex) : null;\n }\n\n protected selectIndexOrData(indexOrDataToSelect: number | V): void {\n if (_.isNumber(indexOrDataToSelect)) {\n this.selectedIndex = indexOrDataToSelect;\n } else {\n this.selectedItem = _.find(this.collection, item => item.data === indexOrDataToSelect);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get selectedItem(): U {\n return this._selectedItem;\n }\n public set selectedItem(value: U) {\n if (value === this._selectedItem) {\n return;\n }\n this._selectedItem = value;\n this.commitSelectedItemProperties();\n }\n\n public get selectedIndex(): number {\n return this._selectedIndex;\n }\n public set selectedIndex(value: number) {\n if (value === this._selectedIndex) {\n return;\n }\n this._selectedIndex = value;\n this.commitSelectedIndexProperties();\n }\n\n public get selectedData(): V {\n return this._selectedData;\n }\n public set selectedData(value: V) {\n if (value === this._selectedData) {\n return;\n }\n this._selectedData = value;\n this.commitSelectedDataProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public complete(indexOrDataToSelect?: number | V): void {\n super.complete();\n if (!_.isNil(indexOrDataToSelect)) {\n this.selectIndexOrData(indexOrDataToSelect);\n }\n }\n\n public refresh(...params): void {\n super.refresh(...params);\n this.refreshSelection(...params);\n }\n\n public refreshSelection(...params): void {\n if (_.isEmpty(this.collection)) {\n return;\n }\n for (let item of this._collection) {\n item.isSelected = !_.isNil(item.checkSelected) ? item.checkSelected(item, ...params) : false;\n if (item.isSelected) {\n this.selectedItem = item;\n }\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this._changed)) {\n this._changed.complete();\n this._changed = null;\n }\n this.selectedIndex = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get changed(): EventEmitter<U> {\n return this._changed;\n }\n}\n","import { LanguageService } from '@ts-core/frontend';\nimport { SelectListItems } from './SelectListItems';\nimport { ISelectListItem } from './ISelectListItem';\nimport { RouterBaseService } from '../../service/RouterBaseService';\nimport { filter, takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport class RouterSelectListItems<U = string> extends SelectListItems<ISelectListItem<U>, U> {\n //--------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n public isDisabled: boolean;\n\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n protected router: RouterBaseService,\n language: LanguageService\n ) {\n super(language, true);\n this.changed\n .pipe(\n filter(() => !this.isDisabled),\n takeUntil(this.destroyed)\n )\n .subscribe(item => this.setFragment(item));\n this.router.completed\n .pipe(\n filter(() => !this.isDisabled),\n takeUntil(this.destroyed)\n )\n .subscribe(() => this.setData());\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected setData(): void {\n let item = this.getRouterSelectedItem();\n this.selectedItem = !_.isNil(item) ? item : _.first(this.collection);\n }\n\n protected setFragment(item: ISelectListItem<U>): void {\n let index = _.indexOf(this.collection, item);\n this.router.setFragment(index > 0 ? item.data.toString() : null);\n }\n\n protected getRouterSelectedItem(): ISelectListItem<U> {\n return _.find(this.collection, { data: this.router.getFragment() }) as ISelectListItem<U>;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public complete(): void {\n let item = this.getRouterSelectedItem();\n super.complete(!_.isNil(item) ? item.data : 0);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.router = null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viPrettify',\n standalone: false\n})\nexport class PrettifyPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static EMPTY_SYMBOL = '-';\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any): string {\n let isNil = _.isNil(value);\n if (!isNil && !_.isNumber(value)) {\n isNil = _.isEmpty(value);\n }\n return !isNil ? value : PrettifyPipe.EMPTY_SYMBOL;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PrettifyPipe } from './PrettifyPipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viCamelCase',\n standalone: false\n})\nexport class CamelCasePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any): string {\n return !_.isNil(value) ? _.camelCase(value) : PrettifyPipe.EMPTY_SYMBOL;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport numeral from 'numeral';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viFinance',\n standalone: false\n})\nexport class FinancePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = '0,0';\n\n // --------------------------------------------------------------------------\n //\n //\tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static format(value: number | string, format: string): string {\n value = Number(value);\n try {\n return numeral(value).format(format);\n } catch (error) {\n return value.toString();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: number | string, format?: string, isNeedPlus: boolean = false): string {\n value = Number(value);\n if (_.isNaN(value)) {\n return '---';\n }\n if (_.isNil(format)) {\n format = FinancePipe.DEFAULT_FORMAT;\n }\n if (isNeedPlus) {\n format = '+' + format;\n }\n return FinancePipe.format(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport { GetFilterableCondition, RemoveFilterableCondition } from '@ts-core/common';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viMomentDate',\n standalone: false\n})\nexport class MomentDatePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = 'LLL';\n\n // --------------------------------------------------------------------------\n //\n //\tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static parseMoment(value: MomentAvailableType, format?: string): Moment {\n if (_.isDate(value)) {\n return moment(value);\n }\n if (_.isString(value)) {\n return moment(value, format);\n }\n if (_.isNumber(value)) {\n return moment().milliseconds(value);\n }\n return value as Moment;\n }\n\n public static fromNow(value: MomentAvailableType, format: string = 'LLL'): string {\n if (_.isNil(value)) {\n return '---';\n }\n\n let item = MomentDatePipe.parseMoment(value);\n let date = item.fromNow();\n date = date.charAt(0).toUpperCase() + date.slice(1);\n if (!_.isNil(format)) {\n date += ' (' + item.format(format) + ')';\n }\n return date;\n }\n\n public static toConditionValue(value: string | Date): string {\n if (_.isNil(value)) {\n return undefined;\n }\n value = value.toString();\n let item = MomentDatePipe.parseMoment(RemoveFilterableCondition(value));\n return item.isValid() ? `${GetFilterableCondition(value) || '='}${item.toDate().toString()}` : undefined;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: MomentAvailableType, format?: string): string {\n if (_.isNil(value)) {\n return '---';\n }\n\n let moment = MomentDatePipe.parseMoment(value);\n return moment.format(format || MomentDatePipe.DEFAULT_FORMAT);\n }\n}\nexport type MomentAvailableType = Date | Moment | string | number;\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport { MomentDatePipe } from './MomentDatePipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viMomentAdaptiveDate',\n standalone: false\n})\nexport class MomentDateAdaptivePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n public static HOUR_FORMAT = 'HH:ss';\n public static DAY_FORMAT = 'DD MMM HH:ss';\n public static MONTH_FORMAT = 'DD MMM HH:ss';\n public static YEAR_FORMAT = 'LLL';\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: Date | Moment): string {\n if (_.isNaN(value)) {\n return '---';\n }\n\n let item = MomentDatePipe.parseMoment(value);\n let duration = moment.duration(moment().diff(item));\n\n let format = null;\n if (Math.abs(duration.asYears()) >= 1) {\n format = MomentDateAdaptivePipe.YEAR_FORMAT;\n } else if (Math.abs(duration.asMonths()) >= 1) {\n format = MomentDateAdaptivePipe.MONTH_FORMAT;\n } else if (Math.abs(duration.asDays()) >= 1) {\n format = MomentDateAdaptivePipe.DAY_FORMAT;\n } else {\n format = MomentDateAdaptivePipe.HOUR_FORMAT;\n }\n return item.format(format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Moment } from 'moment';\nimport { MomentDatePipe } from './MomentDatePipe';\n\n@Pipe({\n name: 'viMomentDateFromNow',\n standalone: false\n})\nexport class MomentDateFromNowPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: Date | Moment, format?: string): string {\n return MomentDatePipe.fromNow(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viMomentTime',\n standalone: false\n})\nexport class MomentTimePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = 'hh:mm:ss';\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(timeMilliseconds: number, format?: string): string {\n if (_.isNil(timeMilliseconds)) {\n return '---';\n }\n\n return moment()\n .startOf('day')\n .add(timeMilliseconds, 'milliseconds')\n .format(format || MomentTimePipe.DEFAULT_FORMAT);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viNgModelError',\n standalone: false\n})\nexport class NgModelErrorPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: ValidationErrors): string {\n if (_.isNil(value)) {\n return null;\n }\n let keys = _.keys(value);\n if (_.isEmpty(keys)) {\n return null;\n }\n let key = keys[0];\n return this.translateError(key, value[key]);\n }\n\n public translateError(key: string, value: any): string {\n return this.language.translate('error.form.' + key, value);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected language: LanguageService) {}\n}\n","import { Pipe } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viSanitize',\n standalone: false\n})\nexport class SanitizePipe {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private sanitizer: DomSanitizer) {}\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: string, type: string = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n if (_.isNil(value)) {\n return null;\n }\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error('Invalid safe type specified: ' + type);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PrettifyPipe } from './PrettifyPipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viStartCase',\n standalone: false\n})\nexport class StartCasePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any): string {\n return !_.isEmpty(value) ? value.charAt(0).toUpperCase() + value.slice(1) : PrettifyPipe.EMPTY_SYMBOL;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PrettifyPipe } from './PrettifyPipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTruncate',\n standalone: false\n})\nexport class TruncatePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any, maxLength?: number): string {\n return !_.isEmpty(value) ? _.truncate(value, { length: maxLength }) : PrettifyPipe.EMPTY_SYMBOL;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DateUtil } from '@ts-core/common';\nimport { FinancePipe } from './FinancePipe';\nimport { PrettifyPipe } from './PrettifyPipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTime',\n standalone: false\n})\nexport class TimePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = '00:00:00';\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(milliseconds: number | string, format?: string): string {\n milliseconds = Number(milliseconds);\n if (_.isNaN(milliseconds)) {\n return PrettifyPipe.EMPTY_SYMBOL;\n }\n if (_.isNil(format)) {\n format = TimePipe.DEFAULT_FORMAT;\n }\n return FinancePipe.format(milliseconds / DateUtil.MILLISECONDS_SECOND, format);\n }\n}\n","export interface IQuestion {\n readonly mode: QuestionMode;\n readonly isChecked: boolean;\n\n readonly text: string;\n readonly notText: string;\n readonly yesText: string;\n readonly closeText: string;\n readonly checkText: string;\n\n readonly closePromise: Promise<void>;\n readonly yesNotPromise: Promise<void>;\n}\n\nexport interface IQuestionOptions {\n text?: string;\n mode?: QuestionMode;\n isChecked?: boolean;\n yesTextId?: string;\n notTextId?: string;\n checkTextId?: string;\n closeTextId?: string;\n}\n\nexport enum QuestionMode {\n INFO = 'INFO',\n QUESTION = 'QUESTION'\n}\n\nexport enum QuestionEvent {\n YES = 'YES',\n NOT = 'NOT',\n CLOSE = 'CLOSE',\n CHECK = 'CHECK',\n UNCHECK = 'UNCHECK'\n}\n","import * as _ from 'lodash';\nimport { PromiseHandler } from '@ts-core/common';\nimport { Destroyable } from '@ts-core/common';\nimport { IQuestion, IQuestionOptions, QuestionMode } from './IQuestion';\n\nexport class QuestionManager extends Destroyable implements IQuestion {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public text: string;\n public mode: QuestionMode;\n public options: IQuestionOptions;\n\n public notText: string;\n public yesText: string;\n public closeText: string;\n public checkText: string;\n\n protected _isChecked: boolean = false;\n\n protected _closePromise: PromiseHandler<void, void>;\n protected _yesNotPromise: PromiseHandler<void, void>;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(options?: IQuestionOptions) {\n super();\n this._closePromise = PromiseHandler.create();\n this._yesNotPromise = PromiseHandler.create();\n\n this.yesText = 'Yes';\n this.notText = 'Not';\n this.closeText = 'Close';\n this.checkText = 'Check';\n this.options = _.assign(\n {\n mode: QuestionMode.INFO,\n isChecked: false,\n yesTextId: 'general.yes',\n notTextId: 'general.not',\n closeTextId: 'general.close'\n },\n options\n );\n this.text = this.options.text;\n this.mode = this.options.mode;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public closeClickHandler(): void {\n this._closePromise.resolve();\n }\n\n public yesClickHandler(): void {\n this._yesNotPromise.resolve();\n this.closeClickHandler();\n }\n\n public notClickHandler(): void {\n this._yesNotPromise.reject();\n this.closeClickHandler();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.notClickHandler();\n this._yesNotPromise = null;\n this._closePromise = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tInterface Properties\n //\n // --------------------------------------------------------------------------\n\n public get yesNotPromise(): Promise<void> {\n return this._yesNotPromise.promise;\n }\n\n public get closePromise(): Promise<void> {\n return this._closePromise.promise;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isInfo(): boolean {\n return this.mode === QuestionMode.INFO;\n }\n\n public get isQuestion(): boolean {\n return this.mode === QuestionMode.QUESTION;\n }\n\n public get isChecked(): boolean {\n return this._isChecked;\n }\n public set isChecked(value: boolean) {\n if (value === this._isChecked) {\n return;\n }\n this._isChecked = value;\n // this.content.emit(value ? QuestionEvent.CHECK : QuestionEvent.UNCHECK);\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport { CamelCasePipe } from '../pipe/CamelCasePipe';\nimport { FinancePipe } from '../pipe/FinancePipe';\nimport { MomentDateAdaptivePipe } from '../pipe/MomentDateAdaptivePipe';\nimport { MomentDateFromNowPipe } from '../pipe/MomentDateFromNowPipe';\nimport { MomentDatePipe } from '../pipe/MomentDatePipe';\nimport { MomentTimePipe } from '../pipe/MomentTimePipe';\nimport { PrettifyPipe } from '../pipe/PrettifyPipe';\nimport { SanitizePipe } from '../pipe/SanitizePipe';\nimport { TimePipe } from '../pipe/TimePipe';\nimport { TruncatePipe } from '../pipe/TruncatePipe';\n\nexport class PipeBaseService extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n private static DATE: DatePipe = null;\n private static TIME: TimePipe = null;\n private static FINANCE: FinancePipe = null;\n private static PRETTIFY: PrettifyPipe = null;\n private static TRUNCATE: TruncatePipe = null;\n private static SANITIZE: SanitizePipe = null;\n\n private static CAMEL_CASE: CamelCasePipe = null;\n\n private static MOMENT_TIME: MomentTimePipe = null;\n private static MOMENT_DATE: MomentDatePipe = null;\n private static MOMENT_DATE_FROM_NOW: MomentDateFromNowPipe = null;\n private static MOMENT_ADAPTIVE_DATE: MomentDateAdaptivePipe = null;\n\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private _locale: string;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n public language: LanguageService,\n public sanitizer: DomSanitizer\n ) {\n super();\n\n if (this.language.isLoaded) {\n this.commitLanguageProperties();\n }\n this.language.completed.pipe(takeUntil(this.destroyed)).subscribe(() => this.commitLanguageProperties());\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitLanguageProperties(): void {\n let locale = this.language.locale ? this.language.language.locale : 'en';\n this._locale = locale === 'en' ? 'en-US' : locale;\n\n if (PipeBaseService.DATE) {\n PipeBaseService.DATE = new DatePipe(this.locale);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get date(): DatePipe {\n if (!PipeBaseService.DATE) {\n PipeBaseService.DATE = new DatePipe(this.locale);\n }\n return PipeBaseService.DATE;\n }\n\n public get time(): TimePipe {\n if (!PipeBaseService.TIME) {\n PipeBaseService.TIME = new TimePipe();\n }\n return PipeBaseService.TIME;\n }\n\n public get finance(): FinancePipe {\n if (!PipeBaseService.FINANCE) {\n PipeBaseService.FINANCE = new FinancePipe();\n }\n return PipeBaseService.FINANCE;\n }\n\n public get truncate(): TruncatePipe {\n if (!PipeBaseService.TRUNCATE) {\n PipeBaseService.TRUNCATE = new TruncatePipe();\n }\n return PipeBaseService.TRUNCATE;\n }\n\n public get prettify(): PrettifyPipe {\n if (!PipeBaseService.PRETTIFY) {\n PipeBaseService.PRETTIFY = new PrettifyPipe();\n }\n return PipeBaseService.PRETTIFY;\n }\n\n public get momentDate(): MomentDatePipe {\n if (!PipeBaseService.MOMENT_DATE) {\n PipeBaseService.MOMENT_DATE = new MomentDatePipe();\n }\n return PipeBaseService.MOMENT_DATE;\n }\n\n public get momentDateFromNow(): MomentDateFromNowPipe {\n if (!PipeBaseService.MOMENT_DATE_FROM_NOW) {\n PipeBaseService.MOMENT_DATE_FROM_NOW = new MomentDateFromNowPipe();\n }\n return PipeBaseService.MOMENT_DATE_FROM_NOW;\n }\n\n public get momentDateAdaptive(): MomentDateAdaptivePipe {\n if (!PipeBaseService.MOMENT_ADAPTIVE_DATE) {\n PipeBaseService.MOMENT_ADAPTIVE_DATE = new MomentDateAdaptivePipe();\n }\n return PipeBaseService.MOMENT_ADAPTIVE_DATE;\n }\n\n public get momentTime(): MomentTimePipe {\n if (!PipeBaseService.MOMENT_TIME) {\n PipeBaseService.MOMENT_TIME = new MomentTimePipe();\n }\n return PipeBaseService.MOMENT_TIME;\n }\n\n public get sanitize(): SanitizePipe {\n if (!PipeBaseService.SANITIZE) {\n PipeBaseService.SANITIZE = new SanitizePipe(this.sanitizer);\n }\n return PipeBaseService.SANITIZE;\n }\n\n public get camelCase(): CamelCasePipe {\n if (!PipeBaseService.CAMEL_CASE) {\n PipeBaseService.CAMEL_CASE = new CamelCasePipe();\n }\n return PipeBaseService.CAMEL_CASE;\n }\n\n public get locale(): string {\n return this._locale;\n }\n}\n","import {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationExtras,\n NavigationStart,\n Router,\n UrlTree\n} from '@angular/router';\nimport { ObservableData, Loadable, LoadableEvent, LoadableStatus } from '@ts-core/common';\nimport { NativeWindowService } from '@ts-core/frontend';\nimport { Subject, takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport class RouterBaseService extends Loadable<void, RouterBaseServiceEventData> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected params: Map<string, string>;\n\n protected extrasToApply: NavigationExtras;\n protected isNeedUpdateExtras: boolean = false;\n\n protected _lastUrl: string;\n protected _previousUrl: string;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n protected _router: Router,\n protected _route: ActivatedRoute,\n protected window: NativeWindowService\n ) {\n super();\n this.params = new Map();\n this.observer = new Subject();\n\n this._lastUrl = this.url;\n\n this.window.getParams().forEach((value, key) => this.params.set(key, value));\n this.initializeObservers();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected initializeObservers(): void {\n this.router.events.pipe(takeUntil(this.destroyed)).subscribe(event => {\n if (event instanceof NavigationStart) {\n this._previousUrl = this.url;\n this.status = LoadableStatus.LOADING;\n } else if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {\n if (event instanceof NavigationEnd) {\n this._lastUrl = event.url;\n }\n this.status = LoadableStatus.LOADED;\n }\n });\n }\n\n protected async applyExtras(extras?: NavigationExtras): Promise<boolean> {\n let params = {} as NavigationExtras;\n params.queryParams = this.getQueryParams();\n\n if (!_.isNil(extras)) {\n Object.assign(params, extras);\n }\n\n if (!this.isLoading) {\n return this.router.navigate([], params);\n }\n this.extrasToApply = extras;\n this.isNeedUpdateExtras = true;\n return false;\n }\n\n protected getQueryParams(): any {\n let params = {} as any;\n this.params.forEach((value, key) => (params[key] = value));\n return params;\n }\n\n protected commitStatusChangedProperties(oldStatus: LoadableStatus, newStatus: LoadableStatus): void {\n super.commitStatusChangedProperties(oldStatus, newStatus);\n\n switch (newStatus) {\n case LoadableStatus.LOADING:\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n break;\n case LoadableStatus.LOADED:\n if (this.isNeedUpdateExtras) {\n this.isNeedUpdateExtras = false;\n this.applyExtras(this.extrasToApply);\n }\n this.observer.next(new ObservableData(LoadableEvent.COMPLETE, { url: this.url, previousUrl: this.previousUrl }));\n break;\n }\n\n if (newStatus === LoadableStatus.LOADED || newStatus === LoadableStatus.ERROR) {\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tNavigate Methods\n //\n // --------------------------------------------------------------------------\n\n public async navigate(url: string, extras?: NavigationExtras, isClearParams?: boolean): Promise<boolean> {\n if (isClearParams) {\n this.params.clear();\n }\n\n let params = {} as NavigationExtras;\n params.queryParams = this.getQueryParams();\n if (!_.isNil(extras)) {\n Object.assign(params, extras);\n }\n return this.router.navigateByUrl(url, params);\n }\n\n public navigateToExternalUrl(url: string, target: string = '_blank'): void {\n this.window.open(url, target);\n }\n\n public navigateToLast(extras?: NavigationExtras): Promise<boolean> {\n return this.navigate(this.lastUrl, extras);\n }\n\n public async navigateIfNotLoading(url: string, extras?: NavigationExtras): Promise<boolean> {\n return !this.isLoading ? this.navigate(url, extras) : false;\n }\n\n public reload(): void {\n location.reload();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public isUrlActive(item: string | UrlTree, isExact: boolean = false): boolean {\n if (isExact) {\n return this.router.isActive(item, isExact);\n }\n if (_.isString(item)) {\n item = this.router.parseUrl(item);\n }\n\n let current = this.router.parseUrl(this.urlTree.toString());\n item.fragment = current.fragment = null;\n item.queryParams = current.queryParams = {};\n return item.toString() === current.toString();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Param Methods\n //\n // --------------------------------------------------------------------------\n\n public getParams<T = any>(): T {\n let params = {} as any;\n this.params.forEach((value, key) => (params[key] = value));\n return params;\n }\n\n public hasParam(name: string): boolean {\n return this.params.has(name);\n }\n\n public getParam<T = string>(name: string, defaultValue?: T): T {\n return this.hasParam(name) ? (this.params.get(name) as any) : defaultValue;\n }\n\n public setParam(name: string, value: any, extras?: NavigationExtras): void {\n if (!_.isNil(value)) {\n value = value.toString().trim();\n if (_.isEmpty(value)) {\n value = null;\n }\n }\n if (!_.isNil(value)) {\n this.params.set(name, value);\n } else {\n this.params.delete(name);\n }\n if (!_.isNil(extras)) {\n extras = { replaceUrl: true };\n }\n this.applyExtras(extras);\n }\n\n public removeParam(name: string, extras?: NavigationExtras): void {\n if (this.hasParam(name)) {\n this.setParam(name, null, extras);\n }\n }\n\n public clearParams(extras?: NavigationExtras): void {\n this.params.clear();\n if (!_.isNil(extras)) {\n extras = { replaceUrl: true };\n }\n this.applyExtras(extras);\n }\n\n public get hasParams(): boolean {\n return this.params.size > 0;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tFragment Methods\n //\n // --------------------------------------------------------------------------\n\n public getFragment(snapshot?: ActivatedRouteSnapshot, defaultValue?: string): string {\n if (_.isNil(snapshot)) {\n snapshot = this.route.snapshot;\n }\n if (_.isNil(defaultValue)) {\n defaultValue = null;\n }\n return !_.isNil(snapshot.fragment) ? snapshot.fragment : defaultValue;\n }\n\n public hasFragment(snapshot?: ActivatedRouteSnapshot): boolean {\n return !_.isNil(this.getFragment(snapshot));\n }\n\n public async setFragment(value: string): Promise<boolean> {\n return value !== this.getFragment() ? this.applyExtras({ fragment: value }) : false;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Url Methods\n //\n // --------------------------------------------------------------------------\n\n public get url(): string {\n return this.router.url;\n }\n public get urlTree(): UrlTree {\n return this.router.parseUrl(this.url);\n }\n\n public get lastUrl(): string {\n return this._lastUrl;\n }\n public get lastUrlTree(): UrlTree {\n return this.router.parseUrl(this.lastUrl);\n }\n\n public get previousUrl(): string {\n return this._previousUrl;\n }\n public get previousUrlTree(): UrlTree {\n return this.router.parseUrl(this.previousUrl);\n }\n\n public get route(): ActivatedRoute {\n return this._route;\n }\n public get router(): Router {\n return this._router;\n }\n}\n\nexport interface RouterBaseServiceEventData {\n url: string;\n previousUrl: string;\n}\n","import { ObservableData, ClassType, Destroyable } from '@ts-core/common';\nimport { IQuestion, IQuestionOptions } from '../question/IQuestion';\nimport { INotification } from './INotification';\nimport { INotificationConfig } from './INotificationConfig';\nimport { INotificationContent } from './INotificationContent';\nimport { NotificationConfigOptions } from './NotificationConfig';\nimport { NotificationServiceEvent } from './NotificationServiceEvent';\nimport { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\nexport abstract class NotificationService extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract open<U extends INotificationContent<T>, T>(component: ClassType<U>, config: INotificationConfig<T>): U;\n\n // --------------------------------------------------------------------------\n //\n // \tHelp Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract get<T>(value: NotificationId<T>): INotificationConfig<T>;\n\n public abstract has<T>(value: NotificationId<T>): boolean;\n\n public abstract remove<T>(value: NotificationId<T>): void;\n\n public abstract closeAll(): void;\n\n public abstract close<T>(value: NotificationId<T>): INotification<T>;\n\n // --------------------------------------------------------------------------\n //\n // \tAdditional Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: NotificationConfigOptions): IQuestion;\n\n public abstract question(\n translationId?: string,\n translation?: any,\n questionOptions?: IQuestionOptions,\n configOptions?: NotificationConfigOptions\n ): IQuestion;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public abstract get events(): Observable<ObservableData<NotificationServiceEvent, INotificationConfig | INotification>>;\n\n public abstract get configs(): Array<INotificationConfig>;\n\n public abstract get closedConfigs(): Array<INotificationConfig>;\n\n public abstract get notifications(): Map<INotificationConfig, INotificationContent>;\n}\n\nexport type NotificationId<T> = string | INotificationConfig<T> | NotificationConfigOptions<T>;\n","import { Injectable } from '@angular/core';\nimport {\n NoNewVersionDetectedEvent,\n SwUpdate,\n UnrecoverableStateEvent,\n VersionDetectedEvent,\n VersionInstallationFailedEvent,\n VersionReadyEvent\n} from '@angular/service-worker';\nimport { Loadable, LoadableEvent, LoadableStatus, Logger, ObservableData } from '@ts-core/common';\nimport { takeUntil, filter } from 'rxjs';\nimport { NotificationService } from '../notification/NotificationService';\nimport * as _ from 'lodash';\n\n@Injectable({ providedIn: 'root' })\nexport class ServiceWorkerService extends Loadable {\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n protected updates: SwUpdate,\n protected logger: Logger,\n protected notifications: NotificationService\n ) {\n super();\n\n updates.unrecoverable.pipe(takeUntil(this.destroyed)).subscribe(event => this.unrecoverableHandler(event));\n updates.versionUpdates\n .pipe(\n filter(event => event.type === 'VERSION_READY'),\n takeUntil(this.destroyed)\n )\n .subscribe(event => this.readyHandler(event as VersionReadyEvent));\n updates.versionUpdates\n .pipe(\n filter(event => event.type === 'VERSION_DETECTED'),\n takeUntil(this.destroyed)\n )\n .subscribe(event => this.detectedHandler(event as VersionDetectedEvent));\n updates.versionUpdates\n .pipe(\n filter(event => event.type === 'NO_NEW_VERSION_DETECTED'),\n takeUntil(this.destroyed)\n )\n .subscribe(event => this.noNewVersionDetectedHandler(event as NoNewVersionDetectedEvent));\n updates.versionUpdates\n .pipe(\n filter(event => event.type === 'VERSION_INSTALLATION_FAILED'),\n takeUntil(this.destroyed)\n )\n .subscribe(event => this.installationFailedHandler(event as VersionInstallationFailedEvent));\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected start(value: LoadableStatus): void {\n if (value === this.status) {\n return;\n }\n this.status = value;\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n }\n\n protected finish(value: LoadableStatus): void {\n if (value === this.status) {\n return;\n }\n this.status = value;\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n }\n\n //--------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n //--------------------------------------------------------------------------\n\n protected async readyHandler(event: VersionReadyEvent): Promise<void> {\n this.start(LoadableStatus.LOADING);\n try {\n await this.updates.activateUpdate();\n this.finish(LoadableStatus.LOADED);\n } catch (error) {\n this.finish(LoadableStatus.ERROR);\n this.logger.error(`Unable to activate version: ${error}`);\n }\n }\n\n protected async unrecoverableHandler(event: UnrecoverableStateEvent): Promise<void> {\n this.finish(LoadableStatus.ERROR);\n this.logger.error(`Unable to update version: ${event.reason}`);\n }\n\n protected async detectedHandler(event: VersionDetectedEvent): Promise<void> {\n this.start(LoadableStatus.LOADING);\n }\n\n protected async installationFailedHandler(event: VersionInstallationFailedEvent): Promise<void> {\n this.finish(LoadableStatus.ERROR);\n }\n\n protected async noNewVersionDetectedHandler(event: NoNewVersionDetectedEvent): Promise<void> {\n this.finish(LoadableStatus.NOT_LOADED);\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public activateUpdate(): Promise<boolean> {\n return this.updates.activateUpdate();\n }\n\n public checkForUpdate(): Promise<boolean> {\n return this.updates.checkForUpdate();\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n public get isEnabled(): boolean {\n return this.updates.isEnabled;\n }\n}\n","import { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport * as _ from 'lodash';\nimport { Observable } from 'rxjs';\nimport { IRouterDeactivatable } from './IRouterDeactivatable';\n\nexport class CanDeactivateGuard<T extends IRouterDeactivatable = IRouterDeactivatable> implements CanDeactivate<T> {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canDeactivate(\n component: T,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n return !component.isForceDeactivate ? component.isCanDeactivate(currentRoute, currentState, nextState) : true;\n }\n}\n","import { Directive, ElementRef, Input, RendererStyleFlags2 } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ThemeService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-theme-style]',\n standalone: false\n})\nexport class ThemeStyleDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _key: string;\n protected _flags: RendererStyleFlags2;\n protected _styleName: string;\n\n protected element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n element: ElementRef,\n protected theme: ThemeService\n ) {\n super();\n\n this.element = ViewUtil.parseElement(element.nativeElement);\n this.theme.changed.pipe(takeUntil(this.destroyed)).subscribe(() => this.stylePropertiesCheck());\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitStyleProperties(name: string, value: string): void {\n ViewUtil.setStyle(this.element, name, value, this.flags);\n }\n\n protected stylePropertiesCheck(): void {\n if (this.isNeedStyleAdd()) {\n this.stylePropertiesAdd();\n } else if (this.isNeedStyleRemove()) {\n this.stylePropertiesRemove();\n }\n }\n\n protected stylePropertiesRemove(): void {\n ViewUtil.removeStyle(this.element, this.styleName);\n }\n\n protected stylePropertiesAdd(): void {\n this.commitStyleProperties(this.styleName, this.theme.getStyle(this.key));\n }\n\n protected isNeedStyleAdd(): boolean {\n return !_.isNil(this.theme.theme) && !_.isNil(this.styleName);\n }\n\n protected isNeedStyleRemove(): boolean {\n return !_.isNil(this.styleName);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.key = null;\n this.theme = null;\n this.element = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get flags(): RendererStyleFlags2 {\n return this._flags;\n }\n @Input()\n public set flags(value: RendererStyleFlags2) {\n if (value === this._flags) {\n return;\n }\n this._flags = value;\n this.stylePropertiesCheck();\n }\n\n public get styleName(): string {\n return this._styleName;\n }\n @Input()\n public set styleName(value: string) {\n if (value === this._styleName) {\n return;\n }\n this._styleName = value;\n this.stylePropertiesCheck();\n }\n\n public get key(): string {\n return this._key;\n }\n @Input('vi-theme-style')\n public set key(value: string) {\n if (value === this._key) {\n return;\n }\n this._key = value;\n if (!_.isNil(value)) {\n this.stylePropertiesCheck();\n }\n }\n}\n","import { Directive, ElementRef, Input, RendererStyleFlags2 } from '@angular/core';\nimport { ThemeService } from '@ts-core/frontend';\nimport { ThemeStyleDirective } from './ThemeStyleDirective';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-theme-style-hover]',\n standalone: false\n})\nexport class ThemeStyleHoverDirective extends ThemeStyleDirective {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _isHover: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, theme: ThemeService) {\n super(element, theme);\n\n this.flags = RendererStyleFlags2.Important;\n this.element.addEventListener('mouseenter', this.mouseEnter, false);\n this.element.addEventListener('mouseleave', this.mouseLeave, false);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected isNeedStyleAdd(): boolean {\n return this.isHover && super.isNeedStyleAdd();\n }\n\n protected isNeedStyleRemove(): boolean {\n return !this.isHover || super.isNeedStyleRemove();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n protected mouseEnter = (event: MouseEvent): void => {\n this.isHover = true;\n };\n\n protected mouseLeave = (event: MouseEvent): void => {\n this.isHover = false;\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n this.element.removeEventListener('mouseenter', this.mouseEnter, false);\n this.element.removeEventListener('mouseleave', this.mouseLeave, false);\n super.destroy();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isHover(): boolean {\n return this._isHover;\n }\n public set isHover(value: boolean) {\n if (value === this._isHover) {\n return;\n }\n this._isHover = value;\n this.stylePropertiesCheck();\n }\n\n public get key(): string {\n return super.key;\n }\n @Input('vi-theme-style-hover')\n public set key(value: string) {\n super.key = value;\n }\n\n public get styleName(): string {\n return super.styleName;\n }\n @Input()\n public set styleName(value: string) {\n super.styleName = value;\n }\n\n public get flags(): RendererStyleFlags2 {\n return super.flags;\n }\n @Input()\n public set flags(value: RendererStyleFlags2) {\n super.flags = value;\n }\n}\n","import { Directive, ElementRef, HostListener, Input, booleanAttribute } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive()\nexport abstract class ThemeAssetDirective<T extends HTMLElement = HTMLElement> extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _name: string;\n protected _source: string;\n protected _extension: string = 'png';\n\n protected _isFile: boolean = false;\n protected _isImage: boolean = false;\n protected _isVideo: boolean = false;\n protected _isSound: boolean = false;\n protected _isBackground: boolean = false;\n protected _isIgnoreTheme: boolean = true;\n\n protected element: T;\n\n private isTriedThemeDefault: boolean;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n element: ElementRef,\n protected theme: ThemeService,\n protected themeAsset: ThemeAssetService\n ) {\n super();\n this.element = ViewUtil.parseElement(element.nativeElement) as T;\n\n this.theme.changed.pipe(takeUntil(this.destroyed)).subscribe(() => {\n this.isTriedThemeDefault = false;\n this.setSourceProperties();\n });\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected getSource(id: string): string {\n if (_.isNil(id)) {\n return null;\n }\n if (this.isImage) {\n return this.themeAsset.getImage(id, this.extension, this.isIgnoreTheme);\n }\n if (this.isBackground) {\n return this.themeAsset.getBackground(id, this.extension, this.isIgnoreTheme);\n }\n if (this.isSound) {\n return this.themeAsset.getSound(id, this.extension, this.isIgnoreTheme);\n }\n if (this.isVideo) {\n return this.themeAsset.getVideo(id, this.extension, this.isIgnoreTheme);\n }\n if (this.isFile) {\n return this.themeAsset.getFile(id, this.extension, this.isIgnoreTheme);\n }\n return this.themeAsset.getIcon(id, this.extension, this.isIgnoreTheme);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('error', ['$event'])\n public errorLoadingHandler(event: ErrorEvent): void {\n this.errorHandler(event);\n }\n\n protected errorHandler(event: ErrorEvent): void {\n if (this.isTriedThemeDefault) {\n return;\n }\n this.isTriedThemeDefault = true;\n this.setDefaultSourceProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setSourceProperties(): void {\n this.source = this.getSource(this.getSourceId());\n }\n\n protected setDefaultSourceProperties(): void {\n this.source = this.getSource(this.getDefaultSourceId());\n }\n\n protected getSourceId(): string {\n if (_.isNil(this.name) || _.isNil(this.theme) || _.isNil(this.theme.theme)) {\n return null;\n }\n return this.name + _.capitalize(this.theme.theme.name);\n }\n\n protected getDefaultSourceId(): string {\n return this.themeAsset.getName(this.name, this.isIgnoreTheme);\n }\n\n protected abstract addSourceProperties(): void;\n\n protected abstract removeSourceProperties(): void;\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.name = null;\n this.theme = null;\n this.element = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Properties\n //\n // --------------------------------------------------------------------------\n\n protected get source(): string {\n return this._source;\n }\n protected set source(value: string) {\n if (value === this._source) {\n return;\n }\n this._source = value;\n if (!_.isNil(value)) {\n this.addSourceProperties();\n } else {\n this.removeSourceProperties();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input({ transform: booleanAttribute })\n public set isSound(value: boolean) {\n if (value === this._isSound) {\n return;\n }\n this._isSound = value;\n this.setSourceProperties();\n }\n public get isSound(): boolean {\n return this._isSound;\n }\n\n @Input({ transform: booleanAttribute })\n public set isVideo(value: boolean) {\n if (value === this._isVideo) {\n return;\n }\n this._isVideo = value;\n this.setSourceProperties();\n }\n public get isVideo(): boolean {\n return this._isVideo;\n }\n\n @Input({ transform: booleanAttribute })\n public set isFile(value: boolean) {\n if (value === this._isFile) {\n return;\n }\n this._isFile = value;\n this.setSourceProperties();\n }\n public get isFile(): boolean {\n return this._isFile;\n }\n\n @Input({ transform: booleanAttribute })\n public set isImage(value: boolean) {\n if (value === this._isImage) {\n return;\n }\n this._isImage = value;\n this.setSourceProperties();\n }\n public get isImage(): boolean {\n return this._isImage;\n }\n\n @Input({ transform: booleanAttribute })\n public set isBackground(value: boolean) {\n if (value === this._isBackground) {\n return;\n }\n this._isBackground = value;\n this.setSourceProperties();\n }\n public get isBackground(): boolean {\n return this._isBackground;\n }\n\n @Input({ transform: booleanAttribute })\n public set isIgnoreTheme(value: boolean) {\n if (value === this._isIgnoreTheme) {\n return;\n }\n this._isIgnoreTheme = value;\n this.setSourceProperties();\n }\n public get isIgnoreTheme(): boolean {\n return this._isIgnoreTheme;\n }\n\n public get name(): string {\n return this._name;\n }\n @Input()\n public set name(value: string) {\n if (value === this._name) {\n return;\n }\n this._name = value;\n this.setSourceProperties();\n }\n\n public get extension(): string {\n return this._extension;\n }\n @Input()\n public set extension(value: string) {\n if (value === this._extension) {\n return;\n }\n this._extension = value;\n this.setSourceProperties();\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend';\nimport { ViewUtil } from '../util/ViewUtil';\nimport { ThemeAssetDirective } from './ThemeAssetDirective';\n\n@Directive({\n selector: '[vi-theme-background]',\n standalone: false\n})\nexport class ThemeAssetBackgroundDirective extends ThemeAssetDirective {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, theme: ThemeService, themeAsset: ThemeAssetService) {\n super(element, theme, themeAsset);\n this.isBackground = true;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected addSourceProperties(): void {\n let value = 'url(' + this.source + ')';\n ViewUtil.setStyle(this.element, 'backgroundImage', value);\n }\n\n protected removeSourceProperties(): void {\n ViewUtil.removeStyle(this.element, 'backgroundImage');\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-theme-background')\n public set name(value: string) {\n super.name = value;\n }\n public get name(): string {\n return super.name;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend';\nimport { ThemeAssetDirective } from './ThemeAssetDirective';\n\n@Directive({\n selector: '[vi-theme-image]',\n standalone: false\n})\nexport class ThemeAssetImageDirective extends ThemeAssetDirective<HTMLImageElement> {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, theme: ThemeService, themeAsset: ThemeAssetService) {\n super(element, theme, themeAsset);\n this.isImage = true;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected addSourceProperties(): void {\n this.element.src = this.source;\n }\n protected removeSourceProperties(): void {\n this.element.src = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-theme-image')\n public set name(value: string) {\n super.name = value;\n }\n public get name(): string {\n return super.name;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend';\nimport { ThemeAssetDirective } from './ThemeAssetDirective';\n\n@Directive({\n selector: '[vi-theme-icon]',\n standalone: false\n})\nexport class ThemeAssetIconDirective extends ThemeAssetDirective<HTMLImageElement> {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, theme: ThemeService, themeAsset: ThemeAssetService) {\n super(element, theme, themeAsset);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected addSourceProperties(): void {\n this.element.src = this.source;\n }\n protected removeSourceProperties(): void {\n this.element.src = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-theme-icon')\n public set name(value: string) {\n super.name = value;\n }\n public get name(): string {\n return super.name;\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { ArrayUtil, Destroyable } from '@ts-core/common';\nimport { ThemeService } from '@ts-core/frontend';\n\n@Directive({\n selector: '[vi-theme-toggle]',\n standalone: false\n})\nexport class ThemeToggleDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private theme: ThemeService) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('click')\n protected clickHandler() {\n let items = this.theme.themes.collection;\n if (items.length > 1) {\n this.theme.theme = ArrayUtil.nextItem(this.theme.theme, items, true);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.theme = null;\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ICookieService, NativeWindowService } from '@ts-core/frontend';\nimport { IThemeServiceOptions, ThemeService, ThemeAssetService } from '@ts-core/frontend';\nimport { CookieModule } from '../cookie/CookieModule';\nimport { CookieService } from '../cookie/CookieService';\nimport { ThemeAssetBackgroundDirective } from './ThemeAssetBackgroundDirective';\nimport { ThemeAssetImageDirective } from './ThemeAssetImageDirective';\nimport { ThemeAssetIconDirective } from './ThemeAssetIconDirective';\nimport { ThemeToggleDirective } from './ThemeToggleDirective';\nimport { ThemeStyleDirective } from './ThemeStyleDirective';\nimport { ThemeStyleHoverDirective } from './ThemeStyleHoverDirective';\nimport * as _ from 'lodash';\n\nlet declarations = [\n ThemeToggleDirective,\n ThemeAssetImageDirective,\n ThemeAssetIconDirective,\n ThemeAssetBackgroundDirective,\n ThemeStyleDirective,\n ThemeStyleHoverDirective\n];\n\n@NgModule({\n imports: [CookieModule],\n declarations,\n exports: declarations\n})\nexport class ThemeModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: IThemeServiceOptions): ModuleWithProviders<ThemeModule> {\n return {\n ngModule: ThemeModule,\n providers: [\n {\n provide: THEME_OPTIONS,\n useValue: options || {}\n },\n {\n provide: ThemeService,\n deps: [NativeWindowService, CookieService, THEME_OPTIONS],\n useFactory: themeServiceFactory\n },\n {\n provide: ThemeAssetService,\n deps: [ThemeService, NativeWindowService],\n useFactory: themeAssetServiceFactory\n }\n ]\n };\n }\n}\n\nexport function themeServiceFactory(nativeWindow: NativeWindowService, cookie: ICookieService, options?: IThemeServiceOptions): ThemeService {\n if (!_.isNil(options) && _.isNil(options.service)) {\n options.service = cookie;\n }\n return new ThemeService(options, nativeWindow.document);\n}\n\nexport function themeAssetServiceFactory(theme: ThemeService): ThemeAssetService {\n return new ThemeAssetService(theme);\n}\n\nexport const THEME_OPTIONS = new InjectionToken<IThemeServiceOptions>(`THEME_OPTIONS`);\n","import { IDestroyable } from '@ts-core/common';\n\nexport abstract class IUser<T = any> implements IDestroyable {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n public id: UserUid;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract update(data: T): void;\n public abstract destroy(): void;\n}\n\nexport type UserUid = string | number;\n","import { DestroyableContainer } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { Observable, takeUntil, Subject, filter, map } from 'rxjs';\nimport { LoginBaseService, LoginBaseServiceEvent } from '../login/LoginBaseService';\nimport { IUser, UserUid } from './IUser';\n\nexport abstract class UserBaseService<U extends IUser = any, V = void> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _user: U;\n protected observer: Subject<ObservableData<V | UserBaseServiceEvent, U | Partial<U>>>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected login: LoginBaseService) {\n super();\n this.observer = new Subject();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n if (this.login.isLoggedIn) {\n this.loginedHandler();\n }\n\n this.login.events.pipe(takeUntil(this.destroyed)).subscribe(data => {\n if (data.type === LoginBaseServiceEvent.LOGIN_COMPLETE) {\n this.loginedHandler();\n } else if (data.type === LoginBaseServiceEvent.LOGOUT_FINISHED) {\n this.logoutedHandler();\n }\n });\n }\n\n protected initializeUser(data: any): void {\n this._user = this.createUser(data);\n }\n\n protected deinitializeUser(): void {\n this._user = null;\n }\n\n protected loginedHandler(): void {\n this.initializeUser(this.login.loginData);\n this.observer.next(new ObservableData(UserBaseServiceEvent.LOGINED, this.user));\n }\n\n protected logoutedHandler(): void {\n this.deinitializeUser();\n this.observer.next(new ObservableData(UserBaseServiceEvent.LOGOUTED));\n }\n\n protected abstract createUser(data: any): U;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public isUser(value: Partial<U> | UserUid): boolean {\n if (_.isNil(value) || _.isNil(this.user)) {\n return false;\n }\n if (_.isString(value) || _.isNumber(value)) {\n return value === this.user.id;\n }\n return value.id === this.user.id;\n }\n\n public userUpdate(data: any): void {\n if (!this.hasUser) {\n return;\n }\n this.user.update(data);\n this.observer.next(new ObservableData(UserBaseServiceEvent.CHANGED, data));\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this.observer)) {\n this.observer.complete();\n this.observer = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get events(): Observable<ObservableData<V | UserBaseServiceEvent, U | Partial<U>>> {\n return this.observer.asObservable();\n }\n\n public get logined(): Observable<U> {\n return this.events.pipe(\n filter(item => item.type === UserBaseServiceEvent.LOGINED),\n map(item => item.data as U)\n );\n }\n\n public get changed(): Observable<Partial<U>> {\n return this.events.pipe(\n filter(item => item.type === UserBaseServiceEvent.CHANGED),\n map(item => item.data)\n );\n }\n\n public get logouted(): Observable<void> {\n return this.events.pipe(\n filter(item => item.type === UserBaseServiceEvent.LOGOUTED),\n map(() => null)\n );\n }\n\n public get hasUser(): boolean {\n return !_.isNil(this._user);\n }\n\n public get isLogined(): boolean {\n return this.hasUser;\n }\n\n public get user(): U {\n return this._user;\n }\n\n public get id(): UserUid {\n return this.hasUser ? this.user.id : null;\n }\n}\n\nexport enum UserBaseServiceEvent {\n LOGINED = 'LOGINED',\n CHANGED = 'CHANGED',\n LOGOUTED = 'LOGOUTED'\n}\n","import { Observable } from 'rxjs';\nimport { Destroyable } from '@ts-core/common';\nimport { IWindowContent } from './IWindowContent';\nimport { IWindowConfig } from './IWindowConfig';\n\nexport abstract class IWindow<T = any> extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n abstract close(): void;\n\n abstract blink(): void;\n abstract shake(): void;\n abstract setOnTop(): void;\n\n abstract getWidth(): number;\n abstract getHeight(): number;\n abstract setWidth(value: number): void;\n abstract setHeight(value: number): void;\n abstract setSize(width: number, height: number): void;\n\n abstract getX(): number;\n abstract getY(): number;\n abstract setX(value: number): void;\n abstract setY(value: number): void;\n abstract move(x: number, y: number): void;\n\n abstract emit(event: string): void;\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public isOnTop: boolean = false;\n public isDisabled: boolean = false;\n public isMinimized: boolean = false;\n\n readonly events: Observable<string>;\n readonly container: HTMLElement;\n readonly wrapper: HTMLElement;\n readonly backdrop: HTMLElement;\n\n readonly config: IWindowConfig<T>;\n readonly content: IWindowContent<T>;\n}\n\nexport enum WindowEvent {\n OPENED = 'OPENED',\n CLOSED = 'CLOSED',\n CONTENT_READY = 'CONTENT_READY',\n\n MOVED = 'MOVED',\n RESIZED = 'RESIZED',\n DISABLED_CHANGED = 'DISABLED_CHANGED',\n MINIMIZED_CHANGED = 'MINIMIZED_CHANGED',\n IS_ON_TOP_CHANGED = 'IS_ON_TOP_CHANGED',\n\n EXPAND = 'EXPAND',\n SET_ON_TOP = 'SET_ON_TOP'\n}\n","export interface IWindowConfig<T = any> {\n id: string;\n isModal: boolean;\n isExpandable: boolean;\n isResizeable: boolean;\n isMinimizable: boolean;\n isDisableClose: boolean;\n isContentDragable: boolean;\n\n x: number;\n y: number;\n elementMinX: number;\n elementMaxX: number;\n elementMinY: number;\n elementMaxY: number;\n elementMinWidth: number;\n elementMaxWidth: number;\n elementMinHeight: number;\n elementMaxHeight: number;\n\n width: string;\n defaultWidth: number;\n defaultMinWidth: number;\n defaultMaxWidth: number;\n\n height: string;\n defaultHeight: number;\n defaultMinHeight: number;\n defaultMaxHeight: number;\n\n paddingTop: number;\n paddingLeft: number;\n paddingRight: number;\n paddingBottom: number;\n\n propertiesId: string;\n verticalAlign: WindowAlign;\n horizontalAlign: WindowAlign;\n\n data?: T;\n autoFocus: string;\n restoreFocus: boolean;\n delayFocusTrap: boolean;\n}\n\nexport enum WindowAlign {\n START = 'START',\n CENTER = 'CENTER',\n END = 'END'\n}\n","import * as _ from 'lodash';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { IWindowConfig, WindowAlign } from './IWindowConfig';\nimport { ViewUtil } from '../util/ViewUtil';\n\nexport abstract class WindowBase<T = any> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n protected static parseX<T>(value: number, config: IWindowConfig<T>): number {\n value = Math.max(value, config.elementMinX);\n value = Math.min(value, config.elementMaxX);\n return value;\n }\n\n protected static parseY<T>(value: number, config: IWindowConfig<T>): number {\n value = Math.max(value, config.elementMinY);\n value = Math.min(value, config.elementMaxY);\n return value;\n }\n\n protected static parseWidth<T>(value: number, config: IWindowConfig<T>): number {\n value = Math.max(value, config.elementMinWidth);\n value = Math.min(value, config.elementMaxWidth);\n return value;\n }\n\n protected static parseHeight<T>(value: number, config: IWindowConfig<T>): number {\n value = Math.max(value, config.elementMinHeight);\n value = Math.min(value, config.elementMaxHeight);\n return value;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _x: number = NaN;\n protected _width: number = NaN;\n\n protected _y: number = NaN;\n protected _height: number = NaN;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected abstract getConfig(): IWindowConfig<T>;\n protected abstract getContainer(): HTMLElement;\n\n protected setProperties(): void {\n let config = this.getConfig();\n if (!_.isNaN(config.defaultWidth)) {\n this.width = config.defaultWidth;\n }\n if (!_.isNaN(config.defaultHeight)) {\n this.height = config.defaultHeight;\n }\n }\n\n protected setPosition(): void {\n let config = this.getConfig();\n\n switch (config.horizontalAlign) {\n case WindowAlign.START:\n this.x = !_.isNaN(this.paddingLeft) ? this.paddingLeft : 0;\n break;\n case WindowAlign.END:\n let value = ViewUtil.getStageWidth() - this.calculateWidth();\n if (!_.isNaN(this.paddingRight)) {\n value -= this.paddingRight;\n }\n this.x = value;\n break;\n default:\n this.x = (ViewUtil.getStageWidth() - this.calculateWidth()) / 2;\n break;\n }\n\n switch (config.verticalAlign) {\n case WindowAlign.START:\n this.y = !_.isNaN(this.paddingTop) ? this.paddingTop : 0;\n break;\n case WindowAlign.END:\n let value = ViewUtil.getStageHeight() - this.calculateHeight();\n if (!_.isNaN(this.paddingBottom)) {\n value -= this.paddingBottom;\n }\n this.y = value;\n break;\n default:\n this.y = (ViewUtil.getStageHeight() - this.calculateHeight()) / 2;\n break;\n }\n }\n\n protected clearSize(): void {\n this._x = NaN;\n this._y = NaN;\n this._width = NaN;\n this._height = NaN;\n }\n\n protected commitSizeProperties(): void {}\n\n protected commitPositionProperties(): void {}\n\n protected updatePosition = (): void => this.setPosition();\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public calculateWidth(): number {\n return !_.isNaN(this.width) ? this.width : ViewUtil.getWidth(this.getContainer());\n }\n public calculateHeight(): number {\n return !_.isNaN(this.height) ? this.height : ViewUtil.getHeight(this.getContainer());\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n protected get width(): number {\n return this._width;\n }\n protected set width(value: number) {\n value = WindowBase.parseWidth(value, this.getConfig());\n if (value === this._width) {\n return;\n }\n this._width = value;\n this.commitSizeProperties();\n }\n\n protected get height(): number {\n return this._height;\n }\n protected set height(value: number) {\n value = WindowBase.parseWidth(value, this.getConfig());\n if (value === this._height) {\n return;\n }\n this._height = value;\n this.commitSizeProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get x(): number {\n return this._x;\n }\n\n public set x(value: number) {\n value = WindowBase.parseX(value, this.getConfig());\n if (value === this._x) {\n return;\n }\n this._x = value;\n this.commitPositionProperties();\n }\n\n public get y(): number {\n return this._y;\n }\n\n public set y(value: number) {\n value = WindowBase.parseY(value, this.getConfig());\n if (value === this._y) {\n return;\n }\n this._y = value;\n this.commitPositionProperties();\n }\n\n public get paddingTop(): number {\n return this.getConfig().paddingTop;\n }\n\n public get paddingLeft(): number {\n return this.getConfig().paddingLeft;\n }\n\n public get paddingRight(): number {\n return this.getConfig().paddingRight;\n }\n\n public get paddingBottom(): number {\n return this.getConfig().paddingBottom;\n }\n}\n","import * as _ from 'lodash';\nimport { IDestroyable } from '@ts-core/common';\nimport { IWindowConfig, WindowAlign } from './IWindowConfig';\nimport { ViewUtil } from '../util/ViewUtil';\n\nexport class WindowConfig<T = any> implements IWindowConfig<T>, IDestroyable {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public id: string;\n public isModal: boolean = false;\n public isExpandable: boolean = false;\n public isResizeable: boolean = false;\n public isMinimizable: boolean = false;\n public isDisableClose: boolean = false;\n public isContentDragable: boolean = true;\n\n public x: number = NaN;\n public y: number = NaN;\n public data: T;\n public propertiesId: string;\n\n public width: string;\n public minWidth: number;\n public maxWidth: number;\n public defaultWidth: number = NaN;\n public defaultMinWidth: number = NaN;\n public defaultMaxWidth: number = NaN;\n\n public height: string;\n public minHeight: number;\n public maxHeight: number;\n public defaultHeight: number = NaN;\n public defaultMinHeight: number = NaN;\n public defaultMaxHeight: number = NaN;\n\n public paddingTop: number = NaN;\n public paddingLeft: number = NaN;\n public paddingRight: number = NaN;\n public paddingBottom: number = NaN;\n\n public autoFocus: string;\n public restoreFocus: boolean;\n public delayFocusTrap: boolean;\n\n public verticalAlign: WindowAlign;\n public horizontalAlign: WindowAlign;\n\n protected _elementMaxX: number = NaN;\n protected _elementMinX: number = NaN;\n\n protected _elementMaxY: number = NaN;\n protected _elementMinY: number = NaN;\n\n protected _elementWidth: string;\n protected _elementMinWidth: number = NaN;\n protected _elementMaxWidth: number = NaN;\n\n protected _elementHeight: string;\n protected _elementMinHeight: number = NaN;\n protected _elementMaxHeight: number = NaN;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(isModal: boolean = false, isResizeable: boolean = false, width: number = NaN, height: number = NaN) {\n this.isModal = isModal;\n this.isResizeable = isResizeable;\n if (!_.isNaN(width)) {\n this.defaultWidth = width;\n }\n if (!_.isNaN(height)) {\n this.defaultHeight = height;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public setDefaultProperties(): void {\n this.width = this.elementWidth;\n this.maxWidth = this.elementMaxWidth;\n this.minWidth = this.elementMinWidth;\n\n this.height = this.elementHeight;\n this.maxHeight = this.elementMaxHeight;\n this.minHeight = this.elementMinHeight;\n }\n\n public destroy(): void {\n if (!_.isNil(this.data) && IDestroyable.instanceOf(this.data)) {\n this.data.destroy();\n }\n this.data = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get elementMinY(): number {\n if (!_.isNaN(this._elementMinY)) {\n return this._elementMinY;\n }\n this._elementMinY = 0 - ViewUtil.getStageHeight();\n if (!_.isNaN(this.paddingTop)) {\n this._elementMinY += this.paddingTop;\n }\n return this._elementMinY;\n }\n public get elementMaxY(): number {\n if (!_.isNaN(this._elementMaxY)) {\n return this._elementMaxY;\n }\n this._elementMaxY = ViewUtil.getStageHeight();\n if (!_.isNaN(this.paddingBottom)) {\n this._elementMaxY -= this.paddingBottom;\n }\n return this._elementMaxY;\n }\n\n public get elementMinX(): number {\n if (!_.isNaN(this._elementMinX)) {\n return this._elementMinX;\n }\n this._elementMinX = -ViewUtil.getStageWidth();\n if (!_.isNaN(this.paddingLeft)) {\n this._elementMinX += this.paddingLeft;\n }\n return this._elementMinX;\n }\n public get elementMaxX(): number {\n if (!_.isNaN(this._elementMaxX)) {\n return this._elementMaxX;\n }\n this._elementMaxX = ViewUtil.getStageWidth();\n if (!_.isNaN(this.paddingRight)) {\n this._elementMaxX -= this.paddingRight;\n }\n return this._elementMaxX;\n }\n\n public get elementWidth(): string {\n if (this._elementWidth) {\n return this._elementWidth;\n }\n this._elementWidth = 'auto';\n if (this.defaultWidth) {\n this._elementWidth = this.defaultWidth + 'px';\n }\n return this._elementWidth;\n }\n public get elementMinWidth(): number {\n if (!_.isNaN(this._elementMinWidth)) {\n return this._elementMinWidth;\n }\n this._elementMinWidth = 0;\n if (!_.isNaN(this.defaultMinWidth)) {\n let value = ViewUtil.getStageWidth();\n if (!_.isNaN(this.paddingLeft)) {\n value -= this.paddingLeft;\n }\n if (!_.isNaN(this.paddingRight)) {\n value -= this.paddingRight;\n }\n this._elementMinWidth = Math.min(this.defaultMinWidth, value);\n }\n return this._elementMinWidth;\n }\n public get elementMaxWidth(): number {\n if (!_.isNaN(this._elementMaxWidth)) {\n return this._elementMaxWidth;\n }\n this._elementMaxWidth = ViewUtil.getStageWidth();\n if (!_.isNaN(this.paddingLeft)) {\n this._elementMaxWidth -= this.paddingLeft;\n }\n if (!_.isNaN(this.paddingRight)) {\n this._elementMaxWidth -= this.paddingRight;\n }\n if (!_.isNaN(this.defaultMaxWidth)) {\n this._elementMaxWidth = Math.min(this.defaultMaxWidth, this._elementMaxWidth);\n }\n return this._elementMaxWidth;\n }\n\n public get elementHeight(): string {\n if (this._elementHeight) {\n return this._elementHeight;\n }\n this._elementHeight = 'auto';\n if (this.defaultHeight) {\n this._elementHeight = this.defaultHeight + 'px';\n }\n return this._elementHeight;\n }\n public get elementMinHeight(): number {\n if (!_.isNaN(this._elementMinHeight)) {\n return this._elementMinHeight;\n }\n this._elementMinHeight = 0;\n if (!_.isNaN(this.defaultMinHeight)) {\n let value = ViewUtil.getStageHeight();\n if (!_.isNaN(this.paddingTop)) {\n value -= this.paddingTop;\n }\n if (!_.isNaN(this.paddingBottom)) {\n value -= this.paddingBottom;\n }\n this._elementMinHeight = Math.min(this.defaultMinHeight, value);\n }\n return this._elementMinHeight;\n }\n\n public get elementMaxHeight(): number {\n if (!_.isNaN(this._elementMaxHeight)) {\n return this._elementMaxHeight;\n }\n this._elementMaxHeight = ViewUtil.getStageHeight();\n if (!_.isNaN(this.paddingTop)) {\n this._elementMaxHeight -= this.paddingTop;\n }\n if (!_.isNaN(this.paddingBottom)) {\n this._elementMaxHeight -= this.paddingBottom;\n }\n if (!_.isNaN(this.defaultMaxHeight)) {\n this._elementMaxHeight = Math.min(this.defaultMaxHeight, this._elementMaxHeight);\n }\n return this._elementMaxHeight;\n }\n}\n\nexport type WindowConfigOptions<T = any> = { [P in keyof WindowConfig<T>]?: any };\n","import { ObservableData, ClassType, Destroyable } from '@ts-core/common';\nimport { WindowConfigOptions } from './WindowConfig';\nimport { IWindow } from './IWindow';\nimport { Observable } from 'rxjs';\nimport { IWindowContent } from './IWindowContent';\nimport { IWindowConfig } from './IWindowConfig';\nimport { IQuestion, IQuestionOptions } from '../question/IQuestion';\nimport { WindowServiceEvent } from './WindowServiceEvent';\n\nexport abstract class WindowService extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract open<U extends IWindowContent<T>, T>(component: ClassType<U>, config: IWindowConfig<T>): U;\n\n public abstract get<T>(value: WindowId<T>): IWindowContent<T>;\n\n public abstract has<T>(value: WindowId<T>): boolean;\n\n public abstract setOnTop<T>(value: WindowId<T>): boolean;\n\n public abstract close<T>(value: WindowId<T>): void;\n\n public abstract closeAll(): void;\n\n // --------------------------------------------------------------------------\n //\n // \tAdditional Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion;\n\n public abstract question(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public abstract get events(): Observable<ObservableData<WindowServiceEvent, IWindow>>;\n\n public abstract get windows(): Map<IWindowConfig, IWindowContent>;\n}\n\nexport type WindowId<T> = string | IWindowConfig<T>;\n","export enum WindowServiceEvent {\n OPEN_STARTED = 'OPEN_STARTED',\n OPENED = 'OPENED',\n OPEN_FINISHED = 'OPEN_FINISHED',\n\n CLOSED = 'CLOSED',\n SETTED_ON_TOP = 'SETTED_ON_TOP'\n}\n","import { AfterViewInit, ElementRef, ViewContainerRef, Inject, Optional, Component, InjectionToken, Input, booleanAttribute } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { IWindow, WindowEvent } from './IWindow';\nimport { IWindowConfig } from './IWindowConfig';\nimport * as _ from 'lodash';\n\n@Component({ template: '' })\nexport abstract class IWindowContent<T = any> extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n // Properties=\n //\n // --------------------------------------------------------------------------\n\n protected _window: IWindow<T>;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(@Optional() @Inject(WINDOW_CONTENT_CONTAINER) public container: WindowContentContainer) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitWindowProperties(): void {\n this.commitConfigProperties();\n }\n\n protected commitConfigProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n this.emit(WindowEvent.CONTENT_READY);\n }\n\n public ngOnDestroy(): void {\n // do nothing, window will destroy content after closing\n if (_.isNil(this.window)) {\n super.ngOnDestroy();\n }\n }\n\n public blink(): void {\n if (!_.isNil(this.window)) {\n this.window.blink();\n }\n }\n\n public shake(): void {\n if (!_.isNil(this.window)) {\n this.window.shake();\n }\n }\n\n public emit(event: string): void {\n if (!_.isNil(this.window)) {\n this.window.emit(event);\n }\n }\n\n public close(): void {\n if (!_.isNil(this.window)) {\n this.window.close();\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.window = null;\n this.container = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Proxy Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get data(): T {\n return !_.isNil(this.config) ? this.config.data : null;\n }\n\n public get isOnTop(): boolean {\n return !_.isNil(this.window) ? this.window.isOnTop : false;\n }\n\n public get isMinimized(): boolean {\n return !_.isNil(this.window) ? this.window.isMinimized : false;\n }\n\n public get events(): Observable<string> {\n return !_.isNil(this.window) ? this.window.events : null;\n }\n\n @Input({ transform: booleanAttribute })\n public set isDisabled(value: boolean) {\n if (!_.isNil(this.window)) {\n this.window.isDisabled = value;\n }\n }\n public get isDisabled(): boolean {\n return !_.isNil(this.window) ? this.window.isDisabled : false;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get element(): ElementRef {\n if (_.isNil(this.container)) {\n return null;\n }\n return this.container instanceof ViewContainerRef ? this.container.element : this.container;\n }\n\n public get config(): IWindowConfig<T> {\n return !_.isNil(this.window) ? this.window.config : null;\n }\n\n public get window(): IWindow<T> {\n return this._window;\n }\n @Input()\n public set window(value: IWindow<T>) {\n if (value === this._window) {\n return;\n }\n this._window = value;\n if (!_.isNil(value)) {\n this.commitWindowProperties();\n }\n }\n}\n\nexport type WindowContentContainer = ElementRef | ViewContainerRef;\nexport const WINDOW_CONTENT_CONTAINER = new InjectionToken<WindowContentContainer>('WINDOW_CONTENT_CONTAINER');\n","import { ExtendedError } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class WindowClosedError extends ExtendedError<void, number> {\n // --------------------------------------------------------------------------\n //\n // Static Methods\n //\n // --------------------------------------------------------------------------\n\n public static CODE = ExtendedError.DEFAULT_ERROR_CODE;\n public static MESSAGE = 'WINDOW_CLOSED';\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(message: string = WindowClosedError.MESSAGE, code: number = WindowClosedError.CODE) {\n super(message, code);\n }\n}\n","import { IDestroyable } from '@ts-core/common';\nimport { INotificationContent } from './INotificationContent';\nimport { INotificationConfig } from './INotificationConfig';\nimport { Observable } from 'rxjs';\n\nexport abstract class INotification<T = any> implements IDestroyable {\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n abstract getX(): number;\n abstract getY(): number;\n abstract setX(value: number): void;\n abstract setY(value: number): void;\n abstract move(x: number, y: number): void;\n\n abstract getWidth(): number;\n abstract getHeight(): number;\n abstract setWidth(value: number): void;\n abstract setHeight(value: number): void;\n abstract setSize(width: number, height: number): void;\n\n abstract close(): void;\n abstract remove(): void;\n abstract destroy(): void;\n\n abstract emit(event: string): void;\n\n // --------------------------------------------------------------------------\n //\n // \tInterface Methods\n //\n // --------------------------------------------------------------------------\n\n readonly events: Observable<string>;\n readonly container: HTMLElement;\n\n readonly config: INotificationConfig<T>;\n readonly content: INotificationContent<T>;\n}\n\nexport enum NotificationEvent {\n REMOVED = 'REMOVED'\n}\n","import { AfterViewInit, Component, Input, ViewContainerRef } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { Observable } from 'rxjs';\nimport { INotification } from './INotification';\nimport { INotificationConfig } from './INotificationConfig';\nimport { WindowEvent } from '../window/IWindow';\nimport * as _ from 'lodash';\n\n@Component({ template: '' })\nexport abstract class INotificationContent<T = any> extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected timer: any;\n protected _config: INotificationConfig<T>;\n protected _notification: INotification<T>;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(public container: ViewContainerRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitNotificationProperties(): void {\n this.config = this.notification.config;\n }\n\n protected commitConfigProperties(): void {\n this.clearTimer();\n if (this.config.closeDuration > 0) {\n this.timer = setTimeout(this.timerHandler, this.config.closeDuration);\n }\n }\n\n protected clearTimer(): void {\n if (!_.isNil(this.timer)) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n protected timerHandler = (): void => this.handleCloseClick();\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public close(): void {\n if (!_.isNil(this.notification)) {\n this.notification.close();\n }\n }\n\n public remove(): void {\n if (!_.isNil(this.notification)) {\n this.notification.remove();\n }\n }\n\n public emit(event: string): void {\n if (!_.isNil(this.notification)) {\n this.notification.emit(event);\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.clearTimer();\n this.config = null;\n this.notification = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n this.emit(WindowEvent.CONTENT_READY);\n }\n\n public handleCloseClick(): void {\n this.clearTimer();\n if (!_.isNil(this.config) && this.config.isRemoveAfterClose) {\n this.remove();\n } else {\n this.close();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Proxy Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get data(): T {\n return this.config ? this.config.data : null;\n }\n\n public get events(): Observable<string> {\n return this.notification ? this.notification.events : null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get notification(): INotification<T> {\n return this._notification;\n }\n public set notification(value: INotification<T>) {\n if (value === this._notification) {\n return;\n }\n this._notification = value;\n if (this._notification) {\n this.commitNotificationProperties();\n }\n }\n\n @Input()\n public set config(value: INotificationConfig<T>) {\n if (value === this._config) {\n return;\n }\n this._config = value;\n if (this._config) {\n this.commitConfigProperties();\n }\n }\n public get config(): INotificationConfig<T> {\n return this._config;\n }\n}\n","import { WindowConfig } from '../window/WindowConfig';\nimport { INotificationConfig } from './INotificationConfig';\n\nexport class NotificationConfig<T = any> extends WindowConfig<T> implements INotificationConfig<T> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public icon: string;\n public sound: string;\n public iconId: string;\n public picture: string;\n\n public closeDuration: number;\n public isRemoveAfterClose: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(data?: T) {\n super();\n this.data = data;\n this.isModal = false;\n this.closeDuration = NaN;\n this.isRemoveAfterClose = false;\n }\n}\n\nexport type NotificationConfigOptions<T = any> = { [P in keyof NotificationConfig<T>]?: any };\n","export enum NotificationServiceEvent {\n OPENED = 'OPENED',\n CLOSED = 'CLOSED',\n ADDED = 'ADDED',\n REMOVED = 'REMOVED'\n}\n","import { ObservableData, ClassType, Destroyable } from '@ts-core/common';\nimport { WindowConfigOptions } from '../window/WindowConfig';\nimport { IWindow } from '../window/IWindow';\nimport { Observable } from 'rxjs';\nimport { IWindowContent } from '../window/IWindowContent';\nimport { IWindowConfig } from '../window/IWindowConfig';\nimport { IQuestion, IQuestionOptions } from '../question/IQuestion';\nimport { WindowServiceEvent } from '../window/WindowServiceEvent';\nimport { WindowId } from '../window/WindowService';\n\nexport abstract class BottomSheetService extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract open<U extends IWindowContent<T>, T>(component: ClassType<U>, config: IWindowConfig<T>): U;\n\n public abstract get<T>(value: WindowId<T>): IWindowContent<T>;\n\n public abstract has<T>(value: WindowId<T>): boolean;\n\n public abstract close<T>(value: WindowId<T>): void;\n\n public abstract closeAll(): void;\n\n // --------------------------------------------------------------------------\n //\n // \tAdditional Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion;\n\n public abstract question(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion;\n\n public abstract setOnTop<T>(value: WindowId<T>): boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public abstract get window(): IWindow;\n\n public abstract get events(): Observable<ObservableData<WindowServiceEvent, IWindow>>;\n}\n","import { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class LocalStorageService extends DestroyableContainer {\n //--------------------------------------------------------------------------\n //\n // \tProperties\n //\n //--------------------------------------------------------------------------\n\n protected storage: Storage;\n\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(storage: Storage) {\n super();\n this.storage = storage;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public get(key: string, defaultValue?: string): string {\n if (_.isNil(this.storage)) {\n return null;\n }\n return this.has(key) ? this.storage.getItem(key) : defaultValue;\n }\n\n public has(key: string): boolean {\n if (_.isNil(this.storage)) {\n return false;\n }\n return !_.isNil(this.storage.getItem(key));\n }\n\n public set(key: string, value: string): void {\n if (_.isNil(this.storage)) {\n return;\n }\n if (!_.isNil(value)) {\n this.storage.setItem(key, value);\n } else {\n this.remove(key);\n }\n }\n\n public remove(key: string): void {\n if (!_.isNil(this.storage)) {\n this.storage.removeItem(key);\n }\n }\n\n public clear(): void {\n if (!_.isNil(this.storage)) {\n this.storage.clear();\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.storage = null;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Properties\n //\n //--------------------------------------------------------------------------\n\n protected get length(): number {\n return this.storage.length;\n }\n}\n","import { ValueStorage } from './ValueStorage';\nimport * as _ from 'lodash';\n\nexport class JSONValueStorage<T = any> extends ValueStorage<T> {\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected serialize(value: string): T {\n return JSON.parse(value);\n }\n\n protected deserialize(value: T): string {\n return JSON.stringify(value);\n }\n}\n","import { DateUtil } from '@ts-core/common';\nimport { ValueStorage } from './ValueStorage';\nimport * as _ from 'lodash';\n\nexport class DateValueStorage extends ValueStorage<Date> {\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public defaultExpirationDelta: number = 0;\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected serialize(value: string): Date {\n return new Date(value);\n }\n\n protected deserialize(value: Date): string {\n return value.toISOString();\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public isMore(item: Date): boolean {\n return this.has() ? this.get().getTime() > item.getTime() : false;\n }\n\n public isLess(item: Date): boolean {\n return this.has() ? this.get().getTime() < item.getTime() : false;\n }\n\n public isEqual(item: Date): boolean {\n return this.has() ? this.get().getTime() === item.getTime() : false;\n }\n\n public isExpired(item: Date): boolean {\n return this.has() ? this.isLess(item) : true;\n }\n\n public isExpiredFromNow(delta?: number): boolean {\n if (_.isNil(delta)) {\n delta = this.defaultExpirationDelta;\n }\n return this.isExpired(DateUtil.getDate(Date.now() + delta));\n }\n}\n","import { ValueStorage } from './ValueStorage';\nimport * as _ from 'lodash';\n\nexport class BooleanValueStorage extends ValueStorage<boolean> {\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected serialize(value: string): boolean {\n return value === 'true';\n }\n\n protected deserialize(value: boolean): string {\n return value ? 'true' : 'false';\n }\n}\n","import { Compiler, Injectable, Injector, NgModuleFactory, NgModuleRef, Type } from '@angular/core';\nimport { Loadable, LoadableEvent } from '@ts-core/common';\nimport { ExtendedError } from '@ts-core/common';\nimport { MapCollection } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport * as _ from 'lodash';\n\n@Injectable({ providedIn: 'root' })\nexport class LazyModuleLoader<T extends ILazyModuleData = ILazyModuleData> extends Loadable {\n //--------------------------------------------------------------------------\n //\n // Properties\n //\n //--------------------------------------------------------------------------\n\n protected _modules: MapCollection<T>;\n\n //--------------------------------------------------------------------------\n //\n // Constructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n protected compiler: Compiler,\n protected injector: Injector\n ) {\n super();\n this._modules = new MapCollection('id');\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected async load(item: T): Promise<void> {\n item.reference = await this.loadReference(item.path);\n }\n\n protected async loadReference<T>(path: LazyModulePath<T>): Promise<NgModuleRef<T>> {\n let moduleFactory: NgModuleFactory<T> = null;\n let elementModuleOrFactory: NgModuleFactory<T> | Type<T> = await path();\n if (elementModuleOrFactory instanceof NgModuleFactory) {\n moduleFactory = elementModuleOrFactory;\n } else {\n moduleFactory = await this.compiler.compileModuleAsync(elementModuleOrFactory);\n }\n return moduleFactory.create(this.injector);\n }\n\n protected isNeedLoad(item: T): boolean {\n return _.isNil(item.reference);\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public async loadIfNeed(id: string): Promise<T> {\n let item = this.modules.get(id);\n if (_.isNil(item)) {\n throw new ExtendedError(`Unable to find \"${id}\" module: it must be registered first`);\n }\n if (!this.isNeedLoad(item)) {\n return item;\n }\n try {\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n await this.load(item);\n } finally {\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n }\n return item;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this._modules)) {\n this._modules.destroy();\n this._modules = null;\n }\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n public get modules(): MapCollection<T> {\n return this._modules;\n }\n}\n\nexport interface ILazyModuleData<T = any> {\n id: string;\n path?: LazyModulePath<T>;\n reference?: NgModuleRef<T>;\n}\n\nexport type LazyModulePath<T> = () => Promise<NgModuleFactory<T> | Type<T>>;\n","import { TransportEvent } from '@ts-core/common';\nimport { ITransportLazyModuleData } from './TransportLazyModule';\n\nexport class TransportLazyModuleLoadedEvent<T extends ITransportLazyModuleData = ITransportLazyModuleData> extends TransportEvent<T> {\n // --------------------------------------------------------------------------\n //\n // Public Static Properties\n //\n // --------------------------------------------------------------------------\n\n public static readonly NAME = 'TransportLazyModuleLoadedEvent';\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(request: T) {\n super(TransportLazyModuleLoadedEvent.NAME, request);\n }\n}\n","import { ITransportCommand, ITransportCommandOptions, ITransportEvent, ITransportSettings } from '@ts-core/common';\nimport { TransportLocal } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { LazyModuleLoader } from '../module/LazyModuleLoader';\nimport { ILogger } from '@ts-core/common';\nimport { ITransportLazyModuleData } from './TransportLazyModule';\nimport { TransportLazyModuleLoadedEvent } from './TransportLazyModuleLoadedEvent';\n\nexport class TransportLazy extends TransportLocal {\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n logger: ILogger,\n protected loader: LazyModuleLoader<ITransportLazyModuleData>,\n settings?: ITransportSettings\n ) {\n super(logger, settings, null);\n this.getDispatcher<TransportLazyModuleLoadedEvent<ITransportLazyModuleData>>(TransportLazyModuleLoadedEvent.NAME).subscribe(event =>\n this.moduleLoadedHandler(event.data)\n );\n this.logEventFilters.push(item => item.name !== TransportLazyModuleLoadedEvent.NAME);\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n protected moduleLoadedHandler(module: ITransportLazyModuleData): void {\n let item = this.loader.modules.get(module.id);\n if (_.isNil(item)) {\n item = this.loader.modules.add(module);\n }\n if (_.isNil(item.reference)) {\n item.reference = module.reference;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected async commandResponseRequestDispatch<U>(command: ITransportCommand<U>, options: ITransportCommandOptions, isNeedReply: boolean): Promise<void> {\n let item = this.getModuleByCommand(command.name);\n if (!_.isNil(item)) {\n await this.loader.loadIfNeed(item.id);\n }\n return super.commandResponseRequestDispatch(command, options, isNeedReply);\n }\n\n protected async eventRequestExecute<U>(event: ITransportEvent<U>): Promise<void> {\n let item = this.getModuleByEvent(event.name);\n if (!_.isNil(this.loader) && !_.isNil(item)) {\n this.loader.loadIfNeed(item.id).then(() => super.eventRequestExecute(event));\n } else {\n super.eventRequestExecute(event);\n }\n }\n\n protected getModuleByCommand(name: string): ITransportLazyModuleData {\n if (this.loader.modules.length === 0) {\n return null;\n }\n for (let item of this.loader.modules.collection) {\n if (_.isEmpty(item.commands)) {\n continue;\n }\n if (_.includes(item.commands, name)) {\n return item;\n }\n }\n return null;\n }\n\n protected getModuleByEvent(name: string): ITransportLazyModuleData {\n if (_.isNil(this.loader) || this.loader.modules.length === 0) {\n return null;\n }\n for (let item of this.loader.modules.collection) {\n if (_.isEmpty(item.events)) {\n continue;\n }\n if (_.includes(item.events, name)) {\n return item;\n }\n }\n return null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.loader = null;\n }\n}\n","import { NgModuleRef } from '@angular/core';\nimport { Transport } from '@ts-core/common';\nimport { ILazyModuleData } from '../module/LazyModuleLoader';\nimport { TransportLazyModuleLoadedEvent } from './TransportLazyModuleLoadedEvent';\n\nexport abstract class TransportLazyModule<T> implements ITransportLazyModuleData<T> {\n //--------------------------------------------------------------------------\n //\n // Constructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n public reference: NgModuleRef<T>,\n protected transport: Transport\n ) {\n this.moduleLoadedDispatch();\n }\n\n //--------------------------------------------------------------------------\n //\n // Protected Methods\n //\n //--------------------------------------------------------------------------\n\n protected moduleLoadedDispatch(): void {\n this.transport.dispatch(new TransportLazyModuleLoadedEvent(this));\n }\n\n //--------------------------------------------------------------------------\n //\n // Public Properties\n //\n //--------------------------------------------------------------------------\n\n public abstract get id(): string;\n\n public get events(): Array<string> {\n return new Array();\n }\n\n public get commands(): Array<string> {\n return new Array();\n }\n}\n\nexport interface ITransportLazyModuleData<T = any> extends ILazyModuleData<T> {\n events?: Array<string>;\n commands?: Array<string>;\n}\n","import { APP_INITIALIZER, InjectionToken, ModuleWithProviders, NgModule, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ILogger, Logger, LoggerLevel } from '@ts-core/common';\nimport { ICookieOptions } from '@ts-core/frontend';\nimport { ILanguageServiceOptions } from '@ts-core/frontend';\nimport { DefaultLogger } from '@ts-core/frontend';\nimport { LoadingService, NativeWindowService } from '@ts-core/frontend';\nimport { IThemeServiceOptions } from '@ts-core/frontend';\nimport { AssetModule } from './asset/AssetModule';\nimport { CookieModule } from './cookie/CookieModule';\nimport { CanDeactivateGuard } from './service/route/CanDeactivateGuard';\nimport { AspectRatioResizeDirective } from './directive/AspectRatioResizeDirective';\nimport { AutoScrollBottomDirective } from './directive/AutoScrollBottomDirective';\nimport { ClickToCopyDirective } from './directive/ClickToCopyDirective';\nimport { ClickToSelectDirective } from './directive/ClickToSelectDirective';\nimport { FocusDirective } from './directive/FocusDirective';\nimport { SelectOnFocusDirective } from './directive/SelectOnFocusDirective';\nimport { HTMLTitleDirective } from './directive/HTMLTitleDirective';\nimport { HTMLContentTitleDirective } from './directive/HTMLContentTitleDirective';\nimport { InfiniteScrollDirective } from './directive/InfiniteScrollDirective';\nimport { ResizeDirective } from './directive/ResizeDirective';\nimport { ScrollCheckDirective } from './directive/ScrollCheckDirective';\nimport { ScrollDirective } from './directive/ScrollDirective';\nimport { LanguageModule } from './language/LanguageModule';\nimport { CamelCasePipe } from './pipe/CamelCasePipe';\nimport { FinancePipe } from './pipe/FinancePipe';\nimport { MomentDateAdaptivePipe } from './pipe/MomentDateAdaptivePipe';\nimport { MomentDateFromNowPipe } from './pipe/MomentDateFromNowPipe';\nimport { MomentDatePipe } from './pipe/MomentDatePipe';\nimport { MomentTimePipe } from './pipe/MomentTimePipe';\nimport { NgModelErrorPipe } from './pipe/NgModelErrorPipe';\nimport { SanitizePipe } from './pipe/SanitizePipe';\nimport { StartCasePipe } from './pipe/StartCasePipe';\nimport { TimePipe } from './pipe/TimePipe';\nimport { TruncatePipe } from './pipe/TruncatePipe';\nimport { PrettifyPipe } from './pipe/PrettifyPipe';\nimport { ThemeModule } from './theme/ThemeModule';\nimport { IsServerDirective } from './directive/IsServerDirective';\nimport { IsBrowserDirective } from './directive/IsBrowserDirective';\nimport { DOCUMENT } from '@angular/common';\nimport { PlatformService } from './service/PlatformService';\nimport { ViewUtil } from './util/ViewUtil';\nimport { CookieService } from './cookie/CookieService';\nimport { LoginTokenStorage } from './login/LoginTokenStorage';\nimport { LocalStorageService } from './storage/LocalStorageService';\nimport * as _ from 'lodash';\n\nlet imports = [CookieModule, ThemeModule, LanguageModule, AssetModule];\n\nlet declarations = [\n TimePipe,\n FinancePipe,\n SanitizePipe,\n TruncatePipe,\n PrettifyPipe,\n CamelCasePipe,\n StartCasePipe,\n NgModelErrorPipe,\n\n IsServerDirective,\n IsBrowserDirective,\n\n MomentDatePipe,\n MomentTimePipe,\n MomentDateFromNowPipe,\n MomentDateAdaptivePipe,\n\n FocusDirective,\n ResizeDirective,\n ScrollDirective,\n ScrollCheckDirective,\n ClickToCopyDirective,\n SelectOnFocusDirective,\n ClickToSelectDirective,\n InfiniteScrollDirective,\n HTMLTitleDirective,\n HTMLContentTitleDirective,\n AutoScrollBottomDirective,\n AspectRatioResizeDirective\n];\n\nlet exports = [...imports, ...declarations];\n\n@NgModule({\n imports,\n declarations,\n exports\n})\nexport class VIModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: IVIOptions): ModuleWithProviders<VIModule> {\n return {\n ngModule: VIModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n deps: [NativeWindowService, RendererFactory2],\n useFactory: initializerFactory,\n multi: true\n },\n\n LoadingService,\n PlatformService,\n CanDeactivateGuard,\n\n { provide: VI_ANGULAR_OPTIONS, useValue: options || {} },\n { provide: Logger, deps: [VI_ANGULAR_OPTIONS], useFactory: loggerServiceFactory },\n { provide: NativeWindowService, deps: [DOCUMENT], useFactory: nativeWindowServiceFactory },\n { provide: LocalStorageService, deps: [NativeWindowService], useFactory: localStorageServiceFactory },\n { provide: LoginTokenStorage, deps: [LocalStorageService, CookieService], useFactory: loginTokenStorageServiceFactory },\n\n ...CookieModule.forRoot(options).providers,\n ...ThemeModule.forRoot(options ? options.themeOptions : null).providers,\n ...LanguageModule.forRoot(options ? options.languageOptions : null).providers\n ]\n };\n }\n}\n\nexport class IVIOptions extends ICookieOptions {\n loggerLevel?: LoggerLevel;\n themeOptions?: IThemeServiceOptions;\n languageOptions?: ILanguageServiceOptions;\n}\n\nexport function initializerFactory(nativeWindow: NativeWindowService, rendererFactory2: RendererFactory2): ViewUtil {\n ViewUtil.renderer = rendererFactory2.createRenderer(null, null);\n ViewUtil.document = nativeWindow.document;\n return () => Promise.resolve();\n}\n\nexport function loggerServiceFactory(options: IVIOptions): ILogger {\n return new DefaultLogger(!_.isNil(options.loggerLevel) ? options.loggerLevel : LoggerLevel.ALL);\n}\n\nexport function nativeWindowServiceFactory(document: Document): NativeWindowService {\n return new NativeWindowService(document);\n}\n\nexport function localStorageServiceFactory(nativeWindow: NativeWindowService): LocalStorageService {\n return new LocalStorageService(nativeWindow.window.localStorage);\n}\n\nexport function loginTokenStorageServiceFactory(local: LocalStorageService, cookies: CookieService): LoginTokenStorage {\n return new LoginTokenStorage(local, cookies);\n}\n\nexport const VI_ANGULAR_OPTIONS = new InjectionToken<IVIOptions>(`VI_ANGULAR_OPTIONS`);\n","//\nexport * from './application/ApplicationBaseComponent';\nexport * from './application/ApplicationComponent';\nexport * from './application/MessageBaseComponent';\n//\nexport * from './ApplicationInjector';\n//\nexport * from './asset/AssetBackgroundDirective';\nexport * from './asset/AssetBackgroundPipe';\nexport * from './asset/AssetIconPipe';\nexport * from './asset/AssetFilePipe';\nexport * from './asset/AssetVideoPipe';\nexport * from './asset/AssetSoundPipe';\nexport * from './asset/AssetImagePipe';\nexport * from './asset/AssetModule';\n//\nexport * from './cookie/CookieModule';\nexport * from './cookie/CookieOptions';\nexport * from './cookie/CookieService';\n//\nexport * from './directive/AspectRatioResizeDirective';\nexport * from './directive/AutoScrollBottomDirective';\nexport * from './directive/ClickToCopyDirective';\nexport * from './directive/ClickToSelectDirective';\nexport * from './directive/FocusDirective';\nexport * from './directive/SelectOnFocusDirective';\nexport * from './directive/InfiniteScrollDirective';\nexport * from './directive/ResizeDirective';\nexport * from './directive/StructureDirective';\nexport * from './directive/ScrollDirective';\nexport * from './directive/ScrollCheckDirective';\nexport * from './directive/HTMLTitleDirective';\nexport * from './directive/HTMLContentTitleDirective';\nexport * from './directive/IsBrowserDirective';\nexport * from './directive/IsServerDirective';\n//\nexport * from './language/LanguageModule';\nexport * from './language/LanguagePipe';\nexport * from './language/LanguagePipePure';\nexport * from './language/LanguagePipeHas';\nexport * from './language/LanguagePipeHasPure';\nexport * from './language/LanguageResolver';\nexport * from './language/LanguageRequireResolver';\nexport * from './language/LanguageDirective';\nexport * from './language/LanguageHasDirective';\n//\nexport * from './login/LoginGuard';\nexport * from './login/LoginIfCanGuard';\nexport * from './login/LoginNotGuard';\nexport * from './login/LoginResolver';\nexport * from './login/LoginBaseService';\nexport * from './login/LoginRequireResolver';\nexport * from './login/LoginTokenStorage';\n//\nexport * from './manager/FocusManager';\nexport * from './manager/ResizeManager';\n//\nexport * from './menu/MenuItem';\nexport * from './menu/MenuItemBase';\nexport * from './menu/MenuItems';\nexport * from './menu/NavigationMenuItem';\n//\nexport * from './list/IListItem';\nexport * from './list/ListItem';\nexport * from './list/ListItems';\nexport * from './list/select/ISelectListItem';\nexport * from './list/select/SelectListItem';\nexport * from './list/select/SelectListItems';\nexport * from './list/select/RouterSelectListItems';\n//\nexport * from './pipe/CamelCasePipe';\nexport * from './pipe/FinancePipe';\nexport * from './pipe/MomentDateAdaptivePipe';\nexport * from './pipe/MomentDateFromNowPipe';\nexport * from './pipe/MomentDatePipe';\nexport * from './pipe/MomentTimePipe';\nexport * from './pipe/NgModelErrorPipe';\nexport * from './pipe/SanitizePipe';\nexport * from './pipe/StartCasePipe';\nexport * from './pipe/TruncatePipe';\nexport * from './pipe/PrettifyPipe';\nexport * from './pipe/TimePipe';\n//\nexport * from './question/IQuestion';\nexport * from './question/QuestionManager';\n//\nexport * from './service/PipeBaseService';\nexport * from './service/PlatformService';\nexport * from './service/RouterBaseService';\nexport * from './service/ServiceWorkerService';\nexport * from './service/route/CanDeactivateGuard';\nexport * from './service/route/IRouterDeactivatable';\n//\nexport * from './theme/ThemeStyleHoverDirective';\nexport * from './theme/ThemeStyleDirective';\nexport * from './theme/ThemeAssetBackgroundDirective';\nexport * from './theme/ThemeAssetImageDirective';\nexport * from './theme/ThemeAssetIconDirective';\nexport * from './theme/ThemeAssetDirective';\nexport * from './theme/ThemeModule';\nexport * from './theme/ThemeToggleDirective';\n//\nexport * from './user/IUser';\nexport * from './user/UserBaseService';\n//\nexport * from './window/IWindow';\nexport * from './window/WindowBase';\nexport * from './window/WindowConfig';\nexport * from './window/WindowService';\nexport * from './window/WindowServiceEvent';\nexport * from './window/IWindowConfig';\nexport * from './window/IWindowContent';\nexport * from './window/WindowClosedError';\n//\nexport * from './notification/INotification';\nexport * from './notification/INotificationConfig';\nexport * from './notification/INotificationContent';\nexport * from './notification/NotificationConfig';\nexport * from './notification/NotificationService';\nexport * from './notification/NotificationServiceEvent';\n//\nexport * from './bottomSheet/BottomSheetService';\n//\nexport * from './storage/LocalStorageService';\nexport * from './storage/ValueStorage';\nexport * from './storage/JSONValueStorage';\nexport * from './storage/IValueStorage';\nexport * from './storage/DateValueStorage';\nexport * from './storage/BooleanValueStorage';\n//\nexport * from './module/LazyModuleLoader';\n//\nexport * from './transport/TransportLazy';\nexport * from './transport/TransportLazyModule';\nexport * from './transport/TransportLazyModuleLoadedEvent';\n//\nexport * from './util/ViewUtil';\n//\nexport * from './VIModule';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["declarations","i1.PlatformService","i1","i3.NotificationService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ts-core-angular.mjs","sources":["../../src/application/ApplicationBaseComponent.ts","../../src/application/ApplicationComponent.ts","../../src/application/MessageBaseComponent.ts","../../src/ApplicationInjector.ts","../../src/util/ViewUtil.ts","../../src/asset/AssetBackgroundDirective.ts","../../src/asset/AssetBackgroundPipe.ts","../../src/asset/AssetIconPipe.ts","../../src/asset/AssetFilePipe.ts","../../src/asset/AssetVideoPipe.ts","../../src/asset/AssetSoundPipe.ts","../../src/asset/AssetImagePipe.ts","../../src/asset/AssetModule.ts","../../src/cookie/CookieService.ts","../../src/service/PlatformService.ts","../../src/cookie/CookieModule.ts","../../src/cookie/CookieOptions.ts","../../src/manager/ResizeManager.ts","../../src/directive/AspectRatioResizeDirective.ts","../../src/directive/ScrollDirective.ts","../../src/directive/InfiniteScrollDirective.ts","../../src/directive/AutoScrollBottomDirective.ts","../../src/directive/ClickToCopyDirective.ts","../../src/directive/ClickToSelectDirective.ts","../../src/manager/FocusManager.ts","../../src/directive/FocusDirective.ts","../../src/directive/SelectOnFocusDirective.ts","../../src/directive/ResizeDirective.ts","../../src/directive/StructureDirective.ts","../../src/directive/ScrollCheckDirective.ts","../../src/language/LanguagePipe.ts","../../src/directive/HTMLTitleDirective.ts","../../src/directive/HTMLContentTitleDirective.ts","../../src/directive/IsBrowserDirective.ts","../../src/directive/IsServerDirective.ts","../../src/language/LanguagePipePure.ts","../../src/language/LanguageRequireResolver.ts","../../src/language/LanguageResolver.ts","../../src/language/LanguageDirective.ts","../../src/language/LanguagePipeHas.ts","../../src/language/LanguagePipeHasPure.ts","../../src/language/LanguageHasDirective.ts","../../src/language/LanguageModule.ts","../../src/login/LoginBaseService.ts","../../src/login/LoginRequireResolver.ts","../../src/login/LoginGuard.ts","../../src/login/LoginNotGuard.ts","../../src/login/LoginIfCanGuard.ts","../../src/login/LoginResolver.ts","../../src/storage/ValueStorage.ts","../../src/login/LoginTokenStorage.ts","../../src/menu/MenuItemBase.ts","../../src/menu/MenuItem.ts","../../src/menu/MenuItems.ts","../../src/menu/NavigationMenuItem.ts","../../src/list/ListItem.ts","../../src/list/ListItems.ts","../../src/list/select/SelectListItem.ts","../../src/list/select/SelectListItems.ts","../../src/list/select/RouterSelectListItems.ts","../../src/pipe/PrettifyPipe.ts","../../src/pipe/CamelCasePipe.ts","../../src/pipe/FinancePipe.ts","../../src/pipe/MomentDatePipe.ts","../../src/pipe/MomentDateAdaptivePipe.ts","../../src/pipe/MomentDateFromNowPipe.ts","../../src/pipe/MomentTimePipe.ts","../../src/pipe/NgModelErrorPipe.ts","../../src/pipe/SanitizePipe.ts","../../src/pipe/StartCasePipe.ts","../../src/pipe/TruncatePipe.ts","../../src/pipe/TimePipe.ts","../../src/question/IQuestion.ts","../../src/question/QuestionManager.ts","../../src/service/PipeBaseService.ts","../../src/service/RouterBaseService.ts","../../src/notification/NotificationService.ts","../../src/service/ServiceWorkerService.ts","../../src/service/route/CanDeactivateGuard.ts","../../src/theme/ThemeStyleDirective.ts","../../src/theme/ThemeStyleHoverDirective.ts","../../src/theme/ThemeAssetDirective.ts","../../src/theme/ThemeAssetBackgroundDirective.ts","../../src/theme/ThemeAssetImageDirective.ts","../../src/theme/ThemeAssetIconDirective.ts","../../src/theme/ThemeToggleDirective.ts","../../src/theme/ThemeModule.ts","../../src/user/IUser.ts","../../src/user/UserBaseService.ts","../../src/window/IWindow.ts","../../src/window/IWindowConfig.ts","../../src/window/WindowBase.ts","../../src/window/WindowConfig.ts","../../src/window/WindowService.ts","../../src/window/WindowServiceEvent.ts","../../src/window/IWindowContent.ts","../../src/window/WindowClosedError.ts","../../src/notification/INotification.ts","../../src/notification/INotificationContent.ts","../../src/notification/NotificationConfig.ts","../../src/notification/NotificationServiceEvent.ts","../../src/bottomSheet/BottomSheetService.ts","../../src/storage/LocalStorageService.ts","../../src/storage/JSONValueStorage.ts","../../src/storage/DateValueStorage.ts","../../src/storage/BooleanValueStorage.ts","../../src/module/LazyModuleLoader.ts","../../src/transport/TransportLazyModuleLoadedEvent.ts","../../src/transport/TransportLazy.ts","../../src/transport/TransportLazyModule.ts","../../src/VIModule.ts","../../src/public-api.ts","../../src/ts-core-angular.ts"],"sourcesContent":["import { AfterViewInit, Component } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { PromiseHandler } from '@ts-core/common';\nimport * as _ from 'lodash';\n\n@Component({ template: '' })\nexport abstract class ApplicationBaseComponent extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected timeout: any;\n protected isReadyAlreadyCalled: boolean;\n\n protected viewReadyDelay: number = NaN;\n protected viewReadyPromise: PromiseHandler<void, void>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n this.viewReadyPromise = PromiseHandler.create();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private makeViewReady = (): void => {\n this.viewReadyPromise.resolve();\n this.viewReadyHandler();\n this.checkReady();\n };\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected checkReady(): void {\n if (this.isReadyAlreadyCalled || !this.isReady()) {\n return;\n }\n this.isReadyAlreadyCalled = true;\n this.readyHandler();\n }\n\n protected isReady(): boolean {\n return this.isViewReady;\n }\n\n protected viewReadyHandler(): void {}\n\n protected abstract readyHandler(): void | Promise<void>;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n if (this.viewReadyDelay > 0) {\n PromiseHandler.delay(this.viewReadyDelay).then(this.makeViewReady);\n } else {\n this.makeViewReady();\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this.viewReadyPromise)) {\n this.viewReadyPromise.reject();\n this.viewReadyPromise = null;\n }\n\n if (!_.isNil(this.timeout)) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isViewReady(): boolean {\n return !_.isNil(this.viewReadyPromise) ? this.viewReadyPromise.isResolved : false;\n }\n public get viewReady(): Promise<void> {\n return !_.isNil(this.viewReadyPromise) ? this.viewReadyPromise.promise : null;\n }\n}\n","import { LoadableEvent } from '@ts-core/common';\nimport { Assets, AssetUrlProvider, ThemeService, LanguageService, SettingsBaseService } from '@ts-core/frontend';\nimport { Language } from '@ts-core/language';\nimport { takeUntil } from 'rxjs';\nimport { ApplicationBaseComponent } from './ApplicationBaseComponent';\nimport * as _ from 'lodash';\nimport moment from 'moment';\nimport numeral from 'numeral';\n\nexport abstract class ApplicationComponent<T extends SettingsBaseService> extends ApplicationBaseComponent {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private isLanguageLoaded: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n this.initializeAssets();\n this.initializeTheme();\n this.initializeLanguage();\n }\n\n protected initializeAssets(): void {\n Assets.provider = new AssetUrlProvider(this.settings.assetsUrl);\n }\n\n protected initializeTheme(): void {\n this.theme.initialize(this.settings.themes);\n }\n\n protected initializeLanguage(): void {\n this.language.initialize(`${this.settings.assetsUrl}language/`, this.settings.languages);\n this.language.events.pipe(takeUntil(this.destroyed)).subscribe(data => {\n switch (data.type) {\n case LoadableEvent.COMPLETE:\n this.languageLoadingComplete(data.data as Language);\n break;\n case LoadableEvent.ERROR:\n this.languageLoadingError(data.data as Language, data.error);\n break;\n }\n });\n }\n\n protected isReady(): boolean {\n return super.isReady() && this.isLanguageLoaded;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n protected languageLoadingComplete(item: Language): void {\n this.isLanguageLoaded = true;\n this.setLocale(item);\n this.checkReady();\n }\n\n protected abstract languageLoadingError(item: Language, error: Error): void;\n\n protected viewReadyHandler(): void {\n this.initialize();\n }\n\n protected setLocale(item: Language): void {\n moment.locale(item.locale);\n numeral.locale(item.locale);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Service Properties\n //\n // --------------------------------------------------------------------------\n\n protected abstract get settings(): T;\n\n protected abstract get theme(): ThemeService;\n protected abstract get language(): LanguageService;\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\n\nexport abstract class MessageBaseComponent extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n public text: string;\n public refreshText: string = 'Refresh';\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n protected route: ActivatedRoute,\n protected language: LanguageService\n ) {\n super();\n // this.login.isAutoLogin = true\n\n this.text = this.getText();\n if (this.language.isLoaded) {\n this.commitLanguageProperties();\n }\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(() => this.commitLanguageProperties());\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitLanguageProperties(): void {\n if (this.language.isHasTranslation('general.refresh')) {\n this.refreshText = this.language.translate('general.refresh');\n }\n }\n\n protected getText(): string {\n let value = this.getValue(this.route.snapshot.queryParams);\n if (_.isNil(value)) {\n value = this.getValue(this.route.snapshot.params);\n }\n return value;\n }\n\n protected getValue(data: any): string {\n for (let item of this.getMessageFields()) {\n let value = data[item];\n if (!_.isEmpty(value)) {\n return value;\n }\n }\n return null;\n }\n\n protected getMessageFields(): Array<string> {\n return ['text', 'message', 'error'];\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract refresh(): void;\n}\n","import { Injector } from '@angular/core';\nimport * as _ from 'lodash';\n\nlet applicationInjector: Injector;\n\nexport const APPLICATION_INJECTOR = (value?: Injector): Injector => {\n if (!_.isNil(value)) {\n applicationInjector = value;\n }\n return applicationInjector;\n};\n","import { ElementRef, Renderer2, RendererStyleFlags2, ViewContainerRef } from '@angular/core';\nimport { ExtendedError } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class ViewUtil {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n private static _renderer: Renderer2 = null;\n private static _document: Document = null;\n\n public static get renderer(): Renderer2 {\n if (_.isNil(ViewUtil._renderer)) {\n throw new ExtendedError(`ViewUtil is not initialized: renderer in nil`);\n }\n return ViewUtil._renderer;\n }\n public static set renderer(value: Renderer2) {\n if (value === ViewUtil._renderer) {\n return;\n }\n ViewUtil._renderer = value;\n }\n\n public static get document(): Document {\n return !_.isNil(ViewUtil._document) ? ViewUtil._document : document;\n }\n public static set document(value: Document) {\n ViewUtil._document = value;\n }\n\n public static get window(): Window {\n return this.document.defaultView;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private static copyToClipboard(): void {\n try {\n ViewUtil.document.execCommand('copy');\n } catch (error) {}\n }\n\n // --------------------------------------------------------------------------\n //\n //\tCommon Properties\n //\n // --------------------------------------------------------------------------\n\n public static parseElement<T extends HTMLElement = HTMLElement>(element: IViewElement<T>): T {\n if (element instanceof HTMLElement) {\n return element as T;\n }\n if (element instanceof ViewContainerRef) {\n element = element.element;\n }\n return !_.isNil(element) ? element.nativeElement : null;\n }\n\n public static createBase64(element: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): string {\n let value = null;\n let canvas = ViewUtil.createElement('canvas');\n ViewUtil.setProperty(canvas, 'width', element.offsetWidth);\n ViewUtil.setProperty(canvas, 'height', element.offsetHeight);\n\n try {\n let context = canvas.getContext('2d');\n context.drawImage(element, 0, 0, element.offsetWidth, element.offsetHeight);\n value = canvas.toDataURL('image/jpeg', 1.0);\n value = value.replace('data:image/jpeg;base64,', '');\n } catch (error) {}\n return value;\n }\n\n public static selectContent(container: IViewElement, isNeedCopyToClipboard: boolean = false): void {\n container = ViewUtil.parseElement(container);\n if (container instanceof HTMLInputElement || container instanceof HTMLTextAreaElement) {\n let isWasDisabled = container.disabled;\n if (isWasDisabled) {\n container.disabled = false;\n }\n container.select();\n if (isNeedCopyToClipboard) {\n ViewUtil.copyToClipboard();\n }\n if (isWasDisabled) {\n container.disabled = true;\n }\n } else {\n let selection = ViewUtil.window.getSelection();\n selection.removeAllRanges();\n\n let range = ViewUtil.document.createRange();\n if (!_.isNil(container)) {\n range.selectNodeContents(container);\n }\n selection.addRange(range);\n\n if (isNeedCopyToClipboard) {\n ViewUtil.copyToClipboard();\n }\n }\n }\n\n public static setBackground(container: IViewElement, image: string, repeat: string = 'repeat', error?: string): void {\n if (_.isNil(image)) {\n ViewUtil.removeStyle(container, 'backgroundImage');\n ViewUtil.removeStyle(container, 'backgroundRepeat');\n return;\n }\n\n image = ViewUtil.getBackgroundUrl(image);\n if (!_.isEmpty(error)) {\n image += `, ${ViewUtil.getBackgroundUrl(error)}`;\n }\n\n ViewUtil.setStyle(container, 'backgroundImage', image);\n ViewUtil.setStyle(container, 'backgroundRepeat', repeat);\n }\n\n public static getBackgroundUrl(item: string): string {\n return !item.includes('url(') ? `url(${item})` : item;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tChild Methods\n //\n // --------------------------------------------------------------------------\n\n public static createElement<T = any>(name: string, className?: string, innerHTML?: string): T {\n let element = ViewUtil.renderer.createElement(name);\n if (!_.isNil(name)) {\n ViewUtil.setProperty(element, 'className', className);\n }\n if (!_.isNil(innerHTML)) {\n ViewUtil.setProperty(element, 'innerHTML', innerHTML);\n }\n return element;\n }\n\n public static appendChild(parent: any, child: any): void {\n if (!_.isNil(parent) && !_.isNil(child)) {\n ViewUtil.renderer.appendChild(parent, child);\n }\n }\n\n public static removeChild(parent: any, child: any): void {\n if (!_.isNil(parent) && !_.isNil(child)) {\n ViewUtil.renderer.removeChild(parent, child);\n }\n }\n\n public static toggleChild(container: Node, child: Node, value: boolean): void {\n let isContains = container.contains(child);\n if (value && !isContains) {\n ViewUtil.appendChild(container, child);\n }\n if (!value && isContains) {\n ViewUtil.removeChild(container, child);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tSize Methods\n //\n // --------------------------------------------------------------------------\n\n public static getStageWidth(): number {\n return ViewUtil.document.body?.clientWidth || ViewUtil.window.innerWidth;\n }\n\n public static getStageHeight(): number {\n return ViewUtil.document.body?.clientHeight || ViewUtil.window.innerHeight;\n }\n\n public static getCanvasContext2d(container: IViewElement<HTMLCanvasElement>, options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D {\n let canvas = ViewUtil.parseElement(container);\n try {\n return canvas.getContext('2d', options);\n } catch (error) {\n return null;\n }\n }\n\n public static getBoundingRectangle(container: IViewElement): DOMRect {\n container = ViewUtil.parseElement(container);\n if (_.isNil(container) || _.isNil(container.getBoundingClientRect)) {\n return {\n x: NaN,\n y: NaN,\n width: NaN,\n height: NaN,\n top: NaN,\n right: NaN,\n left: NaN,\n bottom: NaN\n } as DOMRect;\n }\n return container.getBoundingClientRect();\n }\n\n public static getWidth(container: IViewElement): number {\n container = ViewUtil.parseElement(container);\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'width'));\n if (_.isNaN(value)) {\n value = ViewUtil.getBoundingRectangle(container).width;\n }\n if (_.isNaN(value)) {\n value = container.offsetWidth;\n }\n return value;\n }\n\n public static setWidth(container: IViewElement, value: number, isNeedCheckLimits: boolean = false): boolean {\n if (_.isNil(container) || _.isNaN(value)) {\n return false;\n }\n\n if (\n isNeedCheckLimits &&\n (value < ViewUtil.getMinWidth(container) || value > ViewUtil.getMaxWidth(container) || value === ViewUtil.getWidth(container))\n ) {\n return false;\n }\n\n ViewUtil.setStyle(container, 'width', value + 'px');\n return true;\n }\n\n public static getMaxWidth(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'maxWidth'));\n if (_.isNaN(value)) {\n value = Number.POSITIVE_INFINITY;\n }\n return value;\n }\n\n public static getMinWidth(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'minWidth'));\n if (_.isNaN(value)) {\n value = 0;\n }\n return value;\n }\n\n public static getHeight(container: IViewElement): number {\n container = ViewUtil.parseElement(container);\n if (_.isNil(container)) {\n return NaN;\n }\n\n let value = parseFloat(ViewUtil.getStyle(container, 'height'));\n if (_.isNaN(value)) {\n value = ViewUtil.getBoundingRectangle(container).height;\n }\n if (_.isNaN(value)) {\n value = container.offsetHeight;\n }\n return value;\n }\n public static setHeight(container: IViewElement, value: number, isNeedCheckLimits: boolean = false): boolean {\n if (_.isNil(container) || _.isNaN(value)) {\n return false;\n }\n if (\n isNeedCheckLimits &&\n (value < ViewUtil.getMinHeight(container) || value > ViewUtil.getMaxHeight(container) || value === ViewUtil.getHeight(container))\n ) {\n return false;\n }\n ViewUtil.setStyle(container, 'height', value + 'px');\n return true;\n }\n public static getMaxHeight(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'maxHeight'));\n if (_.isNaN(value)) {\n value = Number.POSITIVE_INFINITY;\n }\n return value;\n }\n public static getMinHeight(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'minHeight'));\n if (isNaN(value)) {\n value = 0;\n }\n return value;\n }\n\n public static size(container: IViewElement, width: number, height: number, isNeedCheckLimits: boolean): void {\n ViewUtil.setWidth(container, width, isNeedCheckLimits);\n ViewUtil.setHeight(container, height, isNeedCheckLimits);\n }\n\n public static getX(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'left'));\n return _.isNaN(value) ? 0 : value;\n }\n\n public static setX(container: IViewElement, value: number): void {\n if (!_.isNil(container) && !_.isNaN(value)) {\n ViewUtil.setStyle(container, 'left', value + 'px');\n }\n }\n\n public static getY(container: IViewElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'top'));\n return _.isNaN(value) ? 0 : value;\n }\n public static setY(container: IViewElement, value: number): void {\n if (!_.isNil(container) && !_.isNaN(value)) {\n ViewUtil.setStyle(container, 'top', value + 'px');\n }\n }\n public static move(container: IViewElement, x: number, y: number): void {\n ViewUtil.setX(container, x);\n ViewUtil.setY(container, y);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tFocus Methods\n //\n // --------------------------------------------------------------------------\n\n public static focusInput(input: HTMLInputElement | HTMLTextAreaElement): void {\n let caretIndex = 0;\n if (!_.isNil(input.value)) {\n caretIndex = Math.max(0, input.value.toString().length);\n }\n input.focus();\n input.setSelectionRange(caretIndex, caretIndex);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tClasses Methods\n //\n // --------------------------------------------------------------------------\n\n public static addClass(container: IViewElement, name: string): void {\n if (_.isEmpty(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (!_.isNil(container)) {\n ViewUtil.renderer.addClass(container, name);\n }\n }\n\n public static addClasses(container: IViewElement, names: string): void {\n if (_.isEmpty(names)) {\n return;\n }\n names.split(' ').forEach(name => ViewUtil.addClass(container, name));\n }\n\n public static removeClass(container: IViewElement, name: string): void {\n if (_.isEmpty(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (!_.isNil(container)) {\n ViewUtil.renderer.removeClass(container, name);\n }\n }\n\n public static removeClasses(container: IViewElement, names: string): void {\n if (_.isEmpty(names)) {\n return;\n }\n names.split(' ').forEach(name => ViewUtil.removeClass(container, name));\n }\n\n public static hasClass(container: IViewElement, name: string): boolean {\n if (_.isNil(name)) {\n return false;\n }\n container = ViewUtil.parseElement(container);\n return !_.isNil(container) ? container.classList.contains(name) : false;\n }\n\n public static toggleClass(container: IViewElement, name: string, value: boolean): void {\n if (value) {\n ViewUtil.addClass(container, name);\n } else {\n ViewUtil.removeClass(container, name);\n }\n }\n\n public static toggleClasses(container: IViewElement, name: string, value: boolean): void {\n if (value) {\n ViewUtil.addClasses(container, name);\n } else {\n ViewUtil.removeClasses(container, name);\n }\n }\n\n public static getProperty(container: IViewElement, name: string): any {\n if (_.isNil(name)) {\n return null;\n }\n container = ViewUtil.parseElement(container);\n return !_.isNil(container) ? container[name] : null;\n }\n\n public static setProperty(container: IViewElement, name: string, value: any): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n if (!_.isNil(value)) {\n ViewUtil.renderer.setProperty(container, name, value);\n } else {\n ViewUtil.removeProperty(container, name);\n }\n }\n\n public static removeProperty(container: IViewElement, name: string): void {\n ViewUtil.removeAttribute(container, name);\n }\n\n public static getAttribute(container: IViewElement, name: string): any {\n if (_.isNil(name)) {\n return null;\n }\n container = ViewUtil.parseElement(container);\n return !_.isNil(container) ? container.getAttribute(name) : null;\n }\n\n public static removeAttribute(container: IViewElement, name: string): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n ViewUtil.renderer.removeAttribute(container, name);\n }\n\n public static setAttribute(container: IViewElement, name: string, value: any): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n if (!_.isNil(value)) {\n ViewUtil.renderer.setAttribute(container, name, value);\n } else {\n ViewUtil.removeAttribute(container, name);\n }\n }\n\n public static getStyle(container: IViewElement, name: string): any {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return null;\n }\n return container.style[name];\n }\n\n public static setStyle(container: IViewElement, name: string, value: any, flags?: RendererStyleFlags2): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n if (value !== ViewUtil.getStyle(container, name)) {\n ViewUtil.renderer.setStyle(container, name, value, flags);\n }\n }\n\n public static removeStyle(container: IViewElement, name: string, flags?: RendererStyleFlags2): void {\n container = ViewUtil.parseElement(container);\n if (_.isNil(name) || _.isNil(container)) {\n return;\n }\n ViewUtil.renderer.removeStyle(container, name, flags);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tVideo Methods\n //\n // --------------------------------------------------------------------------\n\n public static createVideo(isMute: boolean = true, isInline: boolean = false): HTMLVideoElement {\n let video = ViewUtil.createElement('video');\n ViewUtil.setProperty(video, 'autoplay', true);\n if (isMute) {\n ViewUtil.setVideoMuteParameters(video, isMute);\n }\n if (isInline) {\n ViewUtil.setVideoInlineParameters(video);\n }\n return video;\n }\n\n public static setVideoMuteParameters(video: HTMLVideoElement, isMute: boolean = true): void {\n if (!_.isNil(video)) {\n video.muted = video.defaultMuted = isMute;\n }\n }\n\n public static setVideoInlineParameters(video: HTMLVideoElement): void {\n ViewUtil.setAttribute(video, 'webkit-playsinline', 1);\n ViewUtil.setAttribute(video, 'playsinline', true);\n }\n\n public static getVideoError(video: HTMLVideoElement): string {\n if (_.isNil(video) || _.isNil(video.error)) {\n return null;\n }\n\n let error: MediaError = video.error;\n let value = 'Video error ' + video.src + ', ';\n switch (error.code) {\n case MediaError.MEDIA_ERR_ABORTED:\n value += 'media aborted';\n break;\n case MediaError.MEDIA_ERR_DECODE:\n value += 'error to decode';\n break;\n case MediaError.MEDIA_ERR_NETWORK:\n value += 'network error';\n break;\n case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:\n value += 'source not supported';\n break;\n }\n return value;\n }\n\n public static playVideo(video: HTMLVideoElement): Promise<void> {\n if (_.isNil(video)) {\n return null;\n }\n\n try {\n return video.play();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n public static playAudio(audio: HTMLAudioElement): Promise<void> {\n if (_.isNil(audio)) {\n return null;\n }\n try {\n return audio.play();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n public static pauseVideo(video: HTMLVideoElement): void {\n if (!_.isNil(video)) {\n video.pause();\n }\n }\n\n public static isVideoPlaying(video: HTMLVideoElement): boolean {\n return !_.isNil(video) ? !video.paused && !video.ended : false;\n }\n\n public static loadVideo(video: HTMLVideoElement): void {\n if (!_.isNil(video)) {\n video.load();\n }\n }\n\n public static stopVideoIfNeed(video: HTMLVideoElement): void {\n if (!_.isNil(video) && (!_.isNil(video.src) || !_.isNil(video.srcObject))) {\n ViewUtil.stopVideo(video);\n }\n }\n\n public static stopVideo(video: HTMLVideoElement): void {\n if (_.isNil(video)) {\n return;\n }\n\n if (video.srcObject instanceof MediaStream) {\n let tracks = video.srcObject.getTracks();\n tracks.forEach(track => track.stop());\n }\n\n video.srcObject = null;\n\n video.pause();\n video.src = '';\n video.load();\n }\n\n public static disposeVideo(video: HTMLVideoElement): void {\n ViewUtil.stopVideo(video);\n ViewUtil.removeChild(video.parentNode, video);\n video.remove();\n }\n\n public static disposeVideos(container: IViewElement): void {\n container = ViewUtil.parseElement(container);\n for (let i = container.children.length - 1; i >= 0; i--) {\n let item = container.children.item(i);\n if (item instanceof HTMLVideoElement) {\n ViewUtil.disposeVideo(item);\n }\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tObject Methods\n //\n // --------------------------------------------------------------------------\n\n public static disposeObjects(container: IViewElement, isIEBrowser?: boolean): void {\n container = ViewUtil.parseElement(container);\n for (let i = container.children.length - 1; i >= 0; i--) {\n let item = container.children.item(i);\n if (item instanceof HTMLObjectElement) {\n ViewUtil.disposeObject(item, isIEBrowser);\n }\n }\n }\n\n public static disposeObject(object: HTMLObjectElement, isIEBrowser?: boolean): void {\n if (isIEBrowser && object['readyState'] === 4) {\n for (let i in object) {\n if (_.isFunction(object[i])) {\n object[i] = null;\n }\n }\n }\n ViewUtil.removeChild(object.parentNode, object);\n }\n}\n\nexport type IViewElement<T extends HTMLElement = HTMLElement> = HTMLElement | ElementRef<T> | ViewContainerRef;\n","import { Directive, ElementRef, Input, booleanAttribute } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { Assets } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-asset-background]',\n standalone: false\n})\nexport class AssetBackgroundDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private _isUrl: boolean = false;\n private _isIcon: boolean = false;\n private _isImage: boolean = false;\n\n private _repeat: string = 'repeat';\n private _extension: string = 'png';\n private _background: string;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private element: ElementRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected setStyleProperties(): void {\n let url = this.getUrl(this.background, this.isImage, this.isIcon, this.isUrl);\n ViewUtil.setBackground(this.element, url, this.repeat);\n }\n\n private getUrl(id: string, isImage?: boolean, isIcon?: boolean, isUrl?: boolean): string {\n if (_.isNil(id)) {\n return null;\n }\n if (isUrl) {\n return id;\n }\n if (isImage) {\n return Assets.getImage(id, this.extension);\n }\n if (isIcon) {\n return Assets.getIcon(id, this.extension);\n }\n return Assets.getBackground(id, this.extension);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.element = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input({ transform: booleanAttribute })\n public set isIcon(value: boolean) {\n if (value === this._isIcon) {\n return;\n }\n this._isIcon = value;\n this.setStyleProperties();\n }\n public get isIcon(): boolean {\n return this._isIcon;\n }\n\n @Input({ transform: booleanAttribute })\n public set isImage(value: boolean) {\n if (value === this._isImage) {\n return;\n }\n this._isImage = value;\n this.setStyleProperties();\n }\n public get isImage(): boolean {\n return this._isImage;\n }\n\n @Input({ transform: booleanAttribute })\n public set isUrl(value: boolean) {\n if (value === this._isUrl) {\n return;\n }\n this._isUrl = value;\n this.setStyleProperties();\n }\n public get isUrl(): boolean {\n return this._isUrl;\n }\n\n @Input()\n public set repeat(value: string) {\n if (value === this._repeat) {\n return;\n }\n this._repeat = value;\n this.setStyleProperties();\n }\n public get repeat(): string {\n return this._repeat;\n }\n\n @Input()\n public set extension(value: string) {\n if (value === this._extension) {\n return;\n }\n this._extension = value;\n this.setStyleProperties();\n }\n public get extension(): string {\n return this._extension;\n }\n\n @Input('vi-asset-background')\n public set background(value: string) {\n if (value === this._background) {\n return;\n }\n this._background = value;\n this.setStyleProperties();\n }\n public get background(): string {\n return this._background;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetBackground',\n standalone: false\n})\nexport class AssetBackgroundPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'png'): string {\n return Assets.getBackground(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetIcon',\n standalone: false\n})\nexport class AssetIconPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'png'): string {\n return Assets.getIcon(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetFile',\n standalone: false\n})\nexport class AssetFilePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string): string {\n return Assets.getFile(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetVideo',\n standalone: false\n})\nexport class AssetVideoPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'mp4'): string {\n return Assets.getVideo(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetSound',\n standalone: false\n})\nexport class AssetSoundPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'mp3'): string {\n return Assets.getSound(name, extension);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viAssetImage',\n standalone: false\n})\nexport class AssetImagePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(name: string, extension: string = 'png'): string {\n return Assets.getImage(name, extension);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AssetBackgroundDirective } from './AssetBackgroundDirective';\nimport { AssetBackgroundPipe } from './AssetBackgroundPipe';\nimport { AssetFilePipe } from './AssetFilePipe';\nimport { AssetIconPipe } from './AssetIconPipe';\nimport { AssetImagePipe } from './AssetImagePipe';\nimport { AssetSoundPipe } from './AssetSoundPipe';\nimport { AssetVideoPipe } from './AssetVideoPipe';\n\nlet declarations = [AssetImagePipe, AssetIconPipe, AssetFilePipe, AssetSoundPipe, AssetVideoPipe, AssetBackgroundPipe, AssetBackgroundDirective];\n\n@NgModule({\n imports: [CommonModule],\n exports: declarations,\n declarations\n})\nexport class AssetModule {}\n","import { ICookieOptions, ICookieService } from '@ts-core/frontend';\nimport { CookieOptionsProvider } from 'ngx-cookie';\nimport { CookieOptions } from './CookieOptions';\nimport * as Cookie from 'ngx-cookie';\nimport * as _ from 'lodash';\n\nexport class CookieService extends Cookie.CookieService implements ICookieService {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(document: Document, options: CookieOptions, isPlatformBrowser: boolean) {\n super(document, { options } as CookieOptionsProvider, new CookieWriterService(document, isPlatformBrowser));\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public has(key: string): boolean {\n return !_.isNil(super.get(key));\n }\n\n public get<T = string>(key: string, defaultValue?: T): T {\n return this.has(key) ? (super.get(key) as T) : defaultValue;\n }\n\n public getObject<T = any>(key: string, defaultValue?: T): T {\n return this.has(key) ? (super.getObject(key) as T) : defaultValue;\n }\n\n public put<T = string>(key: string, value: T, options?: CookieOptions): void {\n super.put(key, value as string, options);\n }\n\n public putObject<T = any>(key: string, value: T, options?: CookieOptions): void {\n super.putObject(key, value as object, options);\n }\n\n public update(key: string, value: string, options?: ICookieOptions): void {\n this.put(key, value, options);\n }\n\n public updateObject(key: string, value: Object, options?: ICookieOptions): void {\n this.putObject(key, value, options);\n }\n}\n\nclass CookieWriterService extends Cookie.CookieWriterService {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private isPlatformBrowser: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(document: Document, isPlatformBrowser: boolean) {\n super(document);\n this.isPlatformBrowser = isPlatformBrowser;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public readAllAsString(): string {\n return this.isPlatformBrowser ? super.readAllAsString() : '';\n }\n\n public write(name: string, value: string | undefined, options?: CookieOptions): void {\n if (this.isPlatformBrowser) {\n super.write(name, value, options);\n }\n }\n}\n","import { Injectable, PLATFORM_ID, Inject } from '@angular/core';\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { DestroyableContainer } from '@ts-core/common';\n\n@Injectable({ providedIn: 'root' })\nexport class PlatformService extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n private _isPlatformServer: boolean;\n private _isPlatformBrowser: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(@Inject(PLATFORM_ID) platformId: string) {\n super();\n this._isPlatformServer = isPlatformServer(platformId);\n this._isPlatformBrowser = isPlatformBrowser(platformId);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isPlatformServer(): boolean {\n return this._isPlatformServer;\n }\n\n public get isPlatformBrowser(): boolean {\n return this._isPlatformBrowser;\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ICookieOptions, NativeWindowService } from '@ts-core/frontend';\nimport { CookieService } from './CookieService';\nimport { PlatformService } from '../service/PlatformService';\nimport * as _ from 'lodash';\nimport { DOCUMENT } from '@angular/common';\n\n@NgModule()\nexport class CookieModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: ICookieOptions): ModuleWithProviders<CookieModule> {\n return {\n ngModule: CookieModule,\n providers: [\n {\n provide: COOKIE_OPTIONS,\n useValue: options || {}\n },\n {\n provide: CookieService,\n deps: [NativeWindowService, COOKIE_OPTIONS, PlatformService],\n useFactory: cookieServiceFactory\n }\n ]\n };\n }\n}\n\nexport function cookieServiceFactory(nativeWindow: NativeWindowService, options: ICookieOptions, platform: PlatformService): CookieService {\n options = _.assign(\n {\n path: '/',\n domain: null,\n expires: null,\n secure: false,\n httpOnly: false\n },\n options\n );\n return new CookieService(nativeWindow.document, options, platform.isPlatformBrowser);\n}\n\nexport const COOKIE_OPTIONS = new InjectionToken<ICookieOptions>(`COOKIE_OPTIONS`);\n","import { ICookieOptions } from '@ts-core/frontend';\nimport * as Cookie from 'ngx-cookie';\n\nexport class CookieOptions implements ICookieOptions, Cookie.CookieOptions {\n path?: string;\n domain?: string;\n expires?: string | Date;\n secure?: boolean;\n httpOnly?: boolean;\n storeUnencoded?: boolean;\n}\n","import { IDestroyable } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, distinctUntilChanged, Observable } from 'rxjs';\nimport { IViewElement, ViewUtil } from '../util/ViewUtil';\n\nexport class ResizeManager implements IDestroyable {\n // --------------------------------------------------------------------------\n //\n // Static Methods\n //\n // --------------------------------------------------------------------------\n\n public static isSizeValid(item: ISize): boolean {\n if (_.isNil(item) || item.width <= 0 || item.height <= 0) {\n return false;\n }\n return true;\n }\n\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected size: ISize;\n protected sensor: ResizeObserver;\n protected subject: BehaviorSubject<ISize>;\n protected element: HTMLElement;\n\n // protected sensor: ResizeSensor;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: IViewElement) {\n this.element = ViewUtil.parseElement(element);\n this.subject = new BehaviorSubject({ width: ViewUtil.getWidth(this.element), height: ViewUtil.getHeight(this.element) });\n\n // Could be undefined in ssr\n try {\n this.sensor = new ResizeObserver(this.handler2);\n this.sensor.observe(this.element);\n } catch (error) {}\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n protected handlerItem = (item: ISize) => {\n if (!ResizeManager.isSizeValid(item)) {\n return;\n }\n if (!_.isNil(this.size) && item.width === this.size.width && item.height === this.size.height) {\n return;\n }\n this.size = item;\n this.subject.next(item);\n };\n\n protected handler2 = (items: Array<ResizeObserverEntry>) => {\n if (!_.isEmpty(items)) {\n this.handlerItem(items[0].contentRect);\n }\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get changed(): Observable<ISize> {\n return this.subject.asObservable().pipe(distinctUntilChanged(_.isEqual));\n }\n\n public get value(): ISize {\n return this.subject.getValue();\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (!_.isNil(this.sensor)) {\n this.sensor.unobserve(this.element);\n this.sensor.disconnect();\n this.sensor = null;\n }\n if (!_.isNil(this.subject)) {\n this.subject.complete();\n this.subject = null;\n }\n this.element = null;\n }\n}\n\nexport interface ISize {\n width: number;\n height: number;\n}\n","import { AfterViewInit, Directive, ElementRef, Input, numberAttribute } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { debounceTime, takeUntil } from 'rxjs';\nimport { ResizeManager } from '../manager/ResizeManager';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-aspect-ratio]',\n standalone: false\n})\nexport class AspectRatioResizeDirective extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n //\tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n protected static UPDATE_DELAY: number = 100;\n\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private _ratio: number = NaN;\n private _direction: Direction;\n\n private sensor: ResizeManager;\n private element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.element = ViewUtil.parseElement(element.nativeElement);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private commitResizeProperties = (): void => {\n switch (this.direction) {\n case Direction.HORIZONTAL:\n this.width = this.height / this.ratio;\n break;\n case Direction.VERTICAL:\n this.height = this.width * this.ratio;\n break;\n }\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n this.sensor = new ResizeManager(this.element);\n this.sensor.changed\n .pipe(debounceTime(AspectRatioResizeDirective.UPDATE_DELAY), takeUntil(this.destroyed))\n .subscribe(() => this.commitResizeProperties());\n if (_.isNaN(this.ratio)) {\n this.ratio = 4 / 3;\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.element = null;\n\n if (!_.isNil(this.sensor)) {\n this.sensor.destroy();\n this.sensor = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n private get width(): number {\n return ViewUtil.getWidth(this.element);\n }\n\n private set width(value: number) {\n ViewUtil.setWidth(this.element, value, true);\n }\n\n private get height(): number {\n return ViewUtil.getHeight(this.element);\n }\n\n private set height(value: number) {\n ViewUtil.setHeight(this.element, value, true);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-aspect-ratio')\n public set direction(value: Direction) {\n if (value === this._direction || _.isNil(value)) {\n return;\n }\n this._direction = value;\n this.commitResizeProperties();\n }\n public get direction(): Direction {\n return this._direction;\n }\n\n @Input({ transform: numberAttribute })\n public set ratio(value: number) {\n if (value === this._ratio) {\n return;\n }\n this._ratio = value;\n this.commitResizeProperties();\n }\n public get ratio(): number {\n return this._ratio;\n }\n}\n\nexport enum Direction {\n VERTICAL = 'VERTICAL',\n HORIZONTAL = 'HORIZONTAL'\n}\n","import { Directive, EventEmitter, ElementRef, HostListener, Input, Output, numberAttribute } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-scroll]',\n standalone: false\n})\nexport class ScrollDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static INITIALIZATION_DELAY: number = 1;\n\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public scrolled: EventEmitter<number> = new EventEmitter();\n\n private timer: any;\n protected element: HTMLElement;\n protected isInitialized: boolean = false;\n\n protected _scrollValue: number = 0;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.element = ViewUtil.parseElement(element);\n this.timer = setTimeout(this.initializeHandler, ScrollDirective.INITIALIZATION_DELAY);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n if (!_.isNil(this.scrollValue)) {\n this.scrollTo(this.scrollValue);\n }\n this.isInitialized = true;\n }\n\n protected scrollTo(value: number, behavior?: ScrollBehavior): void {\n this._scrollValue = value;\n this.element.scroll({ top: value, behavior });\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('scroll')\n public scrollHandler() {\n if (this.isInitialized) {\n this.scrollChangedHandler();\n }\n }\n\n protected scrollChangedHandler(): void {\n this._scrollValue = this.scrollTop;\n this.scrolled.next(this._scrollValue);\n }\n\n protected initializeHandler = (): void => this.initialize();\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n protected get scrollTop(): number {\n return this.element.scrollTop;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.element = null;\n this.isInitialized = false;\n\n clearTimeout(this.timer);\n this.timer = null;\n\n this._scrollValue = 0;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input({ transform: numberAttribute })\n public set scrollValue(value: number) {\n if (value === this._scrollValue || _.isNaN(value)) {\n return;\n }\n this._scrollValue = value;\n if (this.isInitialized) {\n this.scrollTo(value);\n }\n }\n\n public get scrollValue(): number {\n return this._scrollValue;\n }\n}\n","import { Directive, EventEmitter, Input, Output, numberAttribute } from '@angular/core';\nimport { ScrollDirective } from './ScrollDirective';\n\n@Directive({\n selector: '[vi-infinite-scroll]',\n standalone: false\n})\nexport class InfiniteScrollDirective extends ScrollDirective {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public top: EventEmitter<number> = new EventEmitter();\n @Output()\n public bottom: EventEmitter<number> = new EventEmitter();\n\n @Input({ transform: numberAttribute })\n public elementHeight: number = 50;\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n protected scrollChangedHandler(): void {\n super.scrollChangedHandler();\n if (!this.isInitialized) {\n return;\n }\n let value = this.scrollTop;\n let bottomValue = value + this.clientHeight + this.elementHeight;\n\n if (bottomValue >= this.scrollHeight) {\n this.bottom.next(value);\n } else if (value <= this.elementHeight) {\n this.top.next(value);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.top = null;\n this.bottom = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n protected get clientHeight(): number {\n return this.element.clientHeight;\n }\n protected get scrollHeight() {\n return this.element.scrollHeight;\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { InfiniteScrollDirective } from './InfiniteScrollDirective';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-auto-scroll-bottom]',\n standalone: false\n})\nexport class AutoScrollBottomDirective extends InfiniteScrollDirective {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input()\n public behavior: ScrollBehavior = 'auto';\n\n @Output()\n public triggerChanged: EventEmitter<number> = new EventEmitter<number>();\n\n private _trigger: any;\n private triggerTimer: any;\n private triggerDelta: number = 0;\n\n private isScrollLocked: boolean = false;\n private lastScrollHeight: number;\n\n private isNeedScroll: boolean = true;\n private isNeedRemainScroll: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n if (!_.isNil(this.scrollHeight)) {\n this._scrollValue = this.scrollHeight;\n }\n super.initialize();\n }\n\n protected checkTrigger = () => {\n this.isScrollLocked = false;\n if (this.isNeedScroll) {\n this.scrollBottom();\n } else if (this.isNeedRemainScroll) {\n this.scrollRemain();\n } else if (this.triggerDelta > 0) {\n this.triggerChanged.emit(this.triggerDelta);\n this.triggerDelta = 0;\n }\n };\n\n protected scrollRemain(): void {\n this.isNeedRemainScroll = false;\n this.scrollTo(this.scrollHeight - this.lastScrollHeight);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n protected scrollChangedHandler() {\n super.scrollChangedHandler();\n if (!this.isInitialized || this.isScrollLocked) {\n return;\n }\n\n let value = this.scrollTop;\n let bottomValue = value + this.clientHeight + this.elementHeight;\n\n this.isNeedScroll = bottomValue >= this.scrollHeight;\n this.isNeedRemainScroll = value <= this.elementHeight;\n\n if (this.isNeedRemainScroll) {\n this.lastScrollHeight = this.scrollHeight;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public scrollCheck(): void {\n clearTimeout(this.triggerTimer);\n this.triggerTimer = setTimeout(this.checkTrigger, InfiniteScrollDirective.INITIALIZATION_DELAY);\n }\n\n public scrollBottom(): void {\n this.scrollTo(this.scrollHeight, this.behavior);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n clearTimeout(this.triggerTimer);\n this.triggerTimer = null;\n this.trigger = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-auto-scroll-bottom')\n public set trigger(value: number) {\n if (value === this._trigger) {\n return;\n }\n if (!isNaN(this._trigger) && !isNaN(value)) {\n this.triggerDelta = value - this._trigger;\n }\n\n this._trigger = value;\n if (!this.isInitialized) {\n return;\n }\n this.isScrollLocked = true;\n this.scrollCheck();\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { DateUtil, Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-click-to-copy]',\n standalone: false\n})\nexport class ClickToCopyDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-click-to-copy')\n public element: HTMLElement;\n private selectionClearTimer: any;\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('click', ['$event'])\n private clickHandler(event: MouseEvent) {\n ViewUtil.selectContent(this.element, true);\n\n clearTimeout(this.selectionClearTimer);\n this.selectionClearTimer = setTimeout(this.selectionRemove, DateUtil.MILLISECONDS_SECOND / 2);\n }\n\n private selectionRemove = (): void => ViewUtil.selectContent(null);\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.element = null;\n clearTimeout(this.selectionClearTimer);\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-click-to-select]',\n standalone: false\n})\nexport class ClickToSelectDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.element = ViewUtil.parseElement(element.nativeElement);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('click', ['$event'])\n private clickHandler(event: MouseEvent) {\n if (event.detail >= 3) {\n ViewUtil.selectContent(this.element, true);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.element = null;\n }\n}\n","import { ElementRef } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\nexport class FocusManager extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected timer: any;\n protected delay: number;\n protected element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, delay: number = 100) {\n super();\n this.delay = delay;\n this.element = ViewUtil.parseElement(element);\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n private focusElement = (): void => {\n if (!_.isNil(this.element)) {\n ViewUtil.focusInput(this.element as any);\n }\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public focus(): void {\n clearTimeout(this.timer);\n this.timer = setTimeout(this.focusElement, this.delay);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this.timer)) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n this.element = null;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { FocusManager } from '../manager/FocusManager';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-focus]',\n standalone: false\n})\nexport class FocusDirective<T = any> extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private manager: FocusManager;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.manager = new FocusManager(element);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected focus = (): void => this.manager.focus();\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.manager.destroy();\n this.manager = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-focus')\n public set trigger(value: T) {\n this.focus();\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-select-on-focus]',\n standalone: false\n})\nexport class SelectOnFocusDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private element: ElementRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('focus')\n public focusHandler(): void {\n ViewUtil.selectContent(this.element);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.element = null;\n }\n}\n","import { Directive, ElementRef, EventEmitter, Input, Output, booleanAttribute } from '@angular/core';\nimport { Interactable } from '@interactjs/types';\nimport * as interact from 'interactjs';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-resize]',\n standalone: false\n})\nexport class ResizeDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public resized: EventEmitter<any> = new EventEmitter();\n\n @Input({ transform: booleanAttribute })\n public isTop: boolean = false;\n @Input({ transform: booleanAttribute })\n public isLeft: boolean = false;\n @Input({ transform: booleanAttribute })\n public isRight: boolean = false;\n @Input({ transform: booleanAttribute })\n public isBottom: boolean = false;\n\n private interactable: Interactable;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n\n this.interactable = interact.default(ViewUtil.parseElement(element));\n // this.interactable.styleCursor(false);\n\n let param = {} as any;\n param.top = this.isTop;\n param.left = this.isLeft;\n param.right = this.isRight;\n param.bottom = this.isBottom;\n this.interactable.resizable(param);\n this.interactable.on('resizemove', this.resizeHandler);\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n private resizeHandler = (event: any) => {\n if (event.dx !== 0 || event.dy !== 0) {\n this.resized.emit(event);\n }\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this.interactable)) {\n this.interactable.unset();\n this.interactable = null;\n }\n }\n}\n","import { EmbeddedViewRef, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class StructureDirective<T = any> extends DestroyableContainer {\n //--------------------------------------------------------------------------\n //\n //\tProperties\n //\n //--------------------------------------------------------------------------\n\n protected view: EmbeddedViewRef<T>;\n protected _isNeedAdd: boolean;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n protected template: TemplateRef<T>,\n protected container: ViewContainerRef\n ) {\n super();\n }\n\n protected commitIsNeedAddProperties(): void {\n if (this.isDestroyed) {\n return;\n }\n\n let isNeedAdd = false;\n let isNeedRemove = false;\n if (this.isNeedAdd) {\n if (_.isNil(this.view)) {\n isNeedAdd = true;\n }\n } else {\n if (!_.isNil(this.view)) {\n isNeedRemove = true;\n }\n }\n\n if (isNeedAdd) {\n this.view = this.container.createEmbeddedView(this.template);\n } else if (isNeedRemove) {\n let index = this.container.indexOf(this.view);\n if (index >= 0) {\n this.container.remove(index);\n this.view = null;\n }\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.view = null;\n this.template = null;\n this.container = null;\n }\n\n //--------------------------------------------------------------------------\n //\n //\tProtected Properties\n //\n //--------------------------------------------------------------------------\n\n protected set isNeedAdd(value: boolean) {\n if (value == this._isNeedAdd) {\n return;\n }\n this._isNeedAdd = value;\n this.commitIsNeedAddProperties();\n }\n protected get isNeedAdd(): boolean {\n return this._isNeedAdd;\n }\n}\n","import { Directive, ElementRef, Input, EventEmitter, Output, numberAttribute } from '@angular/core';\nimport { DateUtil, DestroyableContainer } from '@ts-core/common';\nimport { fromEvent, debounceTime, takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-scroll-check]',\n standalone: false\n})\nexport class ScrollCheckDirective extends DestroyableContainer {\n //--------------------------------------------------------------------------\n //\n //\tProperties\n //\n //--------------------------------------------------------------------------\n\n @Output()\n public top: EventEmitter<boolean> = new EventEmitter();\n @Output()\n public bottom: EventEmitter<boolean> = new EventEmitter();\n @Output()\n public limitExceed: EventEmitter<boolean> = new EventEmitter();\n\n private _scrollLimit: number;\n\n private element: HTMLElement;\n private isExceedLimit: boolean = false;\n\n @Input({ transform: numberAttribute })\n public delay: number = DateUtil.MILLISECONDS_SECOND / 10;\n\n @Input({ transform: numberAttribute })\n public offset: number = 50;\n\n //--------------------------------------------------------------------------\n //\n //\tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super();\n this.delay = DateUtil.MILLISECONDS_SECOND / 10;\n this.element = element.nativeElement;\n\n fromEvent(this.element, 'scroll').pipe(debounceTime(this.delay), takeUntil(this.destroyed)).subscribe(this.check);\n }\n\n //--------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected check = (): void => {\n let value = this.scrollValue >= this.scrollLimit;\n if (value !== this.isExceedLimit) {\n this.isExceedLimit = value;\n this.limitExceed.emit(value);\n }\n\n let offset = !_.isNaN(this.offset) ? this.offset : 0;\n value = this.scrollValue + this.clientHeight + offset >= this.scrollHeight;\n this.bottom.next(value);\n\n value = this.scrollValue <= offset;\n this.top.next(value);\n };\n\n //--------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n //--------------------------------------------------------------------------\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n protected get scrollValue(): number {\n return this.element.scrollTop;\n }\n protected get scrollHeight() {\n return this.element.scrollHeight;\n }\n protected get clientHeight(): number {\n return this.element.clientHeight;\n }\n\n //--------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n @Input('vi-scroll-check')\n public set scrollLimit(value: number) {\n if (value == this._scrollLimit) {\n return;\n }\n this._scrollLimit = value;\n this.check();\n }\n public get scrollLimit(): number {\n return this._scrollLimit;\n }\n}\n","import { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTranslate',\n pure: false,\n standalone: false\n})\nexport class LanguagePipe extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static removeTags(item: string): string {\n if (_.isEmpty(item)) {\n return item;\n }\n item = item.replace(/<br\\s*[\\/]?>/g, '\\n');\n item = item.replace(/<[^>]*>/g, '');\n return item;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private lastKey: string;\n private lastParams: any;\n\n private lastValue: string;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n private detection: ChangeDetectorRef,\n private language: LanguageService\n ) {\n super();\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(this.lastValueUpdate);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private lastValueUpdate = (): void => {\n this.lastValue = this.language.translate(this.lastKey, this.lastParams);\n this.detection.markForCheck();\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string, params?: any): string {\n if (key === this.lastKey) {\n if (params === this.lastParams || (_.isNil(params) && _.isNil(this.lastParams))) {\n return this.lastValue;\n }\n }\n\n this.lastKey = key;\n this.lastParams = params;\n this.lastValueUpdate();\n\n return this.lastValue;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.language = null;\n this.detection = null;\n\n this.lastKey = null;\n this.lastParams = null;\n\n this.lastValue = null;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { LanguagePipe } from '../language/LanguagePipe';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-html-title]',\n standalone: false\n})\nexport class HTMLTitleDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _value: string;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected element: ElementRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitValueProperties(): void {\n ViewUtil.setProperty(this.element, 'title', LanguagePipe.removeTags(this.value));\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this._value = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-html-title')\n public set value(value: string) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n if (!_.isNil(value)) {\n this.commitValueProperties();\n }\n }\n public get value(): string {\n return this._value;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { LanguagePipe } from '../language/LanguagePipe';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-html-content-title]',\n standalone: false\n})\nexport class HTMLContentTitleDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _value: string;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected element: ElementRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitValueProperties(): void {\n ViewUtil.setProperty(this.element, 'title', LanguagePipe.removeTags(this.value));\n ViewUtil.setProperty(this.element, 'innerHTML', this.value);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this._value = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-html-content-title')\n public set value(value: string) {\n if (value === this._value) {\n return;\n }\n this._value = value;\n if (!_.isNil(value)) {\n this.commitValueProperties();\n }\n }\n public get value(): string {\n return this._value;\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PlatformService } from '../service/PlatformService';\nimport { StructureDirective } from './StructureDirective';\n\n@Directive({\n selector: '[viIsBrowser]',\n standalone: false\n})\nexport class IsBrowserDirective extends StructureDirective {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(templateRef: TemplateRef<any>, container: ViewContainerRef, platform: PlatformService) {\n super(templateRef, container);\n this.isNeedAdd = platform.isPlatformBrowser;\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PlatformService } from '../service/PlatformService';\nimport { StructureDirective } from './StructureDirective';\n\n@Directive({\n selector: '[viIsServer]',\n standalone: false\n})\nexport class IsServerDirective extends StructureDirective {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(templateRef: TemplateRef<any>, container: ViewContainerRef, platform: PlatformService) {\n super(templateRef, container);\n this.isNeedAdd = platform.isPlatformServer;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\n\n@Pipe({\n name: 'viTranslatePure',\n standalone: false\n})\nexport class LanguagePipePure extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private language: LanguageService) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string, params?: any): string {\n return this.language.translate(key, params);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.language = null;\n }\n}\n","import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\nimport { LoadableEvent } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { PromiseHandler } from '@ts-core/common';\n\nexport class LanguageRequireResolver implements Resolve<void> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected language: LanguageService) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<void> {\n if (this.language.isLoaded) {\n return Promise.resolve();\n }\n\n let promise = PromiseHandler.create<void>();\n let subscription = this.language.events.subscribe(data => {\n if (data.type === LoadableEvent.COMPLETE) {\n promise.resolve();\n } else if (data.type === LoadableEvent.ERROR) {\n promise.reject(data.error.toString());\n } else if (data.type === LoadableEvent.FINISHED) {\n subscription.unsubscribe();\n }\n });\n return promise.promise;\n }\n}\n","import { LanguageService } from '@ts-core/frontend';\nimport { LanguageRequireResolver } from './LanguageRequireResolver';\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LanguageResolver extends LanguageRequireResolver {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(language: LanguageService) {\n super(language);\n }\n}\n","import { Directive, ElementRef, Input, booleanAttribute } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-translate]',\n standalone: false\n})\nexport class LanguageDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input({ transform: booleanAttribute })\n public isNeedTitle: boolean;\n\n protected _key: string;\n protected _params: any;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n protected element: ElementRef,\n protected language: LanguageService\n ) {\n super();\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(this.translate);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected translate = (): void => {\n if (_.isNil(this.key)) {\n return;\n }\n let value = this.language.translate(this.key, this.params);\n ViewUtil.setProperty(this.element, 'innerHTML', value);\n if (this.isNeedTitle) {\n ViewUtil.setProperty(this.element, 'title', value);\n }\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n\n super.destroy();\n this.language = null;\n\n this._key = null;\n this._params = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-translate')\n public set key(value: string) {\n if (value === this._key) {\n return;\n }\n this._key = value;\n if (!_.isNil(value)) {\n this.translate();\n }\n }\n public get key(): string {\n return this._key;\n }\n\n @Input()\n public set params(value: any) {\n if (value === this._params) {\n return;\n }\n this._params = value;\n this.translate();\n }\n public get params(): any {\n return this._params;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTranslateHas',\n pure: false,\n standalone: false\n})\nexport class LanguagePipeHas extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private key: string;\n private _value: boolean;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private language: LanguageService) {\n super();\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(this.valueUpdate);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private valueUpdate = (): void => {\n this._value = this.language.isHasTranslation(this.key);\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string): boolean {\n this.key = key;\n if (_.isNil(this._value)) {\n this.valueUpdate();\n }\n return this._value;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.language = null;\n\n this.key = null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTranslateHasPure',\n pure: true,\n standalone: false\n})\nexport class LanguagePipeHasPure extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private language: LanguageService) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string): boolean {\n return this.language.isHasTranslation(key);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.language = null;\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport { StructureDirective } from '../directive/StructureDirective';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[viTranslateHas]',\n standalone: false\n})\nexport class LanguageHasDirective<T = any> extends StructureDirective<T> {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _viTranslateHas: string;\n protected _isOnlyIfNotEmpty: boolean = true;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n template: TemplateRef<T>,\n container: ViewContainerRef,\n protected language: LanguageService\n ) {\n super(template, container);\n language.completed.pipe(takeUntil(this.destroyed)).subscribe(() => this.check());\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected check(): void {\n this.isNeedAdd = !_.isNil(this.viTranslateHas) && this.language.isHasTranslation(this.viTranslateHas, this.viTranslateHasIsOnlyIfNotEmpty);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n\n super.destroy();\n this.language = null;\n this._viTranslateHas = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('viTranslateHas')\n public set viTranslateHas(value: string) {\n if (value === this._viTranslateHas) {\n return;\n }\n this._viTranslateHas = value;\n this.check();\n }\n public get viTranslateHas(): string {\n return this._viTranslateHas;\n }\n\n @Input('viTranslateHasIsOnlyIfNotEmpty')\n public set viTranslateHasIsOnlyIfNotEmpty(value: boolean) {\n if (value === this._isOnlyIfNotEmpty) {\n return;\n }\n this._isOnlyIfNotEmpty = value;\n this.check();\n }\n public get viTranslateHasIsOnlyIfNotEmpty(): boolean {\n return this._isOnlyIfNotEmpty;\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ICookieService } from '@ts-core/frontend';\nimport { ILanguageServiceOptions, LanguageService } from '@ts-core/frontend';\nimport { CookieService } from '../cookie/CookieService';\nimport { LanguagePipe } from './LanguagePipe';\nimport { LanguagePipePure } from './LanguagePipePure';\nimport { LanguageResolver } from './LanguageResolver';\nimport { LanguageDirective } from './LanguageDirective';\nimport { LanguagePipeHas } from './LanguagePipeHas';\nimport { LanguagePipeHasPure } from './LanguagePipeHasPure';\nimport { LanguageHasDirective } from './LanguageHasDirective';\nimport { CookieModule } from '../cookie/CookieModule';\nimport * as _ from 'lodash';\n\nlet declarations = [LanguagePipe, LanguagePipePure, LanguagePipeHas, LanguagePipeHasPure, LanguageHasDirective, LanguageDirective];\n\n@NgModule({\n imports: [CookieModule],\n exports: declarations,\n declarations\n})\nexport class LanguageModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: ILanguageServiceOptions): ModuleWithProviders<LanguageModule> {\n return {\n ngModule: LanguageModule,\n providers: [\n {\n provide: LANGUAGE_OPTIONS,\n useValue: options || {}\n },\n {\n provide: LanguageService,\n deps: [CookieService, LANGUAGE_OPTIONS],\n useFactory: languageServiceFactory\n },\n {\n provide: LanguageResolver,\n deps: [LanguageService],\n useClass: LanguageResolver\n }\n ]\n };\n }\n}\n\nexport function languageServiceFactory(cookie: ICookieService, options?: ILanguageServiceOptions): LanguageService {\n if (!_.isNil(options) && _.isNil(options.service)) {\n options.service = cookie;\n }\n return new LanguageService(options);\n}\n\nexport const LANGUAGE_OPTIONS = new InjectionToken<ILanguageServiceOptions>(`LANGUAGE_OPTIONS`);\n","import { TransportNoConnectionError, TransportTimeoutError, ExtendedError, ObservableData, LoadableEvent, Loadable, LoadableStatus } from '@ts-core/common';\nimport { Observable, map, filter } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport abstract class LoginBaseService<E = any, U = any, V = any> extends Loadable<E | LoginBaseServiceEvent, U | V | ExtendedError> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _sid: string;\n protected _loginData: V;\n protected _isLoggedIn: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected async loginByParam<T = any>(param?: T): Promise<U> {\n return this.loginByFunction(() => this.loginRequest(param));\n }\n\n protected async loginByFunction(sidReturnFunction: (...params) => Promise<U>): Promise<U> {\n if (this.isLoggedIn || this.isLoading) {\n return null;\n }\n\n let response: U;\n this.status = LoadableStatus.LOADING;\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));\n\n try {\n response = await sidReturnFunction();\n this.parseLoginResponse(response);\n if (!this.isCanLoginWithSid()) {\n this.status = LoadableStatus.LOADED;\n } else {\n this.loginBySid();\n }\n } catch (error) {\n let extendedError = ExtendedError.create<any, number>(error as any);\n\n this.status = LoadableStatus.ERROR;\n this.parseLoginErrorResponse(extendedError);\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, extendedError));\n }\n\n if (!this.isLoading) {\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_FINISHED));\n }\n return response;\n }\n\n protected async loginBySid(): Promise<void> {\n if (_.isNil(this.sid)) {\n this._sid = this.getSavedSid();\n }\n\n try {\n let response = await this.loginSidRequest();\n this.parseLoginSidResponse(response);\n\n this._isLoggedIn = true;\n this.status = LoadableStatus.LOADED;\n this.observer.next(new ObservableData(LoadableEvent.COMPLETE, response));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_COMPLETE, response));\n } catch (error) {\n let extendedError = ExtendedError.create<any, number>(error);\n this.parseLoginSidErrorResponse(extendedError);\n\n this._isLoggedIn = false;\n this.status = LoadableStatus.ERROR;\n this.observer.next(new ObservableData(LoadableEvent.ERROR, null, extendedError));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, extendedError));\n }\n\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_FINISHED));\n }\n\n protected reset(): void {\n this._sid = null;\n this._loginData = null;\n }\n\n protected abstract loginRequest(...params): Promise<U>;\n protected abstract loginSidRequest(): Promise<V>;\n\n protected abstract logoutRequest(): Promise<void>;\n protected abstract getSavedSid(): string;\n\n // --------------------------------------------------------------------------\n //\n // \tParse Methods\n //\n // --------------------------------------------------------------------------\n\n protected abstract parseLoginResponse(response: U): void;\n\n protected parseLoginErrorResponse(error: ExtendedError): void {}\n\n protected parseLogoutErrorResponse(error: ExtendedError): void {}\n\n protected parseLoginSidResponse(response: V): void {\n this._loginData = response;\n }\n\n protected parseLoginSidErrorResponse(error: ExtendedError): void {\n if (error instanceof TransportTimeoutError || error instanceof TransportNoConnectionError) {\n return;\n }\n this.reset();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract login(param: any): void;\n\n public async loginByResponse(param: U): Promise<void> {\n if (this.isLoggedIn || this.isLoading) {\n return;\n }\n\n this.status = LoadableStatus.LOADING;\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));\n\n this.parseLoginResponse(param);\n this.status = !this.isCanLoginWithSid() ? LoadableStatus.LOADED : LoadableStatus.LOADING;\n if (this.isLoading) {\n await this.loginBySid();\n }\n }\n\n public loginBySidIfCan(): boolean {\n if (!this.isCanLoginWithSid()) {\n return false;\n }\n\n if (this.isLoggedIn || this.isLoading) {\n return true;\n }\n\n this.status = LoadableStatus.LOADING;\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_STARTED));\n this.loginBySid();\n return true;\n }\n\n public async logout(): Promise<void> {\n if (!this.isLoggedIn) {\n return;\n }\n\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGOUT_STARTED));\n\n try {\n await this.logoutRequest();\n } catch (error) {\n let extendedError = ExtendedError.create<any, number>(error);\n this.parseLogoutErrorResponse(extendedError);\n } finally {\n this.reset();\n this._isLoggedIn = false;\n this.status = LoadableStatus.NOT_LOADED;\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGOUT_FINISHED));\n }\n }\n\n public isCanLoginWithSid(): boolean {\n return !_.isNil(this.sid) || !_.isNil(this.getSavedSid());\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n this.reset();\n super.destroy();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get logined(): Observable<V> {\n return this.events.pipe(\n filter(item => item.type === LoginBaseServiceEvent.LOGIN_COMPLETE),\n map(item => item.data as V)\n );\n }\n\n public get logouted(): Observable<void> {\n return this.events.pipe(\n filter(item => item.type === LoginBaseServiceEvent.LOGOUT_FINISHED),\n map(() => null)\n );\n }\n\n public get sid(): string {\n return this._sid;\n }\n\n public get loginData(): V {\n return this._loginData;\n }\n\n public get isLoggedIn(): boolean {\n return this._isLoggedIn;\n }\n}\n\nexport enum LoginBaseServiceEvent {\n LOGIN_ERROR = 'LOGIN_ERROR',\n LOGIN_STARTED = 'LOGIN_STARTED',\n LOGIN_COMPLETE = 'LOGIN_COMPLETE',\n LOGIN_FINISHED = 'LOGIN_FINISHED',\n LOGOUT_STARTED = 'LOGOUT_STARTED',\n LOGOUT_FINISHED = 'LOGOUT_FINISHED',\n\n REGISTRATION_ERROR = 'REGISTRATION_ERROR',\n REGISTRATION_STARTED = 'REGISTRATION_STARTED',\n REGISTRATION_COMPLETE = 'REGISTRATION_COMPLETE',\n REGISTRATION_FINISHED = 'REGISTRATION_FINISHED'\n}\n","import { Resolve } from '@angular/router';\nimport { LoginBaseService, LoginBaseServiceEvent } from './LoginBaseService';\nimport { PromiseHandler } from '@ts-core/common';\n\nexport class LoginRequireResolver<U extends LoginBaseService = LoginBaseService, V = void> implements Resolve<V> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected login: U) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public resolve(...params): Promise<V> {\n if (this.isLoggedIn()) {\n return Promise.resolve(null);\n }\n\n let promise = PromiseHandler.create<null>();\n let subscription = this.login.events.subscribe(data => {\n if (data.type === LoginBaseServiceEvent.LOGIN_ERROR) {\n promise.reject(data.error.toString());\n } else if (data.type === LoginBaseServiceEvent.LOGIN_COMPLETE) {\n promise.resolve();\n } else if (data.type === LoginBaseServiceEvent.LOGIN_FINISHED) {\n subscription.unsubscribe();\n }\n });\n return promise.promise;\n }\n\n public isLoggedIn(): boolean {\n return this.login.isLoggedIn;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginRequireResolver } from './LoginRequireResolver';\nimport * as _ from 'lodash';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginGuard<T extends LoginBaseService = LoginBaseService> extends LoginRequireResolver<T> implements CanActivate {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public static redirectUrl: string = '/login';\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n @Inject(LoginBaseService) login: T,\n protected router: Router\n ) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Promise<boolean | UrlTree> {\n return this.isLoggedIn() ? true : this.router.parseUrl(LoginGuard.redirectUrl);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginRequireResolver } from './LoginRequireResolver';\nimport * as _ from 'lodash';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginNotGuard<T extends LoginBaseService = LoginBaseService> extends LoginRequireResolver<T> implements CanActivate {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public static redirectUrl: string = '/';\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n @Inject(LoginBaseService) login: T,\n protected router: Router\n ) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree {\n return !this.isLoggedIn() ? true : this.router.parseUrl(LoginNotGuard.redirectUrl);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport * as _ from 'lodash';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginGuard } from './LoginGuard';\nimport { LoginNotGuard } from './LoginNotGuard';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginIfCanGuard<T extends LoginBaseService = LoginBaseService> extends LoginGuard<T> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n @Inject(LoginBaseService) login: T,\n protected router: Router\n ) {\n super(login, router);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected async loginIfCan(): Promise<void> {\n if (this.login.loginBySidIfCan()) {\n try {\n await this.resolve();\n } catch (error) {}\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean | UrlTree> {\n if (state.url !== LoginGuard.redirectUrl) {\n LoginNotGuard.redirectUrl = state.url;\n }\n if (!this.isLoggedIn()) {\n await this.loginIfCan();\n }\n return super.canActivate(route, state);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginRequireResolver } from './LoginRequireResolver';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginResolver<T extends LoginBaseService> extends LoginRequireResolver<T> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(@Inject(LoginBaseService) login: T) {\n super(login);\n }\n}\n","import { DestroyableContainer } from '@ts-core/common';\nimport { CookieService } from '../cookie/CookieService';\nimport { LocalStorageService } from '../storage/LocalStorageService';\nimport { IValueStorage } from './IValueStorage';\nimport * as _ from 'lodash';\n\nexport class ValueStorage<T = string> extends DestroyableContainer implements IValueStorage<T> {\n //--------------------------------------------------------------------------\n //\n // \tProperties\n //\n //--------------------------------------------------------------------------\n\n protected _name: string;\n\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n name: string,\n protected storage: LocalStorageService,\n protected cookies: CookieService\n ) {\n super();\n this._name = name;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected serialize(value: string): T {\n return value as T;\n }\n\n protected deserialize(value: T): string {\n return value as string;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public get(defaultValue?: T): T {\n if (this.isDestroyed) {\n return null;\n }\n let item = null;\n if (this.storage.has(this.name)) {\n item = this.storage.get(this.name);\n } else if (this.cookies.has(this.name)) {\n item = this.cookies.get(this.name);\n }\n return !_.isNil(item) ? this.serialize(item) : defaultValue;\n }\n\n public has(): boolean {\n if (this.isDestroyed) {\n return false;\n }\n return this.storage.has(this.name) || this.cookies.has(this.name);\n }\n\n public set(value: T): T {\n if (this.isDestroyed) {\n return null;\n }\n let item = !_.isNil(value) ? this.deserialize(value) : null;\n this.cookies.put(this.name, item);\n this.storage.set(this.name, item);\n return value;\n }\n\n public clear(): void {\n this.cookies.put(this.name, null);\n this.storage.set(this.name, null);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.cookies = null;\n this.storage = null;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n public get name(): string {\n return this._name;\n }\n}\n","import { CookieService } from '../cookie/CookieService';\nimport { ValueStorage } from '../storage/ValueStorage';\nimport { LocalStorageService } from '../storage/LocalStorageService';\nimport * as _ from 'lodash';\n\nexport class LoginTokenStorage<T = string> extends ValueStorage<T> {\n //--------------------------------------------------------------------------\n //\n // \tProperties\n //\n //--------------------------------------------------------------------------\n\n public static TOKEN_KEY = 'sid';\n\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(local: LocalStorageService, cookies: CookieService) {\n super(LoginTokenStorage.TOKEN_KEY, local, cookies);\n }\n}\n","export class MenuItemBase {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _name: string;\n protected _isEnabled: boolean = true;\n\n public checkEnabled: (item: MenuItemBase) => boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n public nameId: string,\n public sortIndex: number = NaN,\n public iconId?: string\n ) {}\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitNameProperties(): void {}\n protected commitIsEnabledProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public get isEnabled(): boolean {\n return this._isEnabled;\n }\n public set isEnabled(value: boolean) {\n if (value === this._isEnabled) {\n return;\n }\n this._isEnabled = value;\n this.commitIsEnabledProperties();\n }\n\n public get name(): string {\n return this._name;\n }\n public set name(value: string) {\n if (value === this._name) {\n return;\n }\n this._name = value;\n this.commitNameProperties();\n }\n}\n","import { MenuItemBase } from './MenuItemBase';\n\nexport class MenuItem extends MenuItemBase {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public flag: string;\n public select: (item: MenuItem) => void;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(nameId?: string, sortIndex?: number, flag?: string, iconId?: string) {\n super(nameId, sortIndex, iconId);\n this.flag = flag || 'none';\n }\n}\n","import { DestroyableContainer, LoadableEvent } from '@ts-core/common';\nimport { ArrayUtil } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { filter, takeUntil } from 'rxjs';\nimport { MenuItem } from './MenuItem';\nimport { MenuItemBase } from './MenuItemBase';\n\nexport class MenuItems extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _items: Array<MenuItemBase>;\n protected _enabledItems: Array<MenuItemBase>;\n protected filterFunction: (item: MenuItemBase) => boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n private language: LanguageService,\n filterFunction?: (item: MenuItem) => boolean,\n isAutoTranslate: boolean = false\n ) {\n super();\n\n this._items = [];\n this._enabledItems = [];\n this.filterFunction = filterFunction;\n\n language.completed\n .pipe(\n filter(() => isAutoTranslate),\n takeUntil(this.destroyed)\n )\n .subscribe(() => this.translateItems(this._items));\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private translateItems(items: Array<MenuItemBase>): void {\n for (let item of items) {\n this.translateItem(item);\n }\n }\n\n private translateItem(item: MenuItemBase): void {\n item.name = this.language.translate(item.nameId);\n }\n\n private checkEnabledItems(items: Array<MenuItemBase>): boolean {\n ArrayUtil.sort(items);\n let isMainItems = items === this._items;\n let isAllEnabled = true;\n\n if (isMainItems) {\n ArrayUtil.clear(this._enabledItems);\n }\n\n for (let item of items) {\n if (!item.name && item.nameId) {\n this.translateItem(item);\n }\n\n let isEnabled = item.checkEnabled ? item.checkEnabled(item) : true;\n if (isEnabled && this.filterFunction) {\n isEnabled = this.filterFunction(item);\n }\n\n item.isEnabled = isEnabled;\n if (isEnabled) {\n this._enabledItems.push(item);\n }\n\n if (isAllEnabled && !isEnabled) {\n isAllEnabled = false;\n }\n }\n return isAllEnabled;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public add(item: MenuItemBase): MenuItemBase {\n this._items.push(item);\n return item;\n }\n\n public remove(item: MenuItemBase): MenuItemBase {\n let index = this._items.indexOf(item);\n if (index > -1) {\n this._items.slice(index, 1);\n }\n return item;\n }\n\n public checkEnabled(...args): boolean {\n return this.checkEnabledItems(this._items);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tInterface Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this._items = null;\n this._enabledItems = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get items(): Array<MenuItemBase> {\n return this._items;\n }\n\n public get enabledItems(): Array<MenuItemBase> {\n return this._enabledItems;\n }\n}\n","import { MenuItem } from './MenuItem';\n\nexport class NavigationMenuItem extends MenuItem {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public url: string;\n public isActive: boolean = false;\n declare public select: (item: NavigationMenuItem) => void;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(nameId?: string, sortIndex?: number, iconId?: string, url?: string) {\n super(nameId, sortIndex, null, iconId);\n this.url = url;\n }\n}\n","import { IListItem } from './IListItem';\nimport * as _ from 'lodash';\nimport { IDestroyable } from '@ts-core/common';\n\nexport class ListItem<T = any> implements IListItem<T>, IDestroyable {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _uid: string;\n\n protected _data: T;\n protected _label: string;\n protected _iconId: string;\n protected _className: string;\n protected _sortIndex: number;\n protected _isEnabled: boolean = true;\n protected _translationId: string;\n\n public action: (item: IListItem, ...params) => void;\n public checkEnabled: (item: IListItem, ...params) => boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(translationId: string, sortIndex: number = NaN, data?: T, iconId?: string) {\n this.data = data;\n this.iconId = iconId;\n this.sortIndex = sortIndex;\n this.translationId = translationId;\n\n this._uid = this.getUid();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitDataProperties(): void {}\n protected commitLabelProperties(): void {}\n protected commitIsEnabledProperties(): void {}\n protected commitClassNameProperties(): void {}\n\n protected commitIconIdProperties(): void {}\n protected commitSortIndexProperties(): void {}\n protected commitTranslationIdProperties(): void {}\n\n protected getUid(): string {\n return `${this.translationId}_${this.sortIndex}`;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n this._data = null;\n this.action = null;\n this.checkEnabled = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get uid(): string {\n return this._uid;\n }\n\n public get sortIndex(): number {\n return this._sortIndex;\n }\n public set sortIndex(value: number) {\n if (value === this._sortIndex) {\n return;\n }\n this._sortIndex = value;\n if (!_.isNil(value)) {\n this.commitSortIndexProperties();\n }\n }\n\n public get isEnabled(): boolean {\n return this._isEnabled;\n }\n public set isEnabled(value: boolean) {\n if (value === this._isEnabled) {\n return;\n }\n this._isEnabled = value;\n if (_.isBoolean(value)) {\n this.commitIsEnabledProperties();\n }\n }\n\n public get label(): string {\n return this._label;\n }\n public set label(value: string) {\n if (value === this._label) {\n return;\n }\n this._label = value;\n if (!_.isNil(value)) {\n this.commitLabelProperties();\n }\n }\n\n public get translationId(): string {\n return this._translationId;\n }\n public set translationId(value: string) {\n if (value === this._translationId) {\n return;\n }\n this._translationId = value;\n if (!_.isNil(value)) {\n this.commitTranslationIdProperties();\n }\n }\n\n public get iconId(): string {\n return this._iconId;\n }\n public set iconId(value: string) {\n if (value === this._iconId) {\n return;\n }\n this._iconId = value;\n if (!_.isNil(value)) {\n this.commitIconIdProperties();\n }\n }\n\n public get className(): string {\n return this._className;\n }\n public set className(value: string) {\n if (value === this._className) {\n return;\n }\n this._className = value;\n if (!_.isNil(value)) {\n this.commitClassNameProperties();\n }\n }\n\n public get data(): T {\n return this._data;\n }\n public set data(value: T) {\n if (value === this._data) {\n return;\n }\n this._data = value;\n if (!_.isNil(value)) {\n this.commitDataProperties();\n }\n }\n}\n","import { ArrayUtil } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { IListItem } from './IListItem';\nimport { FilterableMapCollection } from '@ts-core/common';\nimport { Subscription } from 'rxjs';\n\nexport class ListItems<U extends IListItem<V>, V = any> extends FilterableMapCollection<U> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected lastRefreshParams: Array<any>;\n protected languageSubscription: Subscription;\n\n protected _isAllEnabled: boolean;\n protected _isLeastOneEnabled: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n private language: LanguageService,\n isAutoTranslate: boolean = true\n ) {\n super('uid');\n\n this.lastRefreshParams = new Array();\n if (isAutoTranslate) {\n this.languageSubscription = language.completed.subscribe(this.translateItems);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected translate = (item: U): void => {\n item.label = this.language.translate(item.translationId);\n };\n\n protected translateItems = (): void => {\n this.collection.forEach(this.translate);\n };\n\n protected translateIfNeed = (item: U): void => {\n if (_.isNil(item.label) && !_.isNil(item.translationId)) {\n this.translate(item);\n }\n };\n\n protected translateItemsIfNeed = (): void => {\n this.collection.forEach(this.translateIfNeed);\n };\n\n protected sort(): void {\n ArrayUtil.sort(this.collection);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public complete(): void {\n this.translateItemsIfNeed();\n this.sort();\n }\n\n public refresh(...params): void {\n ArrayUtil.clear(this._filtered);\n this.lastRefreshParams = params;\n\n if (_.isEmpty(this.collection)) {\n return;\n }\n\n this._isAllEnabled = true;\n this._isLeastOneEnabled = false;\n for (let item of this._collection) {\n item.isEnabled = !_.isNil(item.checkEnabled) ? item.checkEnabled(item, ...params) : true;\n if (!item.isEnabled) {\n this._isAllEnabled = false;\n } else if (this.filter(item)) {\n this._filtered.push(item);\n this._isLeastOneEnabled = true;\n }\n }\n }\n\n public actionItem(item: U): void {\n if (!_.isNil(item) && item.isEnabled && !_.isNil(item.action)) {\n item.action(item, ...this.lastRefreshParams);\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.language = null;\n this.lastRefreshParams = null;\n\n if (!_.isNil(this.languageSubscription)) {\n this.languageSubscription.unsubscribe();\n this.languageSubscription = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isAllEnabled(): boolean {\n return this._isAllEnabled;\n }\n\n public get isLeastOneEnabled(): boolean {\n return this._isLeastOneEnabled;\n }\n}\n","import { ISelectListItem } from './ISelectListItem';\nimport * as _ from 'lodash';\nimport { ListItem } from '../ListItem';\nimport { IListItem } from '../IListItem';\n\nexport class SelectListItem<T = any> extends ListItem<T> implements ISelectListItem<T> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _isSelected: boolean;\n protected _selectedClassName: string;\n\n public checkSelected?: (item: ISelectListItem, ...params) => boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(translationId: string, sortIndex: number, data: T, checkEnabled?: (item: IListItem, ...params) => boolean) {\n super(translationId, sortIndex, data);\n this.checkEnabled = checkEnabled;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitIsSelectProperties(): void {}\n\n protected commitSelectedClassNameProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n super.destroy();\n this.checkSelected = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isSelected(): boolean {\n return this._isSelected;\n }\n public set isSelected(value: boolean) {\n if (value === this._isSelected) {\n return;\n }\n this._isSelected = value;\n if (!_.isNil(value)) {\n this.commitIsSelectProperties();\n }\n }\n\n public get selectedClassName(): string {\n return this._selectedClassName;\n }\n public set selectedClassName(value: string) {\n if (value === this._selectedClassName) {\n return;\n }\n this._selectedClassName = value;\n if (!_.isNil(value)) {\n this.commitSelectedClassNameProperties();\n }\n }\n}\n","import * as _ from 'lodash';\nimport { ISelectListItem } from './ISelectListItem';\nimport { ListItems } from '../ListItems';\nimport { LanguageService } from '@ts-core/frontend';\nimport { EventEmitter } from '@angular/core';\n\nexport class SelectListItems<U extends ISelectListItem<V>, V = any> extends ListItems<U, V> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _selectedItem: U;\n protected _selectedData: V;\n protected _selectedIndex: number;\n\n protected _changed: EventEmitter<U>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(language: LanguageService, isAutoTranslate: boolean = true) {\n super(language, isAutoTranslate);\n this._changed = new EventEmitter();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitSelectedItemProperties(): void {\n this.selectedData = !_.isNil(this.selectedItem) ? this.selectedItem.data : null;\n this.selectedIndex = !_.isNil(this.selectedItem) ? this.selectedItem.sortIndex : null;\n\n if (!_.isNil(this.changed)) {\n this.changed.emit(this.selectedItem);\n }\n }\n\n protected commitSelectedDataProperties(): void {\n this.selectedItem = !_.isNil(this.selectedData) ? _.find(this.collection, item => item.data === this.selectedData) : null;\n }\n\n protected commitSelectedIndexProperties(): void {\n this.selectedItem = !_.isNil(this.selectedIndex) ? _.find(this.collection, item => item.sortIndex === this.selectedIndex) : null;\n }\n\n protected selectIndexOrData(indexOrDataToSelect: number | V): void {\n if (_.isNumber(indexOrDataToSelect)) {\n this.selectedIndex = indexOrDataToSelect;\n } else {\n this.selectedItem = _.find(this.collection, item => item.data === indexOrDataToSelect);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get selectedItem(): U {\n return this._selectedItem;\n }\n public set selectedItem(value: U) {\n if (value === this._selectedItem) {\n return;\n }\n this._selectedItem = value;\n this.commitSelectedItemProperties();\n }\n\n public get selectedIndex(): number {\n return this._selectedIndex;\n }\n public set selectedIndex(value: number) {\n if (value === this._selectedIndex) {\n return;\n }\n this._selectedIndex = value;\n this.commitSelectedIndexProperties();\n }\n\n public get selectedData(): V {\n return this._selectedData;\n }\n public set selectedData(value: V) {\n if (value === this._selectedData) {\n return;\n }\n this._selectedData = value;\n this.commitSelectedDataProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public complete(indexOrDataToSelect?: number | V): void {\n super.complete();\n if (!_.isNil(indexOrDataToSelect)) {\n this.selectIndexOrData(indexOrDataToSelect);\n }\n }\n\n public refresh(...params): void {\n super.refresh(...params);\n this.refreshSelection(...params);\n }\n\n public refreshSelection(...params): void {\n if (_.isEmpty(this.collection)) {\n return;\n }\n for (let item of this._collection) {\n item.isSelected = !_.isNil(item.checkSelected) ? item.checkSelected(item, ...params) : false;\n if (item.isSelected) {\n this.selectedItem = item;\n }\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this._changed)) {\n this._changed.complete();\n this._changed = null;\n }\n this.selectedIndex = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get changed(): EventEmitter<U> {\n return this._changed;\n }\n}\n","import { LanguageService } from '@ts-core/frontend';\nimport { SelectListItems } from './SelectListItems';\nimport { ISelectListItem } from './ISelectListItem';\nimport { RouterBaseService } from '../../service/RouterBaseService';\nimport { filter, takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport class RouterSelectListItems<U = string> extends SelectListItems<ISelectListItem<U>, U> {\n //--------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n public isDisabled: boolean;\n\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n protected router: RouterBaseService,\n language: LanguageService\n ) {\n super(language, true);\n this.changed\n .pipe(\n filter(() => !this.isDisabled),\n takeUntil(this.destroyed)\n )\n .subscribe(item => this.setFragment(item));\n this.router.completed\n .pipe(\n filter(() => !this.isDisabled),\n takeUntil(this.destroyed)\n )\n .subscribe(() => this.setData());\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected setData(): void {\n let item = this.getRouterSelectedItem();\n this.selectedItem = !_.isNil(item) ? item : _.first(this.collection);\n }\n\n protected setFragment(item: ISelectListItem<U>): void {\n let index = _.indexOf(this.collection, item);\n this.router.setFragment(index > 0 ? item.data.toString() : null);\n }\n\n protected getRouterSelectedItem(): ISelectListItem<U> {\n return _.find(this.collection, { data: this.router.getFragment() }) as ISelectListItem<U>;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public complete(): void {\n let item = this.getRouterSelectedItem();\n super.complete(!_.isNil(item) ? item.data : 0);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.router = null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viPrettify',\n standalone: false\n})\nexport class PrettifyPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static EMPTY_SYMBOL = '-';\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any): string {\n let isNil = _.isNil(value);\n if (!isNil && !_.isNumber(value)) {\n isNil = _.isEmpty(value);\n }\n return !isNil ? value : PrettifyPipe.EMPTY_SYMBOL;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PrettifyPipe } from './PrettifyPipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viCamelCase',\n standalone: false\n})\nexport class CamelCasePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any): string {\n return !_.isNil(value) ? _.camelCase(value) : PrettifyPipe.EMPTY_SYMBOL;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport numeral from 'numeral';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viFinance',\n standalone: false\n})\nexport class FinancePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = '0,0';\n\n // --------------------------------------------------------------------------\n //\n //\tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static format(value: number | string, format: string): string {\n value = Number(value);\n try {\n return numeral(value).format(format);\n } catch (error) {\n return value.toString();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: number | string, format?: string, isNeedPlus: boolean = false): string {\n value = Number(value);\n if (_.isNaN(value)) {\n return '---';\n }\n if (_.isNil(format)) {\n format = FinancePipe.DEFAULT_FORMAT;\n }\n if (isNeedPlus) {\n format = '+' + format;\n }\n return FinancePipe.format(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport { GetFilterableCondition, RemoveFilterableCondition } from '@ts-core/common';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viMomentDate',\n standalone: false\n})\nexport class MomentDatePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = 'LLL';\n\n // --------------------------------------------------------------------------\n //\n //\tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static parseMoment(value: MomentAvailableType, format?: string): Moment {\n if (_.isDate(value)) {\n return moment(value);\n }\n if (_.isString(value)) {\n return moment(value, format);\n }\n if (_.isNumber(value)) {\n return moment().milliseconds(value);\n }\n return value as Moment;\n }\n\n public static fromNow(value: MomentAvailableType, format: string = 'LLL'): string {\n if (_.isNil(value)) {\n return '---';\n }\n\n let item = MomentDatePipe.parseMoment(value);\n let date = item.fromNow();\n date = date.charAt(0).toUpperCase() + date.slice(1);\n if (!_.isNil(format)) {\n date += ' (' + item.format(format) + ')';\n }\n return date;\n }\n\n public static toConditionValue(value: string | Date): string {\n if (_.isNil(value)) {\n return undefined;\n }\n value = value.toString();\n let item = MomentDatePipe.parseMoment(RemoveFilterableCondition(value));\n return item.isValid() ? `${GetFilterableCondition(value) || '='}${item.toDate().toString()}` : undefined;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: MomentAvailableType, format?: string): string {\n if (_.isNil(value)) {\n return '---';\n }\n\n let moment = MomentDatePipe.parseMoment(value);\n return moment.format(format || MomentDatePipe.DEFAULT_FORMAT);\n }\n}\nexport type MomentAvailableType = Date | Moment | string | number;\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport { MomentDatePipe } from './MomentDatePipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viMomentAdaptiveDate',\n standalone: false\n})\nexport class MomentDateAdaptivePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n public static HOUR_FORMAT = 'HH:ss';\n public static DAY_FORMAT = 'DD MMM HH:ss';\n public static MONTH_FORMAT = 'DD MMM HH:ss';\n public static YEAR_FORMAT = 'LLL';\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: Date | Moment): string {\n if (_.isNaN(value)) {\n return '---';\n }\n\n let item = MomentDatePipe.parseMoment(value);\n let duration = moment.duration(moment().diff(item));\n\n let format = null;\n if (Math.abs(duration.asYears()) >= 1) {\n format = MomentDateAdaptivePipe.YEAR_FORMAT;\n } else if (Math.abs(duration.asMonths()) >= 1) {\n format = MomentDateAdaptivePipe.MONTH_FORMAT;\n } else if (Math.abs(duration.asDays()) >= 1) {\n format = MomentDateAdaptivePipe.DAY_FORMAT;\n } else {\n format = MomentDateAdaptivePipe.HOUR_FORMAT;\n }\n return item.format(format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Moment } from 'moment';\nimport { MomentDatePipe } from './MomentDatePipe';\n\n@Pipe({\n name: 'viMomentDateFromNow',\n standalone: false\n})\nexport class MomentDateFromNowPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: Date | Moment, format?: string): string {\n return MomentDatePipe.fromNow(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viMomentTime',\n standalone: false\n})\nexport class MomentTimePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = 'hh:mm:ss';\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(timeMilliseconds: number, format?: string): string {\n if (_.isNil(timeMilliseconds)) {\n return '---';\n }\n\n return moment()\n .startOf('day')\n .add(timeMilliseconds, 'milliseconds')\n .format(format || MomentTimePipe.DEFAULT_FORMAT);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viNgModelError',\n standalone: false\n})\nexport class NgModelErrorPipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: ValidationErrors): string {\n if (_.isNil(value)) {\n return null;\n }\n let keys = _.keys(value);\n if (_.isEmpty(keys)) {\n return null;\n }\n let key = keys[0];\n return this.translateError(key, value[key]);\n }\n\n public translateError(key: string, value: any): string {\n return this.language.translate('error.form.' + key, value);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected language: LanguageService) {}\n}\n","import { Pipe } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viSanitize',\n standalone: false\n})\nexport class SanitizePipe {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private sanitizer: DomSanitizer) {}\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: string, type: string = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n if (_.isNil(value)) {\n return null;\n }\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error('Invalid safe type specified: ' + type);\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PrettifyPipe } from './PrettifyPipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viStartCase',\n standalone: false\n})\nexport class StartCasePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any): string {\n return !_.isEmpty(value) ? value.charAt(0).toUpperCase() + value.slice(1) : PrettifyPipe.EMPTY_SYMBOL;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PrettifyPipe } from './PrettifyPipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTruncate',\n standalone: false\n})\nexport class TruncatePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any, maxLength?: number): string {\n return !_.isEmpty(value) ? _.truncate(value, { length: maxLength }) : PrettifyPipe.EMPTY_SYMBOL;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DateUtil } from '@ts-core/common';\nimport { FinancePipe } from './FinancePipe';\nimport { PrettifyPipe } from './PrettifyPipe';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTime',\n standalone: false\n})\nexport class TimePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = '00:00:00';\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(milliseconds: number | string, format?: string): string {\n milliseconds = Number(milliseconds);\n if (_.isNaN(milliseconds)) {\n return PrettifyPipe.EMPTY_SYMBOL;\n }\n if (_.isNil(format)) {\n format = TimePipe.DEFAULT_FORMAT;\n }\n return FinancePipe.format(milliseconds / DateUtil.MILLISECONDS_SECOND, format);\n }\n}\n","export interface IQuestion {\n readonly mode: QuestionMode;\n readonly isChecked: boolean;\n\n readonly text: string;\n readonly notText: string;\n readonly yesText: string;\n readonly closeText: string;\n readonly checkText: string;\n\n readonly closePromise: Promise<void>;\n readonly yesNotPromise: Promise<void>;\n}\n\nexport interface IQuestionOptions {\n text?: string;\n mode?: QuestionMode;\n isChecked?: boolean;\n yesTextId?: string;\n notTextId?: string;\n checkTextId?: string;\n closeTextId?: string;\n}\n\nexport enum QuestionMode {\n INFO = 'INFO',\n QUESTION = 'QUESTION'\n}\n\nexport enum QuestionEvent {\n YES = 'YES',\n NOT = 'NOT',\n CLOSE = 'CLOSE',\n CHECK = 'CHECK',\n UNCHECK = 'UNCHECK'\n}\n","import * as _ from 'lodash';\nimport { PromiseHandler } from '@ts-core/common';\nimport { Destroyable } from '@ts-core/common';\nimport { IQuestion, IQuestionOptions, QuestionMode } from './IQuestion';\n\nexport class QuestionManager extends Destroyable implements IQuestion {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public text: string;\n public mode: QuestionMode;\n public options: IQuestionOptions;\n\n public notText: string;\n public yesText: string;\n public closeText: string;\n public checkText: string;\n\n protected _isChecked: boolean = false;\n\n protected _closePromise: PromiseHandler<void, void>;\n protected _yesNotPromise: PromiseHandler<void, void>;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(options?: IQuestionOptions) {\n super();\n this._closePromise = PromiseHandler.create();\n this._yesNotPromise = PromiseHandler.create();\n\n this.yesText = 'Yes';\n this.notText = 'Not';\n this.closeText = 'Close';\n this.checkText = 'Check';\n this.options = _.assign(\n {\n mode: QuestionMode.INFO,\n isChecked: false,\n yesTextId: 'general.yes',\n notTextId: 'general.not',\n closeTextId: 'general.close'\n },\n options\n );\n this.text = this.options.text;\n this.mode = this.options.mode;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public closeClickHandler(): void {\n this._closePromise.resolve();\n }\n\n public yesClickHandler(): void {\n this._yesNotPromise.resolve();\n this.closeClickHandler();\n }\n\n public notClickHandler(): void {\n this._yesNotPromise.reject();\n this.closeClickHandler();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.notClickHandler();\n this._yesNotPromise = null;\n this._closePromise = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tInterface Properties\n //\n // --------------------------------------------------------------------------\n\n public get yesNotPromise(): Promise<void> {\n return this._yesNotPromise.promise;\n }\n\n public get closePromise(): Promise<void> {\n return this._closePromise.promise;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isInfo(): boolean {\n return this.mode === QuestionMode.INFO;\n }\n\n public get isQuestion(): boolean {\n return this.mode === QuestionMode.QUESTION;\n }\n\n public get isChecked(): boolean {\n return this._isChecked;\n }\n public set isChecked(value: boolean) {\n if (value === this._isChecked) {\n return;\n }\n this._isChecked = value;\n // this.content.emit(value ? QuestionEvent.CHECK : QuestionEvent.UNCHECK);\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport { CamelCasePipe } from '../pipe/CamelCasePipe';\nimport { FinancePipe } from '../pipe/FinancePipe';\nimport { MomentDateAdaptivePipe } from '../pipe/MomentDateAdaptivePipe';\nimport { MomentDateFromNowPipe } from '../pipe/MomentDateFromNowPipe';\nimport { MomentDatePipe } from '../pipe/MomentDatePipe';\nimport { MomentTimePipe } from '../pipe/MomentTimePipe';\nimport { PrettifyPipe } from '../pipe/PrettifyPipe';\nimport { SanitizePipe } from '../pipe/SanitizePipe';\nimport { TimePipe } from '../pipe/TimePipe';\nimport { TruncatePipe } from '../pipe/TruncatePipe';\n\nexport class PipeBaseService extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n private static DATE: DatePipe = null;\n private static TIME: TimePipe = null;\n private static FINANCE: FinancePipe = null;\n private static PRETTIFY: PrettifyPipe = null;\n private static TRUNCATE: TruncatePipe = null;\n private static SANITIZE: SanitizePipe = null;\n\n private static CAMEL_CASE: CamelCasePipe = null;\n\n private static MOMENT_TIME: MomentTimePipe = null;\n private static MOMENT_DATE: MomentDatePipe = null;\n private static MOMENT_DATE_FROM_NOW: MomentDateFromNowPipe = null;\n private static MOMENT_ADAPTIVE_DATE: MomentDateAdaptivePipe = null;\n\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private _locale: string;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n public language: LanguageService,\n public sanitizer: DomSanitizer\n ) {\n super();\n\n if (this.language.isLoaded) {\n this.commitLanguageProperties();\n }\n this.language.completed.pipe(takeUntil(this.destroyed)).subscribe(() => this.commitLanguageProperties());\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitLanguageProperties(): void {\n let locale = this.language.locale ? this.language.language.locale : 'en';\n this._locale = locale === 'en' ? 'en-US' : locale;\n\n if (PipeBaseService.DATE) {\n PipeBaseService.DATE = new DatePipe(this.locale);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get date(): DatePipe {\n if (!PipeBaseService.DATE) {\n PipeBaseService.DATE = new DatePipe(this.locale);\n }\n return PipeBaseService.DATE;\n }\n\n public get time(): TimePipe {\n if (!PipeBaseService.TIME) {\n PipeBaseService.TIME = new TimePipe();\n }\n return PipeBaseService.TIME;\n }\n\n public get finance(): FinancePipe {\n if (!PipeBaseService.FINANCE) {\n PipeBaseService.FINANCE = new FinancePipe();\n }\n return PipeBaseService.FINANCE;\n }\n\n public get truncate(): TruncatePipe {\n if (!PipeBaseService.TRUNCATE) {\n PipeBaseService.TRUNCATE = new TruncatePipe();\n }\n return PipeBaseService.TRUNCATE;\n }\n\n public get prettify(): PrettifyPipe {\n if (!PipeBaseService.PRETTIFY) {\n PipeBaseService.PRETTIFY = new PrettifyPipe();\n }\n return PipeBaseService.PRETTIFY;\n }\n\n public get momentDate(): MomentDatePipe {\n if (!PipeBaseService.MOMENT_DATE) {\n PipeBaseService.MOMENT_DATE = new MomentDatePipe();\n }\n return PipeBaseService.MOMENT_DATE;\n }\n\n public get momentDateFromNow(): MomentDateFromNowPipe {\n if (!PipeBaseService.MOMENT_DATE_FROM_NOW) {\n PipeBaseService.MOMENT_DATE_FROM_NOW = new MomentDateFromNowPipe();\n }\n return PipeBaseService.MOMENT_DATE_FROM_NOW;\n }\n\n public get momentDateAdaptive(): MomentDateAdaptivePipe {\n if (!PipeBaseService.MOMENT_ADAPTIVE_DATE) {\n PipeBaseService.MOMENT_ADAPTIVE_DATE = new MomentDateAdaptivePipe();\n }\n return PipeBaseService.MOMENT_ADAPTIVE_DATE;\n }\n\n public get momentTime(): MomentTimePipe {\n if (!PipeBaseService.MOMENT_TIME) {\n PipeBaseService.MOMENT_TIME = new MomentTimePipe();\n }\n return PipeBaseService.MOMENT_TIME;\n }\n\n public get sanitize(): SanitizePipe {\n if (!PipeBaseService.SANITIZE) {\n PipeBaseService.SANITIZE = new SanitizePipe(this.sanitizer);\n }\n return PipeBaseService.SANITIZE;\n }\n\n public get camelCase(): CamelCasePipe {\n if (!PipeBaseService.CAMEL_CASE) {\n PipeBaseService.CAMEL_CASE = new CamelCasePipe();\n }\n return PipeBaseService.CAMEL_CASE;\n }\n\n public get locale(): string {\n return this._locale;\n }\n}\n","import {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationExtras,\n NavigationStart,\n Router,\n UrlTree\n} from '@angular/router';\nimport { ObservableData, Loadable, LoadableEvent, LoadableStatus } from '@ts-core/common';\nimport { NativeWindowService } from '@ts-core/frontend';\nimport { Subject, takeUntil } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport class RouterBaseService extends Loadable<void, RouterBaseServiceEventData> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected params: Map<string, string>;\n\n protected extrasToApply: NavigationExtras;\n protected isNeedUpdateExtras: boolean = false;\n\n protected _lastUrl: string;\n protected _previousUrl: string;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n protected _router: Router,\n protected _route: ActivatedRoute,\n protected window: NativeWindowService\n ) {\n super();\n this.params = new Map();\n this.observer = new Subject();\n\n this._lastUrl = this.url;\n\n this.window.getParams().forEach((value, key) => this.params.set(key, value));\n this.initializeObservers();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected initializeObservers(): void {\n this.router.events.pipe(takeUntil(this.destroyed)).subscribe(event => {\n if (event instanceof NavigationStart) {\n this._previousUrl = this.url;\n this.status = LoadableStatus.LOADING;\n } else if (event instanceof NavigationEnd || event instanceof NavigationCancel || event instanceof NavigationError) {\n if (event instanceof NavigationEnd) {\n this._lastUrl = event.url;\n }\n this.status = LoadableStatus.LOADED;\n }\n });\n }\n\n protected async applyExtras(extras?: NavigationExtras): Promise<boolean> {\n let params = {} as NavigationExtras;\n params.queryParams = this.getQueryParams();\n\n if (!_.isNil(extras)) {\n Object.assign(params, extras);\n }\n\n if (!this.isLoading) {\n return this.router.navigate([], params);\n }\n this.extrasToApply = extras;\n this.isNeedUpdateExtras = true;\n return false;\n }\n\n protected getQueryParams(): any {\n let params = {} as any;\n this.params.forEach((value, key) => (params[key] = value));\n return params;\n }\n\n protected commitStatusChangedProperties(oldStatus: LoadableStatus, newStatus: LoadableStatus): void {\n super.commitStatusChangedProperties(oldStatus, newStatus);\n\n switch (newStatus) {\n case LoadableStatus.LOADING:\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n break;\n case LoadableStatus.LOADED:\n if (this.isNeedUpdateExtras) {\n this.isNeedUpdateExtras = false;\n this.applyExtras(this.extrasToApply);\n }\n this.observer.next(new ObservableData(LoadableEvent.COMPLETE, { url: this.url, previousUrl: this.previousUrl }));\n break;\n }\n\n if (newStatus === LoadableStatus.LOADED || newStatus === LoadableStatus.ERROR) {\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tNavigate Methods\n //\n // --------------------------------------------------------------------------\n\n public async navigate(url: string, extras?: NavigationExtras, isClearParams?: boolean): Promise<boolean> {\n if (isClearParams) {\n this.params.clear();\n }\n\n let params = {} as NavigationExtras;\n params.queryParams = this.getQueryParams();\n if (!_.isNil(extras)) {\n Object.assign(params, extras);\n }\n return this.router.navigateByUrl(url, params);\n }\n\n public navigateToExternalUrl(url: string, target: string = '_blank'): void {\n this.window.open(url, target);\n }\n\n public navigateToLast(extras?: NavigationExtras): Promise<boolean> {\n return this.navigate(this.lastUrl, extras);\n }\n\n public async navigateIfNotLoading(url: string, extras?: NavigationExtras): Promise<boolean> {\n return !this.isLoading ? this.navigate(url, extras) : false;\n }\n\n public reload(): void {\n location.reload();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public isUrlActive(item: string | UrlTree, isExact: boolean = false): boolean {\n if (isExact) {\n return this.router.isActive(item, isExact);\n }\n if (_.isString(item)) {\n item = this.router.parseUrl(item);\n }\n\n let current = this.router.parseUrl(this.urlTree.toString());\n item.fragment = current.fragment = null;\n item.queryParams = current.queryParams = {};\n return item.toString() === current.toString();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Param Methods\n //\n // --------------------------------------------------------------------------\n\n public getParams<T = any>(): T {\n let params = {} as any;\n this.params.forEach((value, key) => (params[key] = value));\n return params;\n }\n\n public hasParam(name: string): boolean {\n return this.params.has(name);\n }\n\n public getParam<T = string>(name: string, defaultValue?: T): T {\n return this.hasParam(name) ? (this.params.get(name) as any) : defaultValue;\n }\n\n public setParam(name: string, value: any, extras?: NavigationExtras): void {\n if (!_.isNil(value)) {\n value = value.toString().trim();\n if (_.isEmpty(value)) {\n value = null;\n }\n }\n if (!_.isNil(value)) {\n this.params.set(name, value);\n } else {\n this.params.delete(name);\n }\n if (!_.isNil(extras)) {\n extras = { replaceUrl: true };\n }\n this.applyExtras(extras);\n }\n\n public removeParam(name: string, extras?: NavigationExtras): void {\n if (this.hasParam(name)) {\n this.setParam(name, null, extras);\n }\n }\n\n public clearParams(extras?: NavigationExtras): void {\n this.params.clear();\n if (!_.isNil(extras)) {\n extras = { replaceUrl: true };\n }\n this.applyExtras(extras);\n }\n\n public get hasParams(): boolean {\n return this.params.size > 0;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tFragment Methods\n //\n // --------------------------------------------------------------------------\n\n public getFragment(snapshot?: ActivatedRouteSnapshot, defaultValue?: string): string {\n if (_.isNil(snapshot)) {\n snapshot = this.route.snapshot;\n }\n if (_.isNil(defaultValue)) {\n defaultValue = null;\n }\n return !_.isNil(snapshot.fragment) ? snapshot.fragment : defaultValue;\n }\n\n public hasFragment(snapshot?: ActivatedRouteSnapshot): boolean {\n return !_.isNil(this.getFragment(snapshot));\n }\n\n public async setFragment(value: string): Promise<boolean> {\n return value !== this.getFragment() ? this.applyExtras({ fragment: value }) : false;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Url Methods\n //\n // --------------------------------------------------------------------------\n\n public get url(): string {\n return this.router.url;\n }\n public get urlTree(): UrlTree {\n return this.router.parseUrl(this.url);\n }\n\n public get lastUrl(): string {\n return this._lastUrl;\n }\n public get lastUrlTree(): UrlTree {\n return this.router.parseUrl(this.lastUrl);\n }\n\n public get previousUrl(): string {\n return this._previousUrl;\n }\n public get previousUrlTree(): UrlTree {\n return this.router.parseUrl(this.previousUrl);\n }\n\n public get route(): ActivatedRoute {\n return this._route;\n }\n public get router(): Router {\n return this._router;\n }\n}\n\nexport interface RouterBaseServiceEventData {\n url: string;\n previousUrl: string;\n}\n","import { ObservableData, ClassType, Destroyable } from '@ts-core/common';\nimport { IQuestion, IQuestionOptions } from '../question/IQuestion';\nimport { INotification } from './INotification';\nimport { INotificationConfig } from './INotificationConfig';\nimport { INotificationContent } from './INotificationContent';\nimport { NotificationConfigOptions } from './NotificationConfig';\nimport { NotificationServiceEvent } from './NotificationServiceEvent';\nimport { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\nexport abstract class NotificationService extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract open<U extends INotificationContent<T>, T>(component: ClassType<U>, config: INotificationConfig<T>): U;\n\n // --------------------------------------------------------------------------\n //\n // \tHelp Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract get<T>(value: NotificationId<T>): INotificationConfig<T>;\n\n public abstract has<T>(value: NotificationId<T>): boolean;\n\n public abstract remove<T>(value: NotificationId<T>): void;\n\n public abstract closeAll(): void;\n\n public abstract close<T>(value: NotificationId<T>): INotification<T>;\n\n // --------------------------------------------------------------------------\n //\n // \tAdditional Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: NotificationConfigOptions): IQuestion;\n\n public abstract question(\n translationId?: string,\n translation?: any,\n questionOptions?: IQuestionOptions,\n configOptions?: NotificationConfigOptions\n ): IQuestion;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public abstract get events(): Observable<ObservableData<NotificationServiceEvent, INotificationConfig | INotification>>;\n\n public abstract get configs(): Array<INotificationConfig>;\n\n public abstract get closedConfigs(): Array<INotificationConfig>;\n\n public abstract get notifications(): Map<INotificationConfig, INotificationContent>;\n}\n\nexport type NotificationId<T> = string | INotificationConfig<T> | NotificationConfigOptions<T>;\n","import { Injectable } from '@angular/core';\nimport {\n NoNewVersionDetectedEvent,\n SwUpdate,\n UnrecoverableStateEvent,\n VersionDetectedEvent,\n VersionInstallationFailedEvent,\n VersionReadyEvent\n} from '@angular/service-worker';\nimport { Loadable, LoadableEvent, LoadableStatus, Logger, ObservableData } from '@ts-core/common';\nimport { takeUntil, filter } from 'rxjs';\nimport { NotificationService } from '../notification/NotificationService';\nimport * as _ from 'lodash';\n\n@Injectable({ providedIn: 'root' })\nexport class ServiceWorkerService extends Loadable {\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n protected updates: SwUpdate,\n protected logger: Logger,\n protected notifications: NotificationService\n ) {\n super();\n\n updates.unrecoverable.pipe(takeUntil(this.destroyed)).subscribe(event => this.unrecoverableHandler(event));\n updates.versionUpdates\n .pipe(\n filter(event => event.type === 'VERSION_READY'),\n takeUntil(this.destroyed)\n )\n .subscribe(event => this.readyHandler(event as VersionReadyEvent));\n updates.versionUpdates\n .pipe(\n filter(event => event.type === 'VERSION_DETECTED'),\n takeUntil(this.destroyed)\n )\n .subscribe(event => this.detectedHandler(event as VersionDetectedEvent));\n updates.versionUpdates\n .pipe(\n filter(event => event.type === 'NO_NEW_VERSION_DETECTED'),\n takeUntil(this.destroyed)\n )\n .subscribe(event => this.noNewVersionDetectedHandler(event as NoNewVersionDetectedEvent));\n updates.versionUpdates\n .pipe(\n filter(event => event.type === 'VERSION_INSTALLATION_FAILED'),\n takeUntil(this.destroyed)\n )\n .subscribe(event => this.installationFailedHandler(event as VersionInstallationFailedEvent));\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected start(value: LoadableStatus): void {\n if (value === this.status) {\n return;\n }\n this.status = value;\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n }\n\n protected finish(value: LoadableStatus): void {\n if (value === this.status) {\n return;\n }\n this.status = value;\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n }\n\n //--------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n //--------------------------------------------------------------------------\n\n protected async readyHandler(event: VersionReadyEvent): Promise<void> {\n this.start(LoadableStatus.LOADING);\n try {\n await this.updates.activateUpdate();\n this.finish(LoadableStatus.LOADED);\n } catch (error) {\n this.finish(LoadableStatus.ERROR);\n this.logger.error(`Unable to activate version: ${error}`);\n }\n }\n\n protected async unrecoverableHandler(event: UnrecoverableStateEvent): Promise<void> {\n this.finish(LoadableStatus.ERROR);\n this.logger.error(`Unable to update version: ${event.reason}`);\n }\n\n protected async detectedHandler(event: VersionDetectedEvent): Promise<void> {\n this.start(LoadableStatus.LOADING);\n }\n\n protected async installationFailedHandler(event: VersionInstallationFailedEvent): Promise<void> {\n this.finish(LoadableStatus.ERROR);\n }\n\n protected async noNewVersionDetectedHandler(event: NoNewVersionDetectedEvent): Promise<void> {\n this.finish(LoadableStatus.NOT_LOADED);\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public activateUpdate(): Promise<boolean> {\n return this.updates.activateUpdate();\n }\n\n public checkForUpdate(): Promise<boolean> {\n return this.updates.checkForUpdate();\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n public get isEnabled(): boolean {\n return this.updates.isEnabled;\n }\n}\n","import { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport * as _ from 'lodash';\nimport { Observable } from 'rxjs';\nimport { IRouterDeactivatable } from './IRouterDeactivatable';\n\nexport class CanDeactivateGuard<T extends IRouterDeactivatable = IRouterDeactivatable> implements CanDeactivate<T> {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canDeactivate(\n component: T,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n return !component.isForceDeactivate ? component.isCanDeactivate(currentRoute, currentState, nextState) : true;\n }\n}\n","import { Directive, ElementRef, Input, RendererStyleFlags2 } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ThemeService } from '@ts-core/frontend';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-theme-style]',\n standalone: false\n})\nexport class ThemeStyleDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _key: string;\n protected _flags: RendererStyleFlags2;\n protected _styleName: string;\n\n protected element: HTMLElement;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n element: ElementRef,\n protected theme: ThemeService\n ) {\n super();\n\n this.element = ViewUtil.parseElement(element.nativeElement);\n this.theme.changed.pipe(takeUntil(this.destroyed)).subscribe(() => this.stylePropertiesCheck());\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitStyleProperties(name: string, value: string): void {\n ViewUtil.setStyle(this.element, name, value, this.flags);\n }\n\n protected stylePropertiesCheck(): void {\n if (this.isNeedStyleAdd()) {\n this.stylePropertiesAdd();\n } else if (this.isNeedStyleRemove()) {\n this.stylePropertiesRemove();\n }\n }\n\n protected stylePropertiesRemove(): void {\n ViewUtil.removeStyle(this.element, this.styleName);\n }\n\n protected stylePropertiesAdd(): void {\n this.commitStyleProperties(this.styleName, this.theme.getStyle(this.key));\n }\n\n protected isNeedStyleAdd(): boolean {\n return !_.isNil(this.theme.theme) && !_.isNil(this.styleName);\n }\n\n protected isNeedStyleRemove(): boolean {\n return !_.isNil(this.styleName);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.key = null;\n this.theme = null;\n this.element = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get flags(): RendererStyleFlags2 {\n return this._flags;\n }\n @Input()\n public set flags(value: RendererStyleFlags2) {\n if (value === this._flags) {\n return;\n }\n this._flags = value;\n this.stylePropertiesCheck();\n }\n\n public get styleName(): string {\n return this._styleName;\n }\n @Input()\n public set styleName(value: string) {\n if (value === this._styleName) {\n return;\n }\n this._styleName = value;\n this.stylePropertiesCheck();\n }\n\n public get key(): string {\n return this._key;\n }\n @Input('vi-theme-style')\n public set key(value: string) {\n if (value === this._key) {\n return;\n }\n this._key = value;\n if (!_.isNil(value)) {\n this.stylePropertiesCheck();\n }\n }\n}\n","import { Directive, ElementRef, Input, RendererStyleFlags2 } from '@angular/core';\nimport { ThemeService } from '@ts-core/frontend';\nimport { ThemeStyleDirective } from './ThemeStyleDirective';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-theme-style-hover]',\n standalone: false\n})\nexport class ThemeStyleHoverDirective extends ThemeStyleDirective {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _isHover: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, theme: ThemeService) {\n super(element, theme);\n\n this.flags = RendererStyleFlags2.Important;\n this.element.addEventListener('mouseenter', this.mouseEnter, false);\n this.element.addEventListener('mouseleave', this.mouseLeave, false);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected isNeedStyleAdd(): boolean {\n return this.isHover && super.isNeedStyleAdd();\n }\n\n protected isNeedStyleRemove(): boolean {\n return !this.isHover || super.isNeedStyleRemove();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n protected mouseEnter = (event: MouseEvent): void => {\n this.isHover = true;\n };\n\n protected mouseLeave = (event: MouseEvent): void => {\n this.isHover = false;\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n this.element.removeEventListener('mouseenter', this.mouseEnter, false);\n this.element.removeEventListener('mouseleave', this.mouseLeave, false);\n super.destroy();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isHover(): boolean {\n return this._isHover;\n }\n public set isHover(value: boolean) {\n if (value === this._isHover) {\n return;\n }\n this._isHover = value;\n this.stylePropertiesCheck();\n }\n\n public get key(): string {\n return super.key;\n }\n @Input('vi-theme-style-hover')\n public set key(value: string) {\n super.key = value;\n }\n\n public get styleName(): string {\n return super.styleName;\n }\n @Input()\n public set styleName(value: string) {\n super.styleName = value;\n }\n\n public get flags(): RendererStyleFlags2 {\n return super.flags;\n }\n @Input()\n public set flags(value: RendererStyleFlags2) {\n super.flags = value;\n }\n}\n","import { Directive, ElementRef, HostListener, Input, booleanAttribute } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive()\nexport abstract class ThemeAssetDirective<T extends HTMLElement = HTMLElement> extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _name: string;\n protected _source: string;\n protected _extension: string = 'png';\n\n protected _isFile: boolean = false;\n protected _isImage: boolean = false;\n protected _isVideo: boolean = false;\n protected _isSound: boolean = false;\n protected _isBackground: boolean = false;\n protected _isIgnoreTheme: boolean = true;\n\n protected element: T;\n\n private isTriedThemeDefault: boolean;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n element: ElementRef,\n protected theme: ThemeService,\n protected themeAsset: ThemeAssetService\n ) {\n super();\n this.element = ViewUtil.parseElement(element.nativeElement) as T;\n\n this.theme.changed.pipe(takeUntil(this.destroyed)).subscribe(() => {\n this.isTriedThemeDefault = false;\n this.setSourceProperties();\n });\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected getSource(id: string): string {\n if (_.isNil(id)) {\n return null;\n }\n if (this.isImage) {\n return this.themeAsset.getImage(id, this.extension, this.isIgnoreTheme);\n }\n if (this.isBackground) {\n return this.themeAsset.getBackground(id, this.extension, this.isIgnoreTheme);\n }\n if (this.isSound) {\n return this.themeAsset.getSound(id, this.extension, this.isIgnoreTheme);\n }\n if (this.isVideo) {\n return this.themeAsset.getVideo(id, this.extension, this.isIgnoreTheme);\n }\n if (this.isFile) {\n return this.themeAsset.getFile(id, this.extension, this.isIgnoreTheme);\n }\n return this.themeAsset.getIcon(id, this.extension, this.isIgnoreTheme);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('error', ['$event'])\n public errorLoadingHandler(event: ErrorEvent): void {\n this.errorHandler(event);\n }\n\n protected errorHandler(event: ErrorEvent): void {\n if (this.isTriedThemeDefault) {\n return;\n }\n this.isTriedThemeDefault = true;\n this.setDefaultSourceProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setSourceProperties(): void {\n this.source = this.getSource(this.getSourceId());\n }\n\n protected setDefaultSourceProperties(): void {\n this.source = this.getSource(this.getDefaultSourceId());\n }\n\n protected getSourceId(): string {\n if (_.isNil(this.name) || _.isNil(this.theme) || _.isNil(this.theme.theme)) {\n return null;\n }\n return this.name + _.capitalize(this.theme.theme.name);\n }\n\n protected getDefaultSourceId(): string {\n return this.themeAsset.getName(this.name, this.isIgnoreTheme);\n }\n\n protected abstract addSourceProperties(): void;\n\n protected abstract removeSourceProperties(): void;\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.name = null;\n this.theme = null;\n this.element = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Properties\n //\n // --------------------------------------------------------------------------\n\n protected get source(): string {\n return this._source;\n }\n protected set source(value: string) {\n if (value === this._source) {\n return;\n }\n this._source = value;\n if (!_.isNil(value)) {\n this.addSourceProperties();\n } else {\n this.removeSourceProperties();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input({ transform: booleanAttribute })\n public set isSound(value: boolean) {\n if (value === this._isSound) {\n return;\n }\n this._isSound = value;\n this.setSourceProperties();\n }\n public get isSound(): boolean {\n return this._isSound;\n }\n\n @Input({ transform: booleanAttribute })\n public set isVideo(value: boolean) {\n if (value === this._isVideo) {\n return;\n }\n this._isVideo = value;\n this.setSourceProperties();\n }\n public get isVideo(): boolean {\n return this._isVideo;\n }\n\n @Input({ transform: booleanAttribute })\n public set isFile(value: boolean) {\n if (value === this._isFile) {\n return;\n }\n this._isFile = value;\n this.setSourceProperties();\n }\n public get isFile(): boolean {\n return this._isFile;\n }\n\n @Input({ transform: booleanAttribute })\n public set isImage(value: boolean) {\n if (value === this._isImage) {\n return;\n }\n this._isImage = value;\n this.setSourceProperties();\n }\n public get isImage(): boolean {\n return this._isImage;\n }\n\n @Input({ transform: booleanAttribute })\n public set isBackground(value: boolean) {\n if (value === this._isBackground) {\n return;\n }\n this._isBackground = value;\n this.setSourceProperties();\n }\n public get isBackground(): boolean {\n return this._isBackground;\n }\n\n @Input({ transform: booleanAttribute })\n public set isIgnoreTheme(value: boolean) {\n if (value === this._isIgnoreTheme) {\n return;\n }\n this._isIgnoreTheme = value;\n this.setSourceProperties();\n }\n public get isIgnoreTheme(): boolean {\n return this._isIgnoreTheme;\n }\n\n public get name(): string {\n return this._name;\n }\n @Input()\n public set name(value: string) {\n if (value === this._name) {\n return;\n }\n this._name = value;\n this.setSourceProperties();\n }\n\n public get extension(): string {\n return this._extension;\n }\n @Input()\n public set extension(value: string) {\n if (value === this._extension) {\n return;\n }\n this._extension = value;\n this.setSourceProperties();\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend';\nimport { ViewUtil } from '../util/ViewUtil';\nimport { ThemeAssetDirective } from './ThemeAssetDirective';\n\n@Directive({\n selector: '[vi-theme-background]',\n standalone: false\n})\nexport class ThemeAssetBackgroundDirective extends ThemeAssetDirective {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, theme: ThemeService, themeAsset: ThemeAssetService) {\n super(element, theme, themeAsset);\n this.isBackground = true;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected addSourceProperties(): void {\n let value = 'url(' + this.source + ')';\n ViewUtil.setStyle(this.element, 'backgroundImage', value);\n }\n\n protected removeSourceProperties(): void {\n ViewUtil.removeStyle(this.element, 'backgroundImage');\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-theme-background')\n public set name(value: string) {\n super.name = value;\n }\n public get name(): string {\n return super.name;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend';\nimport { ThemeAssetDirective } from './ThemeAssetDirective';\n\n@Directive({\n selector: '[vi-theme-image]',\n standalone: false\n})\nexport class ThemeAssetImageDirective extends ThemeAssetDirective<HTMLImageElement> {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, theme: ThemeService, themeAsset: ThemeAssetService) {\n super(element, theme, themeAsset);\n this.isImage = true;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected addSourceProperties(): void {\n this.element.src = this.source;\n }\n protected removeSourceProperties(): void {\n this.element.src = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-theme-image')\n public set name(value: string) {\n super.name = value;\n }\n public get name(): string {\n return super.name;\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend';\nimport { ThemeAssetDirective } from './ThemeAssetDirective';\n\n@Directive({\n selector: '[vi-theme-icon]',\n standalone: false\n})\nexport class ThemeAssetIconDirective extends ThemeAssetDirective<HTMLImageElement> {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, theme: ThemeService, themeAsset: ThemeAssetService) {\n super(element, theme, themeAsset);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected addSourceProperties(): void {\n this.element.src = this.source;\n }\n protected removeSourceProperties(): void {\n this.element.src = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-theme-icon')\n public set name(value: string) {\n super.name = value;\n }\n public get name(): string {\n return super.name;\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { ArrayUtil, Destroyable } from '@ts-core/common';\nimport { ThemeService } from '@ts-core/frontend';\n\n@Directive({\n selector: '[vi-theme-toggle]',\n standalone: false\n})\nexport class ThemeToggleDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private theme: ThemeService) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('click')\n protected clickHandler() {\n let items = this.theme.themes.collection;\n if (items.length > 1) {\n this.theme.theme = ArrayUtil.nextItem(this.theme.theme, items, true);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.theme = null;\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ICookieService, NativeWindowService } from '@ts-core/frontend';\nimport { IThemeServiceOptions, ThemeService, ThemeAssetService } from '@ts-core/frontend';\nimport { CookieModule } from '../cookie/CookieModule';\nimport { CookieService } from '../cookie/CookieService';\nimport { ThemeAssetBackgroundDirective } from './ThemeAssetBackgroundDirective';\nimport { ThemeAssetImageDirective } from './ThemeAssetImageDirective';\nimport { ThemeAssetIconDirective } from './ThemeAssetIconDirective';\nimport { ThemeToggleDirective } from './ThemeToggleDirective';\nimport { ThemeStyleDirective } from './ThemeStyleDirective';\nimport { ThemeStyleHoverDirective } from './ThemeStyleHoverDirective';\nimport * as _ from 'lodash';\n\nlet declarations = [\n ThemeToggleDirective,\n ThemeAssetImageDirective,\n ThemeAssetIconDirective,\n ThemeAssetBackgroundDirective,\n ThemeStyleDirective,\n ThemeStyleHoverDirective\n];\n\n@NgModule({\n imports: [CookieModule],\n declarations,\n exports: declarations\n})\nexport class ThemeModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: IThemeServiceOptions): ModuleWithProviders<ThemeModule> {\n return {\n ngModule: ThemeModule,\n providers: [\n {\n provide: THEME_OPTIONS,\n useValue: options || {}\n },\n {\n provide: ThemeService,\n deps: [NativeWindowService, CookieService, THEME_OPTIONS],\n useFactory: themeServiceFactory\n },\n {\n provide: ThemeAssetService,\n deps: [ThemeService, NativeWindowService],\n useFactory: themeAssetServiceFactory\n }\n ]\n };\n }\n}\n\nexport function themeServiceFactory(nativeWindow: NativeWindowService, cookie: ICookieService, options?: IThemeServiceOptions): ThemeService {\n if (!_.isNil(options) && _.isNil(options.service)) {\n options.service = cookie;\n }\n return new ThemeService(options, nativeWindow.document);\n}\n\nexport function themeAssetServiceFactory(theme: ThemeService): ThemeAssetService {\n return new ThemeAssetService(theme);\n}\n\nexport const THEME_OPTIONS = new InjectionToken<IThemeServiceOptions>(`THEME_OPTIONS`);\n","import { IDestroyable } from '@ts-core/common';\n\nexport abstract class IUser<T = any> implements IDestroyable {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n public id: UserUid;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract update(data: T): void;\n public abstract destroy(): void;\n}\n\nexport type UserUid = string | number;\n","import { DestroyableContainer } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { Observable, takeUntil, Subject, filter, map } from 'rxjs';\nimport { LoginBaseService, LoginBaseServiceEvent } from '../login/LoginBaseService';\nimport { IUser, UserUid } from './IUser';\n\nexport abstract class UserBaseService<U extends IUser = any, V = void> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _user: U;\n protected observer: Subject<ObservableData<V | UserBaseServiceEvent, U | Partial<U>>>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected login: LoginBaseService) {\n super();\n this.observer = new Subject();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n if (this.login.isLoggedIn) {\n this.loginedHandler();\n }\n\n this.login.events.pipe(takeUntil(this.destroyed)).subscribe(data => {\n if (data.type === LoginBaseServiceEvent.LOGIN_COMPLETE) {\n this.loginedHandler();\n } else if (data.type === LoginBaseServiceEvent.LOGOUT_FINISHED) {\n this.logoutedHandler();\n }\n });\n }\n\n protected initializeUser(data: any): void {\n this._user = this.createUser(data);\n }\n\n protected deinitializeUser(): void {\n this._user = null;\n }\n\n protected loginedHandler(): void {\n this.initializeUser(this.login.loginData);\n this.observer.next(new ObservableData(UserBaseServiceEvent.LOGINED, this.user));\n }\n\n protected logoutedHandler(): void {\n this.deinitializeUser();\n this.observer.next(new ObservableData(UserBaseServiceEvent.LOGOUTED));\n }\n\n protected abstract createUser(data: any): U;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public isUser(value: Partial<U> | UserUid): boolean {\n if (_.isNil(value) || _.isNil(this.user)) {\n return false;\n }\n if (_.isString(value) || _.isNumber(value)) {\n return value === this.user.id;\n }\n return value.id === this.user.id;\n }\n\n public userUpdate(data: any): void {\n if (!this.hasUser) {\n return;\n }\n this.user.update(data);\n this.observer.next(new ObservableData(UserBaseServiceEvent.CHANGED, data));\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this.observer)) {\n this.observer.complete();\n this.observer = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get events(): Observable<ObservableData<V | UserBaseServiceEvent, U | Partial<U>>> {\n return this.observer.asObservable();\n }\n\n public get logined(): Observable<U> {\n return this.events.pipe(\n filter(item => item.type === UserBaseServiceEvent.LOGINED),\n map(item => item.data as U)\n );\n }\n\n public get changed(): Observable<Partial<U>> {\n return this.events.pipe(\n filter(item => item.type === UserBaseServiceEvent.CHANGED),\n map(item => item.data)\n );\n }\n\n public get logouted(): Observable<void> {\n return this.events.pipe(\n filter(item => item.type === UserBaseServiceEvent.LOGOUTED),\n map(() => null)\n );\n }\n\n public get hasUser(): boolean {\n return !_.isNil(this._user);\n }\n\n public get isLogined(): boolean {\n return this.hasUser;\n }\n\n public get user(): U {\n return this._user;\n }\n\n public get id(): UserUid {\n return this.hasUser ? this.user.id : null;\n }\n}\n\nexport enum UserBaseServiceEvent {\n LOGINED = 'LOGINED',\n CHANGED = 'CHANGED',\n LOGOUTED = 'LOGOUTED'\n}\n","import { Observable } from 'rxjs';\nimport { Destroyable } from '@ts-core/common';\nimport { IWindowContent } from './IWindowContent';\nimport { IWindowConfig } from './IWindowConfig';\n\nexport abstract class IWindow<T = any> extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n abstract close(): void;\n\n abstract blink(): void;\n abstract shake(): void;\n abstract setOnTop(): void;\n\n abstract getWidth(): number;\n abstract getHeight(): number;\n abstract setWidth(value: number): void;\n abstract setHeight(value: number): void;\n abstract setSize(width: number, height: number): void;\n\n abstract getX(): number;\n abstract getY(): number;\n abstract setX(value: number): void;\n abstract setY(value: number): void;\n abstract move(x: number, y: number): void;\n\n abstract emit(event: string): void;\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public isOnTop: boolean = false;\n public isDisabled: boolean = false;\n public isMinimized: boolean = false;\n\n readonly events: Observable<string>;\n readonly container: HTMLElement;\n readonly wrapper: HTMLElement;\n readonly backdrop: HTMLElement;\n\n readonly config: IWindowConfig<T>;\n readonly content: IWindowContent<T>;\n}\n\nexport enum WindowEvent {\n OPENED = 'OPENED',\n CLOSED = 'CLOSED',\n CONTENT_READY = 'CONTENT_READY',\n\n MOVED = 'MOVED',\n RESIZED = 'RESIZED',\n DISABLED_CHANGED = 'DISABLED_CHANGED',\n MINIMIZED_CHANGED = 'MINIMIZED_CHANGED',\n IS_ON_TOP_CHANGED = 'IS_ON_TOP_CHANGED',\n\n EXPAND = 'EXPAND',\n SET_ON_TOP = 'SET_ON_TOP'\n}\n","export interface IWindowConfig<T = any> {\n id: string;\n isModal: boolean;\n isExpandable: boolean;\n isResizeable: boolean;\n isMinimizable: boolean;\n isDisableClose: boolean;\n isContentDragable: boolean;\n\n x: number;\n y: number;\n elementMinX: number;\n elementMaxX: number;\n elementMinY: number;\n elementMaxY: number;\n elementMinWidth: number;\n elementMaxWidth: number;\n elementMinHeight: number;\n elementMaxHeight: number;\n\n width: string;\n defaultWidth: number;\n defaultMinWidth: number;\n defaultMaxWidth: number;\n\n height: string;\n defaultHeight: number;\n defaultMinHeight: number;\n defaultMaxHeight: number;\n\n paddingTop: number;\n paddingLeft: number;\n paddingRight: number;\n paddingBottom: number;\n\n propertiesId: string;\n verticalAlign: WindowAlign;\n horizontalAlign: WindowAlign;\n\n data?: T;\n autoFocus: string;\n restoreFocus: boolean;\n delayFocusTrap: boolean;\n}\n\nexport enum WindowAlign {\n START = 'START',\n CENTER = 'CENTER',\n END = 'END'\n}\n","import * as _ from 'lodash';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { IWindowConfig, WindowAlign } from './IWindowConfig';\nimport { ViewUtil } from '../util/ViewUtil';\n\nexport abstract class WindowBase<T = any> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n protected static parseX<T>(value: number, config: IWindowConfig<T>): number {\n value = Math.max(value, config.elementMinX);\n value = Math.min(value, config.elementMaxX);\n return value;\n }\n\n protected static parseY<T>(value: number, config: IWindowConfig<T>): number {\n value = Math.max(value, config.elementMinY);\n value = Math.min(value, config.elementMaxY);\n return value;\n }\n\n protected static parseWidth<T>(value: number, config: IWindowConfig<T>): number {\n value = Math.max(value, config.elementMinWidth);\n value = Math.min(value, config.elementMaxWidth);\n return value;\n }\n\n protected static parseHeight<T>(value: number, config: IWindowConfig<T>): number {\n value = Math.max(value, config.elementMinHeight);\n value = Math.min(value, config.elementMaxHeight);\n return value;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _x: number = NaN;\n protected _width: number = NaN;\n\n protected _y: number = NaN;\n protected _height: number = NaN;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected abstract getConfig(): IWindowConfig<T>;\n protected abstract getContainer(): HTMLElement;\n\n protected setProperties(): void {\n let config = this.getConfig();\n if (!_.isNaN(config.defaultWidth)) {\n this.width = config.defaultWidth;\n }\n if (!_.isNaN(config.defaultHeight)) {\n this.height = config.defaultHeight;\n }\n }\n\n protected setPosition(): void {\n let config = this.getConfig();\n\n switch (config.horizontalAlign) {\n case WindowAlign.START:\n this.x = !_.isNaN(this.paddingLeft) ? this.paddingLeft : 0;\n break;\n case WindowAlign.END:\n let value = ViewUtil.getStageWidth() - this.calculateWidth();\n if (!_.isNaN(this.paddingRight)) {\n value -= this.paddingRight;\n }\n this.x = value;\n break;\n default:\n this.x = (ViewUtil.getStageWidth() - this.calculateWidth()) / 2;\n break;\n }\n\n switch (config.verticalAlign) {\n case WindowAlign.START:\n this.y = !_.isNaN(this.paddingTop) ? this.paddingTop : 0;\n break;\n case WindowAlign.END:\n let value = ViewUtil.getStageHeight() - this.calculateHeight();\n if (!_.isNaN(this.paddingBottom)) {\n value -= this.paddingBottom;\n }\n this.y = value;\n break;\n default:\n this.y = (ViewUtil.getStageHeight() - this.calculateHeight()) / 2;\n break;\n }\n }\n\n protected clearSize(): void {\n this._x = NaN;\n this._y = NaN;\n this._width = NaN;\n this._height = NaN;\n }\n\n protected commitSizeProperties(): void {}\n\n protected commitPositionProperties(): void {}\n\n protected updatePosition = (): void => this.setPosition();\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public calculateWidth(): number {\n return !_.isNaN(this.width) ? this.width : ViewUtil.getWidth(this.getContainer());\n }\n public calculateHeight(): number {\n return !_.isNaN(this.height) ? this.height : ViewUtil.getHeight(this.getContainer());\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n protected get width(): number {\n return this._width;\n }\n protected set width(value: number) {\n value = WindowBase.parseWidth(value, this.getConfig());\n if (value === this._width) {\n return;\n }\n this._width = value;\n this.commitSizeProperties();\n }\n\n protected get height(): number {\n return this._height;\n }\n protected set height(value: number) {\n value = WindowBase.parseWidth(value, this.getConfig());\n if (value === this._height) {\n return;\n }\n this._height = value;\n this.commitSizeProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get x(): number {\n return this._x;\n }\n\n public set x(value: number) {\n value = WindowBase.parseX(value, this.getConfig());\n if (value === this._x) {\n return;\n }\n this._x = value;\n this.commitPositionProperties();\n }\n\n public get y(): number {\n return this._y;\n }\n\n public set y(value: number) {\n value = WindowBase.parseY(value, this.getConfig());\n if (value === this._y) {\n return;\n }\n this._y = value;\n this.commitPositionProperties();\n }\n\n public get paddingTop(): number {\n return this.getConfig().paddingTop;\n }\n\n public get paddingLeft(): number {\n return this.getConfig().paddingLeft;\n }\n\n public get paddingRight(): number {\n return this.getConfig().paddingRight;\n }\n\n public get paddingBottom(): number {\n return this.getConfig().paddingBottom;\n }\n}\n","import * as _ from 'lodash';\nimport { IDestroyable } from '@ts-core/common';\nimport { IWindowConfig, WindowAlign } from './IWindowConfig';\nimport { ViewUtil } from '../util/ViewUtil';\n\nexport class WindowConfig<T = any> implements IWindowConfig<T>, IDestroyable {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public id: string;\n public isModal: boolean = false;\n public isExpandable: boolean = false;\n public isResizeable: boolean = false;\n public isMinimizable: boolean = false;\n public isDisableClose: boolean = false;\n public isContentDragable: boolean = true;\n\n public x: number = NaN;\n public y: number = NaN;\n public data: T;\n public propertiesId: string;\n\n public width: string;\n public minWidth: number;\n public maxWidth: number;\n public defaultWidth: number = NaN;\n public defaultMinWidth: number = NaN;\n public defaultMaxWidth: number = NaN;\n\n public height: string;\n public minHeight: number;\n public maxHeight: number;\n public defaultHeight: number = NaN;\n public defaultMinHeight: number = NaN;\n public defaultMaxHeight: number = NaN;\n\n public paddingTop: number = NaN;\n public paddingLeft: number = NaN;\n public paddingRight: number = NaN;\n public paddingBottom: number = NaN;\n\n public autoFocus: string;\n public restoreFocus: boolean;\n public delayFocusTrap: boolean;\n\n public verticalAlign: WindowAlign;\n public horizontalAlign: WindowAlign;\n\n protected _elementMaxX: number = NaN;\n protected _elementMinX: number = NaN;\n\n protected _elementMaxY: number = NaN;\n protected _elementMinY: number = NaN;\n\n protected _elementWidth: string;\n protected _elementMinWidth: number = NaN;\n protected _elementMaxWidth: number = NaN;\n\n protected _elementHeight: string;\n protected _elementMinHeight: number = NaN;\n protected _elementMaxHeight: number = NaN;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(isModal: boolean = false, isResizeable: boolean = false, width: number = NaN, height: number = NaN) {\n this.isModal = isModal;\n this.isResizeable = isResizeable;\n if (!_.isNaN(width)) {\n this.defaultWidth = width;\n }\n if (!_.isNaN(height)) {\n this.defaultHeight = height;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public setDefaultProperties(): void {\n this.width = this.elementWidth;\n this.maxWidth = this.elementMaxWidth;\n this.minWidth = this.elementMinWidth;\n\n this.height = this.elementHeight;\n this.maxHeight = this.elementMaxHeight;\n this.minHeight = this.elementMinHeight;\n }\n\n public destroy(): void {\n if (!_.isNil(this.data) && IDestroyable.instanceOf(this.data)) {\n this.data.destroy();\n }\n this.data = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get elementMinY(): number {\n if (!_.isNaN(this._elementMinY)) {\n return this._elementMinY;\n }\n this._elementMinY = 0 - ViewUtil.getStageHeight();\n if (!_.isNaN(this.paddingTop)) {\n this._elementMinY += this.paddingTop;\n }\n return this._elementMinY;\n }\n public get elementMaxY(): number {\n if (!_.isNaN(this._elementMaxY)) {\n return this._elementMaxY;\n }\n this._elementMaxY = ViewUtil.getStageHeight();\n if (!_.isNaN(this.paddingBottom)) {\n this._elementMaxY -= this.paddingBottom;\n }\n return this._elementMaxY;\n }\n\n public get elementMinX(): number {\n if (!_.isNaN(this._elementMinX)) {\n return this._elementMinX;\n }\n this._elementMinX = -ViewUtil.getStageWidth();\n if (!_.isNaN(this.paddingLeft)) {\n this._elementMinX += this.paddingLeft;\n }\n return this._elementMinX;\n }\n public get elementMaxX(): number {\n if (!_.isNaN(this._elementMaxX)) {\n return this._elementMaxX;\n }\n this._elementMaxX = ViewUtil.getStageWidth();\n if (!_.isNaN(this.paddingRight)) {\n this._elementMaxX -= this.paddingRight;\n }\n return this._elementMaxX;\n }\n\n public get elementWidth(): string {\n if (this._elementWidth) {\n return this._elementWidth;\n }\n this._elementWidth = 'auto';\n if (this.defaultWidth) {\n this._elementWidth = this.defaultWidth + 'px';\n }\n return this._elementWidth;\n }\n public get elementMinWidth(): number {\n if (!_.isNaN(this._elementMinWidth)) {\n return this._elementMinWidth;\n }\n this._elementMinWidth = 0;\n if (!_.isNaN(this.defaultMinWidth)) {\n let value = ViewUtil.getStageWidth();\n if (!_.isNaN(this.paddingLeft)) {\n value -= this.paddingLeft;\n }\n if (!_.isNaN(this.paddingRight)) {\n value -= this.paddingRight;\n }\n this._elementMinWidth = Math.min(this.defaultMinWidth, value);\n }\n return this._elementMinWidth;\n }\n public get elementMaxWidth(): number {\n if (!_.isNaN(this._elementMaxWidth)) {\n return this._elementMaxWidth;\n }\n this._elementMaxWidth = ViewUtil.getStageWidth();\n if (!_.isNaN(this.paddingLeft)) {\n this._elementMaxWidth -= this.paddingLeft;\n }\n if (!_.isNaN(this.paddingRight)) {\n this._elementMaxWidth -= this.paddingRight;\n }\n if (!_.isNaN(this.defaultMaxWidth)) {\n this._elementMaxWidth = Math.min(this.defaultMaxWidth, this._elementMaxWidth);\n }\n return this._elementMaxWidth;\n }\n\n public get elementHeight(): string {\n if (this._elementHeight) {\n return this._elementHeight;\n }\n this._elementHeight = 'auto';\n if (this.defaultHeight) {\n this._elementHeight = this.defaultHeight + 'px';\n }\n return this._elementHeight;\n }\n public get elementMinHeight(): number {\n if (!_.isNaN(this._elementMinHeight)) {\n return this._elementMinHeight;\n }\n this._elementMinHeight = 0;\n if (!_.isNaN(this.defaultMinHeight)) {\n let value = ViewUtil.getStageHeight();\n if (!_.isNaN(this.paddingTop)) {\n value -= this.paddingTop;\n }\n if (!_.isNaN(this.paddingBottom)) {\n value -= this.paddingBottom;\n }\n this._elementMinHeight = Math.min(this.defaultMinHeight, value);\n }\n return this._elementMinHeight;\n }\n\n public get elementMaxHeight(): number {\n if (!_.isNaN(this._elementMaxHeight)) {\n return this._elementMaxHeight;\n }\n this._elementMaxHeight = ViewUtil.getStageHeight();\n if (!_.isNaN(this.paddingTop)) {\n this._elementMaxHeight -= this.paddingTop;\n }\n if (!_.isNaN(this.paddingBottom)) {\n this._elementMaxHeight -= this.paddingBottom;\n }\n if (!_.isNaN(this.defaultMaxHeight)) {\n this._elementMaxHeight = Math.min(this.defaultMaxHeight, this._elementMaxHeight);\n }\n return this._elementMaxHeight;\n }\n}\n\nexport type WindowConfigOptions<T = any> = { [P in keyof WindowConfig<T>]?: any };\n","import { ObservableData, ClassType, Destroyable } from '@ts-core/common';\nimport { WindowConfigOptions } from './WindowConfig';\nimport { IWindow } from './IWindow';\nimport { Observable } from 'rxjs';\nimport { IWindowContent } from './IWindowContent';\nimport { IWindowConfig } from './IWindowConfig';\nimport { IQuestion, IQuestionOptions } from '../question/IQuestion';\nimport { WindowServiceEvent } from './WindowServiceEvent';\n\nexport abstract class WindowService extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract open<U extends IWindowContent<T>, T>(component: ClassType<U>, config: IWindowConfig<T>): U;\n\n public abstract get<T>(value: WindowId<T>): IWindowContent<T>;\n\n public abstract has<T>(value: WindowId<T>): boolean;\n\n public abstract setOnTop<T>(value: WindowId<T>): boolean;\n\n public abstract close<T>(value: WindowId<T>): void;\n\n public abstract closeAll(): void;\n\n // --------------------------------------------------------------------------\n //\n // \tAdditional Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion;\n\n public abstract question(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public abstract get events(): Observable<ObservableData<WindowServiceEvent, IWindow>>;\n\n public abstract get windows(): Map<IWindowConfig, IWindowContent>;\n}\n\nexport type WindowId<T> = string | IWindowConfig<T>;\n","export enum WindowServiceEvent {\n OPEN_STARTED = 'OPEN_STARTED',\n OPENED = 'OPENED',\n OPEN_FINISHED = 'OPEN_FINISHED',\n\n CLOSED = 'CLOSED',\n SETTED_ON_TOP = 'SETTED_ON_TOP'\n}\n","import { AfterViewInit, ElementRef, ViewContainerRef, Inject, Optional, Component, InjectionToken, Input, booleanAttribute } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { IWindow, WindowEvent } from './IWindow';\nimport { IWindowConfig } from './IWindowConfig';\nimport * as _ from 'lodash';\n\n@Component({ template: '' })\nexport abstract class IWindowContent<T = any> extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n // Properties=\n //\n // --------------------------------------------------------------------------\n\n protected _window: IWindow<T>;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(@Optional() @Inject(WINDOW_CONTENT_CONTAINER) public container: WindowContentContainer) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitWindowProperties(): void {\n this.commitConfigProperties();\n }\n\n protected commitConfigProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n this.emit(WindowEvent.CONTENT_READY);\n }\n\n public ngOnDestroy(): void {\n // do nothing, window will destroy content after closing\n if (_.isNil(this.window)) {\n super.ngOnDestroy();\n }\n }\n\n public blink(): void {\n if (!_.isNil(this.window)) {\n this.window.blink();\n }\n }\n\n public shake(): void {\n if (!_.isNil(this.window)) {\n this.window.shake();\n }\n }\n\n public emit(event: string): void {\n if (!_.isNil(this.window)) {\n this.window.emit(event);\n }\n }\n\n public close(): void {\n if (!_.isNil(this.window)) {\n this.window.close();\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.window = null;\n this.container = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Proxy Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get data(): T {\n return !_.isNil(this.config) ? this.config.data : null;\n }\n\n public get isOnTop(): boolean {\n return !_.isNil(this.window) ? this.window.isOnTop : false;\n }\n\n public get isMinimized(): boolean {\n return !_.isNil(this.window) ? this.window.isMinimized : false;\n }\n\n public get events(): Observable<string> {\n return !_.isNil(this.window) ? this.window.events : null;\n }\n\n @Input({ transform: booleanAttribute })\n public set isDisabled(value: boolean) {\n if (!_.isNil(this.window)) {\n this.window.isDisabled = value;\n }\n }\n public get isDisabled(): boolean {\n return !_.isNil(this.window) ? this.window.isDisabled : false;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get element(): ElementRef {\n if (_.isNil(this.container)) {\n return null;\n }\n return this.container instanceof ViewContainerRef ? this.container.element : this.container;\n }\n\n public get config(): IWindowConfig<T> {\n return !_.isNil(this.window) ? this.window.config : null;\n }\n\n public get window(): IWindow<T> {\n return this._window;\n }\n @Input()\n public set window(value: IWindow<T>) {\n if (value === this._window) {\n return;\n }\n this._window = value;\n if (!_.isNil(value)) {\n this.commitWindowProperties();\n }\n }\n}\n\nexport type WindowContentContainer = ElementRef | ViewContainerRef;\nexport const WINDOW_CONTENT_CONTAINER = new InjectionToken<WindowContentContainer>('WINDOW_CONTENT_CONTAINER');\n","import { ExtendedError } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class WindowClosedError extends ExtendedError<void, number> {\n // --------------------------------------------------------------------------\n //\n // Static Methods\n //\n // --------------------------------------------------------------------------\n\n public static CODE = ExtendedError.DEFAULT_ERROR_CODE;\n public static MESSAGE = 'WINDOW_CLOSED';\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(message: string = WindowClosedError.MESSAGE, code: number = WindowClosedError.CODE) {\n super(message, code);\n }\n}\n","import { IDestroyable } from '@ts-core/common';\nimport { INotificationContent } from './INotificationContent';\nimport { INotificationConfig } from './INotificationConfig';\nimport { Observable } from 'rxjs';\n\nexport abstract class INotification<T = any> implements IDestroyable {\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n abstract getX(): number;\n abstract getY(): number;\n abstract setX(value: number): void;\n abstract setY(value: number): void;\n abstract move(x: number, y: number): void;\n\n abstract getWidth(): number;\n abstract getHeight(): number;\n abstract setWidth(value: number): void;\n abstract setHeight(value: number): void;\n abstract setSize(width: number, height: number): void;\n\n abstract close(): void;\n abstract remove(): void;\n abstract destroy(): void;\n\n abstract emit(event: string): void;\n\n // --------------------------------------------------------------------------\n //\n // \tInterface Methods\n //\n // --------------------------------------------------------------------------\n\n readonly events: Observable<string>;\n readonly container: HTMLElement;\n\n readonly config: INotificationConfig<T>;\n readonly content: INotificationContent<T>;\n}\n\nexport enum NotificationEvent {\n REMOVED = 'REMOVED'\n}\n","import { AfterViewInit, Component, Input, ViewContainerRef } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { Observable } from 'rxjs';\nimport { INotification } from './INotification';\nimport { INotificationConfig } from './INotificationConfig';\nimport { WindowEvent } from '../window/IWindow';\nimport * as _ from 'lodash';\n\n@Component({ template: '' })\nexport abstract class INotificationContent<T = any> extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected timer: any;\n protected _config: INotificationConfig<T>;\n protected _notification: INotification<T>;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(public container: ViewContainerRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitNotificationProperties(): void {\n this.config = this.notification.config;\n }\n\n protected commitConfigProperties(): void {\n this.clearTimer();\n if (this.config.closeDuration > 0) {\n this.timer = setTimeout(this.timerHandler, this.config.closeDuration);\n }\n }\n\n protected clearTimer(): void {\n if (!_.isNil(this.timer)) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n protected timerHandler = (): void => this.handleCloseClick();\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public close(): void {\n if (!_.isNil(this.notification)) {\n this.notification.close();\n }\n }\n\n public remove(): void {\n if (!_.isNil(this.notification)) {\n this.notification.remove();\n }\n }\n\n public emit(event: string): void {\n if (!_.isNil(this.notification)) {\n this.notification.emit(event);\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.clearTimer();\n this.config = null;\n this.notification = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n this.emit(WindowEvent.CONTENT_READY);\n }\n\n public handleCloseClick(): void {\n this.clearTimer();\n if (!_.isNil(this.config) && this.config.isRemoveAfterClose) {\n this.remove();\n } else {\n this.close();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Proxy Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get data(): T {\n return this.config ? this.config.data : null;\n }\n\n public get events(): Observable<string> {\n return this.notification ? this.notification.events : null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get notification(): INotification<T> {\n return this._notification;\n }\n public set notification(value: INotification<T>) {\n if (value === this._notification) {\n return;\n }\n this._notification = value;\n if (this._notification) {\n this.commitNotificationProperties();\n }\n }\n\n @Input()\n public set config(value: INotificationConfig<T>) {\n if (value === this._config) {\n return;\n }\n this._config = value;\n if (this._config) {\n this.commitConfigProperties();\n }\n }\n public get config(): INotificationConfig<T> {\n return this._config;\n }\n}\n","import { WindowConfig } from '../window/WindowConfig';\nimport { INotificationConfig } from './INotificationConfig';\n\nexport class NotificationConfig<T = any> extends WindowConfig<T> implements INotificationConfig<T> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public icon: string;\n public sound: string;\n public iconId: string;\n public picture: string;\n\n public closeDuration: number;\n public isRemoveAfterClose: boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(data?: T) {\n super();\n this.data = data;\n this.isModal = false;\n this.closeDuration = NaN;\n this.isRemoveAfterClose = false;\n }\n}\n\nexport type NotificationConfigOptions<T = any> = { [P in keyof NotificationConfig<T>]?: any };\n","export enum NotificationServiceEvent {\n OPENED = 'OPENED',\n CLOSED = 'CLOSED',\n ADDED = 'ADDED',\n REMOVED = 'REMOVED'\n}\n","import { ObservableData, ClassType, Destroyable } from '@ts-core/common';\nimport { WindowConfigOptions } from '../window/WindowConfig';\nimport { IWindow } from '../window/IWindow';\nimport { Observable } from 'rxjs';\nimport { IWindowContent } from '../window/IWindowContent';\nimport { IWindowConfig } from '../window/IWindowConfig';\nimport { IQuestion, IQuestionOptions } from '../question/IQuestion';\nimport { WindowServiceEvent } from '../window/WindowServiceEvent';\nimport { WindowId } from '../window/WindowService';\n\nexport abstract class BottomSheetService extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract open<U extends IWindowContent<T>, T>(component: ClassType<U>, config: IWindowConfig<T>): U;\n\n public abstract get<T>(value: WindowId<T>): IWindowContent<T>;\n\n public abstract has<T>(value: WindowId<T>): boolean;\n\n public abstract close<T>(value: WindowId<T>): void;\n\n public abstract closeAll(): void;\n\n // --------------------------------------------------------------------------\n //\n // \tAdditional Methods\n //\n // --------------------------------------------------------------------------\n\n public abstract info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion;\n\n public abstract question(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion;\n\n public abstract setOnTop<T>(value: WindowId<T>): boolean;\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public abstract get window(): IWindow;\n\n public abstract get events(): Observable<ObservableData<WindowServiceEvent, IWindow>>;\n}\n","import { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class LocalStorageService extends DestroyableContainer {\n //--------------------------------------------------------------------------\n //\n // \tProperties\n //\n //--------------------------------------------------------------------------\n\n protected storage: Storage;\n\n //--------------------------------------------------------------------------\n //\n // \tConstructor\n //\n //--------------------------------------------------------------------------\n\n constructor(storage: Storage) {\n super();\n this.storage = storage;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public get(key: string, defaultValue?: string): string {\n if (_.isNil(this.storage)) {\n return null;\n }\n return this.has(key) ? this.storage.getItem(key) : defaultValue;\n }\n\n public has(key: string): boolean {\n if (_.isNil(this.storage)) {\n return false;\n }\n return !_.isNil(this.storage.getItem(key));\n }\n\n public set(key: string, value: string): void {\n if (_.isNil(this.storage)) {\n return;\n }\n if (!_.isNil(value)) {\n this.storage.setItem(key, value);\n } else {\n this.remove(key);\n }\n }\n\n public remove(key: string): void {\n if (!_.isNil(this.storage)) {\n this.storage.removeItem(key);\n }\n }\n\n public clear(): void {\n if (!_.isNil(this.storage)) {\n this.storage.clear();\n }\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.storage = null;\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Properties\n //\n //--------------------------------------------------------------------------\n\n protected get length(): number {\n return this.storage.length;\n }\n}\n","import { ValueStorage } from './ValueStorage';\nimport * as _ from 'lodash';\n\nexport class JSONValueStorage<T = any> extends ValueStorage<T> {\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected serialize(value: string): T {\n return JSON.parse(value);\n }\n\n protected deserialize(value: T): string {\n return JSON.stringify(value);\n }\n}\n","import { DateUtil } from '@ts-core/common';\nimport { ValueStorage } from './ValueStorage';\nimport * as _ from 'lodash';\n\nexport class DateValueStorage extends ValueStorage<Date> {\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public defaultExpirationDelta: number = 0;\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected serialize(value: string): Date {\n return new Date(value);\n }\n\n protected deserialize(value: Date): string {\n return value.toISOString();\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public isMore(item: Date): boolean {\n return this.has() ? this.get().getTime() > item.getTime() : false;\n }\n\n public isLess(item: Date): boolean {\n return this.has() ? this.get().getTime() < item.getTime() : false;\n }\n\n public isEqual(item: Date): boolean {\n return this.has() ? this.get().getTime() === item.getTime() : false;\n }\n\n public isExpired(item: Date): boolean {\n return this.has() ? this.isLess(item) : true;\n }\n\n public isExpiredFromNow(delta?: number): boolean {\n if (_.isNil(delta)) {\n delta = this.defaultExpirationDelta;\n }\n return this.isExpired(DateUtil.getDate(Date.now() + delta));\n }\n}\n","import { ValueStorage } from './ValueStorage';\nimport * as _ from 'lodash';\n\nexport class BooleanValueStorage extends ValueStorage<boolean> {\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected serialize(value: string): boolean {\n return value === 'true';\n }\n\n protected deserialize(value: boolean): string {\n return value ? 'true' : 'false';\n }\n}\n","import { Compiler, Injectable, Injector, NgModuleFactory, NgModuleRef, Type } from '@angular/core';\nimport { Loadable, LoadableEvent } from '@ts-core/common';\nimport { ExtendedError } from '@ts-core/common';\nimport { MapCollection } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport * as _ from 'lodash';\n\n@Injectable({ providedIn: 'root' })\nexport class LazyModuleLoader<T extends ILazyModuleData = ILazyModuleData> extends Loadable {\n //--------------------------------------------------------------------------\n //\n // Properties\n //\n //--------------------------------------------------------------------------\n\n protected _modules: MapCollection<T>;\n\n //--------------------------------------------------------------------------\n //\n // Constructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n protected compiler: Compiler,\n protected injector: Injector\n ) {\n super();\n this._modules = new MapCollection('id');\n }\n\n //--------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected async load(item: T): Promise<void> {\n item.reference = await this.loadReference(item.path);\n }\n\n protected async loadReference<T>(path: LazyModulePath<T>): Promise<NgModuleRef<T>> {\n let moduleFactory: NgModuleFactory<T> = null;\n let elementModuleOrFactory: NgModuleFactory<T> | Type<T> = await path();\n if (elementModuleOrFactory instanceof NgModuleFactory) {\n moduleFactory = elementModuleOrFactory;\n } else {\n moduleFactory = await this.compiler.compileModuleAsync(elementModuleOrFactory);\n }\n return moduleFactory.create(this.injector);\n }\n\n protected isNeedLoad(item: T): boolean {\n return _.isNil(item.reference);\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public async loadIfNeed(id: string): Promise<T> {\n let item = this.modules.get(id);\n if (_.isNil(item)) {\n throw new ExtendedError(`Unable to find \"${id}\" module: it must be registered first`);\n }\n if (!this.isNeedLoad(item)) {\n return item;\n }\n try {\n this.observer.next(new ObservableData(LoadableEvent.STARTED));\n await this.load(item);\n } finally {\n this.observer.next(new ObservableData(LoadableEvent.FINISHED));\n }\n return item;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n if (!_.isNil(this._modules)) {\n this._modules.destroy();\n this._modules = null;\n }\n }\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n public get modules(): MapCollection<T> {\n return this._modules;\n }\n}\n\nexport interface ILazyModuleData<T = any> {\n id: string;\n path?: LazyModulePath<T>;\n reference?: NgModuleRef<T>;\n}\n\nexport type LazyModulePath<T> = () => Promise<NgModuleFactory<T> | Type<T>>;\n","import { TransportEvent } from '@ts-core/common';\nimport { ITransportLazyModuleData } from './TransportLazyModule';\n\nexport class TransportLazyModuleLoadedEvent<T extends ITransportLazyModuleData = ITransportLazyModuleData> extends TransportEvent<T> {\n // --------------------------------------------------------------------------\n //\n // Public Static Properties\n //\n // --------------------------------------------------------------------------\n\n public static readonly NAME = 'TransportLazyModuleLoadedEvent';\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(request: T) {\n super(TransportLazyModuleLoadedEvent.NAME, request);\n }\n}\n","import { ITransportCommand, ITransportCommandOptions, ITransportEvent, ITransportSettings } from '@ts-core/common';\nimport { TransportLocal } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { LazyModuleLoader } from '../module/LazyModuleLoader';\nimport { ILogger } from '@ts-core/common';\nimport { ITransportLazyModuleData } from './TransportLazyModule';\nimport { TransportLazyModuleLoadedEvent } from './TransportLazyModuleLoadedEvent';\n\nexport class TransportLazy extends TransportLocal {\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(\n logger: ILogger,\n protected loader: LazyModuleLoader<ITransportLazyModuleData>,\n settings?: ITransportSettings\n ) {\n super(logger, settings, null);\n this.getDispatcher<TransportLazyModuleLoadedEvent<ITransportLazyModuleData>>(TransportLazyModuleLoadedEvent.NAME).subscribe(event =>\n this.moduleLoadedHandler(event.data)\n );\n this.logEventFilters.push(item => item.name !== TransportLazyModuleLoadedEvent.NAME);\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n protected moduleLoadedHandler(module: ITransportLazyModuleData): void {\n let item = this.loader.modules.get(module.id);\n if (_.isNil(item)) {\n item = this.loader.modules.add(module);\n }\n if (_.isNil(item.reference)) {\n item.reference = module.reference;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected async commandResponseRequestDispatch<U>(command: ITransportCommand<U>, options: ITransportCommandOptions, isNeedReply: boolean): Promise<void> {\n let item = this.getModuleByCommand(command.name);\n if (!_.isNil(item)) {\n await this.loader.loadIfNeed(item.id);\n }\n return super.commandResponseRequestDispatch(command, options, isNeedReply);\n }\n\n protected async eventRequestExecute<U>(event: ITransportEvent<U>): Promise<void> {\n let item = this.getModuleByEvent(event.name);\n if (!_.isNil(this.loader) && !_.isNil(item)) {\n this.loader.loadIfNeed(item.id).then(() => super.eventRequestExecute(event));\n } else {\n super.eventRequestExecute(event);\n }\n }\n\n protected getModuleByCommand(name: string): ITransportLazyModuleData {\n if (this.loader.modules.length === 0) {\n return null;\n }\n for (let item of this.loader.modules.collection) {\n if (_.isEmpty(item.commands)) {\n continue;\n }\n if (_.includes(item.commands, name)) {\n return item;\n }\n }\n return null;\n }\n\n protected getModuleByEvent(name: string): ITransportLazyModuleData {\n if (_.isNil(this.loader) || this.loader.modules.length === 0) {\n return null;\n }\n for (let item of this.loader.modules.collection) {\n if (_.isEmpty(item.events)) {\n continue;\n }\n if (_.includes(item.events, name)) {\n return item;\n }\n }\n return null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.loader = null;\n }\n}\n","import { NgModuleRef } from '@angular/core';\nimport { Transport } from '@ts-core/common';\nimport { ILazyModuleData } from '../module/LazyModuleLoader';\nimport { TransportLazyModuleLoadedEvent } from './TransportLazyModuleLoadedEvent';\n\nexport abstract class TransportLazyModule<T> implements ITransportLazyModuleData<T> {\n //--------------------------------------------------------------------------\n //\n // Constructor\n //\n //--------------------------------------------------------------------------\n\n constructor(\n public reference: NgModuleRef<T>,\n protected transport: Transport\n ) {\n this.moduleLoadedDispatch();\n }\n\n //--------------------------------------------------------------------------\n //\n // Protected Methods\n //\n //--------------------------------------------------------------------------\n\n protected moduleLoadedDispatch(): void {\n this.transport.dispatch(new TransportLazyModuleLoadedEvent(this));\n }\n\n //--------------------------------------------------------------------------\n //\n // Public Properties\n //\n //--------------------------------------------------------------------------\n\n public abstract get id(): string;\n\n public get events(): Array<string> {\n return new Array();\n }\n\n public get commands(): Array<string> {\n return new Array();\n }\n}\n\nexport interface ITransportLazyModuleData<T = any> extends ILazyModuleData<T> {\n events?: Array<string>;\n commands?: Array<string>;\n}\n","import { APP_INITIALIZER, InjectionToken, ModuleWithProviders, NgModule, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ILogger, Logger, LoggerLevel } from '@ts-core/common';\nimport { ICookieOptions } from '@ts-core/frontend';\nimport { ILanguageServiceOptions } from '@ts-core/frontend';\nimport { DefaultLogger } from '@ts-core/frontend';\nimport { LoadingService, NativeWindowService } from '@ts-core/frontend';\nimport { IThemeServiceOptions } from '@ts-core/frontend';\nimport { AssetModule } from './asset/AssetModule';\nimport { CookieModule } from './cookie/CookieModule';\nimport { CanDeactivateGuard } from './service/route/CanDeactivateGuard';\nimport { AspectRatioResizeDirective } from './directive/AspectRatioResizeDirective';\nimport { AutoScrollBottomDirective } from './directive/AutoScrollBottomDirective';\nimport { ClickToCopyDirective } from './directive/ClickToCopyDirective';\nimport { ClickToSelectDirective } from './directive/ClickToSelectDirective';\nimport { FocusDirective } from './directive/FocusDirective';\nimport { SelectOnFocusDirective } from './directive/SelectOnFocusDirective';\nimport { HTMLTitleDirective } from './directive/HTMLTitleDirective';\nimport { HTMLContentTitleDirective } from './directive/HTMLContentTitleDirective';\nimport { InfiniteScrollDirective } from './directive/InfiniteScrollDirective';\nimport { ResizeDirective } from './directive/ResizeDirective';\nimport { ScrollCheckDirective } from './directive/ScrollCheckDirective';\nimport { ScrollDirective } from './directive/ScrollDirective';\nimport { LanguageModule } from './language/LanguageModule';\nimport { CamelCasePipe } from './pipe/CamelCasePipe';\nimport { FinancePipe } from './pipe/FinancePipe';\nimport { MomentDateAdaptivePipe } from './pipe/MomentDateAdaptivePipe';\nimport { MomentDateFromNowPipe } from './pipe/MomentDateFromNowPipe';\nimport { MomentDatePipe } from './pipe/MomentDatePipe';\nimport { MomentTimePipe } from './pipe/MomentTimePipe';\nimport { NgModelErrorPipe } from './pipe/NgModelErrorPipe';\nimport { SanitizePipe } from './pipe/SanitizePipe';\nimport { StartCasePipe } from './pipe/StartCasePipe';\nimport { TimePipe } from './pipe/TimePipe';\nimport { TruncatePipe } from './pipe/TruncatePipe';\nimport { PrettifyPipe } from './pipe/PrettifyPipe';\nimport { ThemeModule } from './theme/ThemeModule';\nimport { IsServerDirective } from './directive/IsServerDirective';\nimport { IsBrowserDirective } from './directive/IsBrowserDirective';\nimport { DOCUMENT } from '@angular/common';\nimport { PlatformService } from './service/PlatformService';\nimport { ViewUtil } from './util/ViewUtil';\nimport { CookieService } from './cookie/CookieService';\nimport { LoginTokenStorage } from './login/LoginTokenStorage';\nimport { LocalStorageService } from './storage/LocalStorageService';\nimport * as _ from 'lodash';\n\nlet imports = [CookieModule, ThemeModule, LanguageModule, AssetModule];\n\nlet declarations = [\n TimePipe,\n FinancePipe,\n SanitizePipe,\n TruncatePipe,\n PrettifyPipe,\n CamelCasePipe,\n StartCasePipe,\n NgModelErrorPipe,\n\n IsServerDirective,\n IsBrowserDirective,\n\n MomentDatePipe,\n MomentTimePipe,\n MomentDateFromNowPipe,\n MomentDateAdaptivePipe,\n\n FocusDirective,\n ResizeDirective,\n ScrollDirective,\n ScrollCheckDirective,\n ClickToCopyDirective,\n SelectOnFocusDirective,\n ClickToSelectDirective,\n InfiniteScrollDirective,\n HTMLTitleDirective,\n HTMLContentTitleDirective,\n AutoScrollBottomDirective,\n AspectRatioResizeDirective\n];\n\nlet exports = [...imports, ...declarations];\n\n@NgModule({\n imports,\n declarations,\n exports\n})\nexport class VIModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: IVIOptions): ModuleWithProviders<VIModule> {\n return {\n ngModule: VIModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n deps: [NativeWindowService, RendererFactory2],\n useFactory: initializerFactory,\n multi: true\n },\n\n LoadingService,\n PlatformService,\n CanDeactivateGuard,\n\n { provide: VI_ANGULAR_OPTIONS, useValue: options || {} },\n { provide: Logger, deps: [VI_ANGULAR_OPTIONS], useFactory: loggerServiceFactory },\n { provide: NativeWindowService, deps: [DOCUMENT], useFactory: nativeWindowServiceFactory },\n { provide: LocalStorageService, deps: [NativeWindowService], useFactory: localStorageServiceFactory },\n { provide: LoginTokenStorage, deps: [LocalStorageService, CookieService], useFactory: loginTokenStorageServiceFactory },\n\n ...CookieModule.forRoot(options).providers,\n ...ThemeModule.forRoot(options ? options.themeOptions : null).providers,\n ...LanguageModule.forRoot(options ? options.languageOptions : null).providers\n ]\n };\n }\n}\n\nexport class IVIOptions extends ICookieOptions {\n loggerLevel?: LoggerLevel;\n themeOptions?: IThemeServiceOptions;\n languageOptions?: ILanguageServiceOptions;\n}\n\nexport function initializerFactory(nativeWindow: NativeWindowService, rendererFactory2: RendererFactory2): ViewUtil {\n ViewUtil.renderer = rendererFactory2.createRenderer(null, null);\n ViewUtil.document = nativeWindow.document;\n return () => Promise.resolve();\n}\n\nexport function loggerServiceFactory(options: IVIOptions): ILogger {\n return new DefaultLogger(!_.isNil(options.loggerLevel) ? options.loggerLevel : LoggerLevel.ALL);\n}\n\nexport function nativeWindowServiceFactory(document: Document): NativeWindowService {\n return new NativeWindowService(document);\n}\n\nexport function localStorageServiceFactory(nativeWindow: NativeWindowService): LocalStorageService {\n return new LocalStorageService(nativeWindow.window.localStorage);\n}\n\nexport function loginTokenStorageServiceFactory(local: LocalStorageService, cookies: CookieService): LoginTokenStorage {\n return new LoginTokenStorage(local, cookies);\n}\n\nexport const VI_ANGULAR_OPTIONS = new InjectionToken<IVIOptions>(`VI_ANGULAR_OPTIONS`);\n","//\nexport * from './application/ApplicationBaseComponent';\nexport * from './application/ApplicationComponent';\nexport * from './application/MessageBaseComponent';\n//\nexport * from './ApplicationInjector';\n//\nexport * from './asset/AssetBackgroundDirective';\nexport * from './asset/AssetBackgroundPipe';\nexport * from './asset/AssetIconPipe';\nexport * from './asset/AssetFilePipe';\nexport * from './asset/AssetVideoPipe';\nexport * from './asset/AssetSoundPipe';\nexport * from './asset/AssetImagePipe';\nexport * from './asset/AssetModule';\n//\nexport * from './cookie/CookieModule';\nexport * from './cookie/CookieOptions';\nexport * from './cookie/CookieService';\n//\nexport * from './directive/AspectRatioResizeDirective';\nexport * from './directive/AutoScrollBottomDirective';\nexport * from './directive/ClickToCopyDirective';\nexport * from './directive/ClickToSelectDirective';\nexport * from './directive/FocusDirective';\nexport * from './directive/SelectOnFocusDirective';\nexport * from './directive/InfiniteScrollDirective';\nexport * from './directive/ResizeDirective';\nexport * from './directive/StructureDirective';\nexport * from './directive/ScrollDirective';\nexport * from './directive/ScrollCheckDirective';\nexport * from './directive/HTMLTitleDirective';\nexport * from './directive/HTMLContentTitleDirective';\nexport * from './directive/IsBrowserDirective';\nexport * from './directive/IsServerDirective';\n//\nexport * from './language/LanguageModule';\nexport * from './language/LanguagePipe';\nexport * from './language/LanguagePipePure';\nexport * from './language/LanguagePipeHas';\nexport * from './language/LanguagePipeHasPure';\nexport * from './language/LanguageResolver';\nexport * from './language/LanguageRequireResolver';\nexport * from './language/LanguageDirective';\nexport * from './language/LanguageHasDirective';\n//\nexport * from './login/LoginGuard';\nexport * from './login/LoginIfCanGuard';\nexport * from './login/LoginNotGuard';\nexport * from './login/LoginResolver';\nexport * from './login/LoginBaseService';\nexport * from './login/LoginRequireResolver';\nexport * from './login/LoginTokenStorage';\n//\nexport * from './manager/FocusManager';\nexport * from './manager/ResizeManager';\n//\nexport * from './menu/MenuItem';\nexport * from './menu/MenuItemBase';\nexport * from './menu/MenuItems';\nexport * from './menu/NavigationMenuItem';\n//\nexport * from './list/IListItem';\nexport * from './list/ListItem';\nexport * from './list/ListItems';\nexport * from './list/select/ISelectListItem';\nexport * from './list/select/SelectListItem';\nexport * from './list/select/SelectListItems';\nexport * from './list/select/RouterSelectListItems';\n//\nexport * from './pipe/CamelCasePipe';\nexport * from './pipe/FinancePipe';\nexport * from './pipe/MomentDateAdaptivePipe';\nexport * from './pipe/MomentDateFromNowPipe';\nexport * from './pipe/MomentDatePipe';\nexport * from './pipe/MomentTimePipe';\nexport * from './pipe/NgModelErrorPipe';\nexport * from './pipe/SanitizePipe';\nexport * from './pipe/StartCasePipe';\nexport * from './pipe/TruncatePipe';\nexport * from './pipe/PrettifyPipe';\nexport * from './pipe/TimePipe';\n//\nexport * from './question/IQuestion';\nexport * from './question/QuestionManager';\n//\nexport * from './service/PipeBaseService';\nexport * from './service/PlatformService';\nexport * from './service/RouterBaseService';\nexport * from './service/ServiceWorkerService';\nexport * from './service/route/CanDeactivateGuard';\nexport * from './service/route/IRouterDeactivatable';\n//\nexport * from './theme/ThemeStyleHoverDirective';\nexport * from './theme/ThemeStyleDirective';\nexport * from './theme/ThemeAssetBackgroundDirective';\nexport * from './theme/ThemeAssetImageDirective';\nexport * from './theme/ThemeAssetIconDirective';\nexport * from './theme/ThemeAssetDirective';\nexport * from './theme/ThemeModule';\nexport * from './theme/ThemeToggleDirective';\n//\nexport * from './user/IUser';\nexport * from './user/UserBaseService';\n//\nexport * from './window/IWindow';\nexport * from './window/WindowBase';\nexport * from './window/WindowConfig';\nexport * from './window/WindowService';\nexport * from './window/WindowServiceEvent';\nexport * from './window/IWindowConfig';\nexport * from './window/IWindowContent';\nexport * from './window/WindowClosedError';\n//\nexport * from './notification/INotification';\nexport * from './notification/INotificationConfig';\nexport * from './notification/INotificationContent';\nexport * from './notification/NotificationConfig';\nexport * from './notification/NotificationService';\nexport * from './notification/NotificationServiceEvent';\n//\nexport * from './bottomSheet/BottomSheetService';\n//\nexport * from './storage/LocalStorageService';\nexport * from './storage/ValueStorage';\nexport * from './storage/JSONValueStorage';\nexport * from './storage/IValueStorage';\nexport * from './storage/DateValueStorage';\nexport * from './storage/BooleanValueStorage';\n//\nexport * from './module/LazyModuleLoader';\n//\nexport * from './transport/TransportLazy';\nexport * from './transport/TransportLazyModule';\nexport * from './transport/TransportLazyModuleLoadedEvent';\n//\nexport * from './util/ViewUtil';\n//\nexport * from './VIModule';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["declarations","i1.PlatformService","i1","i3.NotificationService"],"mappings":"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"}
|