@ts-core/angular 11.0.89 → 13.0.4
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 +88 -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 +189 -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/{esm2015/login/LoginRequireResolver.js → esm2020/login/LoginRequireResolver.mjs} +0 -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 +132 -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 +50 -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/{esm2015/transport/TransportLazyModule.js → esm2020/transport/TransportLazyModule.mjs} +0 -0
- package/{esm2015/transport/TransportLazyModuleLoadedEvent.js → esm2020/transport/TransportLazyModuleLoadedEvent.mjs} +0 -0
- package/esm2020/ts-core-angular.mjs +5 -0
- package/{esm2015/user/IUser.js → esm2020/user/IUser.mjs} +0 -0
- package/{esm2015/user/UserBaseService.js → esm2020/user/UserBaseService.mjs} +0 -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 +128 -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 +86 -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} +3509 -3319
- package/fesm2015/ts-core-angular.mjs.map +1 -0
- package/fesm2020/ts-core-angular.mjs +9519 -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 +3 -0
- package/login/LoginRedirectResolver.d.ts +3 -0
- package/login/LoginResolver.d.ts +3 -0
- package/module/LazyModuleLoader.d.ts +3 -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 +25 -9
- package/service/BootstrapBreakpointService.d.ts +3 -0
- package/style/mat/vi-mat.scss +48 -1
- 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/ts-core-angular.d.ts +1 -24
- package/window/IWindowContent.d.ts +5 -1
- 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 -11299
- 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/LoginResolver.js +0 -30
- package/esm2015/module/LazyModuleLoader.js +0 -98
- 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 -161
- 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/transport/TransportLazy.js +0 -98
- package/esm2015/ts-core-angular.js +0 -28
- 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
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import { Destroyable } from '@ts-core/common';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { ViewUtil } from '../util/ViewUtil';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ts-core/frontend/theme";
|
|
8
|
+
export class ThemeAssetDirective extends Destroyable {
|
|
9
|
+
// --------------------------------------------------------------------------
|
|
10
|
+
//
|
|
11
|
+
// Constructor
|
|
12
|
+
//
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
constructor(element, theme, themeAsset) {
|
|
15
|
+
super();
|
|
16
|
+
this.theme = theme;
|
|
17
|
+
this.themeAsset = themeAsset;
|
|
18
|
+
this._extension = 'png';
|
|
19
|
+
this._isFile = false;
|
|
20
|
+
this._isImage = false;
|
|
21
|
+
this._isVideo = false;
|
|
22
|
+
this._isSound = false;
|
|
23
|
+
this._isBackground = false;
|
|
24
|
+
this._isIgnoreTheme = true;
|
|
25
|
+
this.element = ViewUtil.parseElement(element.nativeElement);
|
|
26
|
+
this.theme.changed.pipe(takeUntil(this.destroyed)).subscribe(() => {
|
|
27
|
+
this.isTriedThemeDefault = false;
|
|
28
|
+
this.setSourceProperties();
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
// --------------------------------------------------------------------------
|
|
32
|
+
//
|
|
33
|
+
// Private Methods
|
|
34
|
+
//
|
|
35
|
+
// --------------------------------------------------------------------------
|
|
36
|
+
getSource(id) {
|
|
37
|
+
if (_.isNil(id)) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
if (this.isImage) {
|
|
41
|
+
return this.themeAsset.getImage(id, this.extension, this.isIgnoreTheme);
|
|
42
|
+
}
|
|
43
|
+
if (this.isBackground) {
|
|
44
|
+
return this.themeAsset.getBackground(id, this.extension, this.isIgnoreTheme);
|
|
45
|
+
}
|
|
46
|
+
if (this.isSound) {
|
|
47
|
+
return this.themeAsset.getSound(id, this.extension, this.isIgnoreTheme);
|
|
48
|
+
}
|
|
49
|
+
if (this.isVideo) {
|
|
50
|
+
return this.themeAsset.getVideo(id, this.extension, this.isIgnoreTheme);
|
|
51
|
+
}
|
|
52
|
+
if (this.isFile) {
|
|
53
|
+
return this.themeAsset.getFile(id, this.extension, this.isIgnoreTheme);
|
|
54
|
+
}
|
|
55
|
+
return this.themeAsset.getIcon(id, this.extension, this.isIgnoreTheme);
|
|
56
|
+
}
|
|
57
|
+
// --------------------------------------------------------------------------
|
|
58
|
+
//
|
|
59
|
+
// Event Handlers
|
|
60
|
+
//
|
|
61
|
+
// --------------------------------------------------------------------------
|
|
62
|
+
errorLoadingHandler(event) {
|
|
63
|
+
this.errorHandler(event);
|
|
64
|
+
}
|
|
65
|
+
errorHandler(event) {
|
|
66
|
+
if (this.isTriedThemeDefault) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
this.isTriedThemeDefault = true;
|
|
70
|
+
this.source = this.getSource(this.getDefaultSourceId());
|
|
71
|
+
this.commitSourceProperties();
|
|
72
|
+
}
|
|
73
|
+
// --------------------------------------------------------------------------
|
|
74
|
+
//
|
|
75
|
+
// Protected Methods
|
|
76
|
+
//
|
|
77
|
+
// --------------------------------------------------------------------------
|
|
78
|
+
setSourceProperties() {
|
|
79
|
+
this.source = this.getSource(this.getSourceId(this.theme.theme));
|
|
80
|
+
this.commitSourceProperties();
|
|
81
|
+
}
|
|
82
|
+
getSourceId(theme) {
|
|
83
|
+
return !_.isNil(theme) ? this.name + _.capitalize(theme.name) : null;
|
|
84
|
+
}
|
|
85
|
+
getDefaultSourceId() {
|
|
86
|
+
return this.themeAsset.getName(this.name, this.isIgnoreTheme);
|
|
87
|
+
}
|
|
88
|
+
// --------------------------------------------------------------------------
|
|
89
|
+
//
|
|
90
|
+
// Public Methods
|
|
91
|
+
//
|
|
92
|
+
// --------------------------------------------------------------------------
|
|
93
|
+
destroy() {
|
|
94
|
+
if (this.isDestroyed) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
super.destroy();
|
|
98
|
+
this.name = null;
|
|
99
|
+
this.theme = null;
|
|
100
|
+
this.element = null;
|
|
101
|
+
}
|
|
102
|
+
// --------------------------------------------------------------------------
|
|
103
|
+
//
|
|
104
|
+
// Public Properties
|
|
105
|
+
//
|
|
106
|
+
// --------------------------------------------------------------------------
|
|
107
|
+
set isSound(value) {
|
|
108
|
+
if (value === this._isSound) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this._isSound = value;
|
|
112
|
+
this.setSourceProperties();
|
|
113
|
+
}
|
|
114
|
+
get isSound() {
|
|
115
|
+
return this._isSound;
|
|
116
|
+
}
|
|
117
|
+
set isVideo(value) {
|
|
118
|
+
if (value === this._isVideo) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
this._isVideo = value;
|
|
122
|
+
this.setSourceProperties();
|
|
123
|
+
}
|
|
124
|
+
get isVideo() {
|
|
125
|
+
return this._isVideo;
|
|
126
|
+
}
|
|
127
|
+
set isFile(value) {
|
|
128
|
+
if (value === this._isFile) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
this._isFile = value;
|
|
132
|
+
this.setSourceProperties();
|
|
133
|
+
}
|
|
134
|
+
get isFile() {
|
|
135
|
+
return this._isFile;
|
|
136
|
+
}
|
|
137
|
+
set isImage(value) {
|
|
138
|
+
if (value === this._isImage) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
this._isImage = value;
|
|
142
|
+
this.setSourceProperties();
|
|
143
|
+
}
|
|
144
|
+
get isImage() {
|
|
145
|
+
return this._isImage;
|
|
146
|
+
}
|
|
147
|
+
set isBackground(value) {
|
|
148
|
+
if (value === this._isBackground) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
this._isBackground = value;
|
|
152
|
+
this.setSourceProperties();
|
|
153
|
+
}
|
|
154
|
+
get isBackground() {
|
|
155
|
+
return this._isBackground;
|
|
156
|
+
}
|
|
157
|
+
set isIgnoreTheme(value) {
|
|
158
|
+
if (value === this._isIgnoreTheme) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
this._isIgnoreTheme = value;
|
|
162
|
+
this.setSourceProperties();
|
|
163
|
+
}
|
|
164
|
+
get isIgnoreTheme() {
|
|
165
|
+
return this._isIgnoreTheme;
|
|
166
|
+
}
|
|
167
|
+
get name() {
|
|
168
|
+
return this._name;
|
|
169
|
+
}
|
|
170
|
+
set name(value) {
|
|
171
|
+
if (value === this._name) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (!_.isNil(this._name)) {
|
|
175
|
+
this.removeSourceProperties();
|
|
176
|
+
}
|
|
177
|
+
this._name = value;
|
|
178
|
+
if (!_.isNil(value)) {
|
|
179
|
+
this.setSourceProperties();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
get extension() {
|
|
183
|
+
return this._extension;
|
|
184
|
+
}
|
|
185
|
+
set extension(value) {
|
|
186
|
+
if (value === this._extension) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
this._extension = value;
|
|
190
|
+
if (!_.isNil(value)) {
|
|
191
|
+
this.setSourceProperties();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
ThemeAssetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeAssetDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }, { token: i1.ThemeAssetService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
196
|
+
ThemeAssetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: ThemeAssetDirective, inputs: { isSound: "isSound", isVideo: "isVideo", isFile: "isFile", isImage: "isImage", isBackground: "isBackground", isIgnoreTheme: "isIgnoreTheme", name: "name", extension: "extension" }, host: { listeners: { "error": "errorLoadingHandler($event)" } }, usesInheritance: true, ngImport: i0 });
|
|
197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeAssetDirective, decorators: [{
|
|
198
|
+
type: Directive
|
|
199
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThemeService }, { type: i1.ThemeAssetService }]; }, propDecorators: { errorLoadingHandler: [{
|
|
200
|
+
type: HostListener,
|
|
201
|
+
args: ['error', ['$event']]
|
|
202
|
+
}], isSound: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}], isVideo: [{
|
|
205
|
+
type: Input
|
|
206
|
+
}], isFile: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}], isImage: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], isBackground: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], isIgnoreTheme: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], name: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], extension: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}] } });
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhlbWVBc3NldERpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90aGVtZS9UaGVtZUFzc2V0RGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRzVDLE1BQU0sT0FBZ0IsbUJBQXlELFNBQVEsV0FBVztJQXNCOUYsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixjQUFjO0lBQ2QsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLE9BQW1CLEVBQVksS0FBbUIsRUFBWSxVQUE2QjtRQUNuRyxLQUFLLEVBQUUsQ0FBQztRQUQrQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVksZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFwQjdGLGVBQVUsR0FBVyxLQUFLLENBQUM7UUFFM0IsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixtQkFBYyxHQUFZLElBQUksQ0FBQztRQWVyQyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBTSxDQUFDO1FBRWpFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FB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bnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdGFibGUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBUaGVtZSwgVGhlbWVBc3NldFNlcnZpY2UsIFRoZW1lU2VydmljZSB9IGZyb20gJ0B0cy1jb3JlL2Zyb250ZW5kL3RoZW1lJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vdXRpbC9WaWV3VXRpbCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRoZW1lQXNzZXREaXJlY3RpdmU8VCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+IGV4dGVuZHMgRGVzdHJveWFibGUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBfbmFtZTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfZXh0ZW5zaW9uOiBzdHJpbmcgPSAncG5nJztcblxuICAgIHByb3RlY3RlZCBfaXNGaWxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9pc0ltYWdlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9pc1ZpZGVvOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9pc1NvdW5kOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9pc0JhY2tncm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX2lzSWdub3JlVGhlbWU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJvdGVjdGVkIHNvdXJjZTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBlbGVtZW50OiBUO1xuXG4gICAgcHJpdmF0ZSBpc1RyaWVkVGhlbWVEZWZhdWx0OiBib29sZWFuO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB0aGVtZTogVGhlbWVTZXJ2aWNlLCBwcm90ZWN0ZWQgdGhlbWVBc3NldDogVGhlbWVBc3NldFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gVmlld1V0aWwucGFyc2VFbGVtZW50KGVsZW1lbnQubmF0aXZlRWxlbWVudCkgYXMgVDtcblxuICAgICAgICB0aGlzLnRoZW1lLmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1RyaWVkVGhlbWVEZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNldFNvdXJjZVByb3BlcnRpZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoXy5pc05pbChpZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzSW1hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoZW1lQXNzZXQuZ2V0SW1hZ2UoaWQsIHRoaXMuZXh0ZW5zaW9uLCB0aGlzLmlzSWdub3JlVGhlbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzQmFja2dyb3VuZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhlbWVBc3NldC5nZXRCYWNrZ3JvdW5kKGlkLCB0aGlzLmV4dGVuc2lvbiwgdGhpcy5pc0lnbm9yZVRoZW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NvdW5kKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aGVtZUFzc2V0LmdldFNvdW5kKGlkLCB0aGlzLmV4dGVuc2lvbiwgdGhpcy5pc0lnbm9yZVRoZW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1ZpZGVvKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50aGVtZUFzc2V0LmdldFZpZGVvKGlkLCB0aGlzLmV4dGVuc2lvbiwgdGhpcy5pc0lnbm9yZVRoZW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc0ZpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoZW1lQXNzZXQuZ2V0RmlsZShpZCwgdGhpcy5leHRlbnNpb24sIHRoaXMuaXNJZ25vcmVUaGVtZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudGhlbWVBc3NldC5nZXRJY29uKGlkLCB0aGlzLmV4dGVuc2lvbiwgdGhpcy5pc0lnbm9yZVRoZW1lKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdEV2ZW50IEhhbmRsZXJzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZXJyb3InLCBbJyRldmVudCddKVxuICAgIHByaXZhdGUgZXJyb3JMb2FkaW5nSGFuZGxlcihldmVudDogRXJyb3JFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVycm9ySGFuZGxlcihldmVudCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVycm9ySGFuZGxlcihldmVudDogRXJyb3JFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1RyaWVkVGhlbWVEZWZhdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1RyaWVkVGhlbWVEZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zb3VyY2UgPSB0aGlzLmdldFNvdXJjZSh0aGlzLmdldERlZmF1bHRTb3VyY2VJZCgpKTtcbiAgICAgICAgdGhpcy5jb21taXRTb3VyY2VQcm9wZXJ0aWVzKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBzZXRTb3VyY2VQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNvdXJjZSA9IHRoaXMuZ2V0U291cmNlKHRoaXMuZ2V0U291cmNlSWQodGhpcy50aGVtZS50aGVtZSkpO1xuICAgICAgICB0aGlzLmNvbW1pdFNvdXJjZVByb3BlcnRpZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0U291cmNlSWQodGhlbWU6IFRoZW1lKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoZW1lKSA/IHRoaXMubmFtZSArIF8uY2FwaXRhbGl6ZSh0aGVtZS5uYW1lKSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldERlZmF1bHRTb3VyY2VJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50aGVtZUFzc2V0LmdldE5hbWUodGhpcy5uYW1lLCB0aGlzLmlzSWdub3JlVGhlbWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjb21taXRTb3VyY2VQcm9wZXJ0aWVzKCk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVtb3ZlU291cmNlUHJvcGVydGllcygpOiB2b2lkO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICB0aGlzLm5hbWUgPSBudWxsO1xuICAgICAgICB0aGlzLnRoZW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlzU291bmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc1NvdW5kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNTb3VuZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldFNvdXJjZVByb3BlcnRpZXMoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBpc1NvdW5kKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTb3VuZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaXNWaWRlbyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzVmlkZW8pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc1ZpZGVvID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0U291cmNlUHJvcGVydGllcygpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGlzVmlkZW8oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZpZGVvO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc0ZpbGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc0ZpbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0ZpbGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTb3VyY2VQcm9wZXJ0aWVzKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgaXNGaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNGaWxlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc0ltYWdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5faXNJbWFnZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzSW1hZ2UgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRTb3VyY2VQcm9wZXJ0aWVzKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgaXNJbWFnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSW1hZ2U7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlzQmFja2dyb3VuZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzQmFja2dyb3VuZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzQmFja2dyb3VuZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldFNvdXJjZVByb3BlcnRpZXMoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBpc0JhY2tncm91bmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0JhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlzSWdub3JlVGhlbWUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9pc0lnbm9yZVRoZW1lKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNJZ25vcmVUaGVtZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldFNvdXJjZVByb3BlcnRpZXMoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBpc0lnbm9yZVRoZW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJZ25vcmVUaGVtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9uYW1lKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMuX25hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVNvdXJjZVByb3BlcnRpZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9uYW1lID0gdmFsdWU7XG4gICAgICAgIGlmICghXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U291cmNlUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleHRlbnNpb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dGVuc2lvbjtcbiAgICB9XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGV4dGVuc2lvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fZXh0ZW5zaW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZXh0ZW5zaW9uID0gdmFsdWU7XG4gICAgICAgIGlmICghXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U291cmNlUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { ThemeAssetDirective } from './ThemeAssetDirective';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ts-core/frontend/theme";
|
|
5
|
+
export class ThemeAssetImageDirective extends ThemeAssetDirective {
|
|
6
|
+
// --------------------------------------------------------------------------
|
|
7
|
+
//
|
|
8
|
+
// Constructor
|
|
9
|
+
//
|
|
10
|
+
// --------------------------------------------------------------------------
|
|
11
|
+
constructor(element, theme, themeAsset) {
|
|
12
|
+
super(element, theme, themeAsset);
|
|
13
|
+
}
|
|
14
|
+
// --------------------------------------------------------------------------
|
|
15
|
+
//
|
|
16
|
+
// Private Methods
|
|
17
|
+
//
|
|
18
|
+
// --------------------------------------------------------------------------
|
|
19
|
+
commitSourceProperties() {
|
|
20
|
+
this.element.src = this.source;
|
|
21
|
+
}
|
|
22
|
+
removeSourceProperties() {
|
|
23
|
+
this.element.src = null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
ThemeAssetImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeAssetImageDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }, { token: i1.ThemeAssetService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
+
ThemeAssetImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: ThemeAssetImageDirective, selector: "[vi-theme-image]", usesInheritance: true, ngImport: i0 });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeAssetImageDirective, decorators: [{
|
|
29
|
+
type: Directive,
|
|
30
|
+
args: [{
|
|
31
|
+
selector: '[vi-theme-image]'
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThemeService }, { type: i1.ThemeAssetService }]; } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhlbWVBc3NldEltYWdlRGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RoZW1lL1RoZW1lQXNzZXRJbWFnZURpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFLNUQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG1CQUFxQztJQUMvRSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQVksT0FBbUIsRUFBRSxLQUFtQixFQUFFLFVBQTZCO1FBQy9FLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ25DLENBQUM7SUFDUyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7O3FIQXRCUSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZUFzc2V0U2VydmljZSwgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHRzLWNvcmUvZnJvbnRlbmQvdGhlbWUnO1xuaW1wb3J0IHsgVGhlbWVBc3NldERpcmVjdGl2ZSB9IGZyb20gJy4vVGhlbWVBc3NldERpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3ZpLXRoZW1lLWltYWdlXSdcbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVBc3NldEltYWdlRGlyZWN0aXZlIGV4dGVuZHMgVGhlbWVBc3NldERpcmVjdGl2ZTxIVE1MSW1hZ2VFbGVtZW50PiB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHRoZW1lOiBUaGVtZVNlcnZpY2UsIHRoZW1lQXNzZXQ6IFRoZW1lQXNzZXRTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnQsIHRoZW1lLCB0aGVtZUFzc2V0KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByaXZhdGUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBjb21taXRTb3VyY2VQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3JjID0gdGhpcy5zb3VyY2U7XG4gICAgfVxuICAgIHByb3RlY3RlZCByZW1vdmVTb3VyY2VQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3JjID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { InjectionToken, NgModule } from '@angular/core';
|
|
2
|
+
import { ThemeService, ThemeAssetService } from '@ts-core/frontend/theme';
|
|
3
|
+
import { CookieModule } from '../cookie/CookieModule';
|
|
4
|
+
import { CookieService } from '../cookie/CookieService';
|
|
5
|
+
import { ThemeAssetBackgroundDirective } from './ThemeAssetBackgroundDirective';
|
|
6
|
+
import { ThemeAssetImageDirective } from './ThemeAssetImageDirective';
|
|
7
|
+
import { ThemeToggleDirective } from './ThemeToggleDirective';
|
|
8
|
+
import { ThemeStyleDirective } from './ThemeStyleDirective';
|
|
9
|
+
import { ThemeStyleHoverDirective } from './ThemeStyleHoverDirective';
|
|
10
|
+
import * as _ from 'lodash';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
let declarations = [ThemeToggleDirective, ThemeAssetImageDirective, ThemeAssetBackgroundDirective, ThemeStyleDirective, ThemeStyleHoverDirective];
|
|
13
|
+
export class ThemeModule {
|
|
14
|
+
// --------------------------------------------------------------------------
|
|
15
|
+
//
|
|
16
|
+
// Static Methods
|
|
17
|
+
//
|
|
18
|
+
// --------------------------------------------------------------------------
|
|
19
|
+
static forRoot(options) {
|
|
20
|
+
return {
|
|
21
|
+
ngModule: ThemeModule,
|
|
22
|
+
providers: [
|
|
23
|
+
{
|
|
24
|
+
provide: THEME_OPTIONS,
|
|
25
|
+
useValue: options || {}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
provide: ThemeService,
|
|
29
|
+
deps: [CookieService, THEME_OPTIONS],
|
|
30
|
+
useFactory: themeServiceFactory
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
provide: ThemeAssetService,
|
|
34
|
+
deps: [ThemeService],
|
|
35
|
+
useFactory: themeAssetServiceFactory
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
42
|
+
ThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeModule, declarations: [ThemeToggleDirective, ThemeAssetImageDirective, ThemeAssetBackgroundDirective, ThemeStyleDirective, ThemeStyleHoverDirective], imports: [CookieModule], exports: [ThemeToggleDirective, ThemeAssetImageDirective, ThemeAssetBackgroundDirective, ThemeStyleDirective, ThemeStyleHoverDirective] });
|
|
43
|
+
ThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeModule, imports: [[CookieModule]] });
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeModule, decorators: [{
|
|
45
|
+
type: NgModule,
|
|
46
|
+
args: [{
|
|
47
|
+
imports: [CookieModule],
|
|
48
|
+
declarations,
|
|
49
|
+
exports: declarations
|
|
50
|
+
}]
|
|
51
|
+
}] });
|
|
52
|
+
export function themeServiceFactory(cookie, options) {
|
|
53
|
+
if (!_.isNil(options) && _.isNil(options.service)) {
|
|
54
|
+
options.service = cookie;
|
|
55
|
+
}
|
|
56
|
+
return new ThemeService(options);
|
|
57
|
+
}
|
|
58
|
+
export function themeAssetServiceFactory(theme) {
|
|
59
|
+
return new ThemeAssetService(theme);
|
|
60
|
+
}
|
|
61
|
+
export const THEME_OPTIONS = new InjectionToken(`THEME_OPTIONS`);
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhlbWVNb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGhlbWUvVGhlbWVNb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBd0IsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFFNUIsSUFBSSxZQUFZLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSw2QkFBNkIsRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBT2xKLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUE4QjtRQUNoRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLFdBQVc7WUFDckIsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxhQUFhO29CQUN0QixRQUFRLEVBQUUsT0FBTyxJQUFJLEVBQUU7aUJBQzFCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxZQUFZO29CQUNyQixJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDO29CQUNwQyxVQUFVLEVBQUUsbUJBQW1CO2lCQUNsQztnQkFDRDtvQkFDSSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3BCLFVBQVUsRUFBRSx3QkFBd0I7aUJBQ3ZDO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzs7d0dBM0JRLFdBQVc7eUdBQVgsV0FBVyxpQkFQSixvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSw2QkFBNkIsRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsYUFHbEksWUFBWSxhQUhOLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLDZCQUE2QixFQUFFLG1CQUFtQixFQUFFLHdCQUF3Qjt5R0FPbkksV0FBVyxZQUpYLENBQUMsWUFBWSxDQUFDOzJGQUlkLFdBQVc7a0JBTHZCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZO29CQUNaLE9BQU8sRUFBRSxZQUFZO2lCQUN4Qjs7QUErQkQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE1BQXNCLEVBQUUsT0FBOEI7SUFDdEYsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDL0MsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7S0FDNUI7SUFDRCxPQUFPLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBbUI7SUFDeEQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQXVCLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQ29va2llU2VydmljZSB9IGZyb20gJ0B0cy1jb3JlL2Zyb250ZW5kL2Nvb2tpZSc7XG5pbXBvcnQgeyBJVGhlbWVTZXJ2aWNlT3B0aW9ucywgVGhlbWVTZXJ2aWNlLCBUaGVtZUFzc2V0U2VydmljZSB9IGZyb20gJ0B0cy1jb3JlL2Zyb250ZW5kL3RoZW1lJztcbmltcG9ydCB7IENvb2tpZU1vZHVsZSB9IGZyb20gJy4uL2Nvb2tpZS9Db29raWVNb2R1bGUnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJy4uL2Nvb2tpZS9Db29raWVTZXJ2aWNlJztcbmltcG9ydCB7IFRoZW1lQXNzZXRCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi9UaGVtZUFzc2V0QmFja2dyb3VuZERpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaGVtZUFzc2V0SW1hZ2VEaXJlY3RpdmUgfSBmcm9tICcuL1RoZW1lQXNzZXRJbWFnZURpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaGVtZVRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4vVGhlbWVUb2dnbGVEaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGhlbWVTdHlsZURpcmVjdGl2ZSB9IGZyb20gJy4vVGhlbWVTdHlsZURpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUaGVtZVN0eWxlSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuL1RoZW1lU3R5bGVIb3ZlckRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbmxldCBkZWNsYXJhdGlvbnMgPSBbVGhlbWVUb2dnbGVEaXJlY3RpdmUsIFRoZW1lQXNzZXRJbWFnZURpcmVjdGl2ZSwgVGhlbWVBc3NldEJhY2tncm91bmREaXJlY3RpdmUsIFRoZW1lU3R5bGVEaXJlY3RpdmUsIFRoZW1lU3R5bGVIb3ZlckRpcmVjdGl2ZV07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0Nvb2tpZU1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zLFxuICAgIGV4cG9ydHM6IGRlY2xhcmF0aW9uc1xufSlcbmV4cG9ydCBjbGFzcyBUaGVtZU1vZHVsZSB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0U3RhdGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgc3RhdGljIGZvclJvb3Qob3B0aW9ucz86IElUaGVtZVNlcnZpY2VPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUaGVtZU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFRoZW1lTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBUSEVNRV9PUFRJT05TLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyB8fCB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBUaGVtZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtDb29raWVTZXJ2aWNlLCBUSEVNRV9PUFRJT05TXSxcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogdGhlbWVTZXJ2aWNlRmFjdG9yeVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBUaGVtZUFzc2V0U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW1RoZW1lU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IHRoZW1lQXNzZXRTZXJ2aWNlRmFjdG9yeVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGVtZVNlcnZpY2VGYWN0b3J5KGNvb2tpZTogSUNvb2tpZVNlcnZpY2UsIG9wdGlvbnM/OiBJVGhlbWVTZXJ2aWNlT3B0aW9ucyk6IFRoZW1lU2VydmljZSB7XG4gICAgaWYgKCFfLmlzTmlsKG9wdGlvbnMpICYmIF8uaXNOaWwob3B0aW9ucy5zZXJ2aWNlKSkge1xuICAgICAgICBvcHRpb25zLnNlcnZpY2UgPSBjb29raWU7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVGhlbWVTZXJ2aWNlKG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhlbWVBc3NldFNlcnZpY2VGYWN0b3J5KHRoZW1lOiBUaGVtZVNlcnZpY2UpOiBUaGVtZUFzc2V0U2VydmljZSB7XG4gICAgcmV0dXJuIG5ldyBUaGVtZUFzc2V0U2VydmljZSh0aGVtZSk7XG59XG5cbmV4cG9ydCBjb25zdCBUSEVNRV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPElUaGVtZVNlcnZpY2VPcHRpb25zPihgVEhFTUVfT1BUSU9OU2ApO1xuIl19
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { Destroyable } from '@ts-core/common';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { ViewUtil } from '../util/ViewUtil';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@ts-core/frontend/theme";
|
|
8
|
+
export class ThemeStyleDirective extends Destroyable {
|
|
9
|
+
// --------------------------------------------------------------------------
|
|
10
|
+
//
|
|
11
|
+
// Constructor
|
|
12
|
+
//
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
constructor(element, theme) {
|
|
15
|
+
super();
|
|
16
|
+
this.theme = theme;
|
|
17
|
+
this.element = ViewUtil.parseElement(element.nativeElement);
|
|
18
|
+
this.theme.changed.pipe(takeUntil(this.destroyed)).subscribe(() => this.stylePropertiesAdd());
|
|
19
|
+
}
|
|
20
|
+
// --------------------------------------------------------------------------
|
|
21
|
+
//
|
|
22
|
+
// Protected Methods
|
|
23
|
+
//
|
|
24
|
+
// --------------------------------------------------------------------------
|
|
25
|
+
commitStyleProperties(name, value) {
|
|
26
|
+
ViewUtil.setStyle(this.element, name, value, this.flags);
|
|
27
|
+
}
|
|
28
|
+
stylePropertiesCheck() {
|
|
29
|
+
if (this.isNeedStyleAdd()) {
|
|
30
|
+
this.stylePropertiesAdd();
|
|
31
|
+
}
|
|
32
|
+
else if (this.isNeedStyleRemove()) {
|
|
33
|
+
this.stylePropertiesRemove();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
stylePropertiesRemove() {
|
|
37
|
+
ViewUtil.removeStyle(this.element, this.styleName);
|
|
38
|
+
}
|
|
39
|
+
stylePropertiesAdd() {
|
|
40
|
+
this.commitStyleProperties(this.styleName, this.theme.getStyle(this.key));
|
|
41
|
+
}
|
|
42
|
+
isNeedStyleAdd() {
|
|
43
|
+
return !_.isNil(this.theme.theme) && !_.isNil(this.styleName);
|
|
44
|
+
}
|
|
45
|
+
isNeedStyleRemove() {
|
|
46
|
+
return !_.isNil(this.styleName);
|
|
47
|
+
}
|
|
48
|
+
// --------------------------------------------------------------------------
|
|
49
|
+
//
|
|
50
|
+
// Public Methods
|
|
51
|
+
//
|
|
52
|
+
// --------------------------------------------------------------------------
|
|
53
|
+
destroy() {
|
|
54
|
+
if (this.isDestroyed) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
super.destroy();
|
|
58
|
+
this.key = null;
|
|
59
|
+
this.theme = null;
|
|
60
|
+
this.element = null;
|
|
61
|
+
}
|
|
62
|
+
// --------------------------------------------------------------------------
|
|
63
|
+
//
|
|
64
|
+
// Public Properties
|
|
65
|
+
//
|
|
66
|
+
// --------------------------------------------------------------------------
|
|
67
|
+
get flags() {
|
|
68
|
+
return this._flags;
|
|
69
|
+
}
|
|
70
|
+
set flags(value) {
|
|
71
|
+
if (value === this._flags) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
this._flags = value;
|
|
75
|
+
this.stylePropertiesCheck();
|
|
76
|
+
}
|
|
77
|
+
get styleName() {
|
|
78
|
+
return this._styleName;
|
|
79
|
+
}
|
|
80
|
+
set styleName(value) {
|
|
81
|
+
if (value === this._styleName) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
this._styleName = value;
|
|
85
|
+
this.stylePropertiesCheck();
|
|
86
|
+
}
|
|
87
|
+
get key() {
|
|
88
|
+
return this._key;
|
|
89
|
+
}
|
|
90
|
+
set key(value) {
|
|
91
|
+
if (value === this._key) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
this._key = value;
|
|
95
|
+
if (!_.isNil(value)) {
|
|
96
|
+
this.stylePropertiesCheck();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
ThemeStyleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeStyleDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
101
|
+
ThemeStyleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: ThemeStyleDirective, selector: "[vi-theme-style]", inputs: { flags: "flags", styleName: "styleName", key: ["vi-theme-style", "key"] }, usesInheritance: true, ngImport: i0 });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeStyleDirective, decorators: [{
|
|
103
|
+
type: Directive,
|
|
104
|
+
args: [{
|
|
105
|
+
selector: '[vi-theme-style]'
|
|
106
|
+
}]
|
|
107
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThemeService }]; }, propDecorators: { flags: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], styleName: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}], key: [{
|
|
112
|
+
type: Input,
|
|
113
|
+
args: ['vi-theme-style']
|
|
114
|
+
}] } });
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhlbWVTdHlsZURpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90aGVtZS9UaGVtZVN0eWxlRGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBSzVDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBYWhELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsY0FBYztJQUNkLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxPQUFtQixFQUFZLEtBQW1CO1FBQzFELEtBQUssRUFBRSxDQUFDO1FBRCtCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFHMUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLG9CQUFvQjtJQUNwQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLHFCQUFxQixDQUFDLElBQVksRUFBRSxLQUFhO1FBQ3ZELFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxF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QkFEZixLQUFLO2dCQWFLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBYUssR0FBRztzQkFEYixLQUFLO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIFJlbmRlcmVyU3R5bGVGbGFnczIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IFRoZW1lU2VydmljZSB9IGZyb20gJ0B0cy1jb3JlL2Zyb250ZW5kL3RoZW1lJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vdXRpbC9WaWV3VXRpbCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3ZpLXRoZW1lLXN0eWxlXSdcbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVTdHlsZURpcmVjdGl2ZSBleHRlbmRzIERlc3Ryb3lhYmxlIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgX2tleTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfZmxhZ3M6IFJlbmRlcmVyU3R5bGVGbGFnczI7XG4gICAgcHJvdGVjdGVkIF9zdHlsZU5hbWU6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgdGhlbWU6IFRoZW1lU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IFZpZXdVdGlsLnBhcnNlRWxlbWVudChlbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLnRoZW1lLmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdHlsZVByb3BlcnRpZXNBZGQoKSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBjb21taXRTdHlsZVByb3BlcnRpZXMobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIFZpZXdVdGlsLnNldFN0eWxlKHRoaXMuZWxlbWVudCwgbmFtZSwgdmFsdWUsIHRoaXMuZmxhZ3MpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdHlsZVByb3BlcnRpZXNDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNOZWVkU3R5bGVBZGQoKSkge1xuICAgICAgICAgICAgdGhpcy5zdHlsZVByb3BlcnRpZXNBZGQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzTmVlZFN0eWxlUmVtb3ZlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVQcm9wZXJ0aWVzUmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3R5bGVQcm9wZXJ0aWVzUmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICBWaWV3VXRpbC5yZW1vdmVTdHlsZSh0aGlzLmVsZW1lbnQsIHRoaXMuc3R5bGVOYW1lKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3R5bGVQcm9wZXJ0aWVzQWRkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbW1pdFN0eWxlUHJvcGVydGllcyh0aGlzLnN0eWxlTmFtZSwgdGhpcy50aGVtZS5nZXRTdHlsZSh0aGlzLmtleSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc05lZWRTdHlsZUFkZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMudGhlbWUudGhlbWUpICYmICFfLmlzTmlsKHRoaXMuc3R5bGVOYW1lKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNOZWVkU3R5bGVSZW1vdmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLnN0eWxlTmFtZSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICB0aGlzLmtleSA9IG51bGw7XG4gICAgICAgIHRoaXMudGhlbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IGZsYWdzKCk6IFJlbmRlcmVyU3R5bGVGbGFnczIge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmxhZ3M7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBmbGFncyh2YWx1ZTogUmVuZGVyZXJTdHlsZUZsYWdzMikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2ZsYWdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZmxhZ3MgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zdHlsZVByb3BlcnRpZXNDaGVjaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3R5bGVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZU5hbWU7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzdHlsZU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX3N0eWxlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N0eWxlTmFtZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnN0eWxlUHJvcGVydGllc0NoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBrZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2tleTtcbiAgICB9XG4gICAgQElucHV0KCd2aS10aGVtZS1zdHlsZScpXG4gICAgcHVibGljIHNldCBrZXkodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2tleSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2tleSA9IHZhbHVlO1xuICAgICAgICBpZiAoIV8uaXNOaWwodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlUHJvcGVydGllc0NoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Directive, Input, RendererStyleFlags2 } from '@angular/core';
|
|
2
|
+
import { ThemeStyleDirective } from './ThemeStyleDirective';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ts-core/frontend/theme";
|
|
5
|
+
export class ThemeStyleHoverDirective extends ThemeStyleDirective {
|
|
6
|
+
// --------------------------------------------------------------------------
|
|
7
|
+
//
|
|
8
|
+
// Constructor
|
|
9
|
+
//
|
|
10
|
+
// --------------------------------------------------------------------------
|
|
11
|
+
constructor(element, theme) {
|
|
12
|
+
super(element, theme);
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
//
|
|
15
|
+
// Properties
|
|
16
|
+
//
|
|
17
|
+
// --------------------------------------------------------------------------
|
|
18
|
+
this._isHover = false;
|
|
19
|
+
// --------------------------------------------------------------------------
|
|
20
|
+
//
|
|
21
|
+
// Event Handlers
|
|
22
|
+
//
|
|
23
|
+
// --------------------------------------------------------------------------
|
|
24
|
+
this.mouseEnter = (event) => {
|
|
25
|
+
this.isHover = true;
|
|
26
|
+
};
|
|
27
|
+
this.mouseLeave = (event) => {
|
|
28
|
+
this.isHover = false;
|
|
29
|
+
};
|
|
30
|
+
this.flags = RendererStyleFlags2.Important;
|
|
31
|
+
this.element.addEventListener('mouseenter', this.mouseEnter, false);
|
|
32
|
+
this.element.addEventListener('mouseleave', this.mouseLeave, false);
|
|
33
|
+
}
|
|
34
|
+
// --------------------------------------------------------------------------
|
|
35
|
+
//
|
|
36
|
+
// Protected Methods
|
|
37
|
+
//
|
|
38
|
+
// --------------------------------------------------------------------------
|
|
39
|
+
isNeedStyleAdd() {
|
|
40
|
+
return this.isHover && super.isNeedStyleAdd();
|
|
41
|
+
}
|
|
42
|
+
isNeedStyleRemove() {
|
|
43
|
+
return !this.isHover || super.isNeedStyleRemove();
|
|
44
|
+
}
|
|
45
|
+
// --------------------------------------------------------------------------
|
|
46
|
+
//
|
|
47
|
+
// Public Methods
|
|
48
|
+
//
|
|
49
|
+
// --------------------------------------------------------------------------
|
|
50
|
+
destroy() {
|
|
51
|
+
if (this.isDestroyed) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.element.removeEventListener('mouseenter', this.mouseEnter, false);
|
|
55
|
+
this.element.removeEventListener('mouseleave', this.mouseLeave, false);
|
|
56
|
+
super.destroy();
|
|
57
|
+
}
|
|
58
|
+
// --------------------------------------------------------------------------
|
|
59
|
+
//
|
|
60
|
+
// Public Properties
|
|
61
|
+
//
|
|
62
|
+
// --------------------------------------------------------------------------
|
|
63
|
+
get isHover() {
|
|
64
|
+
return this._isHover;
|
|
65
|
+
}
|
|
66
|
+
set isHover(value) {
|
|
67
|
+
if (value === this._isHover) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this._isHover = value;
|
|
71
|
+
this.stylePropertiesCheck();
|
|
72
|
+
}
|
|
73
|
+
get key() {
|
|
74
|
+
return super.key;
|
|
75
|
+
}
|
|
76
|
+
set key(value) {
|
|
77
|
+
super.key = value;
|
|
78
|
+
}
|
|
79
|
+
get styleName() {
|
|
80
|
+
return super.styleName;
|
|
81
|
+
}
|
|
82
|
+
set styleName(value) {
|
|
83
|
+
super.styleName = value;
|
|
84
|
+
}
|
|
85
|
+
get flags() {
|
|
86
|
+
return super.flags;
|
|
87
|
+
}
|
|
88
|
+
set flags(value) {
|
|
89
|
+
super.flags = value;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
ThemeStyleHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeStyleHoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
93
|
+
ThemeStyleHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: ThemeStyleHoverDirective, selector: "[vi-theme-style-hover]", inputs: { key: ["vi-theme-style-hover", "key"], styleName: "styleName", flags: "flags" }, usesInheritance: true, ngImport: i0 });
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ThemeStyleHoverDirective, decorators: [{
|
|
95
|
+
type: Directive,
|
|
96
|
+
args: [{
|
|
97
|
+
selector: '[vi-theme-style-hover]'
|
|
98
|
+
}]
|
|
99
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThemeService }]; }, propDecorators: { key: [{
|
|
100
|
+
type: Input,
|
|
101
|
+
args: ['vi-theme-style-hover']
|
|
102
|
+
}], styleName: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], flags: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}] } });
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhlbWVTdHlsZUhvdmVyRGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RoZW1lL1RoZW1lU3R5bGVIb3ZlckRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBTTVELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxtQkFBbUI7SUFTN0QsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixjQUFjO0lBQ2QsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLE9BQW1CLEVBQUUsS0FBbUI7UUFDaEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQWYxQiw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLGFBQWE7UUFDYixFQUFFO1FBQ0YsNkVBQTZFO1FBRW5FLGFBQVEsR0FBWSxLQUFLLENBQUM7UUE4QnBDLDZFQUE2RTtRQUM3RSxFQUFFO1FBQ0YsaUJBQWlCO1FBQ2pCLEVBQUU7UUFDRiw2RUFBNkU7UUFFbkUsZUFBVSxHQUFHLENBQUMsS0FBaUIsRUFBUSxFQUFFO1lBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQztRQUVRLGVBQVUsR0FBRyxDQUFDLEtBQWlCLEVBQVEsRUFBRTtZQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLENBQUM7UUEvQkUsSUFBSSxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLG9CQUFvQjtJQUNwQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLGNBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRVMsaUJBQWlCO1FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFnQkQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixpQkFBaUI7SUFDakIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysb0JBQW9CO0lBQ3BCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQzdCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsR0FBRztRQUNWLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFDVyxHQUFHLENBQUMsS0FBYTtRQUN4QixLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFDVyxTQUFTLENBQUMsS0FBYTtRQUM5QixLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUNXLEtBQUssQ0FBQyxLQUEwQjtRQUN2QyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDOztxSEF6R1Esd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNyQzs0SEF3RmMsR0FBRztzQkFEYixLQUFLO3VCQUFDLHNCQUFzQjtnQkFTbEIsU0FBUztzQkFEbkIsS0FBSztnQkFTSyxLQUFLO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBSZW5kZXJlclN0eWxlRmxhZ3MyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICdAdHMtY29yZS9mcm9udGVuZC90aGVtZSc7XG5pbXBvcnQgeyBUaGVtZVN0eWxlRGlyZWN0aXZlIH0gZnJvbSAnLi9UaGVtZVN0eWxlRGlyZWN0aXZlJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdmktdGhlbWUtc3R5bGUtaG92ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVN0eWxlSG92ZXJEaXJlY3RpdmUgZXh0ZW5kcyBUaGVtZVN0eWxlRGlyZWN0aXZlIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgX2lzSG92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmLCB0aGVtZTogVGhlbWVTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnQsIHRoZW1lKTtcblxuICAgICAgICB0aGlzLmZsYWdzID0gUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQ7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5tb3VzZUVudGVyLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5tb3VzZUxlYXZlLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBpc05lZWRTdHlsZUFkZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNIb3ZlciAmJiBzdXBlci5pc05lZWRTdHlsZUFkZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc05lZWRTdHlsZVJlbW92ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzSG92ZXIgfHwgc3VwZXIuaXNOZWVkU3R5bGVSZW1vdmUoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdEV2ZW50IEhhbmRsZXJzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIG1vdXNlRW50ZXIgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc0hvdmVyID0gdHJ1ZTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIG1vdXNlTGVhdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc0hvdmVyID0gZmFsc2U7XG4gICAgfTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMubW91c2VFbnRlciwgZmFsc2UpO1xuICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMubW91c2VMZWF2ZSwgZmFsc2UpO1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgaXNIb3ZlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSG92ZXI7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNIb3Zlcih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUgPT09IHRoaXMuX2lzSG92ZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc0hvdmVyID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc3R5bGVQcm9wZXJ0aWVzQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGtleSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc3VwZXIua2V5O1xuICAgIH1cbiAgICBASW5wdXQoJ3ZpLXRoZW1lLXN0eWxlLWhvdmVyJylcbiAgICBwdWJsaWMgc2V0IGtleSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyLmtleSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3R5bGVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBzdXBlci5zdHlsZU5hbWU7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzdHlsZU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBzdXBlci5zdHlsZU5hbWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZsYWdzKCk6IFJlbmRlcmVyU3R5bGVGbGFnczIge1xuICAgICAgICByZXR1cm4gc3VwZXIuZmxhZ3M7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBmbGFncyh2YWx1ZTogUmVuZGVyZXJTdHlsZUZsYWdzMikge1xuICAgICAgICBzdXBlci5mbGFncyA9IHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|