@ts-core/angular 11.0.87 → 13.0.2
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 +34 -2
- package/application/ApplicationBaseComponent.d.ts +9 -5
- package/application/ApplicationComponent.d.ts +2 -6
- package/asset/AssetBackgroundDirective.d.ts +3 -0
- package/asset/AssetBackgroundPipe.d.ts +3 -0
- package/asset/AssetFilePipe.d.ts +3 -0
- package/asset/AssetIconPipe.d.ts +3 -0
- package/asset/AssetImagePipe.d.ts +3 -0
- package/asset/AssetModule.d.ts +12 -0
- package/asset/AssetSoundPipe.d.ts +3 -0
- package/asset/AssetVideoPipe.d.ts +3 -0
- package/bottomSheet/BottomSheetModule.d.ts +10 -0
- package/bottomSheet/BottomSheetService.d.ts +3 -0
- package/bottomSheet/component/bottom-sheet-close-element/bottom-sheet-close-element.component.d.ts +3 -0
- package/component/VIComponentModule.d.ts +28 -0
- package/component/cdk-table/CdkTableBaseComponent.d.ts +6 -3
- package/component/cdk-table/CdkTableFilterableMapCollection.d.ts +5 -5
- package/component/cdk-table/CdkTablePaginableBookmarkMapCollection.d.ts +2 -2
- package/component/cdk-table/CdkTablePaginableMapCollection.d.ts +2 -6
- package/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.d.ts +3 -0
- package/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.d.ts +3 -0
- package/component/cdk-table/column/CdkTableCellClassNamePipe.d.ts +3 -0
- package/component/cdk-table/column/CdkTableColumnClassNamePipe.d.ts +3 -0
- package/component/cdk-table/column/CdkTableColumnStyleNamePipe.d.ts +3 -0
- package/component/cdk-table/column/CdkTableColumnValuePipe.d.ts +3 -0
- package/component/cdk-table/column/ICdkTableColumn.d.ts +1 -1
- package/component/cdk-table/row/CdkTableRowClassNamePipe.d.ts +3 -0
- package/component/cdk-table/row/CdkTableRowStyleNamePipe.d.ts +3 -0
- package/component/language/language-selector/language-selector.component.d.ts +3 -0
- package/component/menu-list/menu-list.component.d.ts +3 -0
- package/component/select-list/select-list.component.d.ts +3 -0
- package/component/tab-group/tab-group.component.d.ts +3 -0
- package/cookie/CookieModule.d.ts +4 -0
- package/directive/AspectRatioResizeDirective.d.ts +3 -0
- package/directive/AutoScrollBottomDirective.d.ts +3 -0
- package/directive/ClickToCopyDirective.d.ts +3 -0
- package/directive/ClickToSelectDirective.d.ts +3 -0
- package/directive/FocusDirective.d.ts +3 -0
- package/directive/HTMLContentTitleDirective.d.ts +3 -0
- package/directive/InfiniteScrollDirective.d.ts +3 -0
- package/directive/ResizeDirective.d.ts +3 -0
- package/directive/ScrollDirective.d.ts +3 -0
- package/directive/SelectOnFocusDirective.d.ts +3 -0
- package/{esm2015/ApplicationInjector.js → esm2020/ApplicationInjector.mjs} +0 -0
- package/esm2020/VICommonModule.mjs +145 -0
- package/esm2020/application/ApplicationBaseComponent.mjs +87 -0
- package/esm2020/application/ApplicationComponent.mjs +53 -0
- package/{esm2015/application/MessageBaseComponent.js → esm2020/application/MessageBaseComponent.mjs} +0 -0
- package/{esm2015/application/ShellBaseComponent.js → esm2020/application/ShellBaseComponent.mjs} +0 -0
- package/esm2020/asset/AssetBackgroundDirective.mjs +150 -0
- package/esm2020/asset/AssetBackgroundPipe.mjs +22 -0
- package/esm2020/asset/AssetFilePipe.mjs +22 -0
- package/esm2020/asset/AssetIconPipe.mjs +22 -0
- package/esm2020/asset/AssetImagePipe.mjs +22 -0
- package/esm2020/asset/AssetModule.mjs +24 -0
- package/esm2020/asset/AssetSoundPipe.mjs +22 -0
- package/esm2020/asset/AssetVideoPipe.mjs +22 -0
- package/esm2020/bottomSheet/BottomSheetImpl.mjs +230 -0
- package/esm2020/bottomSheet/BottomSheetModule.mjs +45 -0
- package/esm2020/bottomSheet/BottomSheetService.mjs +99 -0
- package/{esm2015/bottomSheet/component/BottomSheetBaseComponent.js → esm2020/bottomSheet/component/BottomSheetBaseComponent.mjs} +0 -0
- package/esm2020/bottomSheet/component/bottom-sheet-close-element/bottom-sheet-close-element.component.mjs +60 -0
- package/esm2020/component/VIComponentModule.mjs +105 -0
- package/esm2020/component/cdk-table/CdkTableBaseComponent.mjs +188 -0
- package/{esm2015/component/cdk-table/CdkTableDataSource.js → esm2020/component/cdk-table/CdkTableDataSource.mjs} +0 -0
- package/esm2020/component/cdk-table/CdkTableFilterableMapCollection.mjs +94 -0
- package/esm2020/component/cdk-table/CdkTablePaginableBookmarkMapCollection.mjs +49 -0
- package/esm2020/component/cdk-table/CdkTablePaginableMapCollection.mjs +57 -0
- package/esm2020/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.mjs +35 -0
- package/esm2020/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.mjs +63 -0
- package/esm2020/component/cdk-table/column/CdkTableCellClassNamePipe.mjs +21 -0
- package/esm2020/component/cdk-table/column/CdkTableColumnClassNamePipe.mjs +22 -0
- package/esm2020/component/cdk-table/column/CdkTableColumnStyleNamePipe.mjs +22 -0
- package/esm2020/component/cdk-table/column/CdkTableColumnValuePipe.mjs +22 -0
- package/esm2020/component/cdk-table/column/ICdkTableColumn.mjs +2 -0
- package/esm2020/component/cdk-table/row/CdkTableRowClassNamePipe.mjs +22 -0
- package/esm2020/component/cdk-table/row/CdkTableRowStyleNamePipe.mjs +22 -0
- package/{esm2015/component/cdk-table/row/ICdkTableRow.js → esm2020/component/cdk-table/row/ICdkTableRow.mjs} +0 -0
- package/esm2020/component/language/language-selector/language-selector.component.mjs +79 -0
- package/esm2020/component/menu-list/menu-list.component.mjs +16 -0
- package/esm2020/component/select-list/select-list.component.mjs +17 -0
- package/esm2020/component/tab-group/tab-group.component.mjs +71 -0
- package/esm2020/cookie/CookieModule.mjs +37 -0
- package/{esm2015/cookie/CookieOptions.js → esm2020/cookie/CookieOptions.mjs} +0 -0
- package/{esm2015/cookie/CookieService.js → esm2020/cookie/CookieService.mjs} +1 -1
- package/esm2020/directive/AspectRatioResizeDirective.mjs +127 -0
- package/esm2020/directive/AutoScrollBottomDirective.mjs +115 -0
- package/esm2020/directive/ClickToCopyDirective.mjs +49 -0
- package/esm2020/directive/ClickToSelectDirective.mjs +49 -0
- package/esm2020/directive/FocusDirective.mjs +54 -0
- package/esm2020/directive/HTMLContentTitleDirective.mjs +71 -0
- package/esm2020/directive/InfiniteScrollDirective.mjs +74 -0
- package/esm2020/directive/ResizeDirective.mjs +79 -0
- package/esm2020/directive/ScrollDirective.mjs +128 -0
- package/esm2020/directive/SelectOnFocusDirective.mjs +47 -0
- package/{esm2015/form/FormElementAsync.js → esm2020/form/FormElementAsync.mjs} +0 -0
- package/esm2020/form/FormElementSync.mjs +69 -0
- package/{esm2015/form/ValueAccessor.js → esm2020/form/ValueAccessor.mjs} +0 -0
- package/esm2020/form/validate.mjs +59 -0
- package/esm2020/language/LanguageDirective.mjs +92 -0
- package/esm2020/language/LanguageHasDirective.mjs +93 -0
- package/esm2020/language/LanguageMatPaginatorIntl.mjs +62 -0
- package/esm2020/language/LanguageModule.mjs +67 -0
- package/{esm2015/language/LanguageMomentDateAdapter.js → esm2020/language/LanguageMomentDateAdapter.mjs} +2 -4
- package/esm2020/language/LanguagePipe.mjs +58 -0
- package/esm2020/language/LanguagePipeHas.mjs +56 -0
- package/esm2020/language/LanguagePipeHasPure.mjs +40 -0
- package/esm2020/language/LanguagePipePure.mjs +39 -0
- package/{esm2015/language/LanguageRequireResolver.js → esm2020/language/LanguageRequireResolver.mjs} +0 -0
- package/esm2020/language/LanguageResolver.mjs +21 -0
- package/{esm2015/list/IListItem.js → esm2020/list/IListItem.mjs} +0 -0
- package/{esm2015/list/ListItem.js → esm2020/list/ListItem.mjs} +0 -0
- package/{esm2015/list/ListItems.js → esm2020/list/ListItems.mjs} +0 -0
- package/{esm2015/list/select/ISelectListItem.js → esm2020/list/select/ISelectListItem.mjs} +0 -0
- package/{esm2015/list/select/SelectListItem.js → esm2020/list/select/SelectListItem.mjs} +0 -0
- package/{esm2015/list/select/SelectListItems.js → esm2020/list/select/SelectListItems.mjs} +0 -0
- package/esm2020/login/LoginBaseService.mjs +187 -0
- package/esm2020/login/LoginGuard.mjs +29 -0
- package/esm2020/login/LoginRedirectResolver.mjs +21 -0
- package/esm2020/login/LoginRequireResolver.mjs +36 -0
- package/esm2020/login/LoginResolver.mjs +28 -0
- package/{esm2015/manager/FocusManager.js → esm2020/manager/FocusManager.mjs} +0 -0
- package/{esm2015/manager/ResizeManager.js → esm2020/manager/ResizeManager.mjs} +0 -0
- package/{esm2015/menu/MenuItem.js → esm2020/menu/MenuItem.mjs} +0 -0
- package/{esm2015/menu/MenuItemBase.js → esm2020/menu/MenuItemBase.mjs} +0 -0
- package/{esm2015/menu/MenuItems.js → esm2020/menu/MenuItems.mjs} +0 -0
- package/{esm2015/menu/NavigationMenuItem.js → esm2020/menu/NavigationMenuItem.mjs} +0 -0
- package/esm2020/module/LazyModuleLoader.mjs +89 -0
- package/{esm2015/notification/INotification.js → esm2020/notification/INotification.mjs} +0 -0
- package/esm2020/notification/INotificationContent.mjs +131 -0
- package/{esm2015/notification/NotificationConfig.js → esm2020/notification/NotificationConfig.mjs} +0 -0
- package/{esm2015/notification/NotificationFactory.js → esm2020/notification/NotificationFactory.mjs} +0 -0
- package/esm2020/notification/NotificationImpl.mjs +139 -0
- package/esm2020/notification/NotificationModule.mjs +53 -0
- package/{esm2015/notification/NotificationProperties.js → esm2020/notification/NotificationProperties.mjs} +0 -0
- package/esm2020/notification/NotificationService.mjs +239 -0
- package/{esm2015/notification/component/NotificationBaseComponent.js → esm2020/notification/component/NotificationBaseComponent.mjs} +0 -0
- package/esm2020/notification/component/NotificationQuestionBaseComponent.mjs +49 -0
- package/esm2020/notification/component/notification/notification.component.mjs +61 -0
- package/esm2020/pipe/CamelCasePipe.mjs +31 -0
- package/esm2020/pipe/FinancePipe.mjs +53 -0
- package/esm2020/pipe/MomentDateAdaptivePipe.mjs +51 -0
- package/esm2020/pipe/MomentDateFromNowPipe.mjs +22 -0
- package/esm2020/pipe/MomentDatePipe.mjs +71 -0
- package/esm2020/pipe/MomentTimePipe.mjs +35 -0
- package/esm2020/pipe/NgModelErrorPipe.mjs +42 -0
- package/esm2020/pipe/PrettifyPipe.mjs +38 -0
- package/esm2020/pipe/SanitizePipe.mjs +47 -0
- package/esm2020/pipe/StartCasePipe.mjs +24 -0
- package/esm2020/pipe/TimePipe.mjs +37 -0
- package/esm2020/pipe/TruncatePipe.mjs +25 -0
- package/esm2020/public-api.mjs +160 -0
- package/{esm2015/question/IQuestion.js → esm2020/question/IQuestion.mjs} +0 -0
- package/{esm2015/question/QuestionManager.js → esm2020/question/QuestionManager.mjs} +0 -0
- package/esm2020/service/BootstrapBreakpointService.mjs +116 -0
- package/{esm2015/service/PipeBaseService.js → esm2020/service/PipeBaseService.mjs} +0 -0
- package/esm2020/service/RouterBaseService.mjs +214 -0
- package/{esm2015/service/route/CanDeactivateGuard.js → esm2020/service/route/CanDeactivateGuard.mjs} +0 -0
- package/{esm2015/service/route/IRouterDeactivatable.js → esm2020/service/route/IRouterDeactivatable.mjs} +0 -0
- package/esm2020/theme/ThemeAssetBackgroundDirective.mjs +36 -0
- package/esm2020/theme/ThemeAssetDirective.mjs +219 -0
- package/esm2020/theme/ThemeAssetImageDirective.mjs +34 -0
- package/esm2020/theme/ThemeModule.mjs +62 -0
- package/esm2020/theme/ThemeStyleDirective.mjs +115 -0
- package/esm2020/theme/ThemeStyleHoverDirective.mjs +107 -0
- package/esm2020/theme/ThemeToggleDirective.mjs +62 -0
- package/esm2020/transport/TransportLazy.mjs +91 -0
- package/esm2020/transport/TransportLazyModule.mjs +28 -0
- package/esm2020/transport/TransportLazyModuleLoadedEvent.mjs +18 -0
- package/esm2020/ts-core-angular.mjs +5 -0
- package/{esm2015/user/IUser.js → esm2020/user/IUser.mjs} +0 -0
- package/esm2020/user/UserBaseService.mjs +105 -0
- package/{esm2015/util/ViewUtil.js → esm2020/util/ViewUtil.mjs} +0 -0
- package/{esm2015/window/IWindow.js → esm2020/window/IWindow.mjs} +0 -0
- package/esm2020/window/IWindowContent.mjs +124 -0
- package/{esm2015/window/WindowBase.js → esm2020/window/WindowBase.mjs} +0 -0
- package/{esm2015/window/WindowConfig.js → esm2020/window/WindowConfig.mjs} +0 -0
- package/{esm2015/window/WindowFactory.js → esm2020/window/WindowFactory.mjs} +0 -0
- package/esm2020/window/WindowImpl.mjs +319 -0
- package/esm2020/window/WindowModule.mjs +59 -0
- package/{esm2015/window/WindowProperties.js → esm2020/window/WindowProperties.mjs} +0 -0
- package/esm2020/window/WindowService.mjs +338 -0
- package/{esm2015/window/component/WindowBaseComponent.js → esm2020/window/component/WindowBaseComponent.mjs} +0 -0
- package/esm2020/window/component/WindowDragAreaDirective.mjs +97 -0
- package/{esm2015/window/component/WindowDragable.js → esm2020/window/component/WindowDragable.mjs} +1 -1
- package/esm2020/window/component/WindowElement.mjs +85 -0
- package/{esm2015/window/component/WindowQuestionBaseComponent.js → esm2020/window/component/WindowQuestionBaseComponent.mjs} +0 -0
- package/{esm2015/window/component/WindowResizeable.js → esm2020/window/component/WindowResizeable.mjs} +1 -1
- package/esm2020/window/component/window-close-element/window-close-element.component.mjs +60 -0
- package/esm2020/window/component/window-minimize-element/window-minimize-element.component.mjs +80 -0
- package/esm2020/window/component/window-question/window-question.component.mjs +50 -0
- package/esm2020/window/component/window-resize-element/window-resize-element.component.mjs +59 -0
- package/fesm2015/{ts-core-angular.js → ts-core-angular.mjs} +5106 -4696
- package/fesm2015/ts-core-angular.mjs.map +1 -0
- package/fesm2020/ts-core-angular.mjs +9510 -0
- package/fesm2020/ts-core-angular.mjs.map +1 -0
- package/form/FormElementSync.d.ts +3 -0
- package/language/LanguageDirective.d.ts +3 -0
- package/language/LanguageHasDirective.d.ts +3 -0
- package/language/LanguageMatPaginatorIntl.d.ts +3 -0
- package/language/LanguageModule.d.ts +11 -0
- package/language/LanguagePipe.d.ts +3 -0
- package/language/LanguagePipeHas.d.ts +3 -0
- package/language/LanguagePipeHasPure.d.ts +3 -0
- package/language/LanguagePipePure.d.ts +3 -0
- package/language/LanguageResolver.d.ts +3 -0
- package/login/LoginGuard.d.ts +5 -2
- package/login/LoginRedirectResolver.d.ts +3 -0
- package/login/LoginRequireResolver.d.ts +2 -2
- package/login/LoginResolver.d.ts +3 -0
- package/module/LazyModuleLoader.d.ts +24 -0
- package/notification/INotificationContent.d.ts +3 -0
- package/notification/NotificationModule.d.ts +14 -0
- package/notification/NotificationService.d.ts +3 -0
- package/notification/component/NotificationQuestionBaseComponent.d.ts +3 -0
- package/notification/component/notification/notification.component.d.ts +3 -0
- package/package.json +44 -30
- package/pipe/CamelCasePipe.d.ts +3 -0
- package/pipe/FinancePipe.d.ts +3 -0
- package/pipe/MomentDateAdaptivePipe.d.ts +3 -0
- package/pipe/MomentDateFromNowPipe.d.ts +3 -0
- package/pipe/MomentDatePipe.d.ts +3 -0
- package/pipe/MomentTimePipe.d.ts +3 -0
- package/pipe/NgModelErrorPipe.d.ts +3 -0
- package/pipe/PrettifyPipe.d.ts +3 -0
- package/pipe/SanitizePipe.d.ts +3 -0
- package/pipe/StartCasePipe.d.ts +3 -0
- package/pipe/TimePipe.d.ts +3 -0
- package/pipe/TruncatePipe.d.ts +3 -0
- package/public-api.d.ts +29 -9
- package/service/BootstrapBreakpointService.d.ts +3 -0
- package/theme/ThemeAssetBackgroundDirective.d.ts +3 -0
- package/theme/ThemeAssetDirective.d.ts +3 -0
- package/theme/ThemeAssetImageDirective.d.ts +3 -0
- package/theme/ThemeModule.d.ts +10 -0
- package/theme/ThemeStyleDirective.d.ts +3 -0
- package/theme/ThemeStyleHoverDirective.d.ts +3 -0
- package/theme/ThemeToggleDirective.d.ts +3 -0
- package/transport/TransportLazy.d.ts +15 -0
- package/transport/TransportLazyModule.d.ts +16 -0
- package/transport/TransportLazyModuleLoadedEvent.d.ts +6 -0
- package/ts-core-angular.d.ts +1 -24
- package/user/UserBaseService.d.ts +1 -1
- package/window/IWindowContent.d.ts +3 -0
- package/window/WindowModule.d.ts +20 -0
- package/window/WindowService.d.ts +3 -0
- package/window/component/WindowDragAreaDirective.d.ts +3 -0
- package/window/component/WindowDragable.d.ts +1 -1
- package/window/component/WindowElement.d.ts +3 -0
- package/window/component/WindowResizeable.d.ts +1 -1
- package/window/component/window-close-element/window-close-element.component.d.ts +3 -0
- package/window/component/window-minimize-element/window-minimize-element.component.d.ts +3 -0
- package/window/component/window-question/window-question.component.d.ts +3 -0
- package/window/component/window-resize-element/window-resize-element.component.d.ts +3 -0
- package/application/ApplicationComponent2.d.ts +0 -19
- package/bundles/ts-core-angular.umd.js +0 -10984
- package/bundles/ts-core-angular.umd.js.map +0 -1
- package/bundles/ts-core-angular.umd.min.js +0 -2
- package/bundles/ts-core-angular.umd.min.js.map +0 -1
- package/esm2015/VICommonModule.js +0 -98
- package/esm2015/application/ApplicationBaseComponent.js +0 -80
- package/esm2015/application/ApplicationComponent.js +0 -57
- package/esm2015/application/ApplicationComponent2.js +0 -53
- package/esm2015/asset/AssetBackgroundDirective.js +0 -144
- package/esm2015/asset/AssetBackgroundPipe.js +0 -18
- package/esm2015/asset/AssetFilePipe.js +0 -18
- package/esm2015/asset/AssetIconPipe.js +0 -18
- package/esm2015/asset/AssetImagePipe.js +0 -18
- package/esm2015/asset/AssetModule.js +0 -19
- package/esm2015/asset/AssetSoundPipe.js +0 -18
- package/esm2015/asset/AssetVideoPipe.js +0 -18
- package/esm2015/bottomSheet/BottomSheetImpl.js +0 -231
- package/esm2015/bottomSheet/BottomSheetModule.js +0 -40
- package/esm2015/bottomSheet/BottomSheetService.js +0 -103
- package/esm2015/bottomSheet/component/bottom-sheet-close-element/bottom-sheet-close-element.component.js +0 -63
- package/esm2015/component/VIComponentModule.js +0 -67
- package/esm2015/component/cdk-table/CdkTableBaseComponent.js +0 -176
- package/esm2015/component/cdk-table/CdkTableFilterableMapCollection.js +0 -94
- package/esm2015/component/cdk-table/CdkTablePaginableBookmarkMapCollection.js +0 -49
- package/esm2015/component/cdk-table/CdkTablePaginableMapCollection.js +0 -57
- package/esm2015/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.js +0 -24
- package/esm2015/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.js +0 -52
- package/esm2015/component/cdk-table/column/CdkTableCellClassNamePipe.js +0 -17
- package/esm2015/component/cdk-table/column/CdkTableColumnClassNamePipe.js +0 -18
- package/esm2015/component/cdk-table/column/CdkTableColumnStyleNamePipe.js +0 -18
- package/esm2015/component/cdk-table/column/CdkTableColumnValuePipe.js +0 -18
- package/esm2015/component/cdk-table/column/ICdkTableColumn.js +0 -2
- package/esm2015/component/cdk-table/row/CdkTableRowClassNamePipe.js +0 -18
- package/esm2015/component/cdk-table/row/CdkTableRowStyleNamePipe.js +0 -18
- package/esm2015/component/language/language-selector/language-selector.component.js +0 -75
- package/esm2015/component/menu-list/menu-list.component.js +0 -14
- package/esm2015/component/select-list/select-list.component.js +0 -14
- package/esm2015/component/tab-group/tab-group.component.js +0 -68
- package/esm2015/cookie/CookieModule.js +0 -33
- package/esm2015/directive/AspectRatioResizeDirective.js +0 -125
- package/esm2015/directive/AutoScrollBottomDirective.js +0 -107
- package/esm2015/directive/ClickToCopyDirective.js +0 -48
- package/esm2015/directive/ClickToSelectDirective.js +0 -48
- package/esm2015/directive/FocusDirective.js +0 -53
- package/esm2015/directive/HTMLContentTitleDirective.js +0 -70
- package/esm2015/directive/InfiniteScrollDirective.js +0 -69
- package/esm2015/directive/ResizeDirective.js +0 -75
- package/esm2015/directive/ScrollDirective.js +0 -124
- package/esm2015/directive/SelectOnFocusDirective.js +0 -46
- package/esm2015/form/FormElementSync.js +0 -62
- package/esm2015/form/validate.js +0 -61
- package/esm2015/language/LanguageDirective.js +0 -90
- package/esm2015/language/LanguageHasDirective.js +0 -93
- package/esm2015/language/LanguageMatPaginatorIntl.js +0 -54
- package/esm2015/language/LanguageModule.js +0 -62
- package/esm2015/language/LanguagePipe.js +0 -57
- package/esm2015/language/LanguagePipeHas.js +0 -55
- package/esm2015/language/LanguagePipeHasPure.js +0 -39
- package/esm2015/language/LanguagePipePure.js +0 -38
- package/esm2015/language/LanguageResolver.js +0 -23
- package/esm2015/login/LoginBaseService.js +0 -197
- package/esm2015/login/LoginGuard.js +0 -31
- package/esm2015/login/LoginRedirectResolver.js +0 -19
- package/esm2015/login/LoginRequireResolver.js +0 -36
- package/esm2015/login/LoginResolver.js +0 -30
- package/esm2015/notification/INotificationContent.js +0 -126
- package/esm2015/notification/NotificationImpl.js +0 -140
- package/esm2015/notification/NotificationModule.js +0 -40
- package/esm2015/notification/NotificationService.js +0 -248
- package/esm2015/notification/component/NotificationQuestionBaseComponent.js +0 -43
- package/esm2015/notification/component/notification/notification.component.js +0 -64
- package/esm2015/pipe/CamelCasePipe.js +0 -28
- package/esm2015/pipe/FinancePipe.js +0 -49
- package/esm2015/pipe/MomentDateAdaptivePipe.js +0 -47
- package/esm2015/pipe/MomentDateFromNowPipe.js +0 -18
- package/esm2015/pipe/MomentDatePipe.js +0 -67
- package/esm2015/pipe/MomentTimePipe.js +0 -31
- package/esm2015/pipe/NgModelErrorPipe.js +0 -41
- package/esm2015/pipe/PrettifyPipe.js +0 -35
- package/esm2015/pipe/SanitizePipe.js +0 -46
- package/esm2015/pipe/StartCasePipe.js +0 -20
- package/esm2015/pipe/TimePipe.js +0 -33
- package/esm2015/pipe/TruncatePipe.js +0 -21
- package/esm2015/public-api.js +0 -155
- package/esm2015/service/BootstrapBreakpointService.js +0 -118
- package/esm2015/service/RouterBaseService.js +0 -223
- package/esm2015/theme/ThemeAssetBackgroundDirective.js +0 -37
- package/esm2015/theme/ThemeAssetDirective.js +0 -204
- package/esm2015/theme/ThemeAssetImageDirective.js +0 -35
- package/esm2015/theme/ThemeModule.js +0 -57
- package/esm2015/theme/ThemeStyleDirective.js +0 -113
- package/esm2015/theme/ThemeStyleHoverDirective.js +0 -105
- package/esm2015/theme/ThemeToggleDirective.js +0 -61
- package/esm2015/ts-core-angular.js +0 -28
- package/esm2015/user/UserBaseService.js +0 -105
- package/esm2015/window/IWindowContent.js +0 -115
- package/esm2015/window/WindowImpl.js +0 -320
- package/esm2015/window/WindowModule.js +0 -46
- package/esm2015/window/WindowService.js +0 -349
- package/esm2015/window/component/WindowDragAreaDirective.js +0 -96
- package/esm2015/window/component/WindowElement.js +0 -78
- package/esm2015/window/component/window-close-element/window-close-element.component.js +0 -63
- package/esm2015/window/component/window-minimize-element/window-minimize-element.component.js +0 -83
- package/esm2015/window/component/window-question/window-question.component.js +0 -50
- package/esm2015/window/component/window-resize-element/window-resize-element.component.js +0 -62
- package/fesm2015/ts-core-angular.js.map +0 -1
- package/ts-core-angular.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ts-core-angular.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/application/ApplicationBaseComponent.ts","../../src/util/ViewUtil.ts","../../src/application/ApplicationComponent.ts","../../src/application/ApplicationComponent2.ts","../../src/application/MessageBaseComponent.ts","../../src/question/IQuestion.ts","../../src/question/QuestionManager.ts","../../src/window/IWindow.ts","../../src/window/WindowConfig.ts","../../src/notification/INotificationContent.ts","../../src/notification/component/NotificationQuestionBaseComponent.ts","../../src/notification/component/notification/notification.component.ts","../../src/window/WindowBase.ts","../../src/notification/INotification.ts","../../src/notification/NotificationImpl.ts","../../src/notification/component/NotificationBaseComponent.ts","../../src/notification/NotificationConfig.ts","../../src/notification/NotificationFactory.ts","../../src/notification/NotificationService.ts","../../src/application/ShellBaseComponent.ts","../../src/ApplicationInjector.ts","../../src/asset/AssetBackgroundDirective.ts","../../src/asset/AssetBackgroundPipe.ts","../../src/asset/AssetIconPipe.ts","../../src/asset/AssetImagePipe.ts","../../src/asset/AssetFilePipe.ts","../../src/asset/AssetSoundPipe.ts","../../src/asset/AssetVideoPipe.ts","../../src/asset/AssetModule.ts","../../src/component/language/language-selector/language-selector.component.ts","../../src/component/cdk-table/CdkTableDataSource.ts","../../src/component/cdk-table/CdkTableFilterableMapCollection.ts","../../src/component/cdk-table/CdkTablePaginableMapCollection.ts","../../src/component/cdk-table/CdkTablePaginableBookmarkMapCollection.ts","../../src/cookie/CookieService.ts","../../src/cookie/CookieModule.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/HTMLContentTitleDirective.ts","../../src/directive/ResizeDirective.ts","../../src/language/LanguageMatPaginatorIntl.ts","../../src/language/LanguagePipe.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/WindowImpl.ts","../../src/bottomSheet/BottomSheetImpl.ts","../../src/window/component/WindowElement.ts","../../src/bottomSheet/component/bottom-sheet-close-element/bottom-sheet-close-element.component.ts","../../src/bottomSheet/component/BottomSheetBaseComponent.ts","../../src/window/IWindowContent.ts","../../src/window/component/WindowQuestionBaseComponent.ts","../../src/window/component/window-question/window-question.component.ts","../../src/window/component/window-close-element/window-close-element.component.ts","../../src/window/component/window-minimize-element/window-minimize-element.component.ts","../../src/window/component/window-resize-element/window-resize-element.component.ts","../../src/window/component/WindowResizeable.ts","../../src/window/component/WindowDragable.ts","../../src/window/component/WindowBaseComponent.ts","../../src/window/WindowService.ts","../../src/bottomSheet/BottomSheetService.ts","../../src/bottomSheet/BottomSheetModule.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/ThemeToggleDirective.ts","../../src/theme/ThemeStyleDirective.ts","../../src/theme/ThemeStyleHoverDirective.ts","../../src/theme/ThemeModule.ts","../../src/window/component/WindowDragAreaDirective.ts","../../src/window/WindowModule.ts","../../src/VICommonModule.ts","../../src/component/menu-list/menu-list.component.ts","../../src/component/select-list/select-list.component.ts","../../src/component/tab-group/tab-group.component.ts","../../src/component/cdk-table/CdkTableBaseComponent.ts","../../src/component/cdk-table/cdk-table-paginable/cdk-table-paginable.component.ts","../../src/component/cdk-table/cdk-table-filterable/cdk-table-filterable.component.ts","../../src/component/cdk-table/column/CdkTableColumnValuePipe.ts","../../src/component/cdk-table/column/CdkTableColumnStyleNamePipe.ts","../../src/component/cdk-table/column/CdkTableColumnClassNamePipe.ts","../../src/component/cdk-table/row/CdkTableRowClassNamePipe.ts","../../src/component/cdk-table/row/CdkTableRowStyleNamePipe.ts","../../src/component/cdk-table/column/CdkTableCellClassNamePipe.ts","../../src/component/VIComponentModule.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/LoginResolver.ts","../../src/login/LoginRedirectResolver.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/service/route/CanDeactivateGuard.ts","../../src/user/IUser.ts","../../src/user/UserBaseService.ts","../../src/public-api.ts","../../src/ts-core-angular.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { AfterViewInit } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { PromiseHandler } from '@ts-core/common/promise';\nimport * as _ from 'lodash';\n\nexport abstract class ApplicationBaseComponent extends DestroyableContainer implements AfterViewInit {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n private timeout: any;\n private isReadyAlreadyCalled: boolean;\n\n private viewReadyPromise: PromiseHandler<void, void>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private viewReadyDelay: number = NaN) {\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;\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 { ElementRef, Renderer2, RendererStyleFlags2, ViewContainerRef } from '@angular/core';\nimport { ObjectUtil } from '@ts-core/common/util';\nimport * as _ from 'lodash';\n\nexport class ViewUtil {\n // --------------------------------------------------------------------------\n //\n //\tConstants\n //\n // --------------------------------------------------------------------------\n\n private static RENDERER: Renderer2 = null;\n\n // --------------------------------------------------------------------------\n //\n //\tPrivate Methods\n //\n // --------------------------------------------------------------------------\n\n private static copyToClipboard(): void {\n try {\n document.execCommand('copy');\n } catch (error) {}\n }\n\n // --------------------------------------------------------------------------\n //\n //\tCommon Properties\n //\n // --------------------------------------------------------------------------\n\n public static initialize(renderer: Renderer2): void {\n ViewUtil.RENDERER = renderer;\n }\n\n public static parseElement(element: IViewElement): HTMLElement {\n if (element instanceof HTMLElement) {\n return element;\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: HTMLElement, isNeedCopyToClipboard: boolean = false): void {\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 = window.getSelection();\n selection.removeAllRanges();\n\n let range = 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(name: string, className?: string, innerHTML?: string): any {\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) && !_.isNil(ViewUtil.RENDERER)) {\n ViewUtil.RENDERER.appendChild(parent, child);\n }\n }\n\n public static removeChild(parent: any, child: any): void {\n if (!_.isNil(parent) && !_.isNil(child) && !_.isNil(ViewUtil.RENDERER)) {\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 window.innerWidth || document.body.clientWidth;\n }\n\n public static getStageHeight(): number {\n return window.innerHeight || document.body.clientHeight;\n }\n\n public static getWidth(container: HTMLElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n let value = parseFloat(ViewUtil.getStyle(container, 'width'));\n if (_.isNaN(value)) {\n value = container.getBoundingClientRect().width;\n }\n if (_.isNaN(value)) {\n value = container.offsetWidth;\n }\n return value;\n }\n\n public static setWidth(container: HTMLElement, value: number, isNeedCheckLimits: boolean): boolean {\n if (_.isNil(container) || _.isNaN(value)) {\n return false;\n }\n\n if (isNeedCheckLimits && (value < ViewUtil.getMinWidth(container) || value > ViewUtil.getMaxWidth(container) || value === ViewUtil.getWidth(container)))\n return false;\n\n container.style.width = '540px';\n ViewUtil.setStyle(container, 'width', value + 'px');\n return true;\n }\n\n public static getMaxWidth(container: HTMLElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\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: HTMLElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\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: HTMLElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n\n let value = parseFloat(ViewUtil.getStyle(container, 'height'));\n if (_.isNaN(value)) {\n value = container.getBoundingClientRect().height;\n }\n if (_.isNaN(value)) {\n value = container.offsetHeight;\n }\n return value;\n }\n public static setHeight(container: HTMLElement, value: number, isNeedCheckLimits: boolean): boolean {\n if (_.isNil(container) || _.isNaN(value)) {\n return false;\n }\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: HTMLElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\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: HTMLElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\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: HTMLElement, 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: HTMLElement): 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: HTMLElement, value: number): void {\n if (!_.isNil(container) && !_.isNaN(value)) {\n ViewUtil.setStyle(container, 'left', value + 'px');\n }\n }\n\n public static getY(container: HTMLElement): number {\n if (_.isNil(container)) {\n return NaN;\n }\n\n let value = parseFloat(ViewUtil.getStyle(container, 'top'));\n return _.isNaN(value) ? 0 : value;\n }\n public static setY(container: HTMLElement, value: number): void {\n if (!_.isNil(container) && !_.isNaN(value)) {\n ViewUtil.setStyle(container, 'top', value + 'px');\n }\n }\n public static move(container: HTMLElement, 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) && !_.isNil(ViewUtil.RENDERER)) {\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) && !_.isNil(ViewUtil.RENDERER)) {\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 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 if (_.isNil(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (!_.isNil(container) && !_.isNil(ViewUtil.RENDERER)) {\n ViewUtil.RENDERER.setProperty(container, name, value);\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 if (_.isNil(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (!_.isNil(container) && !_.isNil(ViewUtil.RENDERER)) {\n ViewUtil.RENDERER.removeAttribute(container, name);\n }\n }\n\n public static setAttribute(container: IViewElement, name: string, value: any): void {\n if (_.isNil(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (!_.isNil(container) && !_.isNil(ViewUtil.RENDERER)) {\n ViewUtil.RENDERER.setAttribute(container, name, value);\n }\n }\n\n public static getStyle(container: IViewElement, name: string): any {\n if (_.isNil(name)) {\n return null;\n }\n container = ViewUtil.parseElement(container);\n return !_.isNil(container) ? container.style[name] : null;\n }\n\n public static setStyle(container: IViewElement, name: string, value: any, flags?: RendererStyleFlags2): void {\n if (_.isNil(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (_.isNil(container) || _.isNil(ViewUtil.RENDERER)) {\n return;\n }\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 if (_.isNil(name)) {\n return;\n }\n container = ViewUtil.parseElement(container);\n if (!_.isNil(container) && !_.isNil(ViewUtil.RENDERER)) {\n ViewUtil.RENDERER.removeStyle(container, name, flags);\n }\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: HTMLElement): void {\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: HTMLElement, isIEBrowser?: boolean): void {\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 { Renderer2 } from '@angular/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { LoadableEvent } from '@ts-core/common';\nimport { Assets } from '@ts-core/frontend/asset';\nimport { Language } from '@ts-core/language';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport { SettingsBaseService } from '@ts-core/frontend/service';\nimport { ThemeService } from '@ts-core/frontend/theme';\nimport { takeUntil } from 'rxjs/operators';\nimport { ViewUtil } from '../util/ViewUtil';\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 ViewUtil.initialize(this.renderer);\n this.settings.initialize(this.config, this.routerParams);\n Assets.initialize(this.settings.assetsUrl);\n this.theme.initialize(this.settings.themes);\n\n // Language\n this.language.initialize(Assets.languagesUrl, 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 viewReadyHandler(): void {\n this.initialize();\n }\n\n protected setLocale(item: Language): void {\n moment.locale(item.locale);\n numeral.locale(item.locale);\n if (!_.isNil(this.dateAdapter)) {\n this.dateAdapter.setLocale(item.locale);\n }\n }\n\n protected abstract languageLoadingError(item: Language, error: Error): void;\n\n // --------------------------------------------------------------------------\n //\n // \tProtected Properties\n //\n // --------------------------------------------------------------------------\n\n protected abstract get config(): any;\n protected abstract get routerParams(): any;\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 protected abstract get renderer(): Renderer2;\n protected abstract get dateAdapter(): DateAdapter<any>;\n}\n","import { Renderer2 } from '@angular/core';\nimport { DateAdapter } from '@angular/material/core';\nimport { LoadableEvent } from '@ts-core/common';\nimport { Assets } from '@ts-core/frontend/asset';\nimport { Language } from '@ts-core/language';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport { SettingsBaseService } from '@ts-core/frontend/service';\nimport { ThemeService } from '@ts-core/frontend/theme';\nimport { takeUntil } from 'rxjs/operators';\nimport { ViewUtil } from '../util/ViewUtil';\nimport { ApplicationBaseComponent } from './ApplicationBaseComponent';\nimport * as _ from 'lodash';\nimport moment from 'moment';\nimport numeral from 'numeral';\n\nexport abstract class ApplicationComponent2<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 Assets.initialize(this.settings.assetsUrl);\n ViewUtil.initialize(this.renderer);\n\n // Theme\n this.theme.initialize(this.settings.themes);\n\n // Language\n this.language.initialize(Assets.languagesUrl, 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 protected abstract get renderer(): Renderer2;\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { DestroyableContainer, LoadableEvent } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs/operators';\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/promise';\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 = 'EVENT_MOVED',\n RESIZED = 'RESIZED',\n DISABLED_CHANGED = 'DISABLED_CHANGED',\n MINIMIZED_CHANGED = 'MINIMIZED_CHANGED',\n\n SET_ON_TOP = 'SET_ON_TOP'\n}\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 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 { AfterViewInit, 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\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 { HostListener } from '@angular/core';\nimport { INotificationContent } from '../../notification/INotificationContent';\nimport { QuestionManager } from '../../question/QuestionManager';\nimport { ViewUtil } from '../../util/ViewUtil';\n\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/language';\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","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 { 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 { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/internal/operators';\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 { 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 { 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 { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ObservableData } from '@ts-core/common/observer';\nimport { ArrayUtil, DateUtil, ObjectUtil } from '@ts-core/common/util';\nimport { LanguageService } from '@ts-core/frontend/language';\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 { NotificationComponent } from './component/notification/notification.component';\nimport { NotificationBaseComponent } from './component/NotificationBaseComponent';\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 this.factory = new NotificationFactory(NotificationBaseComponent);\n this.questionComponent = NotificationComponent;\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/operators';\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 { Directive, ElementRef, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { Assets } from '@ts-core/frontend/asset';\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/asset';\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/asset';\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/asset';\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 { Pipe, PipeTransform } from '@angular/core';\nimport { Assets } from '@ts-core/frontend/asset';\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/asset';\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/asset';\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 { 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 { Component, ElementRef, Input } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend/language';\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","import { DataSourceMapCollection, DataSourceMapCollectionEvent } from '@ts-core/common/map/dataSource';\nimport * as _ from 'lodash';\nimport { Subscription, BehaviorSubject, Observable } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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/map/dataSource';\nimport * as _ from 'lodash';\nimport { SortData } from './CdkTablePaginableMapCollection';\nimport { ObjectUtil } from '@ts-core/common/util';\nimport { SortDirection } from '@angular/material/sort';\n\nexport abstract class CdkTableFilterableMapCollection<U, V> extends FilterableDataSourceMapCollection<U, V> {\n // --------------------------------------------------------------------------\n //\n // \tStatic Methods\n //\n // --------------------------------------------------------------------------\n\n public static getSort<U, V = any>(collection: FilterableDataSourceMapCollection<U, V>): SortData<U> {\n if (_.isNil(collection) || _.isEmpty(collection.sort)) {\n return null;\n }\n let active: keyof U = ObjectUtil.keys(collection.sort)[0];\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: SortData<U>): 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: SortData<U>): void {\n if (CdkTableFilterableMapCollection.applySortEvent(this, event)) {\n this.reload();\n }\n }\n\n protected sortFunction(first: U, second: U, event: SortData<U>): 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 { CdkTableDataSource } from './CdkTableDataSource';\nimport { PaginableDataSourceMapCollection } from '@ts-core/common/map/dataSource';\nimport { SortDirection } 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> extends PaginableDataSourceMapCollection<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: SortData<U>): 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\nexport interface SortData<U> {\n active: keyof U;\n direction: SortDirection;\n}\n","import { PaginableBookmarkDataSourceMapCollection } from '@ts-core/common/map/dataSource';\nimport { CdkTableDataSource } from './CdkTableDataSource';\nimport { SortData } from './CdkTablePaginableMapCollection';\nimport * as _ from 'lodash';\nimport { CdkTableFilterableMapCollection } from './CdkTableFilterableMapCollection';\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: SortData<U>): void {\n if (CdkTableFilterableMapCollection.applySortEvent(this, event)) {\n this.load();\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, ICookieService } from '@ts-core/frontend/cookie';\nimport * as _ from 'lodash';\nimport * as Cookie from 'ngx-cookie';\nimport { CookieOptionsProvider } from 'ngx-cookie';\nimport { CookieOptions } from './CookieOptions';\n\nexport class CookieService extends Cookie.CookieService implements ICookieService {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(options?: CookieOptions) {\n options = _.assign(\n {\n path: '/',\n domain: null,\n expires: null,\n secure: false,\n httpOnly: false\n },\n options\n );\n super({ options } as CookieOptionsProvider);\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 T) : defaultValue;\n }\n\n public putObject<T = any>(key: string, value: T, options?: CookieOptions): void {\n super.putObject(key, value as T, 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","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ICookieOptions } from '@ts-core/frontend/cookie';\nimport { CookieService } from './CookieService';\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: [COOKIE_OPTIONS],\n useFactory: cookieServiceFactory\n }\n ]\n };\n }\n}\n\nexport function cookieServiceFactory(options: ICookieOptions): CookieService {\n return new CookieService(options);\n}\n\nexport const COOKIE_OPTIONS = new InjectionToken<ICookieOptions>(`COOKIE_OPTIONS`);\n","import { ResizeSensor } from 'css-element-queries';\nimport { IDestroyable } from '@ts-core/common';\nimport * as _ from 'lodash';\n\nexport class ResizeManager implements IDestroyable {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n\n protected timer: any;\n protected sensor: ResizeSensor;\n\n // --------------------------------------------------------------------------\n //\n // Constructor\n //\n // --------------------------------------------------------------------------\n\n constructor(private element: HTMLElement, private handler: () => void, private delay: number = 0, private isForceResize: boolean = false) {\n this.timer = setTimeout(this.initialize);\n }\n\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n\n private initialize = (): void => {\n this.sensor = new ResizeSensor(this.element, this.resizeHandler);\n if (this.isForceResize) {\n this.resizeHandler();\n }\n };\n\n // --------------------------------------------------------------------------\n //\n // Event Handlers\n //\n // --------------------------------------------------------------------------\n\n protected callHandler = (): void => {\n this.handler();\n };\n\n protected resizeHandler = () => {\n if (isNaN(this.delay) || this.delay <= 0) {\n this.callHandler();\n return;\n }\n\n clearTimeout(this.timer);\n this.timer = setTimeout(this.callHandler, this.delay);\n };\n\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (!_.isNil(this.timer)) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n if (!_.isNil(this.sensor)) {\n this.sensor.detach(this.resizeHandler);\n this.sensor = null;\n }\n this.handler = null;\n this.element = null;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport * as _ from 'lodash';\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, this.commitResizeProperties, AspectRatioResizeDirective.UPDATE_DELAY);\n\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 @Input()\n public delay: number = 100;\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 private scrollHandler() {\n if (!this.isInitialized) {\n return;\n }\n clearTimeout(this.timer);\n this.timer = setTimeout(this.scrollChanged, this.delay);\n }\n\n private scrollChanged = (): void => {\n this.scrollChangedHandler();\n };\n\n protected scrollChangedHandler(): void {\n this._scrollValue = this.scrollTop;\n this.scrolled.next(this._scrollValue);\n }\n\n protected initializeHandler = (): void => {\n this.initialize();\n };\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) this._scrollValue = this.scrollHeight;\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) return;\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) this.lastScrollHeight = this.scrollHeight;\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/util';\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 { Directive, ElementRef, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport * as _ from 'lodash';\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 let title = this.value;\n if (!_.isEmpty(title)) {\n title = title.replace(/<br\\s*[\\/]?>/g, '\\n');\n title = title.replace(/<[^>]*>/g, '');\n }\n ViewUtil.setProperty(this.element, 'title', title);\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/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 { MatPaginatorIntl } from '@angular/material/paginator';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport { Subscription } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport * as _ from 'lodash';\n\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/language';\nimport { takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\n\n@Pipe({\n name: 'viTranslate',\n pure: false\n})\nexport class LanguagePipe extends DestroyableContainer implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n private key: string;\n private params: string;\n private _value: string;\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.translate(this.key, this.params);\n };\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform(key: string, params?: any): string {\n this.key = key;\n this.params = params;\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 this.params = null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { LanguageService } from '@ts-core/frontend/language';\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/language';\nimport { PromiseHandler } from '@ts-core/common/promise';\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/language';\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/language';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs/operators';\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/language';\nimport { takeUntil } from 'rxjs/operators';\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/language';\nimport { takeUntil } from 'rxjs/operators';\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/language';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[viTranslateHas]'\n})\nexport class LanguageHasDirective extends Destroyable {\n // --------------------------------------------------------------------------\n //\n //\tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _key: string;\n\n protected view: any;\n protected index: EmbeddedViewRef<any>;\n\n @Input()\n public isOnlyIfNotEmpty: boolean = false;\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.key) && this.language.isHasTranslation(this.key, this.isOnlyIfNotEmpty);\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.language = null;\n\n this._key = null;\n }\n\n // --------------------------------------------------------------------------\n //\n //\tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n @Input('viTranslateHas')\n public set key(value: string) {\n if (value === this._key) {\n return;\n }\n this._key = value;\n this.check();\n }\n public get key(): string {\n return this._key;\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ICookieService } from '@ts-core/frontend/cookie';\nimport { ILanguageServiceOptions, LanguageService } from '@ts-core/frontend/language';\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';\n\nexport class WindowFactory<U extends IWindow> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected classType: WindowType<U>) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public create(properties: WindowProperties): U {\n return new this.classType(properties);\n }\n}\n\nexport interface WindowType<T> {\n new (properties: WindowProperties): T;\n}\n","import { MatDialogRef } from '@angular/material/dialog';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/internal/operators';\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';\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 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\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 // 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 if (!this.config.isModal) {\n this.container.addEventListener('click', this.mouseClickHandlerProxy, true);\n this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);\n }\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 return !this.isWasOnTop;\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\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, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/internal/operators';\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';\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 _isDisabled: boolean = false;\n private _wrapper: HTMLElement;\n private _backdrop: HTMLElement;\n private _container: HTMLElement;\n\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\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().afterDismissed().pipe(takeUntil(this.destroyed)).subscribe(this.setClosed);\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 if (!this.config.isModal) {\n this.container.addEventListener('click', this.mouseClickHandlerProxy, true);\n this.container.addEventListener('mousedown', this.mouseDownHandlerProxy);\n }\n }\n\n protected commitIsBlinkProperties(): void {}\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 return false;\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 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\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, ElementRef } from '@angular/core';\nimport { DestroyableContainer } from '@ts-core/common';\nimport { ViewUtil } from '../../util/ViewUtil';\nimport { IWindow } from '../IWindow';\n\nexport 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 (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 (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\n this.destroyChildren();\n\n this.element = null;\n this.window = null;\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 '../../../window/component/WindowElement';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'vi-bottom-sheet-close-element',\n styleUrls: ['bottom-sheet-close-element.component.scss'],\n template: ''\n})\nexport class BottomSheetCloseElementComponent 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(BottomSheetCloseElementComponent.ICON_VALUE)) {\n ViewUtil.setProperty(this.nativeElement, 'innerHTML', BottomSheetCloseElementComponent.ICON_VALUE);\n }\n if (!_.isNil(BottomSheetCloseElementComponent.ICON_CLASS)) {\n ViewUtil.addClasses(this.nativeElement, BottomSheetCloseElementComponent.ICON_CLASS);\n }\n ViewUtil.addClass(this.nativeElement, 'mouse-active');\n this.nativeElement.addEventListener('click', this.mouseClickHandler, true);\n }\n\n protected destroyChildren(): void {\n super.destroyChildren();\n this.nativeElement.removeEventListener('click', this.mouseClickHandler, true);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n private mouseClickHandler = (event: MouseEvent): void => {\n event.stopPropagation();\n if (!_.isNil(this.window)) {\n this.window.close();\n }\n };\n}\n","import { ComponentFactoryResolver, ComponentRef, ViewContainerRef } from '@angular/core';\nimport { APPLICATION_INJECTOR } from '../../ApplicationInjector';\nimport { ViewUtil } from '../../util/ViewUtil';\nimport { BottomSheetImpl } from '../BottomSheetImpl';\nimport { BottomSheetCloseElementComponent } from './bottom-sheet-close-element/bottom-sheet-close-element.component';\n\nexport class BottomSheetBaseComponent extends BottomSheetImpl {\n // --------------------------------------------------------------------------\n //\n // Static Properties\n //\n // --------------------------------------------------------------------------\n\n public static CLOSE_COMPONENT = BottomSheetCloseElementComponent;\n\n // --------------------------------------------------------------------------\n //\n // Properties Methods\n //\n // --------------------------------------------------------------------------\n\n protected closeWindow: ComponentRef<any>;\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setProperties(): void {\n super.setProperties();\n this.createWindowComponents();\n }\n\n protected createWindowComponents(): void {\n if (!(this.content.container instanceof ViewContainerRef)) {\n return;\n }\n if (!this.config.disableClose && !this.closeWindow) {\n let factory = this.resolver.resolveComponentFactory(BottomSheetBaseComponent.CLOSE_COMPONENT);\n this.closeWindow = this.content.container.createComponent(factory);\n this.closeWindow.instance.window = this;\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 protected isNeedClickStopPropagation(event: MouseEvent): boolean {\n if (!super.isNeedClickStopPropagation(event)) {\n return false;\n }\n if (this.closeWindow && this.closeWindow.location.nativeElement === event.target) {\n return false;\n }\n return true;\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Properties\n //\n // --------------------------------------------------------------------------\n\n protected get resolver(): ComponentFactoryResolver {\n return APPLICATION_INJECTOR().get(ComponentFactoryResolver);\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 // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n // Components will destroy automatically\n this.closeWindow = null;\n }\n}\n","import { AfterViewInit, ElementRef, ViewContainerRef } 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\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(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\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 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;\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/language';\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","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 this.nativeElement.addEventListener('click', this.mouseClickHandler, true);\n }\n\n protected destroyChildren(): void {\n super.destroyChildren();\n this.nativeElement.removeEventListener('click', this.mouseClickHandler, true);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n private mouseClickHandler = (event: MouseEvent): void => {\n event.stopPropagation();\n if (!_.isNil(this.window)) {\n this.window.close();\n }\n };\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\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 this.nativeElement.addEventListener('click', this.mouseClickHandler, true);\n }\n\n protected destroyChildren(): void {\n super.destroyChildren();\n this.nativeElement.removeEventListener('click', this.mouseClickHandler, true);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n private mouseClickHandler = (event: MouseEvent): void => {\n event.stopPropagation();\n if (!_.isNil(this.window)) {\n this.window.isMinimized = !this.window.isMinimized;\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-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 this.nativeElement.addEventListener('click', this.mouseClickHandler, true);\n }\n\n protected destroyChildren(): void {\n this.nativeElement.removeEventListener('click', this.mouseClickHandler, true);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tEvent Handlers\n //\n // --------------------------------------------------------------------------\n\n private mouseClickHandler = (event: MouseEvent) => {\n event.stopPropagation();\n\n if (!_.isNil(this.window)) {\n this.window.isMinimized = !this.window.isMinimized;\n }\n };\n}\n","import { EdgeOptions, Interactable, InteractEvent, ResizableOptions } from '@interactjs/types/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 { DraggableOptions, InteractEvent } from '@interactjs/types/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 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 { ComponentFactoryResolver, ComponentRef, ViewContainerRef } from '@angular/core';\nimport { APPLICATION_INJECTOR } from '../../ApplicationInjector';\nimport { ViewUtil } from '../../util/ViewUtil';\nimport { WindowCloseElementComponent } from './window-close-element/window-close-element.component';\nimport { WindowMinimizeElementComponent } from './window-minimize-element/window-minimize-element.component';\nimport { WindowResizeElementComponent } from './window-resize-element/window-resize-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 RESIZE_COMPONENT = WindowResizeElementComponent;\n public static MINIMIZE_COMPONENT = WindowMinimizeElementComponent;\n\n // --------------------------------------------------------------------------\n //\n // Properties Methods\n //\n // --------------------------------------------------------------------------\n\n protected closeWindow: ComponentRef<any>;\n protected resizedWindow: ComponentRef<any>;\n protected minimizeWindow: ComponentRef<any>;\n\n // --------------------------------------------------------------------------\n //\n // Protected Methods\n //\n // --------------------------------------------------------------------------\n\n protected setProperties(): void {\n super.setProperties();\n this.createWindowComponents();\n }\n\n protected createWindowComponents(): void {\n if (!(this.content.container instanceof ViewContainerRef)) {\n return;\n }\n if (!this.config.disableClose && !this.closeWindow) {\n let factory = this.resolver.resolveComponentFactory(WindowBaseComponent.CLOSE_COMPONENT);\n this.closeWindow = this.content.container.createComponent(factory);\n this.closeWindow.instance.window = this;\n }\n\n if (this.config.isResizeable && !this.resizedWindow) {\n let factory = this.resolver.resolveComponentFactory(WindowBaseComponent.RESIZE_COMPONENT);\n this.resizedWindow = this.content.container.createComponent(factory);\n this.resizedWindow.instance.window = this;\n }\n\n if (this.config.isMinimizable && !this.minimizeWindow) {\n let factory = this.resolver.resolveComponentFactory(WindowBaseComponent.MINIMIZE_COMPONENT);\n this.minimizeWindow = this.content.container.createComponent(factory);\n this.minimizeWindow.instance.window = this;\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 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 protected isNeedClickStopPropagation(event: MouseEvent): boolean {\n if (!super.isNeedClickStopPropagation(event)) {\n return false;\n }\n if (this.closeWindow && this.closeWindow.location.nativeElement === event.target) {\n return false;\n }\n return true;\n }\n\n // --------------------------------------------------------------------------\n //\n // Protected Properties\n //\n // --------------------------------------------------------------------------\n\n protected get resolver(): ComponentFactoryResolver {\n return APPLICATION_INJECTOR().get(ComponentFactoryResolver);\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 // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n // Components will destroy automatically\n this.closeWindow = null;\n this.resizedWindow = null;\n this.minimizeWindow = null;\n }\n}\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/observer';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport * as _ from 'lodash';\nimport { Observable, Subject } from 'rxjs';\nimport { CookieService } from '../cookie/CookieService';\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';\n\n@Injectable({ providedIn: 'root' })\nexport class WindowService extends Destroyable {\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 = 999;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(dialog: MatDialog, language: LanguageService, cookies: CookieService) {\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 let firstIndex = first.container ? parseInt(ViewUtil.getStyle(first.container.parentElement, 'zIndex'), 10) : -1;\n let secondIndex = second.container ? parseInt(ViewUtil.getStyle(second.container.parentElement, 'zIndex'), 10) : -1;\n return firstIndex > secondIndex ? -1 : 1;\n }\n\n private updateTop(): void {\n let zIndex = 0;\n let topWindow: IWindow = null;\n\n for (let window of this.windowsArray) {\n if (_.isNil(window.container)) {\n continue;\n }\n let index = parseInt(ViewUtil.getStyle(window.container.parentElement, 'zIndex'), 10);\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 for (let window of this.windowsArray) {\n if (_.isNil(window.container)) {\n continue;\n }\n window.isOnTop = window === topWindow;\n\n let zIndex = window.isOnTop ? this.topZIndex : currentIndex--;\n ViewUtil.setStyle(window.backdrop, 'zIndex', zIndex);\n ViewUtil.setStyle(window.wrapper, 'zIndex', 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 (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 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 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.properties = 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\nexport enum WindowServiceEvent {\n OPENED = 'OPENED',\n CLOSED = 'CLOSED',\n SETTED_ON_TOP = 'SETTED_ON_TOP'\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/observer';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport * as _ from 'lodash';\nimport { Observable, Subject } from 'rxjs';\nimport { WindowFactory } from '../window/WindowFactory';\nimport { IWindow } from '../window/IWindow';\nimport { BottomSheetBaseComponent } from './component/BottomSheetBaseComponent';\nimport { WindowConfig, WindowConfigOptions } from '../window/WindowConfig';\nimport { IWindowContent } from '../window/IWindowContent';\nimport { WindowServiceEvent } from '../window/WindowService';\nimport { QuestionManager } from '../question/QuestionManager';\nimport { IQuestion, IQuestionOptions, QuestionMode } from '../question/IQuestion';\nimport { WindowQuestionComponent } from '../window/component/window-question/window-question.component';\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 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 let subscription = window.events.subscribe(event => {\n switch (event) {\n case WindowServiceEvent.OPENED:\n this.observer.next(new ObservableData(WindowServiceEvent.OPENED, window));\n break;\n\n case WindowServiceEvent.CLOSED:\n subscription.unsubscribe();\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.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 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 { LanguageService } from '@ts-core/frontend/language';\nimport { LanguageModule } from '../language/LanguageModule';\nimport { BottomSheetService } from './BottomSheetService';\nimport { MatBottomSheet, MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { BottomSheetCloseElementComponent } from './component/bottom-sheet-close-element/bottom-sheet-close-element.component';\n\nconst IMPORTS = [CommonModule, FormsModule, MatBottomSheetModule, MatButtonModule, LanguageModule];\nconst ENTRY_COMPONENTS = [BottomSheetCloseElementComponent];\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: BottomSheetService,\n providers: [\n {\n provide: BottomSheetService,\n deps: [MatBottomSheet, LanguageService],\n useClass: BottomSheetService\n }\n ]\n };\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/language';\nimport { LanguageModule } from '../language/LanguageModule';\nimport { NotificationComponent } from './component/notification/notification.component';\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 useClass: NotificationService\n }\n ]\n };\n }\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/dto';\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/language';\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/util';\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 { ElementRef, HostListener, Input } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { Theme, ThemeAssetService, ThemeService } from '@ts-core/frontend/theme';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs/operators';\nimport { ViewUtil } from '../util/ViewUtil';\n\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 } from '@angular/core';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend/theme';\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 }\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","import { Directive, ElementRef } from '@angular/core';\nimport { ThemeAssetService, ThemeService } from '@ts-core/frontend/theme';\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 }\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","import { Directive, HostListener } from '@angular/core';\nimport { Destroyable } from '@ts-core/common';\nimport { ThemeService } from '@ts-core/frontend/theme';\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/theme';\nimport * as _ from 'lodash';\nimport { takeUntil } from 'rxjs/operators';\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/theme';\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 } from '@ts-core/frontend/cookie';\nimport { IThemeServiceOptions, ThemeService, ThemeAssetService } from '@ts-core/frontend/theme';\nimport { CookieModule } from '../cookie/CookieModule';\nimport { CookieService } from '../cookie/CookieService';\nimport { ThemeAssetBackgroundDirective } from './ThemeAssetBackgroundDirective';\nimport { ThemeAssetImageDirective } from './ThemeAssetImageDirective';\nimport { ThemeToggleDirective } from './ThemeToggleDirective';\nimport { ThemeStyleDirective } from './ThemeStyleDirective';\nimport { ThemeStyleHoverDirective } from './ThemeStyleHoverDirective';\nimport * as _ from 'lodash';\n\nlet declarations = [ThemeToggleDirective, ThemeAssetImageDirective, ThemeAssetBackgroundDirective, ThemeStyleDirective, ThemeStyleHoverDirective];\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: [CookieService, THEME_OPTIONS],\n useFactory: themeServiceFactory\n },\n {\n provide: ThemeAssetService,\n deps: [ThemeService],\n useFactory: themeAssetServiceFactory\n }\n ]\n };\n }\n}\n\nexport function themeServiceFactory(cookie: ICookieService, options?: IThemeServiceOptions): ThemeService {\n if (!_.isNil(options) && _.isNil(options.service)) {\n options.service = cookie;\n }\n return new ThemeService(options);\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 { Directive, ElementRef, Input } from '@angular/core';\nimport { Interactable } from '@interactjs/types/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 { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport { CookieModule } from '../cookie/CookieModule';\nimport { CookieService } from '../cookie/CookieService';\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 { 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 = [WindowQuestionComponent, WindowCloseElementComponent, WindowResizeElementComponent, WindowMinimizeElementComponent];\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: [\n {\n provide: WindowService,\n deps: [MatDialog, LanguageService, CookieService],\n useClass: WindowService\n }\n ]\n };\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ILogger, Logger, LoggerLevel } from '@ts-core/common/logger';\nimport { ICookieOptions } from '@ts-core/frontend/cookie';\nimport { ILanguageServiceOptions } from '@ts-core/frontend/language';\nimport { DefaultLogger } from '@ts-core/frontend/logger';\nimport { LoadingService, NativeWindowService } from '@ts-core/frontend/service';\nimport { IThemeServiceOptions } from '@ts-core/frontend/theme';\nimport * as _ from 'lodash';\nimport { AssetModule } from './asset/AssetModule';\nimport { CookieModule } from './cookie/CookieModule';\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 { HTMLContentTitleDirective } from './directive/HTMLContentTitleDirective';\nimport { InfiniteScrollDirective } from './directive/InfiniteScrollDirective';\nimport { ResizeDirective } from './directive/ResizeDirective';\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';\n\nconst IMPORTS = [CookieModule, ThemeModule, LanguageModule, AssetModule, WindowModule, NotificationModule];\n\nconst DECLARATIONS = [\n NgModelErrorPipe,\n TimePipe,\n FinancePipe,\n MomentDateAdaptivePipe,\n MomentDatePipe,\n MomentTimePipe,\n MomentDateFromNowPipe,\n SanitizePipe,\n TruncatePipe,\n PrettifyPipe,\n CamelCasePipe,\n StartCasePipe,\n\n FocusDirective,\n ResizeDirective,\n ScrollDirective,\n ClickToCopyDirective,\n SelectOnFocusDirective,\n ClickToSelectDirective,\n InfiniteScrollDirective,\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 LoadingService,\n NativeWindowService,\n\n { provide: VI_ANGULAR_OPTIONS, useValue: options || {} },\n { provide: Logger, deps: [VI_ANGULAR_OPTIONS], useFactory: loggerServiceFactory },\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 loggerServiceFactory(options?: IVICommonOptions): ILogger {\n return new DefaultLogger(options && !_.isNil(options.loggerLevel) ? options.loggerLevel : LoggerLevel.LOG);\n}\n\nexport const VI_ANGULAR_OPTIONS = new InjectionToken<IThemeServiceOptions>(`VI_ANGULAR_OPTIONS`);\n","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","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","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","import { EventEmitter, 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/map/dataSource';\n\nexport abstract class CdkTableBaseComponent<\n T extends CdkTablePaginableMapCollection<U, V> | CdkTableFilterableMapCollection<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<U>;\n @Output()\n public cellClicked: EventEmitter<ICdkTableCellEvent<U>>;\n\n public sortActive: keyof U;\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;\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>): keyof U {\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 cellClickHandler(item: U, column: ICdkTableColumn<U>): void {\n this.cellClicked.emit({ data: item, column: column.name });\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 ICdkTableCellEvent<U> {\n data: U;\n column: keyof U;\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 * 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","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","import { Pipe, PipeTransform } from '@angular/core';\nimport * as _ from 'lodash';\nimport { ICdkTableColumn } from './ICdkTableColumn';\n\n@Pipe({\n name: 'viCdkTableColumnValue'\n})\nexport class CdkTableColumnValuePipe implements PipeTransform {\n // --------------------------------------------------------------------------\n //\n //\tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public transform<U>(item: U, column: ICdkTableColumn<U>): string | number | U[keyof U] {\n return !_.isNil(column) && !_.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 './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 { 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 { ICdkTableSettings } from '../CdkTableBaseComponent';\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 { 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 { ICdkTableColumn } from './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>(column: ICdkTableColumn<U>): string {\n return column.isMultiline ? 'text-multi-line' : 'text-one-line';\n }\n}\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 { 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 { CdkTableColumnValuePipe } from './cdk-table/column/CdkTableColumnValuePipe';\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';\nimport { CdkTableCellClassNamePipe } from './cdk-table/column/CdkTableCellClassNamePipe';\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 CdkTableColumnValuePipe,\n CdkTableColumnClassNamePipe,\n CdkTableColumnStyleNamePipe,\n CdkTableRowStyleNamePipe,\n CdkTableRowClassNamePipe,\n CdkTableCellClassNamePipe,\n\n LanguageSelectorComponent,\n TabGroupComponent,\n MenuListComponent,\n SelectListComponent,\n CdkTablePaginableComponent,\n CdkTableFilterableComponent,\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 { ICookieOptions } from '@ts-core/frontend/cookie';\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/operators';\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, OnDestroy } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm, NgModel, Validator, ValidatorFn } from '@angular/forms';\nimport { message, ValidationResult } from './validate';\nimport { ValueAccessor } from './ValueAccessor';\n\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/language';\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 => {\n this.setLocale(item.locale);\n });\n }\n}\n","import { LoadableEvent, Loadable, LoadableStatus } from '@ts-core/common';\nimport { ExtendedError } from '@ts-core/common/error';\nimport { ObservableData } from '@ts-core/common/observer';\nimport { TransportNoConnectionError, TransportTimeoutError } from '@ts-core/common/transport';\nimport { Observable } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\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 _resource: string;\n\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 error = ExtendedError.create(error);\n\n this.status = LoadableStatus.ERROR;\n this.parseLoginErrorResponse(error);\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, error));\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 error = ExtendedError.create(error);\n this.parseLoginSidErrorResponse(error);\n\n this._isLoggedIn = false;\n this.status = LoadableStatus.ERROR;\n this.observer.next(new ObservableData(LoadableEvent.ERROR, null, error));\n this.observer.next(new ObservableData(LoginBaseServiceEvent.LOGIN_ERROR, null, error));\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._resource = 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 tryLoginBySid(): boolean {\n if (!this.isCanLoginWithSid()) {\n return false;\n }\n\n if (!this.isLoggedIn && !this.isLoading) {\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 }\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 this.parseLogoutErrorResponse(ExtendedError.create(error));\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 this.sid != null || this.getSavedSid() != null;\n }\n\n public destroy(): void {\n if (this.isDestroyed) {\n return;\n }\n super.destroy();\n\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 resource(): string {\n return this._resource;\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 { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\nimport { LoginBaseService, LoginBaseServiceEvent } from './LoginBaseService';\nimport { PromiseHandler } from '@ts-core/common/promise';\n\nexport class LoginRequireResolver implements Resolve<void> {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected login: LoginBaseService) {}\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<void> {\n if (this.login.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","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginRequireResolver } from './LoginRequireResolver';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginGuard extends LoginRequireResolver implements CanActivate {\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(login: LoginBaseService) {\n super(login);\n }\n\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n return this.login.isLoggedIn;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LoginBaseService } from './LoginBaseService';\nimport { LoginRequireResolver } from './LoginRequireResolver';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginResolver extends LoginRequireResolver {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n public static logoutUrl: string = '/login';\n public static redirectUrl: string = '/';\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(login: LoginBaseService) {\n super(login);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\nimport { LoginResolver } from './LoginResolver';\n\n@Injectable({ providedIn: 'root' })\nexport class LoginRedirectResolver implements CanActivate {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n LoginResolver.redirectUrl = state.url;\n return true;\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/util';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport { filter, takeUntil } from 'rxjs/operators';\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/util';\nimport { LanguageService } from '@ts-core/frontend/language';\nimport * as _ from 'lodash';\nimport { IListItem } from './IListItem';\nimport { FilterableMapCollection } from '@ts-core/common/map';\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/language';\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/language';\nimport { takeUntil } from 'rxjs/operators';\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/observer';\n\nimport * as _ from 'lodash';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\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/observer';\nimport { NativeWindowService } from '@ts-core/frontend/service/NativeWindowService';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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> implements CanDeactivate<T> {\n // --------------------------------------------------------------------------\n //\n // \tPublic Methods\n //\n // --------------------------------------------------------------------------\n\n public canDeactivate(\n component: IRouterDeactivatable,\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 { 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 { ObservableData } from '@ts-core/common/observer';\nimport * as _ from 'lodash';\nimport { Observable, Subject } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\nimport { LoginBaseService, LoginBaseServiceEvent } from '../login/LoginBaseService';\nimport { IUser, UserUid } from './IUser';\n\nexport abstract class UserBaseService<U extends IUser = any, V = void> {\n // --------------------------------------------------------------------------\n //\n // \tProperties\n //\n // --------------------------------------------------------------------------\n\n protected _user: U;\n protected observer: Subject<ObservableData<V | UserBaseServiceEvent, U>>;\n\n // --------------------------------------------------------------------------\n //\n // \tConstructor\n //\n // --------------------------------------------------------------------------\n\n constructor(protected login: LoginBaseService) {\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.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: any): boolean {\n if (!value || !this.user) {\n return false;\n }\n if (value.hasOwnProperty('id')) {\n return this.user.id === value.id;\n }\n return this.user.id === value;\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 // --------------------------------------------------------------------------\n //\n // \tPublic Properties\n //\n // --------------------------------------------------------------------------\n\n public get events(): Observable<ObservableData<V | UserBaseServiceEvent, 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)\n );\n }\n\n public get changed(): Observable<any> {\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","/* ======= */\nexport * from './application/ApplicationBaseComponent';\nexport * from './application/ApplicationComponent';\nexport * from './application/ApplicationComponent2';\nexport * from './application/MessageBaseComponent';\nexport * from './application/ShellBaseComponent';\n/* ======= */\nexport * from './ApplicationInjector';\n/* ======= */\nexport * from './asset/AssetBackgroundDirective';\nexport * from './asset/AssetBackgroundPipe';\nexport * from './asset/AssetIconPipe';\nexport * from './asset/AssetImagePipe';\nexport * from './asset/AssetModule';\n/* ======= */\nexport * from './component/language/language-selector/language-selector.component';\n/*\nexport * from './component/notification/notification/notification.component';\nexport * from './component/notification/NotificationBaseComponent';\nexport * from './component/notification/NotificationQuestionBaseComponent';\nexport * from './component/window/close-window-element/close-window-element.component';\nexport * from './component/window/minimize-window-element/minimize-window-element.component';\nexport * from './component/window/question/question.component';\nexport * from './component/window/resize-window-element/resize-window-element.component';\n\n\nexport * from './component/window/WindowBaseComponent';\nexport * from './component/window/WindowDragable';\nexport * from './component/window/WindowDragAreaDirective';\nexport * from './component/window/WindowElement';\nexport * from './component/window/WindowQuestionBaseComponent';\nexport * from './component/window/WindowResizeable';\n*/\n\nexport * from './component/cdk-table/CdkTableDataSource';\nexport * from './component/cdk-table/CdkTablePaginableMapCollection';\nexport * from './component/cdk-table/CdkTablePaginableBookmarkMapCollection';\nexport * from './component/VIComponentModule';\n\nexport * from './component/menu-list/menu-list.component';\nexport * from './component/select-list/select-list.component';\nexport * from './component/tab-group/tab-group.component';\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/column/ICdkTableColumn';\nexport * from './component/cdk-table/CdkTableBaseComponent';\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/HTMLContentTitleDirective';\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/LoginBaseService';\nexport * from './login/LoginGuard';\nexport * from './login/LoginRedirectResolver';\nexport * from './login/LoginRequireResolver';\nexport * from './login/LoginResolver';\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';\n/* ======= */\nexport * from './bottomSheet/BottomSheetService';\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';\nexport * from './service/PipeBaseService';\nexport * from './service/BootstrapBreakpointService';\n/* ======= */\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/ThemeAssetDirective';\nexport * from './theme/ThemeModule';\nexport * from './theme/ThemeToggleDirective';\n/* ======= */\nexport * from './user/IUser';\nexport * from './user/UserBaseService';\n/* ======= */\nexport * from './util/ViewUtil';\nexport * from './VICommonModule';\n/* ======= */\nexport * from './window/IWindow';\nexport * from './window/IWindowContent';\nexport * from './window/WindowBase';\nexport * from './window/WindowConfig';\nexport * from './window/WindowFactory';\nexport * from './window/WindowImpl';\nexport * from './window/WindowModule';\nexport * from './window/WindowProperties';\nexport * from './window/WindowService';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {AssetFilePipe as ɵa} from './asset/AssetFilePipe';\nexport {AssetSoundPipe as ɵb} from './asset/AssetSoundPipe';\nexport {AssetVideoPipe as ɵc} from './asset/AssetVideoPipe';\nexport {BottomSheetModule as ɵm} from './bottomSheet/BottomSheetModule';\nexport {BottomSheetCloseElementComponent as ɵn} from './bottomSheet/component/bottom-sheet-close-element/bottom-sheet-close-element.component';\nexport {CdkTableFilterableComponent as ɵv} from './component/cdk-table/cdk-table-filterable/cdk-table-filterable.component';\nexport {CdkTablePaginableComponent as ɵu} from './component/cdk-table/cdk-table-paginable/cdk-table-paginable.component';\nexport {CdkTableCellClassNamePipe as ɵt} from './component/cdk-table/column/CdkTableCellClassNamePipe';\nexport {CdkTableColumnClassNamePipe as ɵp} from './component/cdk-table/column/CdkTableColumnClassNamePipe';\nexport {CdkTableColumnStyleNamePipe as ɵq} from './component/cdk-table/column/CdkTableColumnStyleNamePipe';\nexport {CdkTableColumnValuePipe as ɵo} from './component/cdk-table/column/CdkTableColumnValuePipe';\nexport {CdkTableRowClassNamePipe as ɵs} from './component/cdk-table/row/CdkTableRowClassNamePipe';\nexport {CdkTableRowStyleNamePipe as ɵr} from './component/cdk-table/row/CdkTableRowStyleNamePipe';\nexport {ValueAccessor as ɵw} from './form/ValueAccessor';\nexport {AsyncValidatorArray as ɵy,ValidatorArray as ɵx} from './form/validate';\nexport {NotificationQuestionBaseComponent as ɵl} from './notification/component/NotificationQuestionBaseComponent';\nexport {NotificationComponent as ɵk} from './notification/component/notification/notification.component';\nexport {WindowDragAreaDirective as ɵd} from './window/component/WindowDragAreaDirective';\nexport {WindowElement as ɵh} from './window/component/WindowElement';\nexport {WindowQuestionBaseComponent as ɵf} from './window/component/WindowQuestionBaseComponent';\nexport {WindowCloseElementComponent as ɵg} from './window/component/window-close-element/window-close-element.component';\nexport {WindowMinimizeElementComponent as ɵj} from './window/component/window-minimize-element/window-minimize-element.component';\nexport {WindowQuestionComponent as ɵe} from './window/component/window-question/window-question.component';\nexport {WindowResizeElementComponent as ɵi} from './window/component/window-resize-element/window-resize-element.component';"],"names":["PromiseHandler","_.isNil","DestroyableContainer","ViewContainerRef","_.isNaN","_.isEmpty","_.isFunction","Assets","takeUntil","LoadableEvent","moment","numeral","QuestionMode","QuestionEvent","_.assign","Destroyable","WindowEvent","IDestroyable","MatDialogConfig","WindowAlign","Input","HostListener","Component","LanguageService","NotificationEvent","Subject","filter","DateUtil","_.find","ObservableData","NotificationServiceEvent","ObjectUtil","ArrayUtil","Injectable","MatDialog","Directive","ElementRef","Pipe","NgModule","CommonModule","BehaviorSubject","DataSourceMapCollectionEvent","FilterableDataSourceMapCollection","PaginableDataSourceMapCollection","PaginableBookmarkDataSourceMapCollection","Cookie.CookieService","InjectionToken","ResizeSensor","Direction","EventEmitter","Output","interact.default","MatPaginatorIntl","promise","TemplateRef","ComponentFactoryResolver","WindowServiceEvent","MatBottomSheet","FormsModule","MatBottomSheetModule","MatButtonModule","IMPORTS","MatDialogModule","ENTRY_COMPONENTS","DECLARATIONS","EXPORTS","_.camelCase","_.isDate","_.isString","_.isNumber","RemoveFilterableCondition","GetFilterableCondition","_.keys","DomSanitizer","_.truncate","_.capitalize","ThemeService","ThemeAssetService","RendererStyleFlags2","theme","LoadingService","NativeWindowService","Logger","ICookieOptions","DefaultLogger","LoggerLevel","MatTabsModule","MatListModule","MatMenuModule","MatSelectModule","MatSortModule","MatTableModule","MatPaginatorModule","MatProgressBarModule","Validators","of","map","MomentDateAdapter","LoadableStatus","LoginBaseServiceEvent","ExtendedError","TransportTimeoutError","TransportNoConnectionError","Loadable","_.isBoolean","FilterableMapCollection","DatePipe","BootstrapBreakpoint","merge","BootstrapBreakpointServiceEvent","_.findIndex","BreakpointObserver","NavigationStart","NavigationEnd","NavigationCancel","NavigationError","ActivatedRoute","UserBaseServiceEvent"],"mappings":"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"}
|