@ts-core/angular 15.0.1 → 15.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.
- package/VICommonModule.d.ts +10 -13
- package/application/ApplicationComponent.d.ts +1 -3
- package/directive/ResizeDirective.d.ts +2 -2
- package/directive/SelectOnFocusDirective.d.ts +1 -1
- package/esm2020/VICommonModule.mjs +4 -14
- package/esm2020/application/ApplicationComponent.mjs +2 -3
- package/esm2020/application/MessageBaseComponent.mjs +1 -1
- package/esm2020/directive/AutoScrollBottomDirective.mjs +2 -2
- package/esm2020/directive/ResizeDirective.mjs +5 -5
- package/esm2020/directive/SelectOnFocusDirective.mjs +2 -2
- package/esm2020/language/LanguageModule.mjs +1 -8
- package/esm2020/manager/ResizeManager.mjs +3 -11
- package/esm2020/pipe/CamelCasePipe.mjs +4 -12
- package/esm2020/pipe/StartCasePipe.mjs +4 -5
- package/esm2020/pipe/TimePipe.mjs +3 -2
- package/esm2020/pipe/TruncatePipe.mjs +3 -5
- package/esm2020/public-api.mjs +1 -68
- package/esm2020/service/PipeBaseService.mjs +1 -1
- package/esm2020/theme/ThemeAssetDirective.mjs +1 -1
- package/esm2020/theme/ThemeStyleDirective.mjs +2 -2
- package/esm2020/util/ViewUtil.mjs +1 -1
- package/fesm2015/ts-core-angular.mjs +3091 -7551
- package/fesm2015/ts-core-angular.mjs.map +1 -1
- package/fesm2020/ts-core-angular.mjs +3057 -7515
- package/fesm2020/ts-core-angular.mjs.map +1 -1
- package/htdocs/common.js +3 -3
- package/manager/ResizeManager.d.ts +1 -1
- package/package.json +3 -10
- package/pipe/CamelCasePipe.d.ts +0 -1
- package/public-api.d.ts +0 -60
- package/style/_core.scss +120 -0
- package/style/_filter.scss +14 -0
- package/style/_mouse.scss +27 -0
- package/style/_scroll.scss +20 -0
- package/style/_text.scss +20 -0
- package/application/ShellBaseComponent.d.ts +0 -20
- package/bottomSheet/BottomSheetImpl.d.ts +0 -77
- package/bottomSheet/BottomSheetModule.d.ts +0 -13
- package/bottomSheet/BottomSheetService.d.ts +0 -31
- package/bottomSheet/component/BottomSheetBaseComponent.d.ts +0 -13
- package/component/VIComponentModule.d.ts +0 -33
- package/component/cdk-table/CdkTableBaseComponent.d.ts +0 -60
- package/component/cdk-table/CdkTableDataSource.d.ts +0 -13
- package/component/cdk-table/CdkTableFilterableMapCollection.d.ts +0 -14
- package/component/cdk-table/CdkTablePaginableBookmarkMapCollection.d.ts +0 -11
- package/component/cdk-table/CdkTablePaginableMapCollection.d.ts +0 -13
- package/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.d.ts +0 -9
- package/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.d.ts +0 -18
- package/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.d.ts +0 -9
- package/component/cdk-table/cell/CdkTableCellClassNamePipe.d.ts +0 -8
- package/component/cdk-table/cell/CdkTableCellStyleNamePipe.d.ts +0 -10
- package/component/cdk-table/cell/CdkTableCellValuePipe.d.ts +0 -17
- package/component/cdk-table/cell/CdkTableCellValuePipePure.d.ts +0 -8
- package/component/cdk-table/column/CdkTableColumnClassNamePipe.d.ts +0 -8
- package/component/cdk-table/column/CdkTableColumnStyleNamePipe.d.ts +0 -10
- package/component/cdk-table/column/ICdkTableColumn.d.ts +0 -25
- package/component/cdk-table/row/CdkTableRowClassNamePipe.d.ts +0 -8
- package/component/cdk-table/row/CdkTableRowStyleNamePipe.d.ts +0 -10
- package/component/cdk-table/row/ICdkTableRow.d.ts +0 -8
- package/component/language/language-selector/language-selector.component.d.ts +0 -19
- package/component/menu-list/menu-list.component.d.ts +0 -9
- package/component/select-list/select-list.component.d.ts +0 -9
- package/component/tab-group/tab-group.component.d.ts +0 -16
- package/directive/MenuTriggerForDirective.d.ts +0 -11
- package/error/WindowClosedError.d.ts +0 -6
- package/esm2020/application/ShellBaseComponent.mjs +0 -78
- package/esm2020/bottomSheet/BottomSheetImpl.mjs +0 -273
- package/esm2020/bottomSheet/BottomSheetModule.mjs +0 -37
- package/esm2020/bottomSheet/BottomSheetService.mjs +0 -107
- package/esm2020/bottomSheet/component/BottomSheetBaseComponent.mjs +0 -59
- package/esm2020/component/VIComponentModule.mjs +0 -117
- package/esm2020/component/cdk-table/CdkTableBaseComponent.mjs +0 -192
- package/esm2020/component/cdk-table/CdkTableDataSource.mjs +0 -58
- package/esm2020/component/cdk-table/CdkTableFilterableMapCollection.mjs +0 -94
- package/esm2020/component/cdk-table/CdkTablePaginableBookmarkMapCollection.mjs +0 -49
- package/esm2020/component/cdk-table/CdkTablePaginableMapCollection.mjs +0 -57
- package/esm2020/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.mjs +0 -37
- package/esm2020/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.mjs +0 -65
- package/esm2020/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.mjs +0 -37
- package/esm2020/component/cdk-table/cell/CdkTableCellClassNamePipe.mjs +0 -25
- package/esm2020/component/cdk-table/cell/CdkTableCellStyleNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/cell/CdkTableCellValuePipe.mjs +0 -77
- package/esm2020/component/cdk-table/cell/CdkTableCellValuePipePure.mjs +0 -22
- package/esm2020/component/cdk-table/column/CdkTableColumnClassNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/column/CdkTableColumnStyleNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/column/ICdkTableColumn.mjs +0 -2
- package/esm2020/component/cdk-table/row/CdkTableRowClassNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/row/CdkTableRowStyleNamePipe.mjs +0 -22
- package/esm2020/component/cdk-table/row/ICdkTableRow.mjs +0 -2
- package/esm2020/component/language/language-selector/language-selector.component.mjs +0 -79
- package/esm2020/component/menu-list/menu-list.component.mjs +0 -16
- package/esm2020/component/select-list/select-list.component.mjs +0 -16
- package/esm2020/component/tab-group/tab-group.component.mjs +0 -71
- package/esm2020/directive/MenuTriggerForDirective.mjs +0 -53
- package/esm2020/error/WindowClosedError.mjs +0 -19
- package/esm2020/language/LanguageMatPaginatorIntl.mjs +0 -62
- package/esm2020/language/LanguageMomentDateAdapter.mjs +0 -13
- package/esm2020/notification/INotification.mjs +0 -7
- package/esm2020/notification/INotificationContent.mjs +0 -132
- package/esm2020/notification/NotificationConfig.mjs +0 -16
- package/esm2020/notification/NotificationFactory.mjs +0 -19
- package/esm2020/notification/NotificationImpl.mjs +0 -139
- package/esm2020/notification/NotificationModule.mjs +0 -53
- package/esm2020/notification/NotificationProperties.mjs +0 -2
- package/esm2020/notification/NotificationService.mjs +0 -239
- package/esm2020/notification/component/NotificationBaseComponent.mjs +0 -4
- package/esm2020/notification/component/NotificationQuestionBaseComponent.mjs +0 -50
- package/esm2020/notification/component/notification/notification.component.mjs +0 -61
- package/esm2020/service/BootstrapBreakpointService.mjs +0 -116
- package/esm2020/window/IWindow.mjs +0 -32
- package/esm2020/window/IWindowContent.mjs +0 -132
- package/esm2020/window/WindowBase.mjs +0 -168
- package/esm2020/window/WindowConfig.mjs +0 -232
- package/esm2020/window/WindowFactory.mjs +0 -27
- package/esm2020/window/WindowImpl.mjs +0 -361
- package/esm2020/window/WindowModule.mjs +0 -58
- package/esm2020/window/WindowProperties.mjs +0 -2
- package/esm2020/window/WindowService.mjs +0 -366
- package/esm2020/window/WindowServiceEvent.mjs +0 -9
- package/esm2020/window/component/WindowBaseComponent.mjs +0 -75
- package/esm2020/window/component/WindowDragAreaDirective.mjs +0 -97
- package/esm2020/window/component/WindowDragable.mjs +0 -69
- package/esm2020/window/component/WindowElement.mjs +0 -95
- package/esm2020/window/component/WindowQuestionBaseComponent.mjs +0 -17
- package/esm2020/window/component/WindowResizeable.mjs +0 -88
- package/esm2020/window/component/window-close-element/window-close-element.component.mjs +0 -55
- package/esm2020/window/component/window-expand-element/window-expand-element.component.mjs +0 -56
- package/esm2020/window/component/window-minimize-element/window-minimize-element.component.mjs +0 -75
- package/esm2020/window/component/window-question/window-question.component.mjs +0 -50
- package/esm2020/window/component/window-resize-element/window-resize-element.component.mjs +0 -56
- package/language/LanguageMatPaginatorIntl.d.ts +0 -20
- package/language/LanguageMomentDateAdapter.d.ts +0 -5
- package/notification/INotification.d.ts +0 -26
- package/notification/INotificationContent.d.ts +0 -31
- package/notification/NotificationConfig.d.ts +0 -13
- package/notification/NotificationFactory.d.ts +0 -11
- package/notification/NotificationImpl.d.ts +0 -38
- package/notification/NotificationModule.d.ts +0 -18
- package/notification/NotificationProperties.d.ts +0 -9
- package/notification/NotificationService.d.ts +0 -56
- package/notification/component/NotificationBaseComponent.d.ts +0 -3
- package/notification/component/NotificationQuestionBaseComponent.d.ts +0 -10
- package/notification/component/notification/notification.component.d.ts +0 -14
- package/service/BootstrapBreakpointService.d.ts +0 -45
- package/style/mat/bootstrap/_background.scss +0 -10
- package/style/mat/bootstrap/_border.scss +0 -207
- package/style/mat/bootstrap/_text.scss +0 -43
- package/style/mat/bootstrap/_variables.scss +0 -8
- package/style/mat/vi-mat-bootstrap.scss +0 -50
- package/style/mat/vi-mat.scss +0 -570
- package/style/mixin.scss +0 -69
- package/style/mouse.scss +0 -47
- package/window/IWindow.d.ts +0 -41
- package/window/IWindowContent.d.ts +0 -34
- package/window/WindowBase.d.ts +0 -33
- package/window/WindowConfig.d.ts +0 -64
- package/window/WindowFactory.d.ts +0 -12
- package/window/WindowImpl.d.ts +0 -89
- package/window/WindowModule.d.ts +0 -20
- package/window/WindowProperties.d.ts +0 -9
- package/window/WindowService.d.ts +0 -71
- package/window/WindowServiceEvent.d.ts +0 -7
- package/window/component/WindowBaseComponent.d.ts +0 -20
- package/window/component/WindowDragAreaDirective.d.ts +0 -19
- package/window/component/WindowDragable.d.ts +0 -13
- package/window/component/WindowElement.d.ts +0 -22
- package/window/component/WindowQuestionBaseComponent.d.ts +0 -5
- package/window/component/WindowResizeable.d.ts +0 -10
- package/window/component/window-close-element/window-close-element.component.d.ts +0 -12
- package/window/component/window-expand-element/window-expand-element.component.d.ts +0 -12
- package/window/component/window-minimize-element/window-minimize-element.component.d.ts +0 -15
- package/window/component/window-question/window-question.component.d.ts +0 -12
- package/window/component/window-resize-element/window-resize-element.component.d.ts +0 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-core-angular.mjs","sources":["../../src/application/ApplicationBaseComponent.ts","../../src/application/ApplicationComponent.ts","../../src/application/MessageBaseComponent.ts","../../src/question/IQuestion.ts","../../src/question/QuestionManager.ts","../../src/window/IWindow.ts","../../src/util/ViewUtil.ts","../../src/window/WindowConfig.ts","../../src/notification/INotification.ts","../../src/notification/NotificationConfig.ts","../../src/notification/NotificationService.ts","../../src/application/ShellBaseComponent.ts","../../src/ApplicationInjector.ts","../../src/error/WindowClosedError.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/service/route/CanDeactivateGuard.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/language/LanguagePipe.ts","../../src/directive/HTMLTitleDirective.ts","../../src/directive/HTMLContentTitleDirective.ts","../../src/directive/ResizeDirective.ts","../../src/directive/ScrollCheckDirective.ts","../../src/language/LanguageMatPaginatorIntl.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/window/WindowFactory.ts","../../src/window/WindowServiceEvent.ts","../../src/window/IWindowContent.ts","../../src/window/component/WindowQuestionBaseComponent.ts","../../src/window/component/window-question/window-question.component.ts","../../src/window/component/window-question/window-question.component.html","../../src/window/WindowBase.ts","../../src/window/WindowImpl.ts","../../src/bottomSheet/BottomSheetImpl.ts","../../src/window/component/WindowElement.ts","../../src/window/component/window-close-element/window-close-element.component.ts","../../src/window/component/window-expand-element/window-expand-element.component.ts","../../src/window/component/window-resize-element/window-resize-element.component.ts","../../src/window/component/window-minimize-element/window-minimize-element.component.ts","../../src/window/component/WindowResizeable.ts","../../src/window/component/WindowDragable.ts","../../src/window/component/WindowBaseComponent.ts","../../src/bottomSheet/component/BottomSheetBaseComponent.ts","../../src/bottomSheet/BottomSheetService.ts","../../src/bottomSheet/BottomSheetModule.ts","../../src/notification/NotificationImpl.ts","../../src/notification/component/NotificationBaseComponent.ts","../../src/notification/INotificationContent.ts","../../src/notification/component/NotificationQuestionBaseComponent.ts","../../src/notification/component/notification/notification.component.ts","../../src/notification/component/notification/notification.component.html","../../src/notification/NotificationFactory.ts","../../src/notification/NotificationModule.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/TimePipe.ts","../../src/pipe/TruncatePipe.ts","../../src/pipe/PrettifyPipe.ts","../../src/theme/ThemeAssetDirective.ts","../../src/theme/ThemeAssetBackgroundDirective.ts","../../src/theme/ThemeAssetImageDirective.ts","../../src/theme/ThemeAssetIconDirective.ts","../../src/theme/ThemeToggleDirective.ts","../../src/theme/ThemeStyleDirective.ts","../../src/theme/ThemeStyleHoverDirective.ts","../../src/theme/ThemeModule.ts","../../src/window/WindowService.ts","../../src/window/component/WindowDragAreaDirective.ts","../../src/window/WindowModule.ts","../../src/directive/IsServerDirective.ts","../../src/directive/IsBrowserDirective.ts","../../src/directive/MenuTriggerForDirective.ts","../../src/VICommonModule.ts","../../src/component/language/language-selector/language-selector.component.ts","../../src/component/language/language-selector/language-selector.component.html","../../src/component/menu-list/menu-list.component.ts","../../src/component/menu-list/menu-list.component.html","../../src/component/select-list/select-list.component.ts","../../src/component/select-list/select-list.component.html","../../src/component/tab-group/tab-group.component.ts","../../src/component/tab-group/tab-group.component.html","../../src/component/cdk-table/CdkTableDataSource.ts","../../src/component/cdk-table/CdkTableFilterableMapCollection.ts","../../src/component/cdk-table/CdkTableBaseComponent.ts","../../src/component/cdk-table/cell/CdkTableCellValuePipe.ts","../../src/component/cdk-table/cell/CdkTableCellValuePipePure.ts","../../src/component/cdk-table/cell/CdkTableCellClassNamePipe.ts","../../src/component/cdk-table/cell/CdkTableCellStyleNamePipe.ts","../../src/component/cdk-table/column/CdkTableColumnClassNamePipe.ts","../../src/component/cdk-table/column/CdkTableColumnStyleNamePipe.ts","../../src/component/cdk-table/row/CdkTableRowStyleNamePipe.ts","../../src/component/cdk-table/row/CdkTableRowClassNamePipe.ts","../../src/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.ts","../../src/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.html","../../src/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.ts","../../src/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.html","../../src/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.ts","../../src/component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component.html","../../src/component/VIComponentModule.ts","../../src/component/cdk-table/CdkTablePaginableMapCollection.ts","../../src/component/cdk-table/CdkTablePaginableBookmarkMapCollection.ts","../../src/cookie/CookieOptions.ts","../../src/form/validate.ts","../../src/form/ValueAccessor.ts","../../src/form/FormElementAsync.ts","../../src/form/FormElementSync.ts","../../src/language/LanguageMomentDateAdapter.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/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/service/PipeBaseService.ts","../../src/service/BootstrapBreakpointService.ts","../../src/service/RouterBaseService.ts","../../src/user/IUser.ts","../../src/user/UserBaseService.ts","../../src/module/LazyModuleLoader.ts","../../src/transport/TransportLazyModuleLoadedEvent.ts","../../src/transport/TransportLazy.ts","../../src/transport/TransportLazyModule.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 } from '@ts-core/frontend';\nimport { AssetUrlProvider } from '@ts-core/frontend';\nimport { Language } from '@ts-core/language';\nimport { LanguageService } from '@ts-core/frontend';\nimport { SettingsBaseService } from '@ts-core/frontend';\nimport { ThemeService } from '@ts-core/frontend';\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, LoadableEvent } 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(protected route: ActivatedRoute, protected language: LanguageService) {\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","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 { Observable } from 'rxjs';\nimport { Destroyable } from '@ts-core/common';\nimport { IWindowContent } from './IWindowContent';\nimport { WindowConfig } from './WindowConfig';\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: WindowConfig<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\n EXPAND = 'EXPAND',\n SET_ON_TOP = 'SET_ON_TOP'\n}\n","import { ElementRef, InjectionToken, 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'): void {\n if (_.isNil(image)) {\n ViewUtil.removeStyle(container, 'backgroundImage');\n ViewUtil.removeStyle(container, 'backgroundRepeat');\n return;\n }\n\n if (!image.includes('url(')) {\n image = 'url(' + image + ')';\n }\n\n ViewUtil.setStyle(container, 'backgroundImage', image);\n ViewUtil.setStyle(container, 'backgroundRepeat', repeat);\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.window.innerWidth || ViewUtil.document.body.clientWidth;\n }\n\n public static getStageHeight(): number {\n return ViewUtil.window.innerHeight || ViewUtil.document.body.clientHeight;\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 (_.isNil(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 (_.isNil(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 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 { MatDialogConfig } from '@angular/material/dialog';\nimport { MatBottomSheetConfig } from '@angular/material/bottom-sheet';\nimport * as _ from 'lodash';\nimport { IDestroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\nexport class WindowConfig<T = any> extends MatDialogConfig<T> implements MatBottomSheetConfig<T>, IDestroyable {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public id: string;\n public isExpandable: boolean = false;\n public isResizeable: boolean = false;\n public isMinimizable: boolean = false;\n public isContentDragable: boolean = true;\n\n public propertiesId: string;\n\n // Need for match MatDialogConfig and MatBottomSheetConfig\n public backdropClass: string;\n\n public x: number = NaN;\n public y: number = NaN;\n\n public defaultWidth: number = NaN;\n public defaultMinWidth: number = NaN;\n public defaultMaxWidth: number = NaN;\n\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 verticalAlign: WindowAlign;\n public horizontalAlign: WindowAlign;\n\n protected _isModal: boolean = false;\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 super();\n\n this.isModal = this.hasBackdrop = isModal;\n this.isResizeable = isResizeable;\n\n if (!_.isNaN(width)) {\n this.defaultWidth = width;\n }\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 parseX(value: number): number {\n value = Math.max(value, this.elementMinX);\n value = Math.min(value, this.elementMaxX);\n return value;\n }\n\n public parseY(value: number): number {\n value = Math.max(value, this.elementMinY);\n value = Math.min(value, this.elementMaxY);\n return value;\n }\n\n public parseWidth(value: number): number {\n value = Math.max(value, this.elementMinWidth);\n value = Math.min(value, this.elementMaxWidth);\n return value;\n }\n\n public parseHeight(value: number): number {\n value = Math.max(value, this.elementMinHeight);\n value = Math.min(value, this.elementMaxHeight);\n return value;\n }\n\n public destroy(): void {\n IDestroyable.destroy(this.data);\n this.data = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isModal(): boolean {\n return this._isModal;\n }\n public set isModal(value: boolean) {\n if (value === this._isModal) {\n return;\n }\n this._isModal = value;\n this.hasBackdrop = value;\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 enum WindowAlign {\n START = 'START',\n CENTER = 'CENTER',\n END = 'END'\n}\n\nexport type WindowConfigOptions<T = any> = { [P in keyof WindowConfig<T>]?: any };\n","import { Observable } from 'rxjs';\nimport { INotificationContent } from './INotificationContent';\nimport { NotificationConfig } from './NotificationConfig';\n\nexport abstract class INotification<T = any> {\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: NotificationConfig<T>;\n readonly content: INotificationContent<T>;\n}\n\nexport enum NotificationEvent {\n REMOVED = 'REMOVED'\n}\n","import { WindowConfig } from '../window/WindowConfig';\n\nexport class NotificationConfig<T = any> extends WindowConfig<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 = NaN;\n public isRemoveAfterClose: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(data?: T) {\n super();\n this.data = data;\n this.isModal = false;\n }\n}\n\nexport type NotificationConfigOptions<T = any> = { [P in keyof NotificationConfig<T>]?: any };\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ObservableData } from '@ts-core/common';\nimport { ArrayUtil, DateUtil, ObjectUtil } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { Observable, Subject } from 'rxjs';\nimport { IQuestion, IQuestionOptions, QuestionMode } from '../question/IQuestion';\nimport { QuestionManager } from '../question/QuestionManager';\nimport { WindowEvent } from '../window/IWindow';\nimport { WindowAlign } from '../window/WindowConfig';\nimport { INotification, NotificationEvent } from './INotification';\nimport { INotificationContent } from './INotificationContent';\nimport { NotificationConfig, NotificationConfigOptions } from './NotificationConfig';\nimport { NotificationFactory } from './NotificationFactory';\n\n@Injectable({ providedIn: 'root' })\nexport class NotificationService {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public factory: NotificationFactory<INotification>;\n public questionComponent: ComponentType<INotificationContent<any>>;\n\n protected dialog: MatDialog;\n protected language: LanguageService;\n\n protected _configs: Array<NotificationConfig>;\n protected _closedConfigs: Array<NotificationConfig>;\n protected _notifications: Map<NotificationConfig, INotificationContent<any>>;\n\n private observer: Subject<ObservableData<NotificationServiceEvent, INotification | NotificationConfig>>;\n\n public gapY: number = 25;\n\n public minWidth: number = 25;\n public minHeight: number = 25;\n\n public paddingTop: number = 25;\n public paddingLeft: number = 25;\n public paddingRight: number = 25;\n public paddingBottom: number = 25;\n\n public defaultCloseDuration: number = 10 * DateUtil.MILISECONDS_SECOND;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(dialog: MatDialog, language: LanguageService) {\n this._configs = [];\n this._closedConfigs = [];\n this._notifications = new Map();\n\n this.dialog = dialog;\n this.language = language;\n this.observer = new Subject();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public open<T>(component: ComponentType<INotificationContent<T>>, config: NotificationConfig): INotificationContent<T> {\n let notification = null;\n if (!_.isNil(config.id)) {\n notification = this.getById(config.id);\n if (notification) {\n return notification.content;\n }\n }\n\n this.setDefaultProperties(config);\n\n let reference: MatDialogRef<INotificationContent<T>> = this.dialog.open(component, config);\n notification = this.factory.create({ config, reference, overlay: (reference as any)._overlayRef });\n\n let subscription = notification.events.subscribe(event => {\n switch (event) {\n case WindowEvent.OPENED:\n this.add(config, reference.componentInstance);\n this.checkPosition(notification);\n if (config.sound) {\n // Assets.playSound(config.sound);\n }\n break;\n\n case WindowEvent.CLOSED:\n subscription.unsubscribe();\n this.close(config);\n break;\n\n case NotificationEvent.REMOVED:\n subscription.unsubscribe();\n this.remove(config);\n break;\n }\n });\n return notification.content;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private getById(id: string): INotification {\n let item = _.find(Array.from(this._notifications.values()), item => item.config.id === id);\n return !_.isNil(item) ? item.notification : null;\n }\n\n private setDefaultProperties(config: NotificationConfig): void {\n if (_.isNaN(config.defaultMinWidth)) {\n config.defaultMinWidth = this.minWidth;\n }\n if (_.isNaN(config.defaultMinHeight)) {\n config.defaultMinHeight = this.minHeight;\n }\n\n if (_.isNaN(config.paddingTop)) {\n config.paddingTop = this.paddingTop;\n }\n if (_.isNaN(config.paddingLeft)) {\n config.paddingLeft = this.paddingLeft;\n }\n if (_.isNaN(config.paddingRight)) {\n config.paddingRight = this.paddingRight;\n }\n if (_.isNaN(config.paddingBottom)) {\n config.paddingBottom = this.paddingBottom;\n }\n\n if (_.isNaN(config.closeDuration)) {\n config.closeDuration = this.defaultCloseDuration;\n }\n\n config.verticalAlign = WindowAlign.START;\n config.horizontalAlign = WindowAlign.END;\n config.setDefaultProperties();\n }\n\n private checkPosition(item: INotification): void {\n let previous = this.getPrevious(item);\n if (!_.isNil(previous)) {\n item.setY(previous.getY() + previous.getHeight() + this.gapY);\n }\n }\n\n private getPrevious(value: INotification): INotification {\n if (this.notifications.size === 0) {\n return null;\n }\n\n let items = Array.from(this.notifications.values());\n for (let i = 0; i < items.length; i++) {\n if (items[i].notification === value) {\n if (i === 0) {\n return null;\n }\n return items[i - 1].notification;\n }\n }\n return null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tSetters Methods\n //\n // --------------------------------------------------------------------------\n\n private add<T>(config: NotificationConfig, content: INotificationContent<T>): void {\n this._configs.push(config);\n this.observer.next(new ObservableData(NotificationServiceEvent.ADDED, config));\n\n this._notifications.set(config, content);\n this.observer.next(new ObservableData(NotificationServiceEvent.OPENED, content.notification));\n }\n\n // --------------------------------------------------------------------------\n //\n // \tHelp Methods\n //\n // --------------------------------------------------------------------------\n\n public get(value: NotificationId): NotificationConfig {\n if (_.isNil(value)) {\n return null;\n }\n if (value instanceof NotificationConfig) {\n return value;\n }\n\n let id = value.toString();\n if (ObjectUtil.instanceOf<NotificationConfigOptions>(value, ['id'])) {\n id = value.id;\n }\n for (let item of this.configs) {\n if (item.id === id) {\n return item;\n }\n }\n return null;\n }\n\n public has(value: NotificationId): boolean {\n return !_.isNil(this.get(value));\n }\n\n public remove(value: NotificationId): void {\n let config = this.get(value);\n if (_.isNil(config)) {\n return;\n }\n\n this.close(config);\n ArrayUtil.remove(this._configs, config);\n ArrayUtil.remove(this._closedConfigs, config);\n this.observer.next(new ObservableData(NotificationServiceEvent.REMOVED, config));\n config.destroy();\n }\n\n public removeAll(): void {\n this.configs.forEach(item => this.remove(item));\n }\n\n public close(value: NotificationId): INotification {\n let config = this.get(value);\n if (_.isNil(config)) {\n return null;\n }\n\n let notification = this._notifications.get(config);\n if (_.isNil(notification)) {\n return null;\n }\n\n notification.close();\n this._notifications.delete(config);\n\n this._closedConfigs.push(config);\n this.observer.next(new ObservableData(NotificationServiceEvent.CLOSED, notification.notification));\n return notification.notification;\n }\n\n public info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: NotificationConfigOptions): IQuestion {\n let text = this.language.translate(translationId, translation);\n let data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.INFO, text }));\n let config = _.assign(new NotificationConfig(data), configOptions);\n return this.open(this.questionComponent, config).config.data;\n }\n\n public question(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: NotificationConfigOptions): IQuestion {\n let text = this.language.translate(translationId, translation);\n let data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.QUESTION, text }));\n let config = _.assign(new NotificationConfig(data), configOptions);\n return this.open(this.questionComponent, config).config.data;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get events(): Observable<ObservableData<NotificationServiceEvent, NotificationConfig | INotification>> {\n return this.observer.asObservable();\n }\n\n public get configs(): Array<NotificationConfig> {\n return this._configs;\n }\n\n public get closedConfigs(): Array<NotificationConfig> {\n return this._closedConfigs;\n }\n\n public get notifications(): Map<NotificationConfig, INotificationContent<any>> {\n return this._notifications;\n }\n}\n\nexport type NotificationId = string | NotificationConfig | NotificationConfigOptions;\n\nexport enum NotificationServiceEvent {\n OPENED = 'OPENED',\n CLOSED = 'CLOSED',\n ADDED = 'ADDED',\n REMOVED = 'REMOVED'\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { filter, takeUntil } from 'rxjs';\nimport { NotificationConfig } from '../notification/NotificationConfig';\nimport { NotificationService, NotificationServiceEvent } from '../notification/NotificationService';\n\nexport class ShellBaseComponent extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public isNeedSide: boolean = false;\n public isHasNotifications: boolean = false;\n\n public isShowMenu: boolean = true;\n public isShowNotifications: boolean = false;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(public notifications: NotificationService, public breakpointObserver: BreakpointObserver) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n // Notifications\n this.isHasNotificationsCheck();\n this.notifications.events\n .pipe(\n filter(data => data.type === NotificationServiceEvent.CLOSED || data.type === NotificationServiceEvent.REMOVED),\n takeUntil(this.destroyed)\n )\n .subscribe(() => this.isHasNotificationsCheck());\n\n // Menu Size\n this.isNeedSideCheck();\n this.breakpointObserver\n .observe(this.sideMediaQueryToCheck)\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => this.isNeedSideCheck());\n }\n\n protected isHasNotificationsCheck(): void {\n this.isHasNotifications = !_.isEmpty(this.notificationItems);\n if (!this.isHasNotifications) {\n this.isShowNotifications = false;\n }\n }\n\n protected isNeedSideCheck(): void {\n this.isNeedSide = this.breakpointObserver.isMatched(this.sideMediaQueryToCheck);\n this.isShowMenu = this.isNeedSide;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public toggleMenu(): void {\n if (!this.isNeedSide) {\n this.isShowMenu = !this.isShowMenu;\n }\n }\n\n public toggleNotifications(): void {\n this.isShowNotifications = !this.isShowNotifications;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n protected get sideMediaQueryToCheck(): string {\n return `(min-width: 1000px)`;\n }\n\n public get notificationItems(): Array<NotificationConfig> {\n return this.notifications.closedConfigs;\n }\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 { 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 was 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 { Directive, ElementRef, Input } 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})\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()\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()\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()\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})\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})\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})\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})\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})\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})\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\n@NgModule({\n imports: [CommonModule],\n declarations: [AssetBackgroundDirective, AssetImagePipe, AssetIconPipe, AssetFilePipe, AssetSoundPipe, AssetVideoPipe, AssetBackgroundPipe],\n exports: [AssetBackgroundDirective, AssetImagePipe, AssetIconPipe, AssetFilePipe, AssetSoundPipe, AssetVideoPipe, AssetBackgroundPipe]\n})\nexport class AssetModule {}\n","import { ICookieOptions, ICookieService, NativeWindowService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport * as Cookie from 'ngx-cookie';\nimport { CookieOptionsProvider } from 'ngx-cookie';\nimport { PlatformService } from '../service/PlatformService';\nimport { CookieOptions } from './CookieOptions';\n\nexport class CookieService extends Cookie.CookieService implements ICookieService {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private _document: Document;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(options: CookieOptions, platform: PlatformService, item?: Document) {\n super({ options } as CookieOptionsProvider);\n this._document = !_.isNil(item) ? item : document;\n\n let cookieString = '';\n Object.defineProperty(this, 'cookieString', {\n get: (): string => {\n return platform.isPlatformBrowser ? this.document.cookie : cookieString;\n },\n set: (value: string) => {\n if (platform.isPlatformBrowser) {\n this.document.cookie = value;\n } else {\n cookieString = value;\n }\n },\n enumerable: true,\n configurable: true\n });\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(key: string, defaultValue?: string): string {\n return this.has(key) ? super.get(key) : defaultValue;\n }\n\n public getObject<T = any>(key: string, defaultValue?: T): T {\n return this.has(key) ? (super.getObject(key) as any) : defaultValue;\n }\n\n public putObject<T = any>(key: string, value: T, options?: CookieOptions): void {\n super.putObject(key, value as any, options);\n }\n\n public update(key: string, value: string, options?: ICookieOptions): void {\n if (!_.isNil(value)) {\n this.put(key, value, options);\n } else {\n this.remove(key);\n }\n }\n\n public updateObject(key: string, value: Object, options?: ICookieOptions): void {\n if (!_.isNil(value)) {\n this.putObject(key, value, options);\n } else {\n this.remove(key);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n private get document(): Document {\n return this._document;\n }\n}\n","import { PLATFORM_ID, Inject } from '@angular/core';\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { Injectable } from '@angular/core';\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';\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, PlatformService, COOKIE_OPTIONS],\n useFactory: cookieServiceFactory\n }\n ]\n };\n }\n}\n\nexport function cookieServiceFactory(nativeWindow: NativeWindowService, platform: PlatformService, options: ICookieOptions): 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(options, platform, nativeWindow.document);\n}\n\nexport const COOKIE_OPTIONS = new InjectionToken<ICookieOptions>(`COOKIE_OPTIONS`);\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 { ResizeSensor } from 'css-element-queries';\nimport { 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 // this.sensor = new ResizeSensor(this.element, this.handler);\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 handler = (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.handler(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 this.sensor.detach(this.handler);\n try {\n this.sensor.reset();\n } catch (error) {}\n this.sensor = null;\n */\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 } 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})\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()\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, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport * as _ from 'lodash';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-scroll]'\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 (this.scrollValue) {\n this.scrollTo(this.scrollValue);\n }\n this.isInitialized = true;\n }\n\n protected scrollTo(value: number): void {\n this._scrollValue = value;\n this.element.scrollTop = value;\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()\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 } from '@angular/core';\nimport { ScrollDirective } from './ScrollDirective';\n\n@Directive({\n selector: '[vi-infinite-scroll]'\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()\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';\n@Directive({\n selector: '[vi-auto-scroll-bottom]'\n})\nexport class AutoScrollBottomDirective extends InfiniteScrollDirective {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public triggerChanged: EventEmitter<void> = new EventEmitter<void>();\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 //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n if (!this._scrollValue) {\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.triggerDelta = 0;\n this.triggerChanged.emit();\n }\n };\n\n protected scrollRemain(): void {\n this.isNeedRemainScroll = false;\n this.scrollTo(this.scrollHeight - this.lastScrollHeight);\n }\n\n public scrollBottom(): void {\n this.scrollTo(this.scrollHeight);\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 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-bottom-scroll')\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 clearTimeout(this.triggerTimer);\n this.triggerTimer = setTimeout(this.checkTrigger, InfiniteScrollDirective.INITIALIZATION_DELAY);\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { DateUtil } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-click-to-copy]'\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.MILISECONDS_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\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})\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 * as _ from 'lodash';\nimport { FocusManager } from '../manager/FocusManager';\n\n@Directive({\n selector: '[vi-focus]'\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 * as _ from 'lodash';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-select-on-focus]'\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 private focusHandler(): void {\n ViewUtil.selectContent(this.element.nativeElement);\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 { 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})\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(private detection: ChangeDetectorRef, private language: LanguageService) {\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 * as _ from 'lodash';\nimport { LanguagePipe } from '../language/LanguagePipe';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-html-title]'\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 * as _ from 'lodash';\nimport { LanguagePipe } from '../language/LanguagePipe';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-html-content-title]'\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, ElementRef, EventEmitter, Input, Output } 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})\nexport class ResizeDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public resize: EventEmitter<any> = new EventEmitter();\n\n @Input()\n public isTop: boolean = false;\n @Input()\n public isLeft: boolean = false;\n @Input()\n public isRight: boolean = false;\n @Input()\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.resize.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 { Directive, ElementRef, Input, EventEmitter, Output } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { DateUtil } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs';\n\n@Directive({\n selector: '[vi-scroll-check]'\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()\n public delay: number = DateUtil.MILLISECONDS_SECOND / 10;\n @Input()\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 { MatPaginatorIntl } from '@angular/material/paginator';\nimport { LanguageService } from '@ts-core/frontend';\nimport { Subscription } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class LanguageMatPaginatorIntl extends MatPaginatorIntl implements OnDestroy {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n public lastPageLabel: string;\n public nextPageLabel: string;\n public firstPageLabel: string;\n public previousPageLabel: string;\n public itemsPerPageLabel: string;\n\n protected subscription: Subscription;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected language: LanguageService) {\n super();\n\n this.commitLanguageProperties();\n this.subscription = this.language.completed.subscribe(() => this.commitLanguageProperties());\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitLanguageProperties(): void {\n this.lastPageLabel = this.language.translate('paginator.lastPage');\n this.nextPageLabel = this.language.translate('paginator.nextPage');\n this.firstPageLabel = this.language.translate('paginator.firstPage');\n this.previousPageLabel = this.language.translate('paginator.previousPage');\n this.itemsPerPageLabel = this.language.translate('paginator.itemsPerPage');\n this.getRangeLabel = this.languageRangeLabel;\n }\n\n protected languageRangeLabel = (page: number, pageSize: number, length: number): string => {\n let translation = { current: '0', total: '0' };\n if (length === 0 || pageSize === 0) {\n translation.total = length.toString();\n } else {\n length = Math.max(length, 0);\n let startIndex = page * pageSize;\n let endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n translation.current = `${startIndex + 1} – ${endIndex}`;\n translation.total = length.toString();\n }\n return this.language.translate('paginator.pageRange', translation);\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public ngOnDestroy(): void {\n if (!_.isNil(this.subscription)) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\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})\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 } 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})\nexport class LanguageDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input()\n public isNeedTitle: boolean;\n\n protected _key: string;\n protected _params: any;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected element: ElementRef, protected language: LanguageService) {\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\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})\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})\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, EmbeddedViewRef, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\n\n@Directive({\n selector: '[viTranslateHas]'\n})\nexport class LanguageHasDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _viTranslateHas: string;\n protected _isOnlyIfNotEmpty: boolean = true;\n\n protected view: any;\n protected index: EmbeddedViewRef<any>;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private template: TemplateRef<any>, private container: ViewContainerRef, protected language: LanguageService) {\n super();\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 let isNeedAdd = false;\n let isNeedRemove = false;\n let isHasTranslation = !_.isNil(this.viTranslateHas) && this.language.isHasTranslation(this.viTranslateHas, this.viTranslateHasIsOnlyIfNotEmpty);\n\n if (isHasTranslation) {\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\n super.destroy();\n this.view = null;\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 { CookieModule } from '../cookie/CookieModule';\nimport { CookieService } from '../cookie/CookieService';\nimport { LanguageMatPaginatorIntl } from './LanguageMatPaginatorIntl';\nimport { LanguagePipe } from './LanguagePipe';\nimport { LanguagePipePure } from './LanguagePipePure';\nimport { LanguageResolver } from './LanguageResolver';\nimport { LanguageDirective } from './LanguageDirective';\nimport { MatPaginatorIntl } from '@angular/material/paginator';\nimport { LanguagePipeHas } from './LanguagePipeHas';\nimport { LanguagePipeHasPure } from './LanguagePipeHasPure';\nimport { LanguageHasDirective } from './LanguageHasDirective';\nimport * as _ from 'lodash';\n\n@NgModule({\n imports: [CookieModule],\n declarations: [LanguagePipe, LanguagePipePure, LanguagePipeHas, LanguagePipeHasPure, LanguageHasDirective, LanguageDirective],\n exports: [LanguagePipe, LanguagePipePure, LanguagePipeHas, LanguagePipeHasPure, LanguageHasDirective, LanguageDirective]\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 provide: MatPaginatorIntl,\n deps: [LanguageService],\n useClass: LanguageMatPaginatorIntl\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 { IWindow } from './IWindow';\nimport { WindowProperties } from './WindowProperties';\nimport * as _ from 'lodash';\n\nexport class WindowFactory<U extends IWindow> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public createFunction: CreateFunction;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected defaultType: WindowType<U>) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public create(properties: WindowProperties): U {\n let item: U = null;\n if (!_.isNil(this.createFunction)) {\n item = this.createFunction(properties);\n }\n if (_.isNil(item)) {\n item = new this.defaultType(properties);\n }\n return item;\n }\n}\n\nexport type CreateFunction = <U extends IWindow>(properties: WindowProperties) => U;\n\nexport interface WindowType<T> {\n new (properties: WindowProperties): T;\n}\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 } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { IWindow, WindowEvent } from './IWindow';\nimport { WindowConfig } from './WindowConfig';\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 }\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 public get isDisabled(): boolean {\n return !_.isNil(this.window) ? this.window.isDisabled : false;\n }\n @Input()\n public set isDisabled(value: boolean) {\n if (!_.isNil(this.window)) {\n this.window.isDisabled = value;\n }\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(): WindowConfig<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 { QuestionManager } from '../../question/QuestionManager';\nimport { IWindowContent } from '../IWindowContent';\n\nexport abstract class WindowQuestionBaseComponent extends IWindowContent<QuestionManager> {\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitConfigProperties(): void {\n super.commitConfigProperties();\n this.data.closePromise.then(() => {\n if (!this.isDestroyed) {\n this.close();\n }\n });\n }\n}\n","import { Component, ViewContainerRef } from '@angular/core';\nimport { LanguageService } from '@ts-core/frontend';\nimport { ViewUtil } from '../../../util/ViewUtil';\nimport { WindowQuestionBaseComponent } from '../WindowQuestionBaseComponent';\nimport * as _ from 'lodash';\n\n@Component({\n templateUrl: 'window-question.component.html'\n})\nexport class WindowQuestionComponent extends WindowQuestionBaseComponent {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public text: string;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(container: ViewContainerRef, protected language: LanguageService) {\n super(container);\n ViewUtil.addClasses(container.element, 'd-block');\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitConfigProperties(): void {\n super.commitConfigProperties();\n\n if (!_.isNil(this.data.text)) {\n this.text = this.data.text.replace(/(?:\\r\\n|\\r|\\n)/g, `<br/>`);\n }\n\n if (this.language.isHasTranslation(this.data.options.yesTextId)) {\n this.data.yesText = this.language.translate(this.data.options.yesTextId);\n }\n if (this.language.isHasTranslation(this.data.options.notTextId)) {\n this.data.notText = this.language.translate(this.data.options.notTextId);\n }\n if (this.language.isHasTranslation(this.data.options.checkTextId)) {\n this.data.checkText = this.language.translate(this.data.options.checkTextId);\n }\n if (this.language.isHasTranslation(this.data.options.closeTextId)) {\n this.data.closeText = this.language.translate(this.data.options.closeTextId);\n }\n }\n}\n","<p class=\"text m-4 text-center mouse-inactive text-word-wrap-break-word\" [innerHTML]=\"text\"></p>\n\n<div class=\"text-center border-sm-top p-3\">\n\n <button (click)=\"data?.closeClickHandler()\" mat-stroked-button *ngIf=\"data?.isInfo\">\n <span [innerHTML]=\"data?.closeText\"></span>\n </button>\n\n <button class=\"mr-3 me-3\" (click)=\"data?.yesClickHandler()\" color=\"primary\" mat-stroked-button *ngIf=\"data?.isQuestion\">\n <span [innerHTML]=\"data?.yesText\"></span>\n </button>\n\n <button (click)=\"data?.notClickHandler()\" mat-stroked-button *ngIf=\"data?.isQuestion\">\n <span [innerHTML]=\"data?.notText\"></span>\n </button>\n\n</div>","import { MatDialogRef } from '@angular/material/dialog';\nimport * as _ from 'lodash';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\nimport { WindowAlign, WindowConfig } from './WindowConfig';\n\nexport abstract class WindowBase<T = any> extends DestroyableContainer {\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(): WindowConfig<T>;\n protected abstract getReference(): MatDialogRef<any>;\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 let width = !_.isNaN(this.width) ? this.width + 'px' : 'auto';\n let height = !_.isNaN(this.height) ? this.height + 'px' : 'auto';\n this.getReference().updateSize(width, height);\n }\n\n protected commitPositionProperties(): void {\n if (_.isNaN(this._x) && _.isNaN(this._y)) {\n return;\n }\n let position = {} as any;\n if (!_.isNaN(this._y)) {\n position.top = this._y + 'px';\n }\n if (!_.isNaN(this._x)) {\n position.left = this._x + 'px';\n }\n this.getReference().updatePosition(position);\n }\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 = this.getConfig().parseWidth(value);\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 = this.getConfig().parseHeight(value);\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 = this.getConfig().parseX(value);\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 = this.getConfig().parseY(value);\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 { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, Subject, Subscription, filter, takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\nimport { IWindow, WindowEvent } from './IWindow';\nimport { IWindowContent } from './IWindowContent';\nimport { WindowBase } from './WindowBase';\nimport { WindowConfig } from './WindowConfig';\nimport { WindowProperties } from './WindowProperties';\nimport * as _ from 'lodash';\nimport { WindowElement } from './component/WindowElement';\nimport { ArrayUtil } from '@ts-core/common';\nimport { ComponentRef } from '@angular/core';\n\nexport class WindowImpl<T = any> extends WindowBase<T> implements IWindow {\n // --------------------------------------------------------------------------\n //\n // Constants\n //\n // --------------------------------------------------------------------------\n\n public static BLINK_DELAY = 500;\n public static SHAKE_DELAY = 500;\n public static RESIZE_DELAY = 200;\n\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n private _isBlink: boolean = false;\n private blinkTimer: any;\n\n private _isShaking: boolean = false;\n private shakeTimer: any;\n\n private resizeTimer: any;\n\n private _isOnTop: boolean = false;\n private _isDisabled: boolean = false;\n private _isMinimized: boolean = false;\n\n private isOpened: boolean = false;\n private isWasOnTop: boolean = false;\n\n private _wrapper: HTMLElement;\n private _backdrop: HTMLElement;\n private _container: HTMLElement;\n\n protected elements: Array<ComponentRef<WindowElement>>;\n protected properties: WindowProperties;\n\n protected subscription: Subscription;\n protected observer: Subject<string>;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(properties: WindowProperties) {\n super();\n this.observer = new Subject();\n this.elements = new Array();\n\n this.properties = properties;\n this.content.window = this;\n\n // Have to save for unsubscribe on destroy\n this._wrapper = this.properties.overlay.hostElement;\n this._backdrop = this.properties.overlay.backdropElement;\n this._container = this.properties.overlay.overlayElement;\n\n this.setProperties();\n this.getReference().afterOpened().pipe(takeUntil(this.destroyed)).subscribe(this.setOpened);\n this.getReference().afterClosed().pipe(takeUntil(this.destroyed)).subscribe(this.setClosed);\n\n this.events\n .pipe(\n filter(event => event === WindowEvent.CONTENT_READY),\n takeUntil(this.destroyed)\n )\n .subscribe(this.updatePosition);\n }\n\n // --------------------------------------------------------------------------\n //\n // Elements Methods\n //\n // --------------------------------------------------------------------------\n\n protected elementsCreate(): void {\n this.elements = new Array();\n }\n\n protected elementsDestroy(): void {\n this.elements.forEach(item => this.elementDestroy(item));\n this.elements = null;\n }\n\n protected elementAdd(item: ComponentRef<WindowElement>): ComponentRef<WindowElement> {\n this.elements.push(item);\n item.instance.window = this;\n return item;\n }\n\n protected elementRemove(item: ComponentRef<WindowElement>): ComponentRef<WindowElement> {\n ArrayUtil.remove(this.elements, item);\n this.elementDestroy(item);\n return item;\n }\n\n protected elementDestroy(item: ComponentRef<WindowElement>): ComponentRef<WindowElement> {\n item.instance.window = null;\n item.destroy();\n return item;\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setClosed = (): void => {\n this.isOpened = false;\n this.emit(WindowEvent.CLOSED);\n this.destroy();\n };\n\n protected setOpened = (): void => {\n this.isOpened = true;\n this.emit(WindowEvent.OPENED);\n };\n\n protected blinkToggle = (): void => {\n this.isBlink = !this.isBlink;\n };\n\n protected stopShaking = (): void => {\n this.isShaking = false;\n };\n\n protected emitResize = (): void => {\n this.emit(WindowEvent.RESIZED);\n };\n\n protected setProperties(): void {\n super.setProperties();\n ViewUtil.addClass(this.container, 'vi-window');\n ViewUtil.toggleClass(this.container, 'vi-modal', this.config.isModal);\n\n this.container.addEventListener('click', this.mouseClickHandlerProxy, true);\n this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);\n /*\n if (!this.config.isModal) {\n this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);\n }\n */\n\n this.elementsCreate();\n }\n\n protected commitIsBlinkProperties(): void {}\n protected commitIsShakingProperties(): void {}\n protected commitIsDisabledProperties(): void {}\n protected commitIsMinimizedProperties(): void {}\n\n protected getConfig(): WindowConfig {\n return this.properties.config;\n }\n protected getContainer(): HTMLElement {\n return this.container;\n }\n protected getReference(): MatDialogRef<IWindowContent<T>> {\n return this.properties.reference;\n }\n\n protected isNeedClickStopPropagation(event: MouseEvent): boolean {\n if (!this.isWasOnTop) {\n return true;\n }\n let element = _.find(this.elements, item => item.location.nativeElement === event.target);\n if (_.isNil(element)) {\n return false;\n }\n element.instance.clickHandler(event);\n return true;\n }\n\n private stopBlinkIfNeed(): void {\n this.isBlink = false;\n if (!this.blinkTimer) {\n return;\n }\n clearInterval(this.blinkTimer);\n this.blinkTimer = null;\n }\n\n protected resizeHandler = (): void => {\n if (!this.isOpened) {\n return;\n }\n clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(this.emitResize, WindowImpl.RESIZE_DELAY);\n };\n\n protected mouseDownHandler(event: MouseEvent): void {\n this.setOnTop();\n }\n\n protected mouseClickHandler(event: MouseEvent): void {\n if (this.isNeedClickStopPropagation(event)) {\n event.stopPropagation();\n }\n if (!this.isWasOnTop) {\n this.isWasOnTop = true;\n }\n }\n\n private mouseDownHandlerProxy = (event: MouseEvent): void => {\n this.mouseDownHandler(event);\n };\n\n private mouseClickHandlerProxy = (event: MouseEvent): void => {\n this.mouseClickHandler(event);\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public emit(event: string): void {\n this.observer.next(event);\n }\n\n public close(): void {\n this.getReference().close();\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.elementsDestroy();\n\n this._container.removeEventListener('click', this.mouseClickHandlerProxy, true);\n this._container.removeEventListener('mousedown', this.mouseDownHandlerProxy);\n\n if (!_.isNil(this.content)) {\n this.content.destroy();\n }\n\n if (!_.isNil(this.observer)) {\n this.observer.complete();\n this.observer = null;\n }\n\n this.properties = null;\n\n this._wrapper = null;\n this._backdrop = null;\n this._container = null;\n\n clearInterval(this.blinkTimer);\n this.blinkTimer = null;\n\n clearInterval(this.shakeTimer);\n this.shakeTimer = null;\n\n clearTimeout(this.resizeTimer);\n this.resizeTimer = null;\n }\n\n public blink(): void {\n clearInterval(this.blinkTimer);\n this.blinkTimer = setInterval(this.blinkToggle, WindowImpl.BLINK_DELAY);\n }\n\n public shake(): void {\n if (this.isShaking) {\n return;\n }\n this.isShaking = true;\n clearInterval(this.shakeTimer);\n this.shakeTimer = setInterval(this.stopShaking, WindowImpl.SHAKE_DELAY);\n }\n\n public setOnTop(): void {\n this.isWasOnTop = this.isOnTop;\n this.emit(WindowEvent.SET_ON_TOP);\n }\n\n // --------------------------------------------------------------------------\n //\n // Size Methods\n //\n // --------------------------------------------------------------------------\n\n public getWidth(): number {\n return this.width;\n }\n\n public getHeight(): number {\n return this.height;\n }\n\n public setWidth(value: number, isNeedNotify: boolean = true): void {\n this.width = value;\n if (isNeedNotify) {\n this.resizeHandler();\n }\n }\n\n public setHeight(value: number, isNeedNotify: boolean = true): void {\n this.height = value;\n if (isNeedNotify) {\n this.resizeHandler();\n }\n }\n\n public setSize(width: number, height: number): void {\n this.setWidth(width, false);\n this.setHeight(height, false);\n this.resizeHandler();\n }\n\n // --------------------------------------------------------------------------\n //\n // Move Methods\n //\n // --------------------------------------------------------------------------\n\n public getX(): number {\n return this.x;\n }\n\n public setX(value: number, isNeedNotify: boolean = true): void {\n this.x = value;\n if (isNeedNotify) {\n this.emit(WindowEvent.MOVED);\n }\n }\n\n public getY(): number {\n return this.y;\n }\n public setY(value: number, isNeedNotify: boolean = true): void {\n this.y = value;\n if (isNeedNotify) {\n this.emit(WindowEvent.MOVED);\n }\n }\n\n public move(x: number, y: number): void {\n this.setX(x, false);\n this.setY(y, false);\n this.emit(WindowEvent.MOVED);\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n protected get isBlink(): boolean {\n return this._isBlink;\n }\n protected set isBlink(value: boolean) {\n if (value === this._isBlink) {\n return;\n }\n this._isBlink = value;\n this.commitIsBlinkProperties();\n }\n\n protected get isShaking(): boolean {\n return this._isShaking;\n }\n protected set isShaking(value: boolean) {\n if (value === this._isShaking) {\n return;\n }\n this._isShaking = value;\n this.commitIsShakingProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get events(): Observable<string> {\n return this.observer.asObservable();\n }\n\n public get config(): WindowConfig {\n return this.properties.config;\n }\n\n public get content(): IWindowContent {\n return this.properties.reference ? this.properties.reference.componentInstance : null;\n }\n\n public get container(): HTMLElement {\n return this._container;\n }\n\n public get wrapper(): HTMLElement {\n return this._wrapper;\n }\n\n public get backdrop(): HTMLElement {\n return this._backdrop;\n }\n\n public get isOnTop(): boolean {\n return this._isOnTop;\n }\n public set isOnTop(value: boolean) {\n if (value === this._isOnTop) {\n return;\n }\n this._isOnTop = value;\n clearInterval(this.blinkTimer);\n this.isBlink = false;\n }\n\n public get isMinimized(): boolean {\n return this._isMinimized;\n }\n public set isMinimized(value: boolean) {\n if (value === this._isMinimized) {\n return;\n }\n this._isMinimized = value;\n this.commitIsMinimizedProperties();\n this.emit(WindowEvent.MINIMIZED_CHANGED);\n this.stopBlinkIfNeed();\n }\n\n public get isDisabled(): boolean {\n return this._isDisabled;\n }\n public set isDisabled(value: boolean) {\n if (value === this._isDisabled) {\n return;\n }\n this._isDisabled = value;\n this.commitIsDisabledProperties();\n this.emit(WindowEvent.DISABLED_CHANGED);\n }\n}\n","import { Observable, Subject, takeUntil, Subscription } from 'rxjs';\nimport * as _ from 'lodash';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { WindowConfig } from '../window/WindowConfig';\nimport { IWindow, WindowEvent } from '../window/IWindow';\nimport { IWindowContent } from '../window/IWindowContent';\nimport { WindowProperties } from '../window/WindowProperties';\nimport { ViewUtil } from '../util/ViewUtil';\nimport { WindowImpl } from '../window/WindowImpl';\nimport { WindowElement } from '../window/component/WindowElement';\nimport { ArrayUtil } from '@ts-core/common';\nimport { ComponentRef } from '@angular/core';\n\nexport class BottomSheetImpl<T = any> extends DestroyableContainer implements IWindow {\n // --------------------------------------------------------------------------\n //\n // Constants\n //\n // --------------------------------------------------------------------------\n\n public static BLINK_DELAY = 500;\n public static SHAKE_DELAY = 500;\n\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n private _isBlink: boolean = false;\n private blinkTimer: any;\n\n private _wrapper: HTMLElement;\n private _backdrop: HTMLElement;\n private _container: HTMLElement;\n private _isDisabled: boolean = false;\n\n protected elements: Array<ComponentRef<WindowElement>>;\n protected properties: WindowProperties;\n\n protected observer: Subject<string>;\n protected subscription: Subscription;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(properties: WindowProperties) {\n super();\n this.observer = new Subject();\n\n this.properties = properties;\n this.content.window = this;\n\n // Have to save for unsubscribe on destroy\n this._wrapper = this.properties.overlay.hostElement;\n this._backdrop = this.properties.overlay.backdropElement;\n this._container = this.properties.overlay.overlayElement;\n\n this.setProperties();\n this.elementsCreate();\n\n this.getReference().afterOpened().pipe(takeUntil(this.destroyed)).subscribe(this.setOpened);\n this.getReference().afterDismissed().pipe(takeUntil(this.destroyed)).subscribe(this.setClosed);\n }\n\n // --------------------------------------------------------------------------\n //\n // Elements Methods\n //\n // --------------------------------------------------------------------------\n\n protected elementsCreate(): void {\n this.elements = new Array();\n }\n\n protected elementsDestroy(): void {\n this.elements.forEach(item => this.elementDestroy(item));\n this.elements = null;\n }\n\n protected elementAdd(item: ComponentRef<WindowElement>): ComponentRef<WindowElement> {\n this.elements.push(item);\n item.instance.window = this;\n return item;\n }\n\n protected elementRemove(item: ComponentRef<WindowElement>): ComponentRef<WindowElement> {\n ArrayUtil.remove(this.elements, item);\n this.elementDestroy(item);\n return item;\n }\n\n protected elementDestroy(item: ComponentRef<WindowElement>): ComponentRef<WindowElement> {\n item.instance.window = null;\n item.destroy();\n return item;\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setClosed = (): void => {\n this.emit(WindowEvent.CLOSED);\n this.destroy();\n };\n\n protected setOpened = (): void => {\n this.emit(WindowEvent.OPENED);\n };\n\n protected blinkToggle = (): void => {\n this.isBlink = !this.isBlink;\n };\n\n protected setProperties(): void {\n ViewUtil.addClass(this.container, 'vi-bottom-sheet');\n ViewUtil.toggleClass(this.container, 'vi-modal', this.config.isModal);\n\n this.container.addEventListener('click', this.mouseClickHandlerProxy, true);\n this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);\n /*\n if (!this.config.isModal) {\n this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);\n }\n */\n }\n\n protected commitIsBlinkProperties(): void {}\n\n protected commitIsDisabledProperties(): void {}\n\n protected getConfig(): WindowConfig {\n return this.properties.config;\n }\n protected getContainer(): HTMLElement {\n return this.container;\n }\n protected getReference(): MatBottomSheetRef<IWindowContent<T>> {\n return this.properties.reference as any;\n }\n\n protected isNeedClickStopPropagation(event: MouseEvent): boolean {\n let element = _.find(this.elements, item => item.location.nativeElement === event.target);\n if (_.isNil(element)) {\n return false;\n }\n element.instance.clickHandler(event);\n return true;\n }\n\n private stopBlinkIfNeed(): void {\n this.isBlink = false;\n if (!this.blinkTimer) {\n return;\n }\n clearInterval(this.blinkTimer);\n this.blinkTimer = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n protected mouseDownHandler(event: MouseEvent): void {\n this.setOnTop();\n }\n\n protected mouseClickHandler(event: MouseEvent): void {\n if (this.isNeedClickStopPropagation(event)) {\n event.stopPropagation();\n }\n }\n\n private mouseDownHandlerProxy = (event: MouseEvent): void => {\n this.mouseDownHandler(event);\n };\n\n private mouseClickHandlerProxy = (event: MouseEvent): void => {\n this.mouseClickHandler(event);\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public emit(event: string): void {\n this.observer.next(event);\n }\n\n public close(): void {\n this.getReference().dismiss();\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.elementsDestroy();\n\n this._container.removeEventListener('click', this.mouseClickHandlerProxy, true);\n this._container.removeEventListener('mousedown', this.mouseDownHandlerProxy);\n\n if (!_.isNil(this.content)) {\n this.content.destroy();\n }\n\n if (!_.isNil(this.observer)) {\n this.observer.complete();\n this.observer = null;\n }\n\n this.properties = null;\n\n this._wrapper = null;\n this._backdrop = null;\n this._container = null;\n\n clearInterval(this.blinkTimer);\n this.blinkTimer = null;\n }\n\n public blink(): void {\n clearInterval(this.blinkTimer);\n this.blinkTimer = setInterval(this.blinkToggle, WindowImpl.BLINK_DELAY);\n }\n\n public shake(): void {}\n\n public setOnTop(): void {}\n\n // --------------------------------------------------------------------------\n //\n // Size Methods\n //\n // --------------------------------------------------------------------------\n\n public getWidth(): number {\n return NaN;\n }\n\n public getHeight(): number {\n return NaN;\n }\n\n public setWidth(value: number, isNeedNotify: boolean = true): void {}\n\n public setHeight(value: number, isNeedNotify: boolean = true): void {}\n\n public setSize(width: number, height: number): void {}\n\n // --------------------------------------------------------------------------\n //\n // Move Methods\n //\n // --------------------------------------------------------------------------\n\n public getX(): number {\n return NaN;\n }\n\n public setX(value: number, isNeedNotify: boolean = true): void {}\n\n public getY(): number {\n return NaN;\n }\n public setY(value: number, isNeedNotify: boolean = true): void {}\n\n public move(x: number, y: number): void {}\n\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n protected get reference(): MatBottomSheetRef<IWindowContent<T>> {\n return this.properties.reference as any;\n }\n\n protected get isBlink(): boolean {\n return this._isBlink;\n }\n protected set isBlink(value: boolean) {\n if (value === this._isBlink) {\n return;\n }\n this._isBlink = value;\n this.commitIsBlinkProperties();\n }\n\n protected get isShaking(): boolean {\n return false;\n }\n protected set isShaking(value: boolean) {}\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get events(): Observable<string> {\n return this.observer.asObservable();\n }\n\n public get config(): WindowConfig {\n return this.properties.config;\n }\n\n public get content(): IWindowContent {\n return !_.isNil(this.reference) ? this.reference.instance : null;\n }\n\n public get container(): HTMLElement {\n return this._container;\n }\n\n public get wrapper(): HTMLElement {\n return this._wrapper;\n }\n\n public get backdrop(): HTMLElement {\n return this._backdrop;\n }\n\n public get isOnTop(): boolean {\n return false;\n }\n public set isOnTop(value: boolean) {}\n\n public get isMinimized(): boolean {\n return false;\n }\n public set isMinimized(value: boolean) {}\n\n public get isDisabled(): boolean {\n return this._isDisabled;\n }\n public set isDisabled(value: boolean) {\n if (value === this._isDisabled) {\n return;\n }\n this._isDisabled = value;\n this.commitIsDisabledProperties();\n this.emit(WindowEvent.DISABLED_CHANGED);\n }\n}\n","import { AfterViewInit, Component, ElementRef } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { ViewUtil } from '../../util/ViewUtil';\nimport { IWindow } from '../IWindow';\nimport * as _ from 'lodash';\n\n@Component({ template: '' })\nexport abstract class WindowElement extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _window: IWindow;\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 checkWindowParent(): void {\n let container = this.getContainer();\n if (!_.isNil(container)) {\n ViewUtil.appendChild(container, this.element.nativeElement);\n }\n }\n\n protected getContainer(): HTMLElement {\n let item = ViewUtil.parseElement(this.element.nativeElement);\n while (!_.isNil(item) && item.nodeName.toLowerCase() !== 'mat-dialog-container') {\n item = item.parentElement;\n }\n return item;\n }\n\n protected createChildren(): void {}\n\n protected destroyChildren(): void {}\n\n protected commitWindowProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterViewInit(): void {\n this.createChildren();\n this.checkWindowParent();\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.destroyChildren();\n\n this.element = null;\n this.window = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public clickHandler(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Properties\n //\n // --------------------------------------------------------------------------\n\n protected get nativeElement(): HTMLElement {\n return this.element ? this.element.nativeElement : null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get window(): IWindow {\n return this._window;\n }\n public set window(value: IWindow) {\n if (value === this._window) {\n return;\n }\n this._window = value;\n if (this.window) {\n this.commitWindowProperties();\n }\n }\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { ViewUtil } from '../../../util/ViewUtil';\nimport { WindowElement } from '../WindowElement';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'vi-window-close-element',\n styleUrls: ['window-close-element.component.scss'],\n template: ''\n})\nexport class WindowCloseElementComponent extends WindowElement {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n public static ICON_CLASS: string = 'fas fa-times';\n public static ICON_VALUE: string = null;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super(element);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected createChildren(): void {\n super.createChildren();\n\n if (!_.isNil(WindowCloseElementComponent.ICON_VALUE)) {\n ViewUtil.setProperty(this.nativeElement, 'innerHTML', WindowCloseElementComponent.ICON_VALUE);\n }\n if (!_.isNil(WindowCloseElementComponent.ICON_CLASS)) {\n ViewUtil.addClasses(this.nativeElement, WindowCloseElementComponent.ICON_CLASS);\n }\n ViewUtil.addClass(this.nativeElement, 'mouse-active');\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public clickHandler(event: MouseEvent): void {\n super.clickHandler(event);\n if (!_.isNil(this.window)) {\n this.window.close();\n }\n }\n}\n","import { Component, ElementRef } from '@angular/core';\nimport * as _ from 'lodash';\nimport { ViewUtil } from '../../../util/ViewUtil';\nimport { WindowEvent } from '../../IWindow';\nimport { WindowElement } from '../WindowElement';\n\n@Component({\n selector: 'vi-window-expand-element',\n styleUrls: ['window-expand-element.component.scss'],\n template: ''\n})\nexport class WindowExpandElementComponent extends WindowElement {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n public static ICON_CLASS: string = 'fas fa-angle-double-up';\n public static ICON_VALUE: string = null;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super(element);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected createChildren(): void {\n super.createChildren();\n\n if (!_.isNil(WindowExpandElementComponent.ICON_VALUE)) {\n ViewUtil.setProperty(this.nativeElement, 'innerHTML', WindowExpandElementComponent.ICON_VALUE);\n }\n if (!_.isNil(WindowExpandElementComponent.ICON_CLASS)) {\n ViewUtil.addClasses(this.nativeElement, WindowExpandElementComponent.ICON_CLASS);\n }\n ViewUtil.addClass(this.nativeElement, 'mouse-active');\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public clickHandler(event: MouseEvent): void {\n super.clickHandler(event);\n if (!_.isNil(this.window)) {\n this.window.emit(WindowEvent.EXPAND);\n }\n }\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { ViewUtil } from '../../../util/ViewUtil';\nimport { WindowElement } from '../WindowElement';\nimport * as _ from 'lodash';\nimport { WindowEvent } from '../../IWindow';\n\n@Component({\n selector: 'vi-window-resize-element',\n styleUrls: ['window-resize-element.component.scss'],\n template: ''\n})\nexport class WindowResizeElementComponent extends WindowElement {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n public static ICON_CLASS: string = 'fas fa-arrows-alt';\n public static ICON_VALUE: string = null;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super(element);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected createChildren(): void {\n super.createChildren();\n\n if (!_.isNil(WindowResizeElementComponent.ICON_VALUE)) {\n ViewUtil.setProperty(this.nativeElement, 'innerHTML', WindowResizeElementComponent.ICON_VALUE);\n }\n if (!_.isNil(WindowResizeElementComponent.ICON_CLASS)) {\n ViewUtil.addClasses(this.nativeElement, WindowResizeElementComponent.ICON_CLASS);\n }\n\n ViewUtil.setStyle(this.nativeElement, 'cursor', 'pointer');\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public clickHandler(event: MouseEvent): void {\n super.clickHandler(event);\n if (!_.isNil(this.window)) {\n this.window.emit(WindowEvent.EXPAND);\n }\n }\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../../../util/ViewUtil';\nimport { WindowEvent } from '../../../window/IWindow';\nimport { WindowElement } from '../WindowElement';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'vi-window-minimize-element',\n styleUrls: ['window-minimize-element.component.scss'],\n template: ''\n})\nexport class WindowMinimizeElementComponent extends WindowElement {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n public static ICON_CLASS: string = null;\n public static ICON_MINIMIZE_VALUE: string = null;\n public static ICON_MAXIMIZE_VALUE: string = null;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef) {\n super(element);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private commitIconProperties = (): void => {\n let icon = this.window.isMinimized ? WindowMinimizeElementComponent.ICON_MAXIMIZE_VALUE : WindowMinimizeElementComponent.ICON_MINIMIZE_VALUE;\n ViewUtil.setProperty(this.nativeElement, 'innerHTML', icon);\n };\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitWindowProperties(): void {\n super.commitWindowProperties();\n this.window.events.pipe(takeUntil(this.destroyed)).subscribe(event => {\n if (event === WindowEvent.MINIMIZED_CHANGED) {\n this.commitIconProperties();\n }\n });\n }\n\n protected createChildren(): void {\n super.createChildren();\n\n if (!_.isNil(WindowMinimizeElementComponent.ICON_MINIMIZE_VALUE)) {\n ViewUtil.setProperty(this.nativeElement, 'innerHTML', WindowMinimizeElementComponent.ICON_MINIMIZE_VALUE);\n }\n\n if (!_.isNil(WindowMinimizeElementComponent.ICON_CLASS)) {\n ViewUtil.addClasses(this.nativeElement, WindowMinimizeElementComponent.ICON_CLASS);\n }\n\n ViewUtil.addClass(this.nativeElement, 'mouse-active');\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public clickHandler(event: MouseEvent): void {\n super.clickHandler(event);\n if (!_.isNil(this.window)) {\n this.window.isMinimized = !this.window.isMinimized;\n }\n }\n}\n","import { EdgeOptions, Interactable, InteractEvent, ResizableOptions } from '@interactjs/types';\nimport * as interact from 'interactjs';\nimport { ViewUtil } from '../../util/ViewUtil';\nimport { WindowImpl } from '../WindowImpl';\nimport * as _ from 'lodash';\n\nexport class WindowResizeable extends WindowImpl {\n // --------------------------------------------------------------------------\n //\n // Properties Methods\n //\n // --------------------------------------------------------------------------\n\n private _interactable: Interactable;\n private resizeMoveHandlerProxy: (...args) => any;\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setProperties(): void {\n super.setProperties();\n\n if (!this.config.isResizeable) {\n return;\n }\n\n ViewUtil.addClass(this.container, 'vi-resizeable');\n if (_.isNil(this.resizeMoveHandlerProxy)) {\n this.resizeMoveHandlerProxy = this.resizeMoveHandler.bind(this);\n }\n\n let edges = {} as EdgeOptions;\n edges.top = true;\n edges.left = true;\n edges.right = true;\n edges.bottom = true;\n\n let param = {} as ResizableOptions;\n param.edges = edges;\n\n this.interactable.resizable(param);\n this.interactable.on('resizemove', this.resizeMoveHandlerProxy);\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n protected resizeMoveHandler(event: InteractEvent): void {\n if (this.isMinimized) {\n return;\n }\n\n let isChanged = event.dx !== 0 || event.dy !== 0;\n if (!isChanged) {\n return;\n }\n\n if (event.dx !== 0) {\n let width = this.getWidth();\n if (_.isNaN(width)) {\n width = this.calculateWidth();\n }\n this.setWidth(width + event.dx, false);\n }\n if (event.dy !== 0) {\n let height = this.getHeight();\n if (_.isNaN(height)) {\n height = this.calculateHeight();\n }\n this.setHeight(height + event.dy, false);\n }\n this.resizeHandler();\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.resizeMoveHandlerProxy = null;\n\n if (!_.isNil(this._interactable)) {\n this._interactable.unset();\n this._interactable = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n protected get interactable(): Interactable {\n if (_.isNil(this._interactable)) {\n this._interactable = interact.default(this.container);\n // this._interactable.styleCursor(false);\n }\n return this._interactable;\n }\n}\n","import { InteractEvent, DraggableOptions } from '@interactjs/types';\nimport { ViewUtil } from '../../util/ViewUtil';\nimport { WindowResizeable } from './WindowResizeable';\n\nexport class WindowDragable extends WindowResizeable {\n // --------------------------------------------------------------------------\n //\n // Properties Methods\n //\n // --------------------------------------------------------------------------\n\n protected isWasDragged: boolean = false;\n\n private dragMoveHandlerProxy: (...args) => any;\n private dragStartHandlerProxy: (...args) => any;\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setProperties(): void {\n super.setProperties();\n\n if (this.config.isModal) {\n return;\n }\n ViewUtil.addClass(this.container, 'vi-draggable');\n if (!this.config.isContentDragable) {\n return;\n }\n this.dragMoveHandlerProxy = this.dragMoveHandler.bind(this);\n this.dragStartHandlerProxy = this.dragStartHandler.bind(this);\n\n let param = {} as DraggableOptions;\n // let param = {} as any;\n this.interactable.draggable(param);\n this.interactable.on('dragmove', this.dragMoveHandlerProxy);\n this.interactable.on('dragstart', this.dragStartHandlerProxy);\n }\n\n protected isNeedClickStopPropagation(event: MouseEvent): boolean {\n return this.isWasDragged || super.isNeedClickStopPropagation(event);\n }\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n public dragStartHandler(event: InteractEvent): void {\n this.isWasDragged = true;\n }\n\n public dragMoveHandler(event: InteractEvent): void {\n let x = this.getX() + event.dx;\n let y = this.getY() + event.dy;\n this.move(x, y);\n }\n\n protected mouseClickHandler(event: MouseEvent): void {\n super.mouseClickHandler(event);\n this.isWasDragged = false;\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.dragMoveHandlerProxy = null;\n this.dragStartHandlerProxy = null;\n }\n}\n","import { ViewContainerRef } from '@angular/core';\nimport { ViewUtil } from '../../util/ViewUtil';\nimport { WindowCloseElementComponent } from './window-close-element/window-close-element.component';\nimport { WindowExpandElementComponent } from './window-expand-element/window-expand-element.component';\nimport { WindowResizeElementComponent } from './window-resize-element/window-resize-element.component';\nimport { WindowMinimizeElementComponent } from './window-minimize-element/window-minimize-element.component';\nimport { WindowDragable } from './WindowDragable';\n\nexport class WindowBaseComponent extends WindowDragable {\n // --------------------------------------------------------------------------\n //\n // Static Properties\n //\n // --------------------------------------------------------------------------\n\n public static CLOSE_COMPONENT = WindowCloseElementComponent;\n public static EXPAND_COMPONENT = WindowExpandElementComponent;\n public static RESIZE_COMPONENT = WindowResizeElementComponent;\n public static MINIMIZE_COMPONENT = WindowMinimizeElementComponent;\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected elementsCreate(): void {\n super.elementsCreate();\n\n if (!(this.content.container instanceof ViewContainerRef)) {\n return;\n }\n\n if (!this.config.disableClose) {\n this.elementAdd(this.content.container.createComponent(WindowBaseComponent.CLOSE_COMPONENT));\n }\n\n if (this.config.isResizeable) {\n this.elementAdd(this.content.container.createComponent(WindowBaseComponent.RESIZE_COMPONENT));\n }\n\n if (this.config.isMinimizable) {\n this.elementAdd(this.content.container.createComponent(WindowBaseComponent.MINIMIZE_COMPONENT));\n }\n\n if (this.config.isExpandable) {\n this.elementAdd(this.content.container.createComponent(WindowBaseComponent.EXPAND_COMPONENT));\n }\n }\n\n protected commitIsBlinkProperties(): void {\n ViewUtil.toggleClass(this.container, this.blinkClass, this.isBlink);\n }\n\n protected commitIsDisabledProperties(): void {\n ViewUtil.toggleClass(this.container, this.disabledClass, this.isDisabled);\n ViewUtil.toggleClass(this.content.element, this.disabledClass, this.isDisabled);\n ViewUtil.toggleClass(this.content.element.nativeElement.parentElement, this.disabledClass, this.isDisabled);\n }\n\n protected commitIsShakingProperties(): void {\n ViewUtil.toggleClasses(this.container, this.shakingClass, this.isShaking);\n }\n\n protected commitIsMinimizedProperties(): void {\n ViewUtil.toggleClass(this.container, this.minimizedClass, this.isMinimized);\n ViewUtil.toggleClass(this.content.element, this.minimizedClass, this.isMinimized);\n ViewUtil.toggleClass(this.content.element.nativeElement.parentElement, this.minimizedClass, this.isMinimized);\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Properties\n //\n // --------------------------------------------------------------------------\n\n protected get blinkClass(): string {\n return 'vi-blink';\n }\n\n protected get disabledClass(): string {\n return 'vi-disabled';\n }\n\n protected get minimizedClass(): string {\n return 'vi-minimized';\n }\n\n protected get shakingClass(): string {\n return 'shake-constant shake-horizontal';\n }\n}\n","import { ViewContainerRef } from '@angular/core';\nimport { ViewUtil } from '../../util/ViewUtil';\nimport { BottomSheetImpl } from '../BottomSheetImpl';\nimport { WindowBaseComponent } from '../../window/component/WindowBaseComponent';\n\nexport class BottomSheetBaseComponent extends BottomSheetImpl {\n // --------------------------------------------------------------------------\n //\n // Static Properties\n //\n // --------------------------------------------------------------------------\n\n public static CLOSE_COMPONENT = WindowBaseComponent.CLOSE_COMPONENT;\n public static EXPAND_COMPONENT = WindowBaseComponent.EXPAND_COMPONENT;\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected elementsCreate(): void {\n super.elementsCreate();\n\n if (!(this.content.container instanceof ViewContainerRef)) {\n return;\n }\n if (!this.config.disableClose) {\n this.elementAdd(this.content.container.createComponent(BottomSheetBaseComponent.CLOSE_COMPONENT));\n }\n if (this.config.isExpandable) {\n this.elementAdd(this.content.container.createComponent(BottomSheetBaseComponent.EXPAND_COMPONENT));\n }\n }\n\n protected commitIsBlinkProperties(): void {\n ViewUtil.toggleClass(this.container, this.blinkClass, this.isBlink);\n }\n\n protected commitIsDisabledProperties(): void {\n ViewUtil.toggleClass(this.container, this.disabledClass, this.isDisabled);\n ViewUtil.toggleClass(this.content.element, this.disabledClass, this.isDisabled);\n ViewUtil.toggleClass(this.content.element.nativeElement.parentElement, this.disabledClass, this.isDisabled);\n }\n\n protected commitIsShakingProperties(): void {\n ViewUtil.toggleClass(this.container, this.shakingClass, this.isShaking);\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Properties\n //\n // --------------------------------------------------------------------------\n\n protected get blinkClass(): string {\n return 'vi-blink';\n }\n\n protected get disabledClass(): string {\n return 'vi-disabled';\n }\n\n protected get minimizedClass(): string {\n return 'vi-minimized';\n }\n\n protected get shakingClass(): string {\n return 'shake-constant shake-horizontal';\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatBottomSheet, MatBottomSheetConfig, MatBottomSheetRef } from '@angular/material/bottom-sheet';\nimport { Destroyable } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { Observable, Subject } from 'rxjs';\nimport { WindowFactory } from '../window/WindowFactory';\nimport { IWindow } from '../window/IWindow';\nimport { WindowConfig, WindowConfigOptions } from '../window/WindowConfig';\nimport { IWindowContent } from '../window/IWindowContent';\nimport { WindowServiceEvent } from '../window/WindowServiceEvent';\nimport { QuestionManager } from '../question/QuestionManager';\nimport { IQuestion, IQuestionOptions, QuestionMode } from '../question/IQuestion';\nimport { WindowQuestionComponent } from '../window/component/window-question/window-question.component';\nimport { BottomSheetBaseComponent } from './component/BottomSheetBaseComponent';\n\n@Injectable({ providedIn: 'root' })\nexport class BottomSheetService extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public factory: WindowFactory<IWindow>;\n public questionComponent: ComponentType<IWindowContent>;\n\n protected _window: IWindow;\n\n protected dialog: MatBottomSheet;\n protected language: LanguageService;\n\n private observer: Subject<ObservableData<WindowServiceEvent, IWindow>>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(dialog: MatBottomSheet, language: LanguageService) {\n super();\n this.dialog = dialog;\n this.language = language;\n this.observer = new Subject();\n\n this.factory = new WindowFactory(BottomSheetBaseComponent);\n this.questionComponent = WindowQuestionComponent;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public open<T extends IWindowContent>(component: ComponentType<T>, config: WindowConfig): T {\n let reference: MatBottomSheetRef<T> = this.dialog.open(component, config as MatBottomSheetConfig<T>);\n\n let window = this.factory.create({ config, reference: reference as any, overlay: (reference as any)._overlayRef });\n this.observer.next(new ObservableData(WindowServiceEvent.OPEN_STARTED, window));\n\n let subscription = window.events.subscribe(event => {\n switch (event) {\n case WindowServiceEvent.OPENED:\n this._window = window;\n this.observer.next(new ObservableData(WindowServiceEvent.OPENED, window));\n this.observer.next(new ObservableData(WindowServiceEvent.OPEN_FINISHED, window));\n break;\n\n case WindowServiceEvent.CLOSED:\n subscription.unsubscribe();\n this._window = null;\n this.observer.next(new ObservableData(WindowServiceEvent.CLOSED, window));\n break;\n }\n });\n return window.content as T;\n }\n\n public removeAll(): void {}\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.removeAll();\n\n if (!_.isNil(this.observer)) {\n this.observer.complete();\n this.observer = null;\n }\n\n this._window = null;\n\n this.factory = null;\n this.questionComponent = null;\n\n this.dialog = null;\n this.language = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tAdditional Methods\n //\n // --------------------------------------------------------------------------\n\n public info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion {\n let text = this.language.translate(translationId, translation);\n let config: WindowConfig<QuestionManager> = _.assign(new WindowConfig(true, false, 450), configOptions);\n config.data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.INFO, text }));\n return this.open(this.questionComponent, config).config.data;\n }\n\n public question(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion {\n let text = this.language.translate(translationId, translation);\n let config: WindowConfig<QuestionManager> = _.assign(new WindowConfig(true, false, 450), configOptions);\n config.data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.QUESTION, text }));\n return this.open(this.questionComponent, config).config.data;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get window(): IWindow {\n return this._window;\n }\n\n public get events(): Observable<ObservableData<WindowServiceEvent, IWindow>> {\n return this.observer.asObservable();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { LanguageModule } from '../language/LanguageModule';\nimport { BottomSheetService } from './BottomSheetService';\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\n\nconst IMPORTS = [CommonModule, FormsModule, MatBottomSheetModule, MatButtonModule, LanguageModule];\nconst ENTRY_COMPONENTS = [];\nconst DECLARATIONS = [...ENTRY_COMPONENTS];\n\nconst EXPORTS = [...DECLARATIONS];\n@NgModule({\n imports: IMPORTS,\n declarations: DECLARATIONS,\n exports: EXPORTS\n})\nexport class BottomSheetModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(): ModuleWithProviders<BottomSheetModule> {\n return {\n ngModule: BottomSheetModule,\n providers: [BottomSheetService]\n };\n }\n}\n","import { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, Subject, filter, takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\nimport { WindowEvent } from '../window/IWindow';\nimport { WindowBase } from '../window/WindowBase';\nimport { INotification, NotificationEvent } from './INotification';\nimport { INotificationContent } from './INotificationContent';\nimport { NotificationConfig } from './NotificationConfig';\nimport { NotificationProperties } from './NotificationProperties';\nimport * as _ from 'lodash';\n\nexport class NotificationImpl<T = any> extends WindowBase implements INotification {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n private _container: HTMLElement;\n\n protected properties: NotificationProperties;\n\n protected timer: any;\n protected observer: Subject<string>;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(properties: NotificationProperties) {\n super();\n this.observer = new Subject();\n\n this.properties = properties;\n this.content.notification = this;\n\n // Have to save for unsubscribe on destroy\n this._container = this.properties.overlay.overlayElement;\n\n this.setProperties();\n this.getReference().afterOpened().pipe(takeUntil(this.destroyed)).subscribe(this.setOpened);\n this.getReference().afterClosed().pipe(takeUntil(this.destroyed)).subscribe(this.setClosed);\n\n this.observer\n .pipe(\n filter(event => event === WindowEvent.CONTENT_READY),\n takeUntil(this.destroyed)\n )\n .subscribe(this.updatePosition);\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setProperties(): void {\n super.setProperties();\n ViewUtil.addClass(this.container, 'vi-notification');\n }\n\n protected setClosed = (): void => {\n this.emit(WindowEvent.CLOSED);\n this.destroy();\n };\n\n protected setOpened = (): void => {\n this.emit(WindowEvent.OPENED);\n };\n\n protected getConfig(): NotificationConfig {\n return this.properties.config;\n }\n protected getContainer(): HTMLElement {\n return this.container;\n }\n protected getReference(): MatDialogRef<INotificationContent> {\n return this.properties.reference;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public emit(event: string): void {\n this.observer.next(event);\n }\n\n public close(): void {\n this.getReference().close();\n }\n\n public remove(): void {\n this.close();\n this.observer.next(NotificationEvent.REMOVED);\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 this.properties = null;\n this._container = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Size Methods\n //\n // --------------------------------------------------------------------------\n\n public getWidth(): number {\n return this.calculateWidth();\n }\n\n public getHeight(): number {\n return this.calculateHeight();\n }\n\n public setWidth(value: number): void {\n this.width = value;\n }\n\n public setHeight(value: number): void {\n this.height = value;\n }\n\n public setSize(width: number, height: number): void {\n this.setWidth(width);\n this.setHeight(height);\n }\n\n // --------------------------------------------------------------------------\n //\n // Move Methods\n //\n // --------------------------------------------------------------------------\n\n public getX(): number {\n return this.x;\n }\n\n public setX(value: number): void {\n this.x = value;\n }\n\n public getY(): number {\n return this.y;\n }\n public setY(value: number): void {\n this.y = value;\n }\n\n public move(x: number, y: number): void {\n this.setX(x);\n this.setY(y);\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get events(): Observable<string> {\n return this.observer.asObservable();\n }\n\n public get config(): NotificationConfig {\n return this.properties.config;\n }\n\n public get content(): INotificationContent<T> {\n return this.properties.reference ? this.properties.reference.componentInstance : null;\n }\n\n public get container(): HTMLElement {\n return this._container;\n }\n}\n","import { NotificationImpl } from '../../notification/NotificationImpl';\n\nexport class NotificationBaseComponent extends NotificationImpl {}\n","import { AfterViewInit, Component, Directive, Injectable, Input, ViewContainerRef } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { Observable } from 'rxjs';\nimport { WindowEvent } from '../window/IWindow';\nimport { INotification } from './INotification';\nimport { NotificationConfig } from './NotificationConfig';\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: NotificationConfig<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: NotificationConfig<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(): NotificationConfig<T> {\n return this._config;\n }\n}\n","import { Component, HostListener, Injectable } from '@angular/core';\nimport { INotificationContent } from '../../notification/INotificationContent';\nimport { QuestionManager } from '../../question/QuestionManager';\nimport { ViewUtil } from '../../util/ViewUtil';\n\n@Component({ template: '' })\nexport abstract class NotificationQuestionBaseComponent extends INotificationContent<QuestionManager> {\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitConfigProperties(): void {\n super.commitConfigProperties();\n\n if (this.isInfo) {\n ViewUtil.addClass(this.container, 'mouse-active');\n }\n\n this.data.closePromise.then(() => {\n if (!this.isDestroyed) {\n this.remove();\n }\n });\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n @HostListener('click')\n public clickHandler(): void {\n if (this.isInfo) {\n this.data.closeClickHandler();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Properties\n //\n // --------------------------------------------------------------------------\n\n protected get isInfo(): boolean {\n return this.data ? this.data.isInfo : false;\n }\n}\n","import { Component, ViewContainerRef } from '@angular/core';\nimport { LanguageService } from '@ts-core/frontend';\nimport { NotificationService } from '../../NotificationService';\nimport { ViewUtil } from '../../../util/ViewUtil';\nimport { NotificationQuestionBaseComponent } from '../NotificationQuestionBaseComponent';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'vi-notification',\n templateUrl: 'notification.component.html',\n styleUrls: ['notification.component.scss']\n})\nexport class NotificationComponent extends NotificationQuestionBaseComponent {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(container: ViewContainerRef, private language: LanguageService, private notifications: NotificationService) {\n super(container);\n ViewUtil.addClasses(container.element, 'd-block');\n ViewUtil.setAttribute(container.element, 'tabindex', '-1');\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitConfigProperties(): void {\n super.commitConfigProperties();\n\n if (this.language.isHasTranslation(this.data.options.yesTextId)) {\n this.data.yesText = this.language.translate(this.data.options.yesTextId);\n }\n if (this.language.isHasTranslation(this.data.options.notTextId)) {\n this.data.notText = this.language.translate(this.data.options.notTextId);\n }\n if (this.language.isHasTranslation(this.data.options.checkTextId)) {\n this.data.checkText = this.language.translate(this.data.options.checkTextId);\n }\n if (this.language.isHasTranslation(this.data.options.closeTextId)) {\n this.data.closeText = this.language.translate(this.data.options.closeTextId);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public remove(): void {\n super.remove();\n if (_.isNil(this.notification)) {\n this.notifications.remove(this.config);\n }\n }\n}\n","<p class=\"text m-4 text-center mouse-inactive text-word-wrap-break-word\" [innerHTML]=\"data?.text\"></p>\n\n<div class=\"text-center border-sm-top p-3\" *ngIf=\"data?.isQuestion\">\n\n <button class=\"mr-3 me-3\" (click)=\"data?.yesClickHandler()\" tabindex=\"-1\" color=\"primary\" mat-stroked-button>\n <span [innerHTML]=\"data?.yesText\"></span>\n </button>\n\n <button (click)=\"data?.notClickHandler()\" tabindex=\"-1\" mat-stroked-button>\n <span [innerHTML]=\"data?.notText\"></span>\n </button>\n\n</div>","import { INotification } from './INotification';\nimport { NotificationProperties } from './NotificationProperties';\n\nexport class NotificationFactory<U extends INotification> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected classType: { new (properties: NotificationProperties): U }) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public create(properties: NotificationProperties): U {\n return new this.classType(properties);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { LanguageService } from '@ts-core/frontend';\nimport { LanguageModule } from '../language/LanguageModule';\nimport { NotificationBaseComponent } from './component/NotificationBaseComponent';\nimport { NotificationComponent } from './component/notification/notification.component';\nimport { NotificationFactory } from './NotificationFactory';\nimport { NotificationService } from './NotificationService';\n\nconst IMPORTS = [CommonModule, FormsModule, MatDialogModule, MatButtonModule, LanguageModule];\nconst ENTRY_COMPONENTS = [];\nconst DECLARATIONS = [NotificationComponent, ...ENTRY_COMPONENTS];\n\nconst EXPORTS = [...DECLARATIONS];\n@NgModule({\n imports: IMPORTS,\n declarations: DECLARATIONS,\n exports: EXPORTS\n})\nexport class NotificationModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(): ModuleWithProviders<NotificationModule> {\n return {\n ngModule: NotificationService,\n providers: [\n {\n provide: NotificationService,\n deps: [MatDialog, LanguageService],\n useFactory: notificationServiceFactory\n }\n ]\n };\n }\n}\n\nexport function notificationServiceFactory(dialog: MatDialog, language: LanguageService): NotificationService {\n let item = new NotificationService(dialog, language);\n item.factory = new NotificationFactory(NotificationBaseComponent);\n item.questionComponent = NotificationComponent;\n return item;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viCamelCase'\n})\nexport class CamelCasePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any): string {\n if (!value) {\n return '---';\n }\n return _.camelCase(value);\n }\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport numeral from 'numeral';\n\n@Pipe({\n name: 'viFinance'\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 * as _ from 'lodash';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport { GetFilterableCondition, RemoveFilterableCondition } from '@ts-core/common';\n\n@Pipe({\n name: 'viMomentDate'\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 * as _ from 'lodash';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport { MomentDatePipe } from './MomentDatePipe';\n\n@Pipe({\n name: 'viMomentAdaptiveDate'\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})\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 { MomentAvailableType, MomentDatePipe } from './MomentDatePipe';\nimport * as _ from 'lodash';\nimport moment from 'moment';\n\n@Pipe({\n name: 'viMomentTime'\n})\nexport class MomentTimePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = 'hh:mm:ss';\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})\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})\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 * as _ from 'lodash';\n\n@Pipe({\n name: 'viStartCase'\n})\nexport class StartCasePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any): string {\n if (!value) {\n return '---';\n }\n return value.charAt(0).toUpperCase() + value.slice(1);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DateUtil } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { FinancePipe } from './FinancePipe';\n\n@Pipe({\n name: 'viTime'\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 '---';\n }\n if (_.isNil(format)) {\n format = TimePipe.DEFAULT_FORMAT;\n }\n return FinancePipe.format(milliseconds / DateUtil.MILISECONDS_SECOND, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTruncate'\n})\nexport class TruncatePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(value: any, maxLength?: number): string {\n if (!value) {\n return '---';\n }\n return _.truncate(value, { length: maxLength });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viPrettify'\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 { Directive, ElementRef, HostListener, Injectable, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { Theme, 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 _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 source: string;\n protected element: T;\n\n private isTriedThemeDefault: boolean;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, protected theme: ThemeService, protected themeAsset: ThemeAssetService) {\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 private 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.source = this.getSource(this.getDefaultSourceId());\n this.commitSourceProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setSourceProperties(): void {\n this.source = this.getSource(this.getSourceId(this.theme.theme));\n this.commitSourceProperties();\n }\n\n protected getSourceId(theme: Theme): string {\n return !_.isNil(theme) ? this.name + _.capitalize(theme.name) : null;\n }\n\n protected getDefaultSourceId(): string {\n return this.themeAsset.getName(this.name, this.isIgnoreTheme);\n }\n\n protected abstract commitSourceProperties(): 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 //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input()\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()\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()\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()\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()\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()\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 if (!_.isNil(this._name)) {\n this.removeSourceProperties();\n }\n this._name = value;\n if (!_.isNil(value)) {\n this.setSourceProperties();\n }\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 if (!_.isNil(value)) {\n this.setSourceProperties();\n }\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})\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 commitSourceProperties(): 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})\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 commitSourceProperties(): 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})\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 commitSourceProperties(): 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 { Destroyable } from '@ts-core/common';\nimport { ThemeService } from '@ts-core/frontend';\n\n@Directive({\n selector: '[vi-theme-toggle]'\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', ['$event'])\n private clickHandler(event: MouseEvent) {\n let themes = this.theme.themes.collection;\n let length = themes.length;\n if (length < 2) {\n return;\n }\n\n let index = 0;\n if (this.theme.theme) {\n index = themes.indexOf(this.theme.theme);\n if (index < length - 1) {\n index++;\n } else {\n index = 0;\n }\n }\n\n this.theme.theme = themes[index];\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 { Directive, ElementRef, Input, RendererStyleFlags2 } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ThemeService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-theme-style]'\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(element: ElementRef, protected theme: ThemeService) {\n super();\n\n this.element = ViewUtil.parseElement(element.nativeElement);\n this.theme.changed.pipe(takeUntil(this.destroyed)).subscribe(() => this.stylePropertiesAdd());\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})\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 { 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 { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Destroyable } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { Observable, Subject } from 'rxjs';\nimport { CookieService } from '../cookie/CookieService';\nimport { BottomSheetService } from '../bottomSheet/BottomSheetService';\nimport { IQuestion, IQuestionOptions, QuestionMode } from '../question/IQuestion';\nimport { QuestionManager } from '../question/QuestionManager';\nimport { ViewUtil } from '../util/ViewUtil';\nimport { WindowQuestionComponent } from './component/window-question/window-question.component';\nimport { WindowBaseComponent } from './component/WindowBaseComponent';\nimport { IWindow, WindowEvent } from './IWindow';\nimport { IWindowContent } from './IWindowContent';\nimport { WindowAlign, WindowConfig, WindowConfigOptions } from './WindowConfig';\nimport { WindowFactory } from './WindowFactory';\nimport { WindowServiceEvent } from './WindowServiceEvent';\n\n@Injectable({ providedIn: 'root' })\nexport class WindowService extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n public static Z_INDEX_MAX = 1000;\n\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static getZIndex(window: IWindow): number {\n return !_.isNil(window) && !_.isNil(window.container) ? parseInt(ViewUtil.getStyle(window.container.parentElement, 'zIndex'), 10) : -1;\n }\n\n public static setZIndex(window: IWindow, index: number): void {\n if (_.isNil(window)) {\n return;\n }\n if (!_.isNil(window.backdrop)) {\n ViewUtil.setStyle(window.backdrop, 'zIndex', index);\n }\n if (!_.isNil(window.wrapper)) {\n ViewUtil.setStyle(window.wrapper, 'zIndex', index);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public factory: WindowFactory<IWindow>;\n public questionComponent: ComponentType<IWindowContent>;\n public isNeedCheckPositionAfterOpen: boolean = true;\n\n protected dialog: MatDialog;\n protected language: LanguageService;\n\n private _windows: Map<WindowConfig, IWindowContent>;\n\n private observer: Subject<ObservableData<WindowServiceEvent, IWindow>>;\n private properties: PropertiesManager;\n\n public gapX: number = 25;\n public gapY: number = 25;\n\n public minWidth: number = 100;\n public minHeight: number = 100;\n\n public paddingTop: number = 25;\n public paddingLeft: number = 25;\n public paddingRight: number = 25;\n public paddingBottom: number = 25;\n\n public defaultVerticalAlign: WindowAlign = WindowAlign.CENTER;\n public defaultHorizontalAlign: WindowAlign = WindowAlign.CENTER;\n\n public topZIndex: number = WindowService.Z_INDEX_MAX;\n // public topZIndex: number = 1001;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(dialog: MatDialog, language: LanguageService, cookies: CookieService, private sheet: BottomSheetService) {\n super();\n this._windows = new Map();\n\n this.dialog = dialog;\n this.language = language;\n this.observer = new Subject();\n this.properties = new PropertiesManager(cookies);\n\n this.factory = new WindowFactory(WindowBaseComponent);\n this.questionComponent = WindowQuestionComponent;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private sortFunction(first: IWindow, second: IWindow): number {\n return WindowService.getZIndex(first) > WindowService.getZIndex(second) ? -1 : 1;\n }\n\n private updateTop(): void {\n let zIndex = 0;\n let topWindow: IWindow = null;\n\n let windows = [...this.windowsArray, this.sheet.window];\n for (let window of windows) {\n if (_.isNil(window) || _.isNil(window.container)) {\n continue;\n }\n let index = WindowService.getZIndex(window);\n if (zIndex >= index) {\n continue;\n }\n zIndex = index;\n topWindow = window;\n }\n\n if (_.isNil(topWindow) || topWindow.isOnTop) {\n return;\n }\n topWindow.isOnTop = true;\n this.observer.next(new ObservableData(WindowServiceEvent.SETTED_ON_TOP, topWindow));\n }\n\n private setWindowOnTop(topWindow: IWindow): void {\n let currentIndex = this.topZIndex - 2;\n let windows = [...this.windowsArray, this.sheet.window];\n for (let window of windows) {\n if (_.isNil(window) || _.isNil(window.container)) {\n continue;\n }\n window.isOnTop = window === topWindow;\n\n let zIndex = window.isOnTop ? this.topZIndex : currentIndex--;\n WindowService.setZIndex(window, zIndex);\n }\n\n this.windowsArray.sort(this.sortFunction);\n this.observer.next(new ObservableData(WindowServiceEvent.SETTED_ON_TOP, topWindow));\n }\n\n private checkPosition(item: IWindow): void {\n while (this.hasSamePosition(item)) {\n item.move(item.getX() + this.gapX, item.getY() + this.gapY);\n }\n }\n\n private hasSamePosition(itemWindow: IWindow): boolean {\n let x = itemWindow.getX();\n let y = itemWindow.getY();\n\n let result = false;\n this.windowsArray.forEach(window => {\n if (window !== itemWindow && x === window.getX() && y === window.getY()) {\n result = true;\n }\n });\n return result;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tSetters Methods\n //\n // --------------------------------------------------------------------------\n\n private add(config: WindowConfig, content: IWindowContent): void {\n this._windows.set(config, content);\n this.observer.next(new ObservableData(WindowServiceEvent.OPENED, content.window));\n }\n\n private remove(config: WindowConfig): void {\n let window = this._windows.get(config);\n if (!window) {\n return null;\n }\n\n window.close();\n this._windows.delete(config);\n this.observer.next(new ObservableData(WindowServiceEvent.CLOSED, window.window));\n }\n\n private getById<T>(id: string): IWindow<T> {\n let item = _.find(Array.from(this._windows.values()), item => item.config.id === id);\n return !_.isNil(item) ? item.window : null;\n }\n\n private setDefaultProperties(config: WindowConfig): void {\n if (!config.verticalAlign) {\n config.verticalAlign = this.defaultVerticalAlign;\n }\n if (!config.horizontalAlign) {\n config.horizontalAlign = this.defaultHorizontalAlign;\n }\n\n if (_.isNaN(config.defaultMinWidth)) {\n config.defaultMinWidth = this.minWidth;\n }\n if (_.isNaN(config.defaultMinHeight)) {\n config.defaultMinHeight = this.minHeight;\n }\n\n if (_.isNaN(config.paddingTop)) {\n config.paddingTop = this.paddingTop;\n }\n if (_.isNaN(config.paddingLeft)) {\n config.paddingLeft = this.paddingLeft;\n }\n if (_.isNaN(config.paddingRight)) {\n config.paddingRight = this.paddingRight;\n }\n if (_.isNaN(config.paddingBottom)) {\n config.paddingBottom = this.paddingBottom;\n }\n\n if (config.propertiesId) {\n this.properties.load(config.propertiesId, config);\n }\n\n config.setDefaultProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public open<T extends IWindowContent>(component: ComponentType<T>, config: WindowConfig): T {\n let window: IWindow<T> = null;\n if (config.id) {\n window = this.getById(config.id);\n if (!_.isNil(window)) {\n return window.content as T;\n }\n }\n\n this.setDefaultProperties(config);\n\n // let dialog = this.dialog as any;\n // dialog._getOverlayState = config.isModal ? dialog.getOverlayStateModal : dialog.getOverlayStateNonModal;\n\n let reference: MatDialogRef<IWindowContent> = this.dialog.open(component, config);\n window = this.factory.create({ config, reference, overlay: (reference as any)._overlayRef });\n\n this.observer.next(new ObservableData(WindowServiceEvent.OPEN_STARTED, window));\n\n let subscription = window.events.subscribe(event => {\n switch (event) {\n case WindowEvent.OPENED:\n this.add(config, reference.componentInstance);\n this.setWindowOnTop(window);\n if (this.isNeedCheckPositionAfterOpen) {\n this.checkPosition(window);\n }\n this.observer.next(new ObservableData(WindowServiceEvent.OPEN_FINISHED, window));\n break;\n\n case WindowEvent.CLOSED:\n subscription.unsubscribe();\n this.remove(config);\n if (window.isOnTop && this.windows.size > 0) {\n this.updateTop();\n }\n break;\n\n case WindowEvent.RESIZED:\n if (!_.isNil(config.propertiesId)) {\n this.properties.save(config.propertiesId, window);\n }\n break;\n\n case WindowEvent.SET_ON_TOP:\n this.setWindowOnTop(window);\n break;\n }\n });\n return window.content as T;\n }\n\n public get(value: WindowId): IWindowContent {\n let id = value.toString();\n if (value instanceof WindowConfig) {\n id = value.id;\n }\n if (!id) {\n return null;\n }\n let window = this.getById(id);\n if (_.isNil(window)) {\n return null;\n }\n return window.content;\n }\n\n public has(value: WindowId): boolean {\n return !_.isNil(this.get(value));\n }\n\n public setOnTop(value: WindowId): boolean {\n let content = this.get(value);\n if (!content) {\n return false;\n }\n content.window.setOnTop();\n return true;\n }\n\n public removeAll(): void {\n this.windowsArray.forEach(window => window.close());\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.removeAll();\n\n if (!_.isNil(this.observer)) {\n this.observer.complete();\n this.observer = null;\n }\n\n if (!_.isNil(this.properties)) {\n this.properties.destroy();\n this.properties = null;\n }\n\n this.factory = null;\n this.questionComponent = null;\n\n this.dialog = null;\n this.language = null;\n\n this._windows = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tAdditional Methods\n //\n // --------------------------------------------------------------------------\n\n public info(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion {\n let text = this.language.translate(translationId, translation);\n let config: WindowConfig<QuestionManager> = _.assign(new WindowConfig(true, false, 450), configOptions);\n config.data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.INFO, text }));\n return this.open(this.questionComponent, config).config.data;\n }\n\n public question(translationId?: string, translation?: any, questionOptions?: IQuestionOptions, configOptions?: WindowConfigOptions): IQuestion {\n let text = this.language.translate(translationId, translation);\n let config: WindowConfig<QuestionManager> = _.assign(new WindowConfig(true, false, 450), configOptions);\n config.data = new QuestionManager(_.assign(questionOptions, { mode: QuestionMode.QUESTION, text }));\n return this.open(this.questionComponent, config).config.data;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Properties\n //\n // --------------------------------------------------------------------------\n\n private get windowsArray(): Array<IWindow> {\n return Array.from(this.windows.values()).map(item => item.window);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get events(): Observable<ObservableData<WindowServiceEvent, IWindow>> {\n return this.observer.asObservable();\n }\n\n public get windows(): Map<WindowConfig, IWindowContent> {\n return this._windows;\n }\n}\n\nexport class PropertiesManager extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private cookies: CookieService) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public load(name: string, config: WindowConfig): void {\n let item = this.cookies.getObject(name + 'Window') as any;\n if (!item) {\n return;\n }\n if (item.hasOwnProperty('width')) {\n config.defaultWidth = item.width;\n }\n if (item.hasOwnProperty('height')) {\n config.defaultHeight = item.height;\n }\n }\n\n public save(name: string, window: IWindow): void {\n this.cookies.putObject(name + 'Window', {\n width: window.getWidth(),\n height: window.getHeight()\n });\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.cookies = null;\n }\n}\n\nexport type WindowId = string | WindowConfig;\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { Interactable } from '@interactjs/types';\nimport * as interact from 'interactjs';\nimport { Destroyable } from '@ts-core/common';\nimport { IWindow } from '../IWindow';\nimport { WindowDragable } from './WindowDragable';\nimport * as _ from 'lodash';\n\n@Directive({\n selector: '[vi-window-drag-area]'\n})\nexport class WindowDragAreaDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private _window: WindowDragable;\n private _interactable: Interactable;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private element: ElementRef) {\n super();\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 this.element = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private commitWindowProperties(): void {\n if (!this.window.config || this.window.config.isModal) {\n return;\n }\n this.interactable.draggable(true);\n this.interactable.on('dragmove', this.dragMoveHandler);\n this.interactable.on('dragstart', this.dragStartHandler);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n private dragStartHandler = (event: any): void => {\n this._window.dragStartHandler(event);\n };\n\n private dragMoveHandler = (event: any): void => {\n this._window.dragMoveHandler(event);\n };\n\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n protected get interactable(): any {\n if (!this._interactable) {\n this._interactable = interact.default(this.element.nativeElement);\n //this._interactable.styleCursor(false);\n }\n return this._interactable;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('vi-window-drag-area')\n public set window(value: IWindow) {\n if (value === this._window) {\n return;\n }\n this._window = value as WindowDragable;\n if (this._window) {\n this.commitWindowProperties();\n }\n }\n\n public get window(): IWindow {\n return this._window;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { CookieModule } from '../cookie/CookieModule';\nimport { LanguageModule } from '../language/LanguageModule';\nimport { WindowService } from './WindowService';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { WindowDragAreaDirective } from './component/WindowDragAreaDirective';\nimport { WindowQuestionComponent } from './component/window-question/window-question.component';\nimport { WindowCloseElementComponent } from './component/window-close-element/window-close-element.component';\nimport { WindowExpandElementComponent } from './component/window-expand-element/window-expand-element.component';\nimport { WindowResizeElementComponent } from './component/window-resize-element/window-resize-element.component';\nimport { WindowMinimizeElementComponent } from './component/window-minimize-element/window-minimize-element.component';\nimport { MatButtonModule } from '@angular/material/button';\n\nconst IMPORTS = [CommonModule, FormsModule, MatButtonModule, MatDialogModule, CookieModule, LanguageModule];\nconst ENTRY_COMPONENTS = [\n WindowQuestionComponent,\n WindowCloseElementComponent,\n WindowExpandElementComponent,\n WindowResizeElementComponent,\n WindowMinimizeElementComponent\n];\nconst DECLARATIONS = [WindowDragAreaDirective, ...ENTRY_COMPONENTS];\nconst EXPORTS = [...DECLARATIONS];\n\n@NgModule({\n imports: IMPORTS,\n declarations: DECLARATIONS,\n exports: EXPORTS\n})\nexport class WindowModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(): ModuleWithProviders<WindowModule> {\n return {\n ngModule: WindowModule,\n providers: [WindowService]\n };\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PlatformService } from '../service/PlatformService';\n\n@Directive({\n selector: '[viIsServer]'\n})\nexport class IsServerDirective {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(platform: PlatformService, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef) {\n if (platform.isPlatformServer) {\n viewContainer.createEmbeddedView(templateRef);\n }\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PlatformService } from '../service/PlatformService';\n\n@Directive({\n selector: '[viIsBrowser]'\n})\nexport class IsBrowserDirective {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(platform: PlatformService, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef) {\n if (platform.isPlatformBrowser) {\n viewContainer.createEmbeddedView(templateRef);\n }\n }\n}\n","import { MatMenuPanel, MatMenuTrigger } from '@angular/material/menu';\nimport { FlexibleConnectedPositionStrategy, PositionStrategy } from '@angular/cdk/overlay';\nimport * as _ from 'lodash';\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[vi-menu-trigger-for]'\n})\nexport class MenuTriggerForDirective extends MatMenuTrigger {\n //--------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public openMenuOn(target: any): void {\n if (_.isNil(target)) return;\n\n this.openMenu();\n let strategy = this.getPositionStrategy();\n if (strategy instanceof FlexibleConnectedPositionStrategy) {\n strategy['_origin'] = target;\n strategy.apply();\n }\n }\n\n //--------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n //--------------------------------------------------------------------------\n\n protected getPositionStrategy(): PositionStrategy {\n return !_.isNil(this['_overlayRef']) ? this['_overlayRef'].getConfig().positionStrategy : null;\n }\n\n //--------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n //--------------------------------------------------------------------------\n\n @Input('vi-menu-trigger-for')\n public set menu(value: MatMenuPanel) {\n super.menu = value;\n }\n public get menu(): MatMenuPanel {\n return super.menu;\n }\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 * as _ from 'lodash';\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 { BottomSheetModule } from './bottomSheet/BottomSheetModule';\nimport { NotificationModule } from './notification/NotificationModule';\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 { WindowModule } from './window/WindowModule';\nimport { IsServerDirective } from './directive/IsServerDirective';\nimport { IsBrowserDirective } from './directive/IsBrowserDirective';\nimport { MenuTriggerForDirective } from './directive/MenuTriggerForDirective';\nimport { DOCUMENT } from '@angular/common';\nimport { PlatformService } from './service/PlatformService';\nimport { ViewUtil } from './util/ViewUtil';\n\nconst IMPORTS = [CookieModule, ThemeModule, LanguageModule, AssetModule, WindowModule, NotificationModule];\n\nconst 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 MenuTriggerForDirective,\n InfiniteScrollDirective,\n HTMLTitleDirective,\n HTMLContentTitleDirective,\n AutoScrollBottomDirective,\n AspectRatioResizeDirective\n];\n\n@NgModule({\n imports: IMPORTS,\n declarations: DECLARATIONS,\n exports: [...IMPORTS, ...DECLARATIONS]\n})\nexport class VICommonModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: IVICommonOptions): ModuleWithProviders<VICommonModule> {\n return {\n ngModule: VICommonModule,\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\n ...WindowModule.forRoot().providers,\n ...BottomSheetModule.forRoot().providers,\n ...NotificationModule.forRoot().providers,\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 IVICommonOptions 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: IVICommonOptions): ILogger {\n return new DefaultLogger(!_.isNil(options.loggerLevel) ? options.loggerLevel : LoggerLevel.LOG);\n}\nexport function nativeWindowServiceFactory(document: Document): NativeWindowService {\n return new NativeWindowService(document);\n}\n\nexport const VI_ANGULAR_OPTIONS = new InjectionToken<IVICommonOptions>(`VI_ANGULAR_OPTIONS`);\n","import { Component, ElementRef, Input } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport { ViewUtil } from '../../../util/ViewUtil';\n\n@Component({\n selector: 'vi-language-selector',\n templateUrl: 'language-selector.component.html'\n})\nexport class LanguageSelectorComponent extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private _isNeedIcon: boolean = true;\n private _isNeedLabel: boolean = true;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected element: ElementRef, public language: LanguageService) {\n super();\n ViewUtil.addClasses(element, 'd-block');\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitIsNeedLabelProperties(): void {\n ViewUtil.toggleClass(this.element, 'no-label', !this.isNeedLabel);\n }\n\n protected commitIsNeedIconProperties(): void {\n ViewUtil.toggleClass(this.element, 'no-icon', !this.isNeedLabel);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get isNeedIcon(): boolean {\n return this._isNeedIcon;\n }\n @Input()\n public set isNeedIcon(value: boolean) {\n if (value === this._isNeedIcon) {\n return;\n }\n this._isNeedIcon = value;\n this.commitIsNeedIconProperties();\n }\n\n public get isNeedLabel(): boolean {\n return this._isNeedLabel;\n }\n @Input()\n public set isNeedLabel(value: boolean) {\n if (value === this._isNeedLabel) {\n return;\n }\n this._isNeedLabel = value;\n this.commitIsNeedLabelProperties();\n }\n}\n","<mat-form-field class=\"d-block no-underline\" [title]=\"'general.locale' | viTranslate\">\n <mat-select [(ngModel)]=\"language.language\">\n <mat-select-trigger>\n <div class=\"d-flex text-one-line align-items-center\">\n <img class=\"mr-2 me-2 flex-shrink-0\" style=\"height: 22px; width: 24px\" [src]=\"language.language?.locale + 'Language' | viAssetIcon:'svg'\" *ngIf=\"isNeedIcon\">\n <p class=\"text-one-line mouse-inactive flex-grow-1\" [innerHTML]=\"language.language?.name\" *ngIf=\"isNeedLabel\"></p>\n </div>\n </mat-select-trigger>\n \n <mat-option *ngFor=\"let item of language.languages?.collection\" [value]=\"item\">\n <div class=\"d-flex text-one-line align-items-center\">\n <img class=\"mr-2 me-2 flex-shrink-0\" style=\"width: 24px\" [src]=\"item.locale + 'Language' | viAssetIcon:'svg'\">\n <p class=\"text-one-line mouse-inactive flex-grow-1\" [innerHTML]=\"item.name\"></p>\n </div>\n </mat-option>\n </mat-select>\n</mat-form-field>","import { Component, Input } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { ListItems } from '../../list/ListItems';\nimport { IListItem } from '../../list/IListItem';\n\n@Component({\n selector: 'vi-menu-list',\n templateUrl: 'menu-list.component.html'\n})\nexport class MenuListComponent<T = any> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input()\n public list: ListItems<IListItem<T>>;\n}\n","<ng-container *ngFor=\"let item of list?.filtered\">\n <button mat-menu-item [ngClass]=\"item.className\" (click)=\"list?.actionItem(item)\">\n <span [ngClass]=\"item.iconId\" *ngIf=\"item.iconId\"></span>\n <span [innerHTML]=\"item.label\" [title]=\"item.label\"></span>\n </button>\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { ISelectListItem } from '../../list/select/ISelectListItem';\nimport { SelectListItems } from '../../list/select/SelectListItems';\n\n@Component({\n selector: 'vi-select-list',\n templateUrl: 'select-list.component.html'\n})\nexport class SelectListComponent<T = any> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input()\n public list: SelectListItems<ISelectListItem<T>>;\n}\n","<ng-container *ngFor=\"let item of list?.collection\">\n\n <mat-list-item [ngClass]=\"item.isSelected? item.selectedClassName : item.className\" *ngIf=\"item.isEnabled\" (click)=\"list.actionItem(item)\" >\n <span [ngClass]=\"item.iconId\" *ngIf=\"item.iconId\" matListIcon></span>\n <span [innerHTML]=\"item.label\" [title]=\"item.label\" matLine></span>\n </mat-list-item>\n\n</ng-container>\n","import { Component, Input } from '@angular/core';\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { DestroyableContainer } from '@ts-core/common';\n\nimport * as _ from 'lodash';\nimport { ISelectListItem } from '../../list/select/ISelectListItem';\nimport { SelectListItems } from '../../list/select/SelectListItems';\n\n@Component({\n selector: 'vi-tab-group',\n templateUrl: 'tab-group.component.html'\n})\nexport class TabGroupComponent<T = any> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input()\n public className: string;\n protected _list: SelectListItems<ISelectListItem<T>>;\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitListProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public selectedTabChange(event: MatTabChangeEvent): void {\n if (_.isNil(this.list)) {\n return;\n }\n let index = event.index;\n if (index < 0 || index >= this.list.length) {\n return;\n }\n let item = this.list.collection[index];\n this.list.selectedItem = item;\n this.list.actionItem(item);\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.list = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get list(): SelectListItems<ISelectListItem<T>> {\n return this._list;\n }\n @Input()\n public set list(value: SelectListItems<ISelectListItem<T>>) {\n if (value === this._list) {\n return;\n }\n this._list = value;\n if (!_.isNil(value)) {\n this.commitListProperties();\n }\n }\n}\n","<mat-tab-group [ngClass]=\"className\" (selectedIndexChange)=\"list.selectedIndex = $event\" [selectedIndex]=\"list?.selectedIndex\"\n (selectedTabChange)=\"selectedTabChange($event)\">\n <ng-container *ngFor=\"let item of list?.collection\">\n <mat-tab [ngClass]=\"item.className\" [label]=\"item.label\" [disabled]=\"!item.isEnabled\" (click)=\"list?.actionItem(item)\"></mat-tab>\n </ng-container>\n</mat-tab-group>\n","import { DataSourceMapCollection, DataSourceMapCollectionEvent } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { Subscription, BehaviorSubject, Observable } from 'rxjs';\nimport { takeUntil } from 'rxjs';\nimport { DestroyableContainer, LoadableEvent } from '@ts-core/common';\n\nexport class CdkTableDataSource<U> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected subject: BehaviorSubject<Array<U>>;\n protected subscription: Subscription;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected map: DataSourceMapCollection<U>) {\n super();\n\n this.subject = new BehaviorSubject(map.collection);\n map.events.pipe(takeUntil(this.destroyed)).subscribe(data => {\n switch (data.type) {\n case LoadableEvent.COMPLETE:\n this.parseResponse();\n break;\n case DataSourceMapCollectionEvent.DATA_LOADED_AND_PARSED:\n this.parseParsedResponse();\n break;\n }\n });\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected parseResponse(): void {\n this.subject.next(this.map.collection);\n }\n\n protected parseParsedResponse(): 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.subject.complete();\n this.subject = null;\n\n this.map = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get dataSource(): Observable<Array<U>> {\n return this.subject.asObservable();\n }\n}\n","import { CdkTableDataSource } from './CdkTableDataSource';\nimport { FilterableDataSourceMapCollection } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { ObjectUtil } from '@ts-core/common';\nimport { Sort, SortDirection } from '@angular/material/sort';\n\nexport abstract class CdkTableFilterableMapCollection<U, V, T = any> extends FilterableDataSourceMapCollection<U, V, T> {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static getSort<U, V = any, T = any>(collection: FilterableDataSourceMapCollection<U, V, T>): Sort {\n if (_.isNil(collection) || _.isEmpty(collection.sort)) {\n return null;\n }\n let active = ObjectUtil.keys(collection.sort)[0].toString();\n let direction: SortDirection = collection.sort[active] ? 'asc' : 'desc';\n return { active, direction };\n }\n\n public static applySortEvent<U, V = any>(item: FilterableDataSourceMapCollection<U, V>, event: Sort): boolean {\n let value = undefined;\n if (event.direction === 'asc') {\n value = true;\n }\n if (event.direction === 'desc') {\n value = false;\n }\n\n if (value === item.sort[event.active]) {\n return false;\n }\n ObjectUtil.clear(item.sort);\n item.sort[event.active] = value;\n return true;\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _table: CdkTableDataSource<U>;\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n super.initialize();\n this._table = this.getTable();\n }\n\n protected getTable(): CdkTableDataSource<U> {\n return new CdkTableDataSource(this);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public sortEventHandler(event: Sort): void {\n if (CdkTableFilterableMapCollection.applySortEvent(this, event)) {\n this.reload();\n }\n }\n\n protected sortFunction(first: U, second: U, event: Sort): number {\n if (_.isEmpty(event.direction)) {\n return 0;\n }\n let firstValue = first[event.active];\n let secondValue = second[event.active];\n let isHigher = firstValue > secondValue;\n if (event.direction === 'asc') {\n return isHigher ? -1 : 1;\n } else {\n return isHigher ? 1 : -1;\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._table)) {\n this._table.destroy();\n this._table = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get table(): CdkTableDataSource<U> {\n return this._table;\n }\n}\n","import { Component, EventEmitter, Injectable, Input, Output } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { ICdkTableRow } from './row/ICdkTableRow';\nimport { ICdkTableColumn } from './column/ICdkTableColumn';\nimport { CdkTablePaginableMapCollection } from './CdkTablePaginableMapCollection';\nimport { CdkTableFilterableMapCollection } from './CdkTableFilterableMapCollection';\nimport { SortDirection } from '@angular/material/sort';\nimport { FilterableDataSourceMapCollection } from '@ts-core/common';\nimport { CdkTablePaginableBookmarkMapCollection } from './CdkTablePaginableBookmarkMapCollection';\n\n@Component({ template: '' })\nexport abstract class CdkTableBaseComponent<\n T extends CdkTablePaginableMapCollection<U, V> | CdkTableFilterableMapCollection<U, V> | CdkTablePaginableBookmarkMapCollection<U, V>,\n U,\n V\n> extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _table: T;\n protected _settings: ICdkTableSettings<U>;\n protected _rows: ICdkTableRow<U>;\n protected _columns: Array<ICdkTableColumn<U>>;\n protected _columnNames: Array<keyof U>;\n\n protected _selectedRow: U;\n protected _selectedRows: Array<U>;\n\n @Output()\n public rowClicked: EventEmitter<ICdkTableRowEvent<U>>;\n @Output()\n public cellClicked: EventEmitter<ICdkTableCellEvent<U>>;\n\n public sortActive: string;\n public sortDirection: SortDirection;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n\n this._columnNames = [];\n\n this.settings = {};\n this.rowClicked = new EventEmitter();\n this.cellClicked = new EventEmitter();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitTableProperties(): void {\n let sort = CdkTableFilterableMapCollection.getSort(this.table as FilterableDataSourceMapCollection<U, V>);\n if (!_.isNil(sort)) {\n this.sortActive = sort.active.toString();\n this.sortDirection = sort.direction;\n }\n\n if (!this.table.isDirty) {\n this.table.reload();\n }\n }\n\n protected commitColumnsProperties(): void {\n let value = null;\n\n value = !_.isEmpty(this.columns) ? this.columns.map(item => item.name) : [];\n if (value !== this._columnNames) {\n this._columnNames = value;\n }\n }\n\n protected commitSelectedRowsProperties(): void {\n this._selectedRow = !_.isEmpty(this.selectedRows) && this.selectedRows.length === 1 ? this.selectedRows[0] : null;\n }\n\n protected commitSettingsProperties(): void {\n if (_.isNil(this.settings.noDataId)) {\n this.settings.noDataId = 'general.noDataFound';\n }\n if (_.isNil(this.settings.isInteractive)) {\n this.settings.isInteractive = true;\n }\n if (_.isNil(this.rows) && !_.isEmpty(this.settings.rows)) {\n this.rows = this.settings.rows;\n }\n if (_.isNil(this.columns) && !_.isEmpty(this.settings.columns)) {\n this.columns = this.settings.columns;\n }\n }\n\n protected commitRowProperties(): void {}\n\n //--------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n //--------------------------------------------------------------------------\n\n public columnTrackBy(index: number, item: ICdkTableColumn<U>): string {\n return item.name;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.table = null;\n this.selectedRows = null;\n\n if (!_.isNil(this.cellClicked)) {\n this.cellClicked.complete();\n this.cellClicked = null;\n }\n if (!_.isNil(this.rowClicked)) {\n this.rowClicked.complete();\n this.rowClicked = null;\n }\n }\n\n //--------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n //--------------------------------------------------------------------------\n\n public rowClickHandler(item: U, event: MouseEvent): void {\n this.rowClicked.emit({ data: item, event });\n }\n\n public cellClickHandler(item: U, column: ICdkTableColumn<U>, event: MouseEvent): void {\n this.cellClicked.emit({ data: item, column: column.name, event });\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get table(): T {\n return this._table;\n }\n @Input()\n public set table(value: T) {\n if (value === this._table) {\n return;\n }\n this._table = value;\n if (!_.isNil(value)) {\n this.commitTableProperties();\n }\n }\n\n public get selectedRows(): Array<U> {\n return this._selectedRows;\n }\n @Input()\n public set selectedRows(value: Array<U>) {\n if (value === this._selectedRows) {\n return;\n }\n this._selectedRows = value;\n this.commitSelectedRowsProperties();\n }\n\n public get selectedRow(): U {\n return this._selectedRow;\n }\n @Input()\n public set selectedRow(value: U) {\n if (value === this._selectedRow) {\n return;\n }\n this.selectedRows = !_.isNil(value) ? [value] : [];\n }\n\n public get rows(): ICdkTableRow<U> {\n return this._rows;\n }\n @Input()\n public set rows(value: ICdkTableRow<U>) {\n if (value === this._rows) {\n return;\n }\n this._rows = value;\n if (!_.isNil(value)) {\n this.commitRowProperties();\n }\n }\n\n public get columns(): Array<ICdkTableColumn<U>> {\n return this._columns;\n }\n @Input()\n public set columns(value: Array<ICdkTableColumn<U>>) {\n if (value === this._columns) {\n return;\n }\n this._columns = value;\n if (!_.isNil(value)) {\n this.commitColumnsProperties();\n }\n }\n\n public get settings(): ICdkTableSettings<U> {\n return this._settings;\n }\n @Input()\n public set settings(value: ICdkTableSettings<U>) {\n if (value === this._settings) {\n return;\n }\n this._settings = value;\n if (!_.isNil(value)) {\n this.commitSettingsProperties();\n }\n }\n\n public get columnNames(): Array<keyof U> {\n return this._columnNames;\n }\n}\n\nexport interface ICdkTableRowEvent<U> {\n data: U;\n event: MouseEvent;\n}\n\nexport interface ICdkTableCellEvent<U> extends ICdkTableRowEvent<U> {\n column: string;\n}\n\nexport interface ICdkTableSettings<U> {\n noDataId?: string;\n isInteractive?: boolean;\n\n rows?: ICdkTableRow<U>;\n columns?: Array<ICdkTableColumn<U>>;\n}\n","import { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { CdkTableCellValue, ICdkTableColumn } from '../column/ICdkTableColumn';\n\n@Pipe({\n name: 'viCdkTableCellValue',\n pure: false\n})\nexport class CdkTableCellValuePipe<U> extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n // \tStatic Properties\n //\n // --------------------------------------------------------------------------\n\n public static ERROR_SYMBOL = 'x';\n public static PENDING_SYMBOL = '⧗';\n\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private lastItem: U;\n private lastColumn: ICdkTableColumn<U>;\n\n private lastValue: CdkTableCellValue<U>;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private detection: ChangeDetectorRef) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(item: U, column: ICdkTableColumn<U>): CdkTableCellValue<U> | Promise<CdkTableCellValue<U>> {\n if (item === this.lastItem && column === this.lastColumn) {\n return this.lastValue;\n }\n\n if (_.isNil(column.format)) {\n this.lastValue = item[column.name];\n return this.lastValue;\n }\n\n this.lastItem = item;\n this.lastColumn = column;\n\n this.lastValue = CdkTableCellValuePipe.PENDING_SYMBOL;\n\n let result = column.format(item, column);\n if (!(result instanceof Promise)) {\n this.lastValue = result;\n return this.lastValue;\n }\n\n result\n .then(item => {\n this.lastValue = item;\n })\n .catch(error => {\n this.lastValue = CdkTableCellValuePipe.ERROR_SYMBOL;\n })\n .finally(() => {\n if (!_.isNil(this.detection)) {\n this.detection.markForCheck();\n }\n });\n return this.lastValue;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n this.detection = null;\n\n this.lastItem = null;\n this.lastColumn = null;\n\n this.lastValue = null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport { CdkTableCellValue, ICdkTableColumn } from '../column/ICdkTableColumn';\n\n@Pipe({\n name: 'viCdkTableCellValuePure'\n})\nexport class CdkTableCellValuePipePure implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform<U>(item: U, column: ICdkTableColumn<U>): CdkTableCellValue<U> {\n return !_.isNil(column.format) ? column.format(item, column) : item[column.name];\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport { ICdkTableColumn } from '../column/ICdkTableColumn';\n\n@Pipe({\n name: 'viCdkTableCellClassName'\n})\nexport class CdkTableCellClassNamePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform<U>(item: U, column: ICdkTableColumn<U>): string {\n if (_.isNil(column.cellClassName)) {\n return column.isMultiline ? 'text-multi-line' : 'text-one-line';\n }\n return _.isString(column.cellClassName) ? column.cellClassName : column.cellClassName(item, column);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport { ICdkTableColumn } from '../column/ICdkTableColumn';\n\n@Pipe({\n name: 'viCdkTableCellStyleName'\n})\nexport class CdkTableCellStyleNamePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform<U>(item: U, column: ICdkTableColumn<U>): { [key: string]: any } {\n return !_.isNil(column) && !_.isNil(column.cellStyleName) ? column.cellStyleName(item, column) : null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport { ICdkTableColumn } from './ICdkTableColumn';\n\n@Pipe({\n name: 'viCdkTableColumnClassName'\n})\nexport class CdkTableColumnClassNamePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform<U>(item: U, column: ICdkTableColumn<U>): string {\n return !_.isNil(column) && !_.isNil(column.className) ? (_.isString(column.className) ? column.className : column.className(item, column)) : null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport { ICdkTableColumn } from './ICdkTableColumn';\n\n@Pipe({\n name: 'viCdkTableColumnStyleName'\n})\nexport class CdkTableColumnStyleNamePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform<U>(item: U, column: ICdkTableColumn<U>): { [key: string]: any } {\n return !_.isNil(column) && !_.isNil(column.styleName) ? column.styleName(item, column) : null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport { ICdkTableSettings } from '../CdkTableBaseComponent';\nimport { ICdkTableRow } from './ICdkTableRow';\n\n@Pipe({\n name: 'viCdkTableRowStyleName'\n})\nexport class CdkTableRowStyleNamePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform<U>(item: U, row: ICdkTableRow<U>, selectedRows: Array<U>, isInteractive?: boolean): { [key: string]: any } {\n return !_.isNil(row) && !_.isNil(row.styleName) ? row.styleName(item, selectedRows) : null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport { ICdkTableRow } from './ICdkTableRow';\n\n@Pipe({\n name: 'viCdkTableRowClassName'\n})\nexport class CdkTableRowClassNamePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform<U>(item: U, row: ICdkTableRow<U>, selectedRows: Array<U>): string {\n return !_.isNil(row) && !_.isNil(row.className) ? (_.isString(row.className) ? row.className : row.className(item, selectedRows)) : null;\n }\n}\n","import * as _ from 'lodash';\nimport { CdkTableBaseComponent } from '../CdkTableBaseComponent';\nimport { CdkTablePaginableMapCollection } from '../CdkTablePaginableMapCollection';\nimport { Component, Input, ViewContainerRef } from '@angular/core';\nimport { ViewUtil } from '../../../util/ViewUtil';\n\n@Component({\n selector: 'vi-cdk-table-paginable',\n templateUrl: 'cdk-table-paginable.component.html'\n})\nexport class CdkTablePaginableComponent<U = any, V = any> extends CdkTableBaseComponent<CdkTablePaginableMapCollection<U, V>, U, V> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _paginator: ICdkTablePaginatorSettings;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(container: ViewContainerRef) {\n super();\n ViewUtil.addClasses(container, 'd-flex flex-column scroll-no');\n this._paginator = { pageSizes: [10, 25, 100], hidePageSize: false, showFirstLastButtons: true };\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected commitPaginatorProperties(): void {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get paginator(): ICdkTablePaginatorSettings {\n return this._paginator;\n }\n @Input()\n public set paginator(value: ICdkTablePaginatorSettings) {\n if (value === this._paginator) {\n return;\n }\n this._paginator = value;\n if (!_.isNil(value)) {\n this.commitPaginatorProperties();\n }\n }\n}\n\nexport interface ICdkTablePaginatorSettings {\n pageSizes?: Array<number>;\n hidePageSize?: boolean;\n showFirstLastButtons?: boolean;\n}\n","<mat-table\n class=\"flex-grow-1 vertical-scroll-only\"\n matSort\n [dataSource]=\"table?.table?.dataSource\"\n [trackBy]=\"table.trackByFn\"\n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n [class.mat-nav-list]=\"settings?.isInteractive\"\n (matSortChange)=\"table.sortEventHandler($event)\"\n>\n <ng-container *ngFor=\"let column of columns; trackBy: columnTrackBy\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell\n class=\"px-2\"\n mat-sort-header\n [disableClear]=\"true\"\n [disabled]=\"column.isDisableSort\"\n [ngClass]=\"column.headerClassName\"\n *matHeaderCellDef\n >\n <span [innerHTML]=\"column.headerId | viTranslate\"></span>\n </mat-header-cell>\n\n <mat-cell\n class=\"p-2\"\n (click)=\"cellClickHandler(row, column, $event)\"\n *matCellDef=\"let row\"\n [ngClass]=\"row | viCdkTableColumnClassName: column\"\n [ngStyle]=\"row | viCdkTableColumnStyleName: column\"\n >\n <ng-container [ngSwitch]=\"column.isImage\">\n <img\n *ngSwitchCase=\"true\"\n [ngClass]=\"row | viCdkTableCellClassName: column\"\n [ngStyle]=\"row | viCdkTableCellStyleName: column\"\n [src]=\"column.isAsync ? (row | viCdkTableCellValue: column) : (row | viCdkTableCellValuePure: column)\"\n />\n <span\n *ngSwitchDefault\n [ngClass]=\"row | viCdkTableCellClassName: column\"\n [ngStyle]=\"row | viCdkTableCellStyleName: column\"\n [vi-html-content-title]=\"column.isAsync ? (row | viCdkTableCellValue: column) : (row | viCdkTableCellValuePure: column)\"\n ></span>\n </ng-container>\n </mat-cell>\n </ng-container>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"columnNames\"></mat-header-row>\n\n <mat-row\n class=\"mat-list-item\"\n *matRowDef=\"let row; columns: columnNames\"\n [ngClass]=\"row | viCdkTableRowClassName: rows:selectedRows\"\n [ngStyle]=\"row | viCdkTableRowStyleName: rows:selectedRows\"\n (click)=\"rowClickHandler(row, $event)\"\n ></mat-row>\n\n <p class=\"p-3 flex-shrink-0 text-center mouse-inactive\" [vi-translate]=\"settings?.noDataId\" *matNoDataRow></p>\n</mat-table>\n\n<mat-progress-bar class=\"flex-shrink-0 border\" [mode]=\"table?.isLoading ? 'indeterminate' : 'determinate'\"></mat-progress-bar>\n\n<div class=\"paginator-container d-flex align-items-center justify-content-end flex-shrink-0\">\n <ng-content></ng-content>\n <mat-paginator\n class=\"flex-shrink-0\"\n [pageSize]=\"table?.pageSize\"\n [pageIndex]=\"table?.pageIndex\"\n [length]=\"table?.total\"\n (page)=\"table?.pageEventHandler($event)\"\n [pageSizeOptions]=\"paginator?.pageSizes\"\n [showFirstLastButtons]=\"paginator?.showFirstLastButtons\"\n [hidePageSize]=\"paginator?.hidePageSize\"\n *ngIf=\"paginator\"\n ></mat-paginator>\n</div>\n","import * as _ from 'lodash';\nimport { CdkTableBaseComponent } from '../CdkTableBaseComponent';\nimport { CdkTableFilterableMapCollection } from '../CdkTableFilterableMapCollection';\nimport { Component, ViewContainerRef } from '@angular/core';\nimport { ViewUtil } from '../../../util/ViewUtil';\n\n@Component({\n selector: 'vi-cdk-table-filterable',\n templateUrl: 'cdk-table-filterable.component.html'\n})\nexport class CdkTableFilterableComponent<U = any, V = any> extends CdkTableBaseComponent<CdkTableFilterableMapCollection<U, V>, U, V> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(container: ViewContainerRef) {\n super();\n ViewUtil.addClasses(container, 'd-flex flex-column scroll-no');\n }\n}\n","<mat-table\n class=\"flex-grow-1 vertical-scroll-only\"\n matSort\n [dataSource]=\"table?.table?.dataSource\"\n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n [class.mat-nav-list]=\"settings?.isInteractive\"\n (matSortChange)=\"table.sortEventHandler($event)\"\n>\n <ng-container *ngFor=\"let column of columns; trackBy: columnTrackBy\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell\n class=\"px-2\"\n mat-sort-header\n [disableClear]=\"true\"\n [disabled]=\"column.isDisableSort\"\n [ngClass]=\"column.headerClassName\"\n *matHeaderCellDef\n >\n <span [innerHTML]=\"column.headerId | viTranslate\"></span>\n </mat-header-cell>\n <mat-cell\n class=\"p-2\"\n (click)=\"cellClickHandler(row, column, $event)\"\n *matCellDef=\"let row\"\n [ngClass]=\"row | viCdkTableColumnClassName: column\"\n [ngStyle]=\"row | viCdkTableColumnStyleName: column\"\n >\n <ng-container [ngSwitch]=\"column.isImage\">\n <img\n *ngSwitchCase=\"true\"\n [ngClass]=\"row | viCdkTableCellClassName: column\"\n [ngStyle]=\"row | viCdkTableCellStyleName: column\"\n [src]=\"column.isAsync ? (row | viCdkTableCellValue: column) : (row | viCdkTableCellValuePure: column)\"\n />\n <span\n *ngSwitchDefault\n [ngClass]=\"row | viCdkTableCellClassName: column\"\n [ngStyle]=\"row | viCdkTableCellStyleName: column\"\n [vi-html-content-title]=\"column.isAsync ? (row | viCdkTableCellValue: column) : (row | viCdkTableCellValuePure: column)\"\n ></span>\n </ng-container>\n </mat-cell>\n </ng-container>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"columnNames\"></mat-header-row>\n\n <mat-row\n class=\"mat-list-item\"\n *matRowDef=\"let row; columns: columnNames\"\n [ngClass]=\"row | viCdkTableRowClassName: rows:selectedRows\"\n [ngStyle]=\"row | viCdkTableRowStyleName: rows:selectedRows\"\n (click)=\"rowClickHandler(row, $event)\"\n ></mat-row>\n\n <p class=\"p-3 flex-shrink-0 text-center mouse-inactive\" [vi-translate]=\"settings?.noDataId\" *matNoDataRow></p>\n</mat-table>\n\n<mat-progress-bar class=\"flex-shrink-0 border transparent\" [mode]=\"table?.isLoading ? 'indeterminate' : 'determinate'\"></mat-progress-bar>\n\n<div class=\"paginator-container d-flex align-items-center justify-content-end flex-shrink-0\">\n <ng-content></ng-content>\n</div>\n","import * as _ from 'lodash';\nimport { CdkTableBaseComponent } from '../CdkTableBaseComponent';\nimport { Component, ViewContainerRef } from '@angular/core';\nimport { ViewUtil } from '../../../util/ViewUtil';\nimport { CdkTablePaginableBookmarkMapCollection } from '../CdkTablePaginableBookmarkMapCollection';\n\n@Component({\n selector: 'vi-cdk-table-paginable-bookmark',\n templateUrl: 'cdk-table-paginable-bookmark.component.html'\n})\nexport class CdkTablePaginableBookmarkComponent<U = any, V = any> extends CdkTableBaseComponent<CdkTablePaginableBookmarkMapCollection<U, V>, U, V> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(container: ViewContainerRef) {\n super();\n ViewUtil.addClasses(container, 'd-flex flex-column scroll-no');\n }\n}\n","<mat-table\n class=\"flex-grow-1 vertical-scroll-only\"\n matSort\n [dataSource]=\"table?.table?.dataSource\"\n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n [class.mat-nav-list]=\"settings?.isInteractive\"\n (matSortChange)=\"table.sortEventHandler($event)\"\n>\n <ng-container *ngFor=\"let column of columns; trackBy: columnTrackBy\">\n <ng-container [matColumnDef]=\"column.name\">\n <mat-header-cell\n class=\"px-2\"\n mat-sort-header\n [disableClear]=\"true\"\n [disabled]=\"column.isDisableSort\"\n [ngClass]=\"column.headerClassName\"\n *matHeaderCellDef\n >\n <span [innerHTML]=\"column.headerId | viTranslate\"></span>\n </mat-header-cell>\n <mat-cell\n class=\"p-2\"\n (click)=\"cellClickHandler(row, column, $event)\"\n *matCellDef=\"let row\"\n [ngClass]=\"row | viCdkTableColumnClassName: column\"\n [ngStyle]=\"row | viCdkTableColumnStyleName: column\"\n >\n <ng-container [ngSwitch]=\"column.isImage\">\n <img\n *ngSwitchCase=\"true\"\n [ngClass]=\"row | viCdkTableCellClassName: column\"\n [ngStyle]=\"row | viCdkTableCellStyleName: column\"\n [src]=\"column.isAsync ? (row | viCdkTableCellValue: column) : (row | viCdkTableCellValuePure: column)\"\n />\n <span\n *ngSwitchDefault\n [ngClass]=\"row | viCdkTableCellClassName: column\"\n [ngStyle]=\"row | viCdkTableCellStyleName: column\"\n [vi-html-content-title]=\"column.isAsync ? (row | viCdkTableCellValue: column) : (row | viCdkTableCellValuePure: column)\"\n ></span>\n </ng-container>\n </mat-cell>\n </ng-container>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"columnNames\"></mat-header-row>\n\n <mat-row\n class=\"mat-list-item\"\n *matRowDef=\"let row; columns: columnNames\"\n [ngClass]=\"row | viCdkTableRowClassName: rows:selectedRows\"\n [ngStyle]=\"row | viCdkTableRowStyleName: rows:selectedRows\"\n (click)=\"rowClickHandler(row, $event)\"\n ></mat-row>\n\n <p class=\"p-3 flex-shrink-0 text-center mouse-inactive\" [vi-translate]=\"settings?.noDataId\" *matNoDataRow></p>\n</mat-table>\n\n<mat-progress-bar class=\"flex-shrink-0 border transparent\" [mode]=\"table?.isLoading ? 'indeterminate' : 'determinate'\"></mat-progress-bar>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { VICommonModule } from '../VICommonModule';\nimport { LanguageSelectorComponent } from './language/language-selector/language-selector.component';\nimport { MenuListComponent } from './menu-list/menu-list.component';\nimport { SelectListComponent } from './select-list/select-list.component';\nimport { TabGroupComponent } from './tab-group/tab-group.component';\n\nimport { CdkTablePaginableComponent } from './cdk-table/cdk-table-paginable/cdk-table-paginable.component';\nimport { CdkTableFilterableComponent } from './cdk-table/cdk-table-filterable/cdk-table-filterable.component';\nimport { CdkTablePaginableBookmarkComponent } from './cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n\nimport { CdkTableCellValuePipe } from './cdk-table/cell/CdkTableCellValuePipe';\nimport { CdkTableCellValuePipePure } from './cdk-table/cell/CdkTableCellValuePipePure';\nimport { CdkTableCellClassNamePipe } from './cdk-table/cell/CdkTableCellClassNamePipe';\nimport { CdkTableCellStyleNamePipe } from './cdk-table/cell/CdkTableCellStyleNamePipe';\nimport { CdkTableColumnStyleNamePipe } from './cdk-table/column/CdkTableColumnStyleNamePipe';\nimport { CdkTableColumnClassNamePipe } from './cdk-table/column/CdkTableColumnClassNamePipe';\nimport { CdkTableRowClassNamePipe } from './cdk-table/row/CdkTableRowClassNamePipe';\nimport { CdkTableRowStyleNamePipe } from './cdk-table/row/CdkTableRowStyleNamePipe';\n\nconst IMPORTS = [\n CommonModule,\n FormsModule,\n MatTabsModule,\n MatListModule,\n MatMenuModule,\n MatSelectModule,\n MatButtonModule,\n MatSortModule,\n MatTableModule,\n MatPaginatorModule,\n MatProgressBarModule,\n VICommonModule\n];\nconst ENTRY_COMPONENTS = [];\nconst DECLARATIONS = [\n CdkTableCellValuePipe,\n CdkTableCellValuePipePure,\n CdkTableCellClassNamePipe,\n CdkTableCellStyleNamePipe,\n CdkTableColumnClassNamePipe,\n CdkTableColumnStyleNamePipe,\n CdkTableRowStyleNamePipe,\n CdkTableRowClassNamePipe,\n\n LanguageSelectorComponent,\n TabGroupComponent,\n MenuListComponent,\n SelectListComponent,\n CdkTablePaginableComponent,\n CdkTableFilterableComponent,\n CdkTablePaginableBookmarkComponent,\n ...ENTRY_COMPONENTS\n];\nconst EXPORTS = [...DECLARATIONS];\n\n@NgModule({\n imports: IMPORTS,\n declarations: DECLARATIONS,\n exports: EXPORTS,\n entryComponents: ENTRY_COMPONENTS\n})\nexport class VIComponentModule {}\n","import { CdkTableDataSource } from './CdkTableDataSource';\nimport { PaginableDataSourceMapCollection } from '@ts-core/common';\nimport { Sort } from '@angular/material/sort';\nimport { PageEvent } from '@angular/material/paginator';\nimport * as _ from 'lodash';\nimport { CdkTableFilterableMapCollection } from './CdkTableFilterableMapCollection';\n\nexport abstract class CdkTablePaginableMapCollection<U, V, T = any> extends PaginableDataSourceMapCollection<U, V, T> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _table: CdkTableDataSource<U>;\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n super.initialize();\n this._table = this.getTable();\n }\n\n protected getTable(): CdkTableDataSource<U> {\n return new CdkTableDataSource(this);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public sortEventHandler(event: Sort): void {\n if (CdkTableFilterableMapCollection.applySortEvent(this, event)) {\n this.load();\n }\n }\n\n public pageEventHandler(event: PageEvent): void {\n this.pageIndex = event.pageIndex;\n this.pageSize = event.pageSize;\n this.load();\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._table)) {\n this._table.destroy();\n this._table = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get table(): CdkTableDataSource<U> {\n return this._table;\n }\n}\n","import { PaginableBookmarkDataSourceMapCollection } from '@ts-core/common';\nimport { CdkTableDataSource } from './CdkTableDataSource';\nimport * as _ from 'lodash';\nimport { CdkTableFilterableMapCollection } from './CdkTableFilterableMapCollection';\nimport { Sort } from '@angular/material/sort';\n\nexport abstract class CdkTablePaginableBookmarkMapCollection<U, V> extends PaginableBookmarkDataSourceMapCollection<U, V> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _table: CdkTableDataSource<U>;\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n super.initialize();\n this._table = this.getTable();\n }\n\n protected getTable(): CdkTableDataSource<U> {\n return new CdkTableDataSource(this);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n public sortEventHandler(event: Sort): void {\n if (CdkTableFilterableMapCollection.applySortEvent(this, event)) {\n this.reload();\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n super.destroy();\n if (!_.isNil(this._table)) {\n this._table.destroy();\n this._table = null;\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get table(): CdkTableDataSource<U> {\n return this._table;\n }\n}\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 { AbstractControl, AsyncValidatorFn, Validator, ValidatorFn, Validators } from '@angular/forms';\nimport * as _ from 'lodash';\nimport { of } from 'rxjs';\n\n// --------------------------------------------------------------------------\n//\n// Export Properties\n//\n// --------------------------------------------------------------------------\n\nexport type ValidationResult = { [validator: string]: string | boolean };\nexport type ValidatorArray = Array<Validator | ValidatorFn>;\nexport type AsyncValidatorArray = Array<Validator | AsyncValidatorFn>;\n\nlet normalizeValidator = (validator: Validator | ValidatorFn): ValidatorFn | AsyncValidatorFn => {\n let func = (validator as Validator).validate.bind(validator);\n if (typeof func === 'function') {\n return (control: AbstractControl) => func(control);\n } else {\n return <ValidatorFn | AsyncValidatorFn>validator;\n }\n};\n\nexport let composeValidators = (validators: ValidatorArray): AsyncValidatorFn | ValidatorFn => {\n if (_.isEmpty(validators)) {\n return null;\n }\n return Validators.compose(validators.map(normalizeValidator));\n};\n\nexport let validate = (validators: ValidatorArray, asyncValidators: AsyncValidatorArray) => {\n return (control: AbstractControl) => {\n let synchronousValid = () => composeValidators(validators)(control);\n if (asyncValidators) {\n let asyncValidator = composeValidators(asyncValidators);\n return asyncValidator(control).map(v => {\n let secondary = synchronousValid();\n if (secondary || v) {\n return Object.assign({}, secondary, v);\n }\n });\n }\n if (validators) {\n return of(synchronousValid());\n }\n return of(null);\n };\n};\n\nexport const message = (validator: ValidationResult, key: string): string => {\n if (!key) {\n return 'Validation failed: ' + validator.toString();\n }\n\n switch (key) {\n case 'required':\n return 'Please enter a value';\n case 'pattern':\n return 'Value does not match required pattern';\n case 'minlength':\n return 'Value must be N characters';\n case 'maxlength':\n return 'Value must be a maximum of N characters';\n }\n\n let value = validator[key];\n switch (typeof value) {\n case 'string':\n return value as string;\n default:\n return 'Validation failed: ' + key;\n }\n};\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Destroyable } from '@ts-core/common';\n\nexport class ValueAccessor<T> extends Destroyable implements ControlValueAccessor {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n private innerValue: T;\n private changed: Array<(value: T) => void>;\n private touched: Array<() => void>;\n\n // --------------------------------------------------------------------------\n //\n //\tConstuctor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n this.changed = [];\n this.touched = [];\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected valueChanged(): void {\n this.changed.forEach(f => f(this.innerValue));\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public touch(): void {\n this.touched.forEach(f => f());\n }\n\n public writeValue(value: T): void {\n this.value = value;\n }\n\n public registerOnChange(fn: (value: T) => void): void {\n this.changed.push(fn);\n }\n\n public registerOnTouched(fn: () => void): void {\n this.touched.push(fn);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.changed = null;\n this.touched = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get value(): T {\n return this.innerValue;\n }\n\n public set value(value: T) {\n if (value == this.innerValue) {\n return;\n }\n this.innerValue = value;\n this.valueChanged();\n }\n}\n","import { NgModel } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs';\nimport { AsyncValidatorArray, message, validate, ValidationResult, ValidatorArray } from './validate';\nimport { ValueAccessor } from './ValueAccessor';\n\nexport abstract class FormElementAsync<T> extends ValueAccessor<T> {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected abstract model: NgModel;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private validators: ValidatorArray, private asyncValidators: AsyncValidatorArray) {\n super();\n }\n\n protected validate(): Observable<ValidationResult> {\n return validate(this.validators, this.asyncValidators)(this.model.control);\n }\n\n protected get invalid(): Observable<boolean> {\n return this.validate().pipe(\n map(v => {\n return Object.keys(v || {}).length > 0;\n })\n );\n }\n\n protected get failures(): Observable<Array<string>> {\n return this.validate().pipe(map(v => Object.keys(v).map(k => message(v, k))));\n }\n}\n","import { AfterContentInit, Directive, OnDestroy } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm, NgModel, Validator, ValidatorFn } from '@angular/forms';\nimport { message, ValidationResult } from './validate';\nimport { ValueAccessor } from './ValueAccessor';\n\n@Directive()\nexport abstract class FormElementSync<T> extends ValueAccessor<T> implements AfterContentInit, OnDestroy {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected abstract model: NgModel;\n protected _validationError: string;\n protected timer: any;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private validators: Array<Validator | ValidatorFn>) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected valueChanged(): void {\n super.valueChanged();\n setTimeout(this.validate);\n }\n\n protected validate = (): ValidationResult => {\n if (!this.validators || this.validators.length === 0) {\n this._validationError = null;\n return null;\n }\n\n let failure: ValidationResult = null;\n for (let item of this.validators) {\n failure = typeof item === 'function' ? item(this.model.control) : item.validate(this.model.control);\n if (failure) {\n break;\n }\n }\n this._validationError = failure ? message(failure, Object.keys(failure)[0]) : null;\n return failure;\n };\n\n public get valid(): boolean {\n return !this.invalid;\n }\n\n public get invalid(): boolean {\n return this._validationError != null;\n }\n\n public get validationError(): string {\n return this._validationError;\n }\n\n protected isErrorState = (control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean => {\n return this.invalid;\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterContentInit(): void {\n this.validate();\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this.timer);\n this.timer = null;\n }\n}\n","import { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { LanguageService } from '@ts-core/frontend';\n\nexport class LanguageMomentDateAdapter extends MomentDateAdapter {\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(language: LanguageService) {\n super(language.locale);\n language.completed.subscribe(item => this.setLocale(item.locale));\n }\n}\n","import { LoadableEvent, Loadable, LoadableStatus } from '@ts-core/common';\nimport { ExtendedError } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport { TransportNoConnectionError, TransportTimeoutError } from '@ts-core/common';\nimport { Observable } from 'rxjs';\nimport { 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(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(error as any);\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(error as any);\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 super.destroy();\n this.reset();\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<T extends LoginBaseService = LoginBaseService> implements Resolve<void> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected login: T) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public resolve(): Promise<void> {\n if (this.isLoggedIn()) {\n return Promise.resolve();\n }\n\n let promise = PromiseHandler.create<void>();\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';\nimport { Observable } from 'rxjs';\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(@Inject(LoginBaseService) login: T, protected router: Router) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | 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';\nimport { Observable } from 'rxjs';\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(@Inject(LoginBaseService) login: T, protected router: Router) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | 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(@Inject(LoginBaseService) login: T, protected router: Router) {\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) as Promise<boolean | UrlTree>;\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","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(public nameId: string, public sortIndex: number = NaN, public iconId?: string) {}\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(private language: LanguageService, filterFunction?: (item: MenuItem) => boolean, isAutoTranslate: boolean = false) {\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 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(private language: LanguageService, isAutoTranslate: boolean = true) {\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 protected commitSelectedIndexProperties(): void {\n this.selectedItem = !_.isNil(this.selectedIndex) ? _.find(this.collection, item => item.sortIndex === this.selectedIndex) : null;\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 return;\n }\n if (_.isNumber(indexOrDataToSelect)) {\n this.selectedIndex = indexOrDataToSelect;\n } else {\n this.selectedItem = _.find(this.collection, item => item.data === 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 { DatePipe } from '@angular/common';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DestroyableContainer, LoadableEvent } 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(public language: LanguageService, public sanitizer: DomSanitizer) {\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 { BreakpointObserver } from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\n\nimport * as _ from 'lodash';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class BootstrapBreakpointService extends DestroyableContainer {\n // --------------------------------------------------------------------------\n //\n // \tConstants\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_SM = 576;\n public static DEFAULT_MD = 768;\n public static DEFAULT_LG = 992;\n public static DEFAULT_XL = 1200;\n public static DEFAULT_XXL = 1400;\n\n protected _breakpoint: BootstrapBreakpoint;\n protected items: Array<IBreakpointItem>;\n\n protected observer: Subject<ObservableData<BootstrapBreakpointServiceEvent, BootstrapBreakpoint>>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected service: BreakpointObserver) {\n super();\n this.observer = new Subject();\n this.initialize();\n }\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(\n sm: number = BootstrapBreakpointService.DEFAULT_SM,\n md: number = BootstrapBreakpointService.DEFAULT_MD,\n lg: number = BootstrapBreakpointService.DEFAULT_LG,\n xl: number = BootstrapBreakpointService.DEFAULT_XL,\n xxl: number = BootstrapBreakpointService.DEFAULT_XXL\n ): void {\n this.items = [\n { name: BootstrapBreakpoint.XXL, value: `(min-width: ${xxl}px)` },\n { name: BootstrapBreakpoint.XL, value: `(min-width: ${xl}px)` },\n { name: BootstrapBreakpoint.LG, value: `(min-width: ${lg}px)` },\n { name: BootstrapBreakpoint.MD, value: `(min-width: ${md}px)` },\n { name: BootstrapBreakpoint.SM, value: `(min-width: 0px)` }\n ];\n\n merge(...this.items.map(item => this.service.observe(item.value)))\n .pipe(takeUntil(this.destroyed))\n .subscribe(() => this.setBreakpoint(this.getBreakpoint()));\n }\n\n protected getBreakpoint(): BootstrapBreakpoint {\n for (let item of this.items) {\n if (this.service.isMatched(item.value)) {\n return item.name;\n }\n }\n return null;\n }\n\n protected setBreakpoint(value: BootstrapBreakpoint): void {\n if (value === this._breakpoint) {\n return;\n }\n this._breakpoint = value;\n this.observer.next(new ObservableData(BootstrapBreakpointServiceEvent.CHANGED, this.breakpoint));\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public isEqual(item: BootstrapBreakpoint): boolean {\n return item === this.breakpoint;\n }\n\n public isUp(item: BootstrapBreakpoint): boolean {\n return _.findIndex(this.items, { name: this.breakpoint }) < _.findIndex(this.items, { name: item });\n }\n\n public isUpOrEqual(item: BootstrapBreakpoint): boolean {\n return this.isEqual(item) || this.isUp(item);\n }\n\n public isDown(item: BootstrapBreakpoint): boolean {\n return _.findIndex(this.items, { name: this.breakpoint }) > _.findIndex(this.items, { name: item });\n }\n\n public isDownOrEqual(item: BootstrapBreakpoint): boolean {\n return this.isEqual(item) || this.isDown(item);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get breakpoint(): BootstrapBreakpoint {\n return this._breakpoint;\n }\n\n public get events(): Observable<ObservableData<BootstrapBreakpointServiceEvent, BootstrapBreakpoint>> {\n return this.observer.asObservable();\n }\n\n public get changed(): Observable<BootstrapBreakpoint> {\n return this.events.pipe(\n filter(item => item.type === BootstrapBreakpointServiceEvent.CHANGED),\n map(item => item.data)\n );\n }\n}\n\ninterface IBreakpointItem {\n name: BootstrapBreakpoint;\n value: string;\n}\n\nexport enum BootstrapBreakpointServiceEvent {\n CHANGED = 'CHANGED'\n}\n\nexport enum BootstrapBreakpoint {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n XXL = 'xxl'\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 { Loadable, LoadableEvent, LoadableStatus } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport { NativeWindowService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs';\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(protected _router: Router, protected window: NativeWindowService) {\n super();\n this.params = new Map();\n this.observer = new Subject();\n\n this._lastUrl = this.url;\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: ActivatedRoute | ActivatedRouteSnapshot, defaultValue?: string): string {\n if (snapshot instanceof ActivatedRoute) {\n snapshot = snapshot.snapshot;\n }\n return !_.isNil(snapshot.fragment) ? snapshot.fragment : defaultValue;\n }\n\n public async setFragment(value: string): Promise<boolean> {\n return this.applyExtras({ fragment: value });\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 router(): Router {\n return this._router;\n }\n}\n\nexport interface RouterBaseServiceEventData {\n url: string;\n previousUrl: string;\n}\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(): void {\n this._user = this.createUser(this.login.loginData);\n }\n\n protected deinitializeUser(): void {\n this._user = null;\n }\n\n protected loginedHandler(): void {\n this.initializeUser();\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 { 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(protected compiler: Compiler, protected injector: Injector) {\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 constructor(logger: ILogger, protected loader: LazyModuleLoader<ITransportLazyModuleData>, settings?: ITransportSettings) {\n super(logger, settings, null);\n\n this.getDispatcher<TransportLazyModuleLoadedEvent<ITransportLazyModuleData>>(TransportLazyModuleLoadedEvent.NAME).subscribe(event =>\n this.moduleLoadedHandler(event.data)\n );\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 dispatchCommand<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 super.dispatchCommand(command, options, isNeedReply);\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 dispatch<T>(event: ITransportEvent<T>): void {\n let item = this.getModuleByEvent(event.name);\n if (!_.isNil(this.loader) && !_.isNil(item)) {\n this.loader.loadIfNeed(item.id).then(() => super.dispatch(event));\n } else {\n super.dispatch(event);\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(public reference: NgModuleRef<T>, protected transport: Transport) {\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","//\nexport * from './application/ApplicationBaseComponent';\nexport * from './application/ApplicationComponent';\nexport * from './application/MessageBaseComponent';\nexport * from './application/ShellBaseComponent';\n//\nexport * from './ApplicationInjector';\n//\nexport * from './error/WindowClosedError';\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 './component/VIComponentModule';\n//\nexport * from './component/tab-group/tab-group.component';\nexport * from './component/menu-list/menu-list.component';\nexport * from './component/select-list/select-list.component';\nexport * from './component/language/language-selector/language-selector.component';\n//\nexport * from './component/cdk-table/CdkTableBaseComponent';\nexport * from './component/cdk-table/CdkTableDataSource';\nexport * from './component/cdk-table/CdkTablePaginableMapCollection';\nexport * from './component/cdk-table/CdkTableFilterableMapCollection';\nexport * from './component/cdk-table/CdkTablePaginableBookmarkMapCollection';\nexport * from './component/cdk-table/row/ICdkTableRow';\nexport * from './component/cdk-table/row/CdkTableRowClassNamePipe';\nexport * from './component/cdk-table/row/CdkTableRowStyleNamePipe';\nexport * from './component/cdk-table/cell/CdkTableCellValuePipe';\nexport * from './component/cdk-table/cell/CdkTableCellValuePipePure';\nexport * from './component/cdk-table/cell/CdkTableCellClassNamePipe';\nexport * from './component/cdk-table/cell/CdkTableCellStyleNamePipe';\nexport * from './component/cdk-table/column/ICdkTableColumn';\nexport * from './component/cdk-table/column/CdkTableColumnClassNamePipe';\nexport * from './component/cdk-table/column/CdkTableColumnStyleNamePipe';\nexport * from './component/cdk-table/cdk-table-paginable/cdk-table-paginable.component';\nexport * from './component/cdk-table/cdk-table-filterable/cdk-table-filterable.component';\nexport * from './component/cdk-table/cdk-table-paginable-bookmark/cdk-table-paginable-bookmark.component';\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/ScrollDirective';\nexport * from './directive/ScrollCheckDirective';\nexport * from './directive/MenuTriggerForDirective';\nexport * from './directive/HTMLTitleDirective';\nexport * from './directive/HTMLContentTitleDirective';\nexport * from './directive/IsBrowserDirective';\nexport * from './directive/IsServerDirective';\n//\nexport * from './form/FormElementAsync';\nexport * from './form/FormElementSync';\n//\nexport * from './language/LanguageMatPaginatorIntl';\nexport * from './language/LanguageModule';\nexport * from './language/LanguageMomentDateAdapter';\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';\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';\n//\nexport * from './notification/INotification';\nexport * from './notification/INotificationContent';\nexport * from './notification/NotificationConfig';\nexport * from './notification/NotificationFactory';\nexport * from './notification/NotificationModule';\nexport * from './notification/NotificationProperties';\nexport * from './notification/NotificationService';\nexport * from './notification/component/NotificationBaseComponent';\nexport * from './notification/component/notification/notification.component';\n//\nexport * from './bottomSheet/BottomSheetModule';\nexport * from './bottomSheet/BottomSheetService';\nexport * from './bottomSheet/component/BottomSheetBaseComponent';\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/BootstrapBreakpointService';\nexport * from './service/PlatformService';\nexport * from './service/RouterBaseService';\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 './module/LazyModuleLoader';\n//\nexport * from './transport/TransportLazy';\nexport * from './transport/TransportLazyModule';\nexport * from './transport/TransportLazyModuleLoadedEvent';\n//\nexport * from './util/ViewUtil';\nexport * from './VICommonModule';\n//\nexport * from './window/IWindow';\nexport * from './window/WindowImpl';\nexport * from './window/WindowBase';\nexport * from './window/WindowConfig';\nexport * from './window/WindowFactory';\nexport * from './window/WindowModule';\nexport * from './window/IWindowContent';\nexport * from './window/WindowService';\nexport * from './window/WindowProperties';\nexport * from './window/WindowServiceEvent';\nexport * from './window/component/WindowElement';\nexport * from './window/component/WindowBaseComponent';\nexport * from './window/component/WindowDragAreaDirective';\nexport * from './window/component/WindowQuestionBaseComponent';\nexport * from './window/component/window-question/window-question.component';\nexport * from './window/component/window-close-element/window-close-element.component';\nexport * from './window/component/window-resize-element/window-resize-element.component';\nexport * from './window/component/window-expand-element/window-expand-element.component';\nexport * from './window/component/window-minimize-element/window-minimize-element.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","IMPORTS","ENTRY_COMPONENTS","DECLARATIONS","EXPORTS","i2.NotificationService","i3","i4","i3.CookieService","i4.BottomSheetService","i1.PlatformService","i7.LanguagePipe","i8.AssetIconPipe","i5","i6.LanguageDirective","i7.HTMLContentTitleDirective","i8.LanguagePipe","i9.CdkTableCellValuePipe","i10.CdkTableCellValuePipePure","i11.CdkTableCellClassNamePipe","i12.CdkTableCellStyleNamePipe","i13.CdkTableColumnClassNamePipe","i14.CdkTableColumnStyleNamePipe","i15.CdkTableRowStyleNamePipe","i16.CdkTableRowClassNamePipe","i5.LanguageDirective","i6.HTMLContentTitleDirective","i8.CdkTableCellValuePipe","i9.CdkTableCellValuePipePure","i10.CdkTableCellClassNamePipe","i11.CdkTableCellStyleNamePipe","i12.CdkTableColumnClassNamePipe","i13.CdkTableColumnStyleNamePipe","i14.CdkTableRowStyleNamePipe","i15.CdkTableRowClassNamePipe"],"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/ScrollCheckDirective.ts","../../src/language/LanguagePipe.ts","../../src/directive/HTMLTitleDirective.ts","../../src/directive/HTMLContentTitleDirective.ts","../../src/directive/IsBrowserDirective.ts","../../src/directive/IsServerDirective.ts","../../src/form/validate.ts","../../src/form/ValueAccessor.ts","../../src/form/FormElementAsync.ts","../../src/form/FormElementSync.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/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/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/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/module/LazyModuleLoader.ts","../../src/transport/TransportLazyModuleLoadedEvent.ts","../../src/transport/TransportLazy.ts","../../src/transport/TransportLazyModule.ts","../../src/VICommonModule.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(protected route: ActivatedRoute, protected language: LanguageService) {\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'): void {\n if (_.isNil(image)) {\n ViewUtil.removeStyle(container, 'backgroundImage');\n ViewUtil.removeStyle(container, 'backgroundRepeat');\n return;\n }\n\n if (!image.includes('url(')) {\n image = 'url(' + image + ')';\n }\n\n ViewUtil.setStyle(container, 'backgroundImage', image);\n ViewUtil.setStyle(container, 'backgroundRepeat', repeat);\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.window.innerWidth || ViewUtil.document.body.clientWidth;\n }\n\n public static getStageHeight(): number {\n return ViewUtil.window.innerHeight || ViewUtil.document.body.clientHeight;\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 (_.isNil(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 (_.isNil(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 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 } 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})\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()\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()\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()\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})\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})\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})\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})\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})\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})\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\n@NgModule({\n imports: [CommonModule],\n declarations: [AssetBackgroundDirective, AssetImagePipe, AssetIconPipe, AssetFilePipe, AssetSoundPipe, AssetVideoPipe, AssetBackgroundPipe],\n exports: [AssetBackgroundDirective, AssetImagePipe, AssetIconPipe, AssetFilePipe, AssetSoundPipe, AssetVideoPipe, AssetBackgroundPipe]\n})\nexport class AssetModule {}\n","import { ICookieOptions, ICookieService, NativeWindowService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport * as Cookie from 'ngx-cookie';\nimport { CookieOptionsProvider } from 'ngx-cookie';\nimport { PlatformService } from '../service/PlatformService';\nimport { CookieOptions } from './CookieOptions';\n\nexport class CookieService extends Cookie.CookieService implements ICookieService {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private _document: Document;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(options: CookieOptions, platform: PlatformService, item?: Document) {\n super({ options } as CookieOptionsProvider);\n this._document = !_.isNil(item) ? item : document;\n\n let cookieString = '';\n Object.defineProperty(this, 'cookieString', {\n get: (): string => {\n return platform.isPlatformBrowser ? this.document.cookie : cookieString;\n },\n set: (value: string) => {\n if (platform.isPlatformBrowser) {\n this.document.cookie = value;\n } else {\n cookieString = value;\n }\n },\n enumerable: true,\n configurable: true\n });\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(key: string, defaultValue?: string): string {\n return this.has(key) ? super.get(key) : defaultValue;\n }\n\n public getObject<T = any>(key: string, defaultValue?: T): T {\n return this.has(key) ? (super.getObject(key) as any) : defaultValue;\n }\n\n public putObject<T = any>(key: string, value: T, options?: CookieOptions): void {\n super.putObject(key, value as any, options);\n }\n\n public update(key: string, value: string, options?: ICookieOptions): void {\n if (!_.isNil(value)) {\n this.put(key, value, options);\n } else {\n this.remove(key);\n }\n }\n\n public updateObject(key: string, value: Object, options?: ICookieOptions): void {\n if (!_.isNil(value)) {\n this.putObject(key, value, options);\n } else {\n this.remove(key);\n }\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n\n private get document(): Document {\n return this._document;\n }\n}\n","import { PLATFORM_ID, Inject } from '@angular/core';\nimport { isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { Injectable } from '@angular/core';\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';\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, PlatformService, COOKIE_OPTIONS],\n useFactory: cookieServiceFactory\n }\n ]\n };\n }\n}\n\nexport function cookieServiceFactory(nativeWindow: NativeWindowService, platform: PlatformService, options: ICookieOptions): 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(options, platform, nativeWindow.document);\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 } 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})\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()\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, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport * as _ from 'lodash';\nimport { Destroyable } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-scroll]'\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 (this.scrollValue) {\n this.scrollTo(this.scrollValue);\n }\n this.isInitialized = true;\n }\n\n protected scrollTo(value: number): void {\n this._scrollValue = value;\n this.element.scrollTop = value;\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()\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 } from '@angular/core';\nimport { ScrollDirective } from './ScrollDirective';\n\n@Directive({\n selector: '[vi-infinite-scroll]'\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()\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';\n@Directive({\n selector: '[vi-auto-scroll-bottom]'\n})\nexport class AutoScrollBottomDirective extends InfiniteScrollDirective {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public triggerChanged: EventEmitter<void> = new EventEmitter<void>();\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 //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n protected initialize(): void {\n if (this._scrollValue) {\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.triggerDelta = 0;\n this.triggerChanged.emit();\n }\n };\n\n protected scrollRemain(): void {\n this.isNeedRemainScroll = false;\n this.scrollTo(this.scrollHeight - this.lastScrollHeight);\n }\n\n public scrollBottom(): void {\n this.scrollTo(this.scrollHeight);\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 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-bottom-scroll')\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 clearTimeout(this.triggerTimer);\n this.triggerTimer = setTimeout(this.checkTrigger, InfiniteScrollDirective.INITIALIZATION_DELAY);\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { DateUtil } from '@ts-core/common';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-click-to-copy]'\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.MILISECONDS_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\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})\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 * as _ from 'lodash';\nimport { FocusManager } from '../manager/FocusManager';\n\n@Directive({\n selector: '[vi-focus]'\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 * as _ from 'lodash';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-select-on-focus]'\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 } 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})\nexport class ResizeDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Output()\n public resized: EventEmitter<any> = new EventEmitter();\n\n @Input()\n public isTop: boolean = false;\n @Input()\n public isLeft: boolean = false;\n @Input()\n public isRight: boolean = false;\n @Input()\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 { Directive, ElementRef, Input, EventEmitter, Output } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { DateUtil } from '@ts-core/common';\nimport * as _ from 'lodash';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs';\n\n@Directive({\n selector: '[vi-scroll-check]'\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()\n public delay: number = DateUtil.MILLISECONDS_SECOND / 10;\n @Input()\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})\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(private detection: ChangeDetectorRef, private language: LanguageService) {\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 * as _ from 'lodash';\nimport { LanguagePipe } from '../language/LanguagePipe';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-html-title]'\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 * as _ from 'lodash';\nimport { LanguagePipe } from '../language/LanguagePipe';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-html-content-title]'\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';\n\n@Directive({\n selector: '[viIsBrowser]'\n})\nexport class IsBrowserDirective {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(platform: PlatformService, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef) {\n if (platform.isPlatformBrowser) {\n viewContainer.createEmbeddedView(templateRef);\n }\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PlatformService } from '../service/PlatformService';\n\n@Directive({\n selector: '[viIsServer]'\n})\nexport class IsServerDirective {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(platform: PlatformService, templateRef: TemplateRef<any>, viewContainer: ViewContainerRef) {\n if (platform.isPlatformServer) {\n viewContainer.createEmbeddedView(templateRef);\n }\n }\n}\n","import { AbstractControl, AsyncValidatorFn, Validator, ValidatorFn, Validators } from '@angular/forms';\nimport * as _ from 'lodash';\nimport { of } from 'rxjs';\n\n// --------------------------------------------------------------------------\n//\n// Export Properties\n//\n// --------------------------------------------------------------------------\n\nexport type ValidationResult = { [validator: string]: string | boolean };\nexport type ValidatorArray = Array<Validator | ValidatorFn>;\nexport type AsyncValidatorArray = Array<Validator | AsyncValidatorFn>;\n\nlet normalizeValidator = (validator: Validator | ValidatorFn): ValidatorFn | AsyncValidatorFn => {\n let func = (validator as Validator).validate.bind(validator);\n if (typeof func === 'function') {\n return (control: AbstractControl) => func(control);\n } else {\n return <ValidatorFn | AsyncValidatorFn>validator;\n }\n};\n\nexport let composeValidators = (validators: ValidatorArray): AsyncValidatorFn | ValidatorFn => {\n if (_.isEmpty(validators)) {\n return null;\n }\n return Validators.compose(validators.map(normalizeValidator));\n};\n\nexport let validate = (validators: ValidatorArray, asyncValidators: AsyncValidatorArray) => {\n return (control: AbstractControl) => {\n let synchronousValid = () => composeValidators(validators)(control);\n if (asyncValidators) {\n let asyncValidator = composeValidators(asyncValidators);\n return asyncValidator(control).map(v => {\n let secondary = synchronousValid();\n if (secondary || v) {\n return Object.assign({}, secondary, v);\n }\n });\n }\n if (validators) {\n return of(synchronousValid());\n }\n return of(null);\n };\n};\n\nexport const message = (validator: ValidationResult, key: string): string => {\n if (!key) {\n return 'Validation failed: ' + validator.toString();\n }\n\n switch (key) {\n case 'required':\n return 'Please enter a value';\n case 'pattern':\n return 'Value does not match required pattern';\n case 'minlength':\n return 'Value must be N characters';\n case 'maxlength':\n return 'Value must be a maximum of N characters';\n }\n\n let value = validator[key];\n switch (typeof value) {\n case 'string':\n return value as string;\n default:\n return 'Validation failed: ' + key;\n }\n};\n","import { ControlValueAccessor } from '@angular/forms';\nimport { Destroyable } from '@ts-core/common';\n\nexport class ValueAccessor<T> extends Destroyable implements ControlValueAccessor {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n private innerValue: T;\n private changed: Array<(value: T) => void>;\n private touched: Array<() => void>;\n\n // --------------------------------------------------------------------------\n //\n //\tConstuctor\n //\n // --------------------------------------------------------------------------\n\n constructor() {\n super();\n this.changed = [];\n this.touched = [];\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected valueChanged(): void {\n this.changed.forEach(f => f(this.innerValue));\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public touch(): void {\n this.touched.forEach(f => f());\n }\n\n public writeValue(value: T): void {\n this.value = value;\n }\n\n public registerOnChange(fn: (value: T) => void): void {\n this.changed.push(fn);\n }\n\n public registerOnTouched(fn: () => void): void {\n this.touched.push(fn);\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\n this.changed = null;\n this.touched = null;\n }\n\n // --------------------------------------------------------------------------\n //\n // Public Properties\n //\n // --------------------------------------------------------------------------\n\n public get value(): T {\n return this.innerValue;\n }\n\n public set value(value: T) {\n if (value == this.innerValue) {\n return;\n }\n this.innerValue = value;\n this.valueChanged();\n }\n}\n","import { NgModel } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs';\nimport { AsyncValidatorArray, message, validate, ValidationResult, ValidatorArray } from './validate';\nimport { ValueAccessor } from './ValueAccessor';\n\nexport abstract class FormElementAsync<T> extends ValueAccessor<T> {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected abstract model: NgModel;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private validators: ValidatorArray, private asyncValidators: AsyncValidatorArray) {\n super();\n }\n\n protected validate(): Observable<ValidationResult> {\n return validate(this.validators, this.asyncValidators)(this.model.control);\n }\n\n protected get invalid(): Observable<boolean> {\n return this.validate().pipe(\n map(v => {\n return Object.keys(v || {}).length > 0;\n })\n );\n }\n\n protected get failures(): Observable<Array<string>> {\n return this.validate().pipe(map(v => Object.keys(v).map(k => message(v, k))));\n }\n}\n","import { AfterContentInit, Directive, OnDestroy } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm, NgModel, Validator, ValidatorFn } from '@angular/forms';\nimport { message, ValidationResult } from './validate';\nimport { ValueAccessor } from './ValueAccessor';\n\n@Directive()\nexport abstract class FormElementSync<T> extends ValueAccessor<T> implements AfterContentInit, OnDestroy {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected abstract model: NgModel;\n protected _validationError: string;\n protected timer: any;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private validators: Array<Validator | ValidatorFn>) {\n super();\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected valueChanged(): void {\n super.valueChanged();\n setTimeout(this.validate);\n }\n\n protected validate = (): ValidationResult => {\n if (!this.validators || this.validators.length === 0) {\n this._validationError = null;\n return null;\n }\n\n let failure: ValidationResult = null;\n for (let item of this.validators) {\n failure = typeof item === 'function' ? item(this.model.control) : item.validate(this.model.control);\n if (failure) {\n break;\n }\n }\n this._validationError = failure ? message(failure, Object.keys(failure)[0]) : null;\n return failure;\n };\n\n public get valid(): boolean {\n return !this.invalid;\n }\n\n public get invalid(): boolean {\n return this._validationError != null;\n }\n\n public get validationError(): string {\n return this._validationError;\n }\n\n protected isErrorState = (control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean => {\n return this.invalid;\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public ngAfterContentInit(): void {\n this.validate();\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this.timer);\n this.timer = null;\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})\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 } 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})\nexport class LanguageDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n @Input()\n public isNeedTitle: boolean;\n\n protected _key: string;\n protected _params: any;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected element: ElementRef, protected language: LanguageService) {\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\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})\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})\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, EmbeddedViewRef, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\n\n@Directive({\n selector: '[viTranslateHas]'\n})\nexport class LanguageHasDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _viTranslateHas: string;\n protected _isOnlyIfNotEmpty: boolean = true;\n\n protected view: any;\n protected index: EmbeddedViewRef<any>;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private template: TemplateRef<any>, private container: ViewContainerRef, protected language: LanguageService) {\n super();\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 let isNeedAdd = false;\n let isNeedRemove = false;\n let isHasTranslation = !_.isNil(this.viTranslateHas) && this.language.isHasTranslation(this.viTranslateHas, this.viTranslateHasIsOnlyIfNotEmpty);\n\n if (isHasTranslation) {\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\n super.destroy();\n this.view = null;\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 { CookieModule } from '../cookie/CookieModule';\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 * as _ from 'lodash';\n\n@NgModule({\n imports: [CookieModule],\n declarations: [LanguagePipe, LanguagePipePure, LanguagePipeHas, LanguagePipeHasPure, LanguageHasDirective, LanguageDirective],\n exports: [LanguagePipe, LanguagePipePure, LanguagePipeHas, LanguagePipeHasPure, LanguageHasDirective, LanguageDirective]\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 { LoadableEvent, Loadable, LoadableStatus } from '@ts-core/common';\nimport { ExtendedError } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport { TransportNoConnectionError, TransportTimeoutError } from '@ts-core/common';\nimport { Observable } from 'rxjs';\nimport { 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(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(error as any);\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(error as any);\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 super.destroy();\n this.reset();\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<T extends LoginBaseService = LoginBaseService> implements Resolve<void> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected login: T) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public resolve(): Promise<void> {\n if (this.isLoggedIn()) {\n return Promise.resolve();\n }\n\n let promise = PromiseHandler.create<void>();\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';\nimport { Observable } from 'rxjs';\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(@Inject(LoginBaseService) login: T, protected router: Router) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | 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';\nimport { Observable } from 'rxjs';\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(@Inject(LoginBaseService) login: T, protected router: Router) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | 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(@Inject(LoginBaseService) login: T, protected router: Router) {\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) as Promise<boolean | UrlTree>;\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","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(public nameId: string, public sortIndex: number = NaN, public iconId?: string) {}\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(private language: LanguageService, filterFunction?: (item: MenuItem) => boolean, isAutoTranslate: boolean = false) {\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 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(private language: LanguageService, isAutoTranslate: boolean = true) {\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 protected commitSelectedIndexProperties(): void {\n this.selectedItem = !_.isNil(this.selectedIndex) ? _.find(this.collection, item => item.sortIndex === this.selectedIndex) : null;\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 return;\n }\n if (_.isNumber(indexOrDataToSelect)) {\n this.selectedIndex = indexOrDataToSelect;\n } else {\n this.selectedItem = _.find(this.collection, item => item.data === 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 { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viPrettify'\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 * as _ from 'lodash';\nimport { PrettifyPipe } from './PrettifyPipe';\n\n@Pipe({\n name: 'viCamelCase'\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 * as _ from 'lodash';\nimport numeral from 'numeral';\n\n@Pipe({\n name: 'viFinance'\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 * as _ from 'lodash';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport { GetFilterableCondition, RemoveFilterableCondition } from '@ts-core/common';\n\n@Pipe({\n name: 'viMomentDate'\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 * as _ from 'lodash';\nimport { Moment } from 'moment';\nimport moment from 'moment';\nimport { MomentDatePipe } from './MomentDatePipe';\n\n@Pipe({\n name: 'viMomentAdaptiveDate'\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})\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 { MomentAvailableType, MomentDatePipe } from './MomentDatePipe';\nimport * as _ from 'lodash';\nimport moment from 'moment';\n\n@Pipe({\n name: 'viMomentTime'\n})\nexport class MomentTimePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n public static DEFAULT_FORMAT = 'hh:mm:ss';\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})\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})\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 * as _ from 'lodash';\nimport { PrettifyPipe } from './PrettifyPipe';\n\n@Pipe({\n name: 'viStartCase'\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 * as _ from 'lodash';\nimport { PrettifyPipe } from './PrettifyPipe';\n\n@Pipe({\n name: 'viTruncate'\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 * as _ from 'lodash';\nimport { FinancePipe } from './FinancePipe';\nimport { PrettifyPipe } from './PrettifyPipe';\n\n@Pipe({\n name: 'viTime'\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.MILISECONDS_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(public language: LanguageService, public sanitizer: DomSanitizer) {\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 { Loadable, LoadableEvent, LoadableStatus } from '@ts-core/common';\nimport { ObservableData } from '@ts-core/common';\nimport { NativeWindowService } from '@ts-core/frontend';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs';\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(protected _router: Router, protected window: NativeWindowService) {\n super();\n this.params = new Map();\n this.observer = new Subject();\n\n this._lastUrl = this.url;\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: ActivatedRoute | ActivatedRouteSnapshot, defaultValue?: string): string {\n if (snapshot instanceof ActivatedRoute) {\n snapshot = snapshot.snapshot;\n }\n return !_.isNil(snapshot.fragment) ? snapshot.fragment : defaultValue;\n }\n\n public async setFragment(value: string): Promise<boolean> {\n return this.applyExtras({ fragment: value });\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 router(): Router {\n return this._router;\n }\n}\n\nexport interface RouterBaseServiceEventData {\n url: string;\n previousUrl: string;\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 * as _ from 'lodash';\nimport { takeUntil } from 'rxjs';\nimport { ViewUtil } from '../util/ViewUtil';\n\n@Directive({\n selector: '[vi-theme-style]'\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(element: ElementRef, protected theme: ThemeService) {\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})\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 } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { Theme, 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 _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 source: string;\n protected element: T;\n\n private isTriedThemeDefault: boolean;\n\n // --------------------------------------------------------------------------\n //\n //\tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(element: ElementRef, protected theme: ThemeService, protected themeAsset: ThemeAssetService) {\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 private 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.source = this.getSource(this.getDefaultSourceId());\n this.commitSourceProperties();\n }\n\n // --------------------------------------------------------------------------\n //\n //\tProtected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setSourceProperties(): void {\n this.source = this.getSource(this.getSourceId(this.theme.theme));\n this.commitSourceProperties();\n }\n\n protected getSourceId(theme: Theme): string {\n return !_.isNil(theme) ? this.name + _.capitalize(theme.name) : null;\n }\n\n protected getDefaultSourceId(): string {\n return this.themeAsset.getName(this.name, this.isIgnoreTheme);\n }\n\n protected abstract commitSourceProperties(): 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 //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input()\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()\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()\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()\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()\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()\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 if (!_.isNil(this._name)) {\n this.removeSourceProperties();\n }\n this._name = value;\n if (!_.isNil(value)) {\n this.setSourceProperties();\n }\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 if (!_.isNil(value)) {\n this.setSourceProperties();\n }\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})\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 commitSourceProperties(): 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})\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 commitSourceProperties(): 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})\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 commitSourceProperties(): 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 { Destroyable } from '@ts-core/common';\nimport { ThemeService } from '@ts-core/frontend';\n\n@Directive({\n selector: '[vi-theme-toggle]'\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', ['$event'])\n private clickHandler(event: MouseEvent) {\n let themes = this.theme.themes.collection;\n let length = themes.length;\n if (length < 2) {\n return;\n }\n\n let index = 0;\n if (this.theme.theme) {\n index = themes.indexOf(this.theme.theme);\n if (index < length - 1) {\n index++;\n } else {\n index = 0;\n }\n }\n\n this.theme.theme = themes[index];\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(): void {\n this._user = this.createUser(this.login.loginData);\n }\n\n protected deinitializeUser(): void {\n this._user = null;\n }\n\n protected loginedHandler(): void {\n this.initializeUser();\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 { 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(protected compiler: Compiler, protected injector: Injector) {\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 constructor(logger: ILogger, protected loader: LazyModuleLoader<ITransportLazyModuleData>, settings?: ITransportSettings) {\n super(logger, settings, null);\n\n this.getDispatcher<TransportLazyModuleLoadedEvent<ITransportLazyModuleData>>(TransportLazyModuleLoadedEvent.NAME).subscribe(event =>\n this.moduleLoadedHandler(event.data)\n );\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 dispatchCommand<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 super.dispatchCommand(command, options, isNeedReply);\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 dispatch<T>(event: ITransportEvent<T>): void {\n let item = this.getModuleByEvent(event.name);\n if (!_.isNil(this.loader) && !_.isNil(item)) {\n this.loader.loadIfNeed(item.id).then(() => super.dispatch(event));\n } else {\n super.dispatch(event);\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(public reference: NgModuleRef<T>, protected transport: Transport) {\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 * as _ from 'lodash';\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';\n\nconst IMPORTS = [CookieModule, ThemeModule, LanguageModule, AssetModule];\n\nconst 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\n@NgModule({\n imports: IMPORTS,\n declarations: DECLARATIONS,\n exports: [...IMPORTS, ...DECLARATIONS]\n})\nexport class VICommonModule {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static forRoot(options?: IVICommonOptions): ModuleWithProviders<VICommonModule> {\n return {\n ngModule: VICommonModule,\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\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 IVICommonOptions 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: IVICommonOptions): ILogger {\n return new DefaultLogger(!_.isNil(options.loggerLevel) ? options.loggerLevel : LoggerLevel.LOG);\n}\nexport function nativeWindowServiceFactory(document: Document): NativeWindowService {\n return new NativeWindowService(document);\n}\n\nexport const VI_ANGULAR_OPTIONS = new InjectionToken<IVICommonOptions>(`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/ScrollDirective';\nexport * from './directive/ScrollCheckDirective';\nexport * from './directive/HTMLTitleDirective';\nexport * from './directive/HTMLContentTitleDirective';\nexport * from './directive/IsBrowserDirective';\nexport * from './directive/IsServerDirective';\n//\nexport * from './form/FormElementAsync';\nexport * from './form/FormElementSync';\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';\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';\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/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 './module/LazyModuleLoader';\n//\nexport * from './transport/TransportLazy';\nexport * from './transport/TransportLazyModule';\nexport * from './transport/TransportLazyModuleLoadedEvent';\n//\nexport * from './util/ViewUtil';\nexport * from './VICommonModule';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PlatformService","i1"],"mappings":"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"}
|