@ts-core/angular 15.0.60 → 17.0.10
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/asset/AssetBackgroundDirective.d.ts +1 -1
- package/cookie/CookieService.d.ts +1 -3
- package/directive/AspectRatioResizeDirective.d.ts +1 -1
- package/directive/AutoScrollBottomDirective.d.ts +1 -1
- package/directive/ClickToCopyDirective.d.ts +1 -1
- package/directive/FocusDirective.d.ts +1 -1
- package/directive/HTMLContentTitleDirective.d.ts +1 -1
- package/directive/HTMLTitleDirective.d.ts +1 -1
- package/directive/InfiniteScrollDirective.d.ts +1 -1
- package/directive/ResizeDirective.d.ts +1 -1
- package/directive/ScrollCheckDirective.d.ts +1 -1
- package/directive/ScrollDirective.d.ts +1 -1
- package/esm2022/VIModule.mjs +190 -0
- package/esm2022/application/ApplicationBaseComponent.mjs +96 -0
- package/esm2022/application/ApplicationComponent.mjs +64 -0
- package/esm2022/application/MessageBaseComponent.mjs +60 -0
- package/esm2022/asset/AssetBackgroundDirective.mjs +152 -0
- package/{esm2020 → esm2022}/asset/AssetBackgroundPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetFilePipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetIconPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetImagePipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetModule.mjs +5 -5
- package/{esm2020 → esm2022}/asset/AssetSoundPipe.mjs +4 -4
- package/{esm2020 → esm2022}/asset/AssetVideoPipe.mjs +4 -4
- package/{esm2020 → esm2022}/cookie/CookieModule.mjs +5 -5
- package/{esm2020 → esm2022}/cookie/CookieOptions.mjs +7 -1
- package/esm2022/cookie/CookieService.mjs +71 -0
- package/esm2022/directive/AspectRatioResizeDirective.mjs +134 -0
- package/esm2022/directive/AutoScrollBottomDirective.mjs +122 -0
- package/esm2022/directive/ClickToCopyDirective.mjs +53 -0
- package/esm2022/directive/ClickToSelectDirective.mjs +55 -0
- package/esm2022/directive/FocusDirective.mjs +60 -0
- package/esm2022/directive/HTMLContentTitleDirective.mjs +74 -0
- package/esm2022/directive/HTMLTitleDirective.mjs +73 -0
- package/esm2022/directive/InfiniteScrollDirective.mjs +71 -0
- package/{esm2020 → esm2022}/directive/IsBrowserDirective.mjs +5 -5
- package/{esm2020 → esm2022}/directive/IsServerDirective.mjs +5 -5
- package/esm2022/directive/ResizeDirective.mjs +80 -0
- package/esm2022/directive/ScrollCheckDirective.mjs +104 -0
- package/esm2022/directive/ScrollDirective.mjs +120 -0
- package/esm2022/directive/SelectOnFocusDirective.mjs +48 -0
- package/esm2022/directive/StructureDirective.mjs +80 -0
- package/esm2022/language/LanguageDirective.mjs +102 -0
- package/esm2022/language/LanguageHasDirective.mjs +87 -0
- package/{esm2020 → esm2022}/language/LanguageModule.mjs +5 -5
- package/esm2022/language/LanguagePipe.mjs +88 -0
- package/esm2022/language/LanguagePipeHas.mjs +64 -0
- package/esm2022/language/LanguagePipeHasPure.mjs +41 -0
- package/esm2022/language/LanguagePipePure.mjs +40 -0
- package/esm2022/language/LanguageRequireResolver.mjs +37 -0
- package/{esm2020 → esm2022}/language/LanguageResolver.mjs +5 -5
- package/esm2022/list/ListItem.mjs +148 -0
- package/esm2022/list/ListItems.mjs +107 -0
- package/esm2022/list/select/RouterSelectListItems.mjs +60 -0
- package/esm2022/list/select/SelectListItem.mjs +67 -0
- package/esm2022/list/select/SelectListItems.mjs +130 -0
- package/esm2022/login/LoginBaseService.mjs +191 -0
- package/esm2022/login/LoginGuard.mjs +41 -0
- package/esm2022/login/LoginIfCanGuard.mjs +55 -0
- package/esm2022/login/LoginNotGuard.mjs +41 -0
- package/esm2022/login/LoginRequireResolver.mjs +40 -0
- package/{esm2020 → esm2022}/login/LoginResolver.mjs +6 -6
- package/esm2022/login/LoginTokenStorage.mjs +18 -0
- package/esm2022/manager/FocusManager.mjs +54 -0
- package/esm2022/manager/ResizeManager.mjs +90 -0
- package/esm2022/menu/MenuItem.mjs +20 -0
- package/esm2022/menu/MenuItemBase.mjs +56 -0
- package/esm2022/menu/MenuItems.mjs +111 -0
- package/esm2022/menu/NavigationMenuItem.mjs +20 -0
- package/esm2022/module/LazyModuleLoader.mjs +97 -0
- package/esm2022/notification/INotification.mjs +16 -0
- package/esm2022/notification/INotificationContent.mjs +141 -0
- package/esm2022/notification/NotificationConfig.mjs +27 -0
- package/{esm2020 → esm2022}/pipe/CamelCasePipe.mjs +4 -4
- package/esm2022/pipe/FinancePipe.mjs +53 -0
- package/esm2022/pipe/MomentDateAdaptivePipe.mjs +51 -0
- package/{esm2020 → esm2022}/pipe/MomentDateFromNowPipe.mjs +4 -4
- package/esm2022/pipe/MomentDatePipe.mjs +71 -0
- package/esm2022/pipe/MomentTimePipe.mjs +35 -0
- package/esm2022/pipe/NgModelErrorPipe.mjs +43 -0
- package/esm2022/pipe/PrettifyPipe.mjs +38 -0
- package/esm2022/pipe/SanitizePipe.mjs +48 -0
- package/{esm2020 → esm2022}/pipe/StartCasePipe.mjs +4 -4
- package/esm2022/pipe/TimePipe.mjs +38 -0
- package/{esm2020 → esm2022}/pipe/TruncatePipe.mjs +4 -4
- package/esm2022/public-api.mjs +138 -0
- package/esm2022/question/QuestionManager.mjs +107 -0
- package/esm2022/service/PipeBaseService.mjs +140 -0
- package/esm2022/service/PlatformService.mjs +45 -0
- package/esm2022/service/RouterBaseService.mjs +236 -0
- package/esm2022/storage/DateValueStorage.mjs +46 -0
- package/esm2022/storage/LocalStorageService.mjs +58 -0
- package/esm2022/storage/ValueStorage.mjs +75 -0
- package/{esm2020 → esm2022}/theme/ThemeAssetBackgroundDirective.mjs +5 -5
- package/esm2022/theme/ThemeAssetDirective.mjs +251 -0
- package/{esm2020 → esm2022}/theme/ThemeAssetIconDirective.mjs +5 -5
- package/{esm2020 → esm2022}/theme/ThemeAssetImageDirective.mjs +5 -5
- package/{esm2020 → esm2022}/theme/ThemeModule.mjs +15 -15
- package/esm2022/theme/ThemeStyleDirective.mjs +125 -0
- package/esm2022/theme/ThemeStyleHoverDirective.mjs +107 -0
- package/esm2022/theme/ThemeToggleDirective.mjs +63 -0
- package/esm2022/transport/TransportLazy.mjs +93 -0
- package/esm2022/transport/TransportLazyModule.mjs +30 -0
- package/esm2022/transport/TransportLazyModuleLoadedEvent.mjs +18 -0
- package/esm2022/user/IUser.mjs +9 -0
- package/esm2022/user/UserBaseService.mjs +124 -0
- package/esm2022/util/ViewUtil.mjs +589 -0
- package/esm2022/window/IWindow.mjs +31 -0
- package/esm2022/window/IWindowContent.mjs +142 -0
- package/esm2022/window/WindowBase.mjs +177 -0
- package/esm2022/window/WindowClosedError.mjs +19 -0
- package/esm2022/window/WindowConfig.mjs +218 -0
- package/{fesm2020 → fesm2022}/ts-core-angular.mjs +1118 -958
- package/fesm2022/ts-core-angular.mjs.map +1 -0
- package/language/LanguageDirective.d.ts +1 -1
- package/language/LanguageHasDirective.d.ts +1 -1
- package/module/LazyModuleLoader.d.ts +1 -1
- package/notification/INotificationContent.d.ts +1 -1
- package/notification/NotificationConfig.d.ts +1 -1
- package/notification/NotificationService.d.ts +1 -1
- package/package.json +19 -26
- package/pipe/MomentDatePipe.d.ts +1 -1
- package/public-api.d.ts +0 -2
- package/theme/ThemeAssetBackgroundDirective.d.ts +1 -1
- package/theme/ThemeAssetDirective.d.ts +1 -1
- package/theme/ThemeAssetIconDirective.d.ts +1 -1
- package/theme/ThemeAssetImageDirective.d.ts +1 -1
- package/theme/ThemeStyleDirective.d.ts +1 -1
- package/theme/ThemeStyleHoverDirective.d.ts +1 -1
- package/user/IUser.d.ts +1 -1
- package/util/ViewUtil.d.ts +1 -1
- package/window/IWindowContent.d.ts +2 -2
- package/window/WindowConfig.d.ts +1 -1
- package/window/WindowService.d.ts +1 -1
- package/esm2020/VIModule.mjs +0 -187
- package/esm2020/application/ApplicationBaseComponent.mjs +0 -88
- package/esm2020/application/ApplicationComponent.mjs +0 -58
- package/esm2020/application/MessageBaseComponent.mjs +0 -52
- package/esm2020/asset/AssetBackgroundDirective.mjs +0 -150
- package/esm2020/cookie/CookieService.mjs +0 -79
- package/esm2020/directive/AspectRatioResizeDirective.mjs +0 -131
- package/esm2020/directive/AutoScrollBottomDirective.mjs +0 -122
- package/esm2020/directive/ClickToCopyDirective.mjs +0 -49
- package/esm2020/directive/ClickToSelectDirective.mjs +0 -49
- package/esm2020/directive/FocusDirective.mjs +0 -54
- package/esm2020/directive/HTMLContentTitleDirective.mjs +0 -67
- package/esm2020/directive/HTMLTitleDirective.mjs +0 -66
- package/esm2020/directive/InfiniteScrollDirective.mjs +0 -74
- package/esm2020/directive/ResizeDirective.mjs +0 -79
- package/esm2020/directive/ScrollCheckDirective.mjs +0 -102
- package/esm2020/directive/ScrollDirective.mjs +0 -118
- package/esm2020/directive/SelectOnFocusDirective.mjs +0 -47
- package/esm2020/directive/StructureDirective.mjs +0 -71
- package/esm2020/form/FormElementAsync.mjs +0 -27
- package/esm2020/form/FormElementSync.mjs +0 -69
- package/esm2020/form/ValueAccessor.mjs +0 -62
- package/esm2020/form/validate.mjs +0 -59
- package/esm2020/language/LanguageDirective.mjs +0 -92
- package/esm2020/language/LanguageHasDirective.mjs +0 -80
- package/esm2020/language/LanguagePipe.mjs +0 -78
- package/esm2020/language/LanguagePipeHas.mjs +0 -56
- package/esm2020/language/LanguagePipeHasPure.mjs +0 -40
- package/esm2020/language/LanguagePipePure.mjs +0 -39
- package/esm2020/language/LanguageRequireResolver.mjs +0 -36
- package/esm2020/list/ListItem.mjs +0 -134
- package/esm2020/list/ListItems.mjs +0 -97
- package/esm2020/list/select/RouterSelectListItems.mjs +0 -53
- package/esm2020/list/select/SelectListItem.mjs +0 -59
- package/esm2020/list/select/SelectListItems.mjs +0 -121
- package/esm2020/login/LoginBaseService.mjs +0 -184
- package/esm2020/login/LoginGuard.mjs +0 -40
- package/esm2020/login/LoginIfCanGuard.mjs +0 -54
- package/esm2020/login/LoginNotGuard.mjs +0 -40
- package/esm2020/login/LoginRequireResolver.mjs +0 -39
- package/esm2020/login/LoginTokenStorage.mjs +0 -18
- package/esm2020/manager/FocusManager.mjs +0 -46
- package/esm2020/manager/ResizeManager.mjs +0 -81
- package/esm2020/menu/MenuItem.mjs +0 -13
- package/esm2020/menu/MenuItemBase.mjs +0 -46
- package/esm2020/menu/MenuItems.mjs +0 -102
- package/esm2020/menu/NavigationMenuItem.mjs +0 -14
- package/esm2020/module/LazyModuleLoader.mjs +0 -89
- package/esm2020/notification/INotification.mjs +0 -7
- package/esm2020/notification/INotificationContent.mjs +0 -132
- package/esm2020/notification/NotificationConfig.mjs +0 -16
- package/esm2020/pipe/FinancePipe.mjs +0 -53
- package/esm2020/pipe/MomentDateAdaptivePipe.mjs +0 -51
- package/esm2020/pipe/MomentDatePipe.mjs +0 -71
- package/esm2020/pipe/MomentTimePipe.mjs +0 -35
- package/esm2020/pipe/NgModelErrorPipe.mjs +0 -42
- package/esm2020/pipe/PrettifyPipe.mjs +0 -38
- package/esm2020/pipe/SanitizePipe.mjs +0 -47
- package/esm2020/pipe/TimePipe.mjs +0 -38
- package/esm2020/public-api.mjs +0 -141
- package/esm2020/question/QuestionManager.mjs +0 -93
- package/esm2020/service/PipeBaseService.mjs +0 -132
- package/esm2020/service/PlatformService.mjs +0 -38
- package/esm2020/service/RouterBaseService.mjs +0 -224
- package/esm2020/storage/DateValueStorage.mjs +0 -49
- package/esm2020/storage/LocalStorageService.mjs +0 -57
- package/esm2020/storage/ValueStorage.mjs +0 -67
- package/esm2020/theme/ThemeAssetDirective.mjs +0 -240
- package/esm2020/theme/ThemeStyleDirective.mjs +0 -115
- package/esm2020/theme/ThemeStyleHoverDirective.mjs +0 -107
- package/esm2020/theme/ThemeToggleDirective.mjs +0 -62
- package/esm2020/transport/TransportLazy.mjs +0 -92
- package/esm2020/transport/TransportLazyModule.mjs +0 -28
- package/esm2020/transport/TransportLazyModuleLoadedEvent.mjs +0 -18
- package/esm2020/user/IUser.mjs +0 -3
- package/esm2020/user/UserBaseService.mjs +0 -116
- package/esm2020/util/ViewUtil.mjs +0 -589
- package/esm2020/window/IWindow.mjs +0 -33
- package/esm2020/window/IWindowContent.mjs +0 -135
- package/esm2020/window/WindowBase.mjs +0 -177
- package/esm2020/window/WindowClosedError.mjs +0 -19
- package/esm2020/window/WindowConfig.mjs +0 -197
- package/fesm2015/ts-core-angular.mjs +0 -7015
- package/fesm2015/ts-core-angular.mjs.map +0 -1
- package/fesm2020/ts-core-angular.mjs.map +0 -1
- package/form/FormElementAsync.d.ts +0 -13
- package/form/FormElementSync.d.ts +0 -22
- package/form/ValueAccessor.d.ts +0 -16
- package/form/validate.d.ts +0 -9
- /package/{esm2020 → esm2022}/ApplicationInjector.mjs +0 -0
- /package/{esm2020 → esm2022}/bottomSheet/BottomSheetService.mjs +0 -0
- /package/{esm2020 → esm2022}/list/IListItem.mjs +0 -0
- /package/{esm2020 → esm2022}/list/select/ISelectListItem.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/INotificationConfig.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/NotificationService.mjs +0 -0
- /package/{esm2020 → esm2022}/notification/NotificationServiceEvent.mjs +0 -0
- /package/{esm2020 → esm2022}/question/IQuestion.mjs +0 -0
- /package/{esm2020 → esm2022}/service/route/CanDeactivateGuard.mjs +0 -0
- /package/{esm2020 → esm2022}/service/route/IRouterDeactivatable.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/BooleanValueStorage.mjs +0 -0
- /package/{esm2020 → esm2022}/storage/IValueStorage.mjs +0 -0
- /package/{esm2020 → esm2022}/ts-core-angular.mjs +0 -0
- /package/{esm2020 → esm2022}/window/IWindowConfig.mjs +0 -0
- /package/{esm2020 → esm2022}/window/WindowService.mjs +0 -0
- /package/{esm2020 → esm2022}/window/WindowServiceEvent.mjs +0 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { DestroyableContainer } from '@ts-core/common';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { debounceTime, takeUntil } from 'rxjs';
|
|
5
|
+
import { ResizeManager } from '../manager/ResizeManager';
|
|
6
|
+
import { ViewUtil } from '../util/ViewUtil';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class AspectRatioResizeDirective extends DestroyableContainer {
|
|
9
|
+
// --------------------------------------------------------------------------
|
|
10
|
+
//
|
|
11
|
+
// Static Properties
|
|
12
|
+
//
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
static UPDATE_DELAY = 100;
|
|
15
|
+
// --------------------------------------------------------------------------
|
|
16
|
+
//
|
|
17
|
+
// Properties
|
|
18
|
+
//
|
|
19
|
+
// --------------------------------------------------------------------------
|
|
20
|
+
_ratio = NaN;
|
|
21
|
+
_direction;
|
|
22
|
+
sensor;
|
|
23
|
+
element;
|
|
24
|
+
// --------------------------------------------------------------------------
|
|
25
|
+
//
|
|
26
|
+
// Constructor
|
|
27
|
+
//
|
|
28
|
+
// --------------------------------------------------------------------------
|
|
29
|
+
constructor(element) {
|
|
30
|
+
super();
|
|
31
|
+
this.element = ViewUtil.parseElement(element.nativeElement);
|
|
32
|
+
}
|
|
33
|
+
// --------------------------------------------------------------------------
|
|
34
|
+
//
|
|
35
|
+
// Private Methods
|
|
36
|
+
//
|
|
37
|
+
// --------------------------------------------------------------------------
|
|
38
|
+
commitResizeProperties = () => {
|
|
39
|
+
switch (this.direction) {
|
|
40
|
+
case Direction.HORIZONTAL:
|
|
41
|
+
this.width = this.height / this.ratio;
|
|
42
|
+
break;
|
|
43
|
+
case Direction.VERTICAL:
|
|
44
|
+
this.height = this.width * this.ratio;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
// --------------------------------------------------------------------------
|
|
49
|
+
//
|
|
50
|
+
// Public Methods
|
|
51
|
+
//
|
|
52
|
+
// --------------------------------------------------------------------------
|
|
53
|
+
ngAfterViewInit() {
|
|
54
|
+
this.sensor = new ResizeManager(this.element);
|
|
55
|
+
this.sensor.changed
|
|
56
|
+
.pipe(debounceTime(AspectRatioResizeDirective.UPDATE_DELAY), takeUntil(this.destroyed))
|
|
57
|
+
.subscribe(() => this.commitResizeProperties());
|
|
58
|
+
if (_.isNaN(this.ratio)) {
|
|
59
|
+
this.ratio = 4 / 3;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
destroy() {
|
|
63
|
+
if (this.isDestroyed) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
super.destroy();
|
|
67
|
+
this.element = null;
|
|
68
|
+
if (!_.isNil(this.sensor)) {
|
|
69
|
+
this.sensor.destroy();
|
|
70
|
+
this.sensor = null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// --------------------------------------------------------------------------
|
|
74
|
+
//
|
|
75
|
+
// Private Properties
|
|
76
|
+
//
|
|
77
|
+
// --------------------------------------------------------------------------
|
|
78
|
+
get width() {
|
|
79
|
+
return ViewUtil.getWidth(this.element);
|
|
80
|
+
}
|
|
81
|
+
set width(value) {
|
|
82
|
+
ViewUtil.setWidth(this.element, value, true);
|
|
83
|
+
}
|
|
84
|
+
get height() {
|
|
85
|
+
return ViewUtil.getHeight(this.element);
|
|
86
|
+
}
|
|
87
|
+
set height(value) {
|
|
88
|
+
ViewUtil.setHeight(this.element, value, true);
|
|
89
|
+
}
|
|
90
|
+
// --------------------------------------------------------------------------
|
|
91
|
+
//
|
|
92
|
+
// Public Properties
|
|
93
|
+
//
|
|
94
|
+
// --------------------------------------------------------------------------
|
|
95
|
+
set direction(value) {
|
|
96
|
+
if (value === this._direction || _.isNil(value)) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
this._direction = value;
|
|
100
|
+
this.commitResizeProperties();
|
|
101
|
+
}
|
|
102
|
+
get direction() {
|
|
103
|
+
return this._direction;
|
|
104
|
+
}
|
|
105
|
+
set ratio(value) {
|
|
106
|
+
if (value === this._ratio) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
this._ratio = value;
|
|
110
|
+
this.commitResizeProperties();
|
|
111
|
+
}
|
|
112
|
+
get ratio() {
|
|
113
|
+
return this._ratio;
|
|
114
|
+
}
|
|
115
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AspectRatioResizeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
116
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: AspectRatioResizeDirective, selector: "[vi-aspect-ratio]", inputs: { direction: ["vi-aspect-ratio", "direction"], ratio: "ratio" }, usesInheritance: true, ngImport: i0 });
|
|
117
|
+
}
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AspectRatioResizeDirective, decorators: [{
|
|
119
|
+
type: Directive,
|
|
120
|
+
args: [{
|
|
121
|
+
selector: '[vi-aspect-ratio]'
|
|
122
|
+
}]
|
|
123
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { direction: [{
|
|
124
|
+
type: Input,
|
|
125
|
+
args: ['vi-aspect-ratio']
|
|
126
|
+
}], ratio: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}] } });
|
|
129
|
+
export var Direction;
|
|
130
|
+
(function (Direction) {
|
|
131
|
+
Direction["VERTICAL"] = "VERTICAL";
|
|
132
|
+
Direction["HORIZONTAL"] = "HORIZONTAL";
|
|
133
|
+
})(Direction || (Direction = {}));
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXNwZWN0UmF0aW9SZXNpemVEaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlL0FzcGVjdFJhdGlvUmVzaXplRGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUs1QyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsb0JBQW9CO0lBQ2hFLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysb0JBQW9CO0lBQ3BCLEVBQUU7SUFDRiw2RUFBNkU7SUFFbkUsTUFBTSxDQUFDLFlBQVksR0FBVyxHQUFHLENBQUM7SUFFNUMsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixhQUFhO0lBQ2IsRUFBRTtJQUNGLDZFQUE2RTtJQUVyRSxNQUFNLEdBQVcsR0FBRyxDQUFDO0lBQ3JCLFVBQVUsQ0FBWTtJQUV0QixNQUFNLENBQWdCO0lBQ3RCLE9BQU8sQ0FBYztJQUU3Qiw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQVksT0FBbUI7UUFDM0IsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJ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QUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQzt1R0FqSVEsMEJBQTBCOzJGQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7K0VBNkdjLFNBQVM7c0JBRG5CLEtBQUs7dUJBQUMsaUJBQWlCO2dCQWFiLEtBQUs7c0JBRGYsS0FBSzs7QUFhVixNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLHNDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlQ29udGFpbmVyIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXNpemVNYW5hZ2VyIH0gZnJvbSAnLi4vbWFuYWdlci9SZXNpemVNYW5hZ2VyJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vdXRpbC9WaWV3VXRpbCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3ZpLWFzcGVjdC1yYXRpb10nXG59KVxuZXhwb3J0IGNsYXNzIEFzcGVjdFJhdGlvUmVzaXplRGlyZWN0aXZlIGV4dGVuZHMgRGVzdHJveWFibGVDb250YWluZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFN0YXRpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBVUERBVEVfREVMQVk6IG51bWJlciA9IDEwMDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgX3JhdGlvOiBudW1iZXIgPSBOYU47XG4gICAgcHJpdmF0ZSBfZGlyZWN0aW9uOiBEaXJlY3Rpb247XG5cbiAgICBwcml2YXRlIHNlbnNvcjogUmVzaXplTWFuYWdlcjtcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gVmlld1V0aWwucGFyc2VFbGVtZW50KGVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcml2YXRlIGNvbW1pdFJlc2l6ZVByb3BlcnRpZXMgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGNhc2UgRGlyZWN0aW9uLkhPUklaT05UQUw6XG4gICAgICAgICAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMuaGVpZ2h0IC8gdGhpcy5yYXRpbztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGlyZWN0aW9uLlZFUlRJQ0FMOlxuICAgICAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy53aWR0aCAqIHRoaXMucmF0aW87XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Vuc29yID0gbmV3IFJlc2l6ZU1hbmFnZXIodGhpcy5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5zZW5zb3IuY2hhbmdlZFxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKEFzcGVjdFJhdGlvUmVzaXplRGlyZWN0aXZlLlVQREFURV9ERUxBWSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY29tbWl0UmVzaXplUHJvcGVydGllcygpKTtcbiAgICAgICAgaWYgKF8uaXNOYU4odGhpcy5yYXRpbykpIHtcbiAgICAgICAgICAgIHRoaXMucmF0aW8gPSA0IC8gMztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICB0aGlzLmVsZW1lbnQgPSBudWxsO1xuXG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLnNlbnNvcikpIHtcbiAgICAgICAgICAgIHRoaXMuc2Vuc29yLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuc2Vuc29yID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJpdmF0ZSBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJpdmF0ZSBnZXQgd2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIFZpZXdVdGlsLmdldFdpZHRoKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXQgd2lkdGgodmFsdWU6IG51bWJlcikge1xuICAgICAgICBWaWV3VXRpbC5zZXRXaWR0aCh0aGlzLmVsZW1lbnQsIHZhbHVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIFZpZXdVdGlsLmdldEhlaWdodCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0IGhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIFZpZXdVdGlsLnNldEhlaWdodCh0aGlzLmVsZW1lbnQsIHZhbHVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQElucHV0KCd2aS1hc3BlY3QtcmF0aW8nKVxuICAgIHB1YmxpYyBzZXQgZGlyZWN0aW9uKHZhbHVlOiBEaXJlY3Rpb24pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9kaXJlY3Rpb24gfHwgXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kaXJlY3Rpb24gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRSZXNpemVQcm9wZXJ0aWVzKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZGlyZWN0aW9uKCk6IERpcmVjdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXJlY3Rpb247XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJhdGlvKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9yYXRpbykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JhdGlvID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29tbWl0UmVzaXplUHJvcGVydGllcygpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHJhdGlvKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yYXRpbztcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG4gICAgVkVSVElDQUwgPSAnVkVSVElDQUwnLFxuICAgIEhPUklaT05UQUwgPSAnSE9SSVpPTlRBTCdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { InfiniteScrollDirective } from './InfiniteScrollDirective';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AutoScrollBottomDirective extends InfiniteScrollDirective {
|
|
6
|
+
// --------------------------------------------------------------------------
|
|
7
|
+
//
|
|
8
|
+
// Properties
|
|
9
|
+
//
|
|
10
|
+
// --------------------------------------------------------------------------
|
|
11
|
+
behavior = 'auto';
|
|
12
|
+
triggerChanged = new EventEmitter();
|
|
13
|
+
_trigger;
|
|
14
|
+
triggerTimer;
|
|
15
|
+
triggerDelta = 0;
|
|
16
|
+
isScrollLocked = false;
|
|
17
|
+
lastScrollHeight;
|
|
18
|
+
isNeedScroll = true;
|
|
19
|
+
isNeedRemainScroll = false;
|
|
20
|
+
// --------------------------------------------------------------------------
|
|
21
|
+
//
|
|
22
|
+
// Protected Methods
|
|
23
|
+
//
|
|
24
|
+
// --------------------------------------------------------------------------
|
|
25
|
+
initialize() {
|
|
26
|
+
if (!_.isNil(this.scrollHeight)) {
|
|
27
|
+
this._scrollValue = this.scrollHeight;
|
|
28
|
+
}
|
|
29
|
+
super.initialize();
|
|
30
|
+
}
|
|
31
|
+
checkTrigger = () => {
|
|
32
|
+
this.isScrollLocked = false;
|
|
33
|
+
if (this.isNeedScroll) {
|
|
34
|
+
this.scrollBottom();
|
|
35
|
+
}
|
|
36
|
+
else if (this.isNeedRemainScroll) {
|
|
37
|
+
this.scrollRemain();
|
|
38
|
+
}
|
|
39
|
+
else if (this.triggerDelta > 0) {
|
|
40
|
+
this.triggerChanged.emit(this.triggerDelta);
|
|
41
|
+
this.triggerDelta = 0;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
scrollRemain() {
|
|
45
|
+
this.isNeedRemainScroll = false;
|
|
46
|
+
this.scrollTo(this.scrollHeight - this.lastScrollHeight);
|
|
47
|
+
}
|
|
48
|
+
// --------------------------------------------------------------------------
|
|
49
|
+
//
|
|
50
|
+
// Event Handlers
|
|
51
|
+
//
|
|
52
|
+
// --------------------------------------------------------------------------
|
|
53
|
+
scrollChangedHandler() {
|
|
54
|
+
super.scrollChangedHandler();
|
|
55
|
+
if (!this.isInitialized || this.isScrollLocked) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
let value = this.scrollTop;
|
|
59
|
+
let bottomValue = value + this.clientHeight + this.elementHeight;
|
|
60
|
+
this.isNeedScroll = bottomValue >= this.scrollHeight;
|
|
61
|
+
this.isNeedRemainScroll = value <= this.elementHeight;
|
|
62
|
+
if (this.isNeedRemainScroll) {
|
|
63
|
+
this.lastScrollHeight = this.scrollHeight;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// --------------------------------------------------------------------------
|
|
67
|
+
//
|
|
68
|
+
// Public Methods
|
|
69
|
+
//
|
|
70
|
+
// --------------------------------------------------------------------------
|
|
71
|
+
scrollCheck() {
|
|
72
|
+
clearTimeout(this.triggerTimer);
|
|
73
|
+
this.triggerTimer = setTimeout(this.checkTrigger, InfiniteScrollDirective.INITIALIZATION_DELAY);
|
|
74
|
+
}
|
|
75
|
+
scrollBottom() {
|
|
76
|
+
this.scrollTo(this.scrollHeight, this.behavior);
|
|
77
|
+
}
|
|
78
|
+
destroy() {
|
|
79
|
+
if (this.isDestroyed) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
super.destroy();
|
|
83
|
+
clearTimeout(this.triggerTimer);
|
|
84
|
+
this.triggerTimer = null;
|
|
85
|
+
this.trigger = null;
|
|
86
|
+
}
|
|
87
|
+
// --------------------------------------------------------------------------
|
|
88
|
+
//
|
|
89
|
+
// Public Properties
|
|
90
|
+
//
|
|
91
|
+
// --------------------------------------------------------------------------
|
|
92
|
+
set trigger(value) {
|
|
93
|
+
if (value === this._trigger) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (!isNaN(this._trigger) && !isNaN(value)) {
|
|
97
|
+
this.triggerDelta = value - this._trigger;
|
|
98
|
+
}
|
|
99
|
+
this._trigger = value;
|
|
100
|
+
if (!this.isInitialized) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
this.isScrollLocked = true;
|
|
104
|
+
this.scrollCheck();
|
|
105
|
+
}
|
|
106
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AutoScrollBottomDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
107
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: AutoScrollBottomDirective, selector: "[vi-auto-scroll-bottom]", inputs: { behavior: "behavior", trigger: ["vi-auto-scroll-bottom", "trigger"] }, outputs: { triggerChanged: "triggerChanged" }, usesInheritance: true, ngImport: i0 });
|
|
108
|
+
}
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AutoScrollBottomDirective, decorators: [{
|
|
110
|
+
type: Directive,
|
|
111
|
+
args: [{
|
|
112
|
+
selector: '[vi-auto-scroll-bottom]'
|
|
113
|
+
}]
|
|
114
|
+
}], propDecorators: { behavior: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}], triggerChanged: [{
|
|
117
|
+
type: Output
|
|
118
|
+
}], trigger: [{
|
|
119
|
+
type: Input,
|
|
120
|
+
args: ['vi-auto-scroll-bottom']
|
|
121
|
+
}] } });
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b1Njcm9sbEJvdHRvbURpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvQXV0b1Njcm9sbEJvdHRvbURpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztBQUs1QixNQUFNLE9BQU8seUJBQTBCLFNBQVEsdUJBQXVCO0lBQ2xFLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsYUFBYTtJQUNiLEVBQUU7SUFDRiw2RUFBNkU7SUFHdEUsUUFBUSxHQUFtQixNQUFNLENBQUM7SUFHbEMsY0FBYyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRWpFLFFBQVEsQ0FBTTtJQUNkLFlBQVksQ0FBTTtJQUNsQixZQUFZLEdBQVcsQ0FBQyxDQUFDO0lBRXpCLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsZ0JBQWdCLENBQVM7SUFFekIsWUFBWSxHQUFZLElBQUksQ0FBQztJQUM3QixrQkFBa0IsR0FBWSxLQUFLLENBQUM7SUFFNUMsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxVQUFVO1FBQ2hCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDekM7UUFDRCxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVTLFlBQVksR0FBRyxHQUFHLEVBQUU7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENB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QUNWO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7dUdBM0hRLHlCQUF5QjsyRkFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3RDOzhCQVNVLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxjQUFjO3NCQURwQixNQUFNO2dCQW1HSSxPQUFPO3NCQURqQixLQUFLO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4vSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t2aS1hdXRvLXNjcm9sbC1ib3R0b21dJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRvU2Nyb2xsQm90dG9tRGlyZWN0aXZlIGV4dGVuZHMgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvciA9ICdhdXRvJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0cmlnZ2VyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIHByaXZhdGUgX3RyaWdnZXI6IGFueTtcbiAgICBwcml2YXRlIHRyaWdnZXJUaW1lcjogYW55O1xuICAgIHByaXZhdGUgdHJpZ2dlckRlbHRhOiBudW1iZXIgPSAwO1xuXG4gICAgcHJpdmF0ZSBpc1Njcm9sbExvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgbGFzdFNjcm9sbEhlaWdodDogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSBpc05lZWRTY3JvbGw6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHByaXZhdGUgaXNOZWVkUmVtYWluU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIGlmICghXy5pc05pbCh0aGlzLnNjcm9sbEhlaWdodCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFZhbHVlID0gdGhpcy5zY3JvbGxIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjaGVja1RyaWdnZXIgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNTY3JvbGxMb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXNOZWVkU2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJvdHRvbSgpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNOZWVkUmVtYWluU2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFJlbWFpbigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHJpZ2dlckRlbHRhID4gMCkge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyQ2hhbmdlZC5lbWl0KHRoaXMudHJpZ2dlckRlbHRhKTtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlckRlbHRhID0gMDtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgc2Nyb2xsUmVtYWluKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTmVlZFJlbWFpblNjcm9sbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMuc2Nyb2xsSGVpZ2h0IC0gdGhpcy5sYXN0U2Nyb2xsSGVpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdEV2ZW50IEhhbmRsZXJzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIHNjcm9sbENoYW5nZWRIYW5kbGVyKCkge1xuICAgICAgICBzdXBlci5zY3JvbGxDaGFuZ2VkSGFuZGxlcigpO1xuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCB8fCB0aGlzLmlzU2Nyb2xsTG9ja2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnNjcm9sbFRvcDtcbiAgICAgICAgbGV0IGJvdHRvbVZhbHVlID0gdmFsdWUgKyB0aGlzLmNsaWVudEhlaWdodCArIHRoaXMuZWxlbWVudEhlaWdodDtcblxuICAgICAgICB0aGlzLmlzTmVlZFNjcm9sbCA9IGJvdHRvbVZhbHVlID49IHRoaXMuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB0aGlzLmlzTmVlZFJlbWFpblNjcm9sbCA9IHZhbHVlIDw9IHRoaXMuZWxlbWVudEhlaWdodDtcblxuICAgICAgICBpZiAodGhpcy5pc05lZWRSZW1haW5TY3JvbGwpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFNjcm9sbEhlaWdodCA9IHRoaXMuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBzY3JvbGxDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudHJpZ2dlclRpbWVyKTtcbiAgICAgICAgdGhpcy50cmlnZ2VyVGltZXIgPSBzZXRUaW1lb3V0KHRoaXMuY2hlY2tUcmlnZ2VyLCBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZS5JTklUSUFMSVpBVElPTl9ERUxBWSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNjcm9sbEJvdHRvbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY3JvbGxUbyh0aGlzLnNjcm9sbEhlaWdodCwgdGhpcy5iZWhhdmlvcik7XG4gICAgfVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRyaWdnZXJUaW1lcik7XG4gICAgICAgIHRoaXMudHJpZ2dlclRpbWVyID0gbnVsbDtcbiAgICAgICAgdGhpcy50cmlnZ2VyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQElucHV0KCd2aS1hdXRvLXNjcm9sbC1ib3R0b20nKVxuICAgIHB1YmxpYyBzZXQgdHJpZ2dlcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdHJpZ2dlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNOYU4odGhpcy5fdHJpZ2dlcikgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyRGVsdGEgPSB2YWx1ZSAtIHRoaXMuX3RyaWdnZXI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90cmlnZ2VyID0gdmFsdWU7XG4gICAgICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1Njcm9sbExvY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2Nyb2xsQ2hlY2soKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import { Destroyable } from '@ts-core/common';
|
|
3
|
+
import { DateUtil } from '@ts-core/common';
|
|
4
|
+
import { ViewUtil } from '../util/ViewUtil';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ClickToCopyDirective extends Destroyable {
|
|
7
|
+
// --------------------------------------------------------------------------
|
|
8
|
+
//
|
|
9
|
+
// Properties
|
|
10
|
+
//
|
|
11
|
+
// --------------------------------------------------------------------------
|
|
12
|
+
element;
|
|
13
|
+
selectionClearTimer;
|
|
14
|
+
// --------------------------------------------------------------------------
|
|
15
|
+
//
|
|
16
|
+
// Event Handlers
|
|
17
|
+
//
|
|
18
|
+
// --------------------------------------------------------------------------
|
|
19
|
+
clickHandler(event) {
|
|
20
|
+
ViewUtil.selectContent(this.element, true);
|
|
21
|
+
clearTimeout(this.selectionClearTimer);
|
|
22
|
+
this.selectionClearTimer = setTimeout(this.selectionRemove, DateUtil.MILLISECONDS_SECOND / 2);
|
|
23
|
+
}
|
|
24
|
+
selectionRemove = () => ViewUtil.selectContent(null);
|
|
25
|
+
// --------------------------------------------------------------------------
|
|
26
|
+
//
|
|
27
|
+
// Public Methods
|
|
28
|
+
//
|
|
29
|
+
// --------------------------------------------------------------------------
|
|
30
|
+
destroy() {
|
|
31
|
+
if (this.isDestroyed) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
super.destroy();
|
|
35
|
+
this.element = null;
|
|
36
|
+
clearTimeout(this.selectionClearTimer);
|
|
37
|
+
}
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ClickToCopyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
39
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: ClickToCopyDirective, selector: "[vi-click-to-copy]", inputs: { element: ["vi-click-to-copy", "element"] }, host: { listeners: { "click": "clickHandler($event)" } }, usesInheritance: true, ngImport: i0 });
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ClickToCopyDirective, decorators: [{
|
|
42
|
+
type: Directive,
|
|
43
|
+
args: [{
|
|
44
|
+
selector: '[vi-click-to-copy]'
|
|
45
|
+
}]
|
|
46
|
+
}], propDecorators: { element: [{
|
|
47
|
+
type: Input,
|
|
48
|
+
args: ['vi-click-to-copy']
|
|
49
|
+
}], clickHandler: [{
|
|
50
|
+
type: HostListener,
|
|
51
|
+
args: ['click', ['$event']]
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpY2tUb0NvcHlEaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlL0NsaWNrVG9Db3B5RGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQVc7SUFDakQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixjQUFjO0lBQ2QsRUFBRTtJQUNGLDZFQUE2RTtJQUd0RSxPQUFPLENBQWM7SUFDcEIsbUJBQW1CLENBQU07SUFFakMsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUdyRSxZQUFZLENBQUMsS0FBaUI7UUFDbEMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTNDLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxlQUFlLEdBQUcsR0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuRSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMzQyxDQUFDO3VHQXhDUSxvQkFBb0I7MkZBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2lCQUNqQzs4QkFTVSxPQUFPO3NCQURiLEtBQUs7dUJBQUMsa0JBQWtCO2dCQVdqQixZQUFZO3NCQURuQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgRGF0ZVV0aWwgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdmktY2xpY2stdG8tY29weV0nXG59KVxuZXhwb3J0IGNsYXNzIENsaWNrVG9Db3B5RGlyZWN0aXZlIGV4dGVuZHMgRGVzdHJveWFibGUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIEBJbnB1dCgndmktY2xpY2stdG8tY29weScpXG4gICAgcHVibGljIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgc2VsZWN0aW9uQ2xlYXJUaW1lcjogYW55O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBFdmVudCBIYW5kbGVyc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBwcml2YXRlIGNsaWNrSGFuZGxlcihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBWaWV3VXRpbC5zZWxlY3RDb250ZW50KHRoaXMuZWxlbWVudCwgdHJ1ZSk7XG5cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2VsZWN0aW9uQ2xlYXJUaW1lcik7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2xlYXJUaW1lciA9IHNldFRpbWVvdXQodGhpcy5zZWxlY3Rpb25SZW1vdmUsIERhdGVVdGlsLk1JTExJU0VDT05EU19TRUNPTkQgLyAyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdGlvblJlbW92ZSA9ICgpOiB2b2lkID0+IFZpZXdVdGlsLnNlbGVjdENvbnRlbnQobnVsbCk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBudWxsO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zZWxlY3Rpb25DbGVhclRpbWVyKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Directive, HostListener } from '@angular/core';
|
|
2
|
+
import { Destroyable } from '@ts-core/common';
|
|
3
|
+
import { ViewUtil } from '../util/ViewUtil';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ClickToSelectDirective extends Destroyable {
|
|
6
|
+
// --------------------------------------------------------------------------
|
|
7
|
+
//
|
|
8
|
+
// Properties
|
|
9
|
+
//
|
|
10
|
+
// --------------------------------------------------------------------------
|
|
11
|
+
element;
|
|
12
|
+
// --------------------------------------------------------------------------
|
|
13
|
+
//
|
|
14
|
+
// Constructor
|
|
15
|
+
//
|
|
16
|
+
// --------------------------------------------------------------------------
|
|
17
|
+
constructor(element) {
|
|
18
|
+
super();
|
|
19
|
+
this.element = ViewUtil.parseElement(element.nativeElement);
|
|
20
|
+
}
|
|
21
|
+
// --------------------------------------------------------------------------
|
|
22
|
+
//
|
|
23
|
+
// Event Handlers
|
|
24
|
+
//
|
|
25
|
+
// --------------------------------------------------------------------------
|
|
26
|
+
clickHandler(event) {
|
|
27
|
+
if (event.detail >= 3) {
|
|
28
|
+
ViewUtil.selectContent(this.element, true);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// --------------------------------------------------------------------------
|
|
32
|
+
//
|
|
33
|
+
// Public Methods
|
|
34
|
+
//
|
|
35
|
+
// --------------------------------------------------------------------------
|
|
36
|
+
destroy() {
|
|
37
|
+
if (this.isDestroyed) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
super.destroy();
|
|
41
|
+
this.element = null;
|
|
42
|
+
}
|
|
43
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ClickToSelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
44
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: ClickToSelectDirective, selector: "[vi-click-to-select]", host: { listeners: { "click": "clickHandler($event)" } }, usesInheritance: true, ngImport: i0 });
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ClickToSelectDirective, decorators: [{
|
|
47
|
+
type: Directive,
|
|
48
|
+
args: [{
|
|
49
|
+
selector: '[vi-click-to-select]'
|
|
50
|
+
}]
|
|
51
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { clickHandler: [{
|
|
52
|
+
type: HostListener,
|
|
53
|
+
args: ['click', ['$event']]
|
|
54
|
+
}] } });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpY2tUb1NlbGVjdERpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvQ2xpY2tUb1NlbGVjdERpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUs1QyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQUNuRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGFBQWE7SUFDYixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLE9BQU8sQ0FBYztJQUUvQiw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQVksT0FBbUI7UUFDM0IsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGlCQUFpQjtJQUNqQixFQUFFO0lBQ0YsNkVBQTZFO0lBR3JFLFlBQVksQ0FBQyxLQUFpQjtRQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ25CLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM5QztJQUNMLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGlCQUFpQjtJQUNqQixFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7dUdBN0NRLHNCQUFzQjsyRkFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUhsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ25DOytFQTRCVyxZQUFZO3NCQURuQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBWaWV3VXRpbCB9IGZyb20gJy4uL3V0aWwvVmlld1V0aWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t2aS1jbGljay10by1zZWxlY3RdJ1xufSlcbmV4cG9ydCBjbGFzcyBDbGlja1RvU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgRGVzdHJveWFibGUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IFZpZXdVdGlsLnBhcnNlRWxlbWVudChlbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0RXZlbnQgSGFuZGxlcnNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHJpdmF0ZSBjbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmRldGFpbCA+PSAzKSB7XG4gICAgICAgICAgICBWaWV3VXRpbC5zZWxlY3RDb250ZW50KHRoaXMuZWxlbWVudCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { Destroyable } from '@ts-core/common';
|
|
3
|
+
import { FocusManager } from '../manager/FocusManager';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class FocusDirective extends Destroyable {
|
|
6
|
+
// --------------------------------------------------------------------------
|
|
7
|
+
//
|
|
8
|
+
// Properties
|
|
9
|
+
//
|
|
10
|
+
// --------------------------------------------------------------------------
|
|
11
|
+
manager;
|
|
12
|
+
// --------------------------------------------------------------------------
|
|
13
|
+
//
|
|
14
|
+
// Constructor
|
|
15
|
+
//
|
|
16
|
+
// --------------------------------------------------------------------------
|
|
17
|
+
constructor(element) {
|
|
18
|
+
super();
|
|
19
|
+
this.manager = new FocusManager(element);
|
|
20
|
+
}
|
|
21
|
+
// --------------------------------------------------------------------------
|
|
22
|
+
//
|
|
23
|
+
// Private Methods
|
|
24
|
+
//
|
|
25
|
+
// --------------------------------------------------------------------------
|
|
26
|
+
focus = () => this.manager.focus();
|
|
27
|
+
// --------------------------------------------------------------------------
|
|
28
|
+
//
|
|
29
|
+
// Public Methods
|
|
30
|
+
//
|
|
31
|
+
// --------------------------------------------------------------------------
|
|
32
|
+
destroy() {
|
|
33
|
+
if (this.isDestroyed) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
super.destroy();
|
|
37
|
+
this.manager.destroy();
|
|
38
|
+
this.manager = null;
|
|
39
|
+
}
|
|
40
|
+
// --------------------------------------------------------------------------
|
|
41
|
+
//
|
|
42
|
+
// Public Properties
|
|
43
|
+
//
|
|
44
|
+
// --------------------------------------------------------------------------
|
|
45
|
+
set trigger(value) {
|
|
46
|
+
this.focus();
|
|
47
|
+
}
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
49
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: FocusDirective, selector: "[vi-focus]", inputs: { trigger: ["vi-focus", "trigger"] }, usesInheritance: true, ngImport: i0 });
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: FocusDirective, decorators: [{
|
|
52
|
+
type: Directive,
|
|
53
|
+
args: [{
|
|
54
|
+
selector: '[vi-focus]'
|
|
55
|
+
}]
|
|
56
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { trigger: [{
|
|
57
|
+
type: Input,
|
|
58
|
+
args: ['vi-focus']
|
|
59
|
+
}] } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9jdXNEaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlL0ZvY3VzRGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBS3ZELE1BQU0sT0FBTyxjQUF3QixTQUFRLFdBQVc7SUFDcEQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixhQUFhO0lBQ2IsRUFBRTtJQUNGLDZFQUE2RTtJQUVyRSxPQUFPLENBQWU7SUFFOUIsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixjQUFjO0lBQ2QsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFZLE9BQW1CO1FBQzNCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxLQUFLLEdBQUcsR0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVuRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGlCQUFpQjtJQUNqQixFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysb0JBQW9CO0lBQ3BCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFDVyxPQUFPLENBQUMsS0FBUTtRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQzt1R0FyRFEsY0FBYzsyRkFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUgxQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO2lCQUN6QjsrRUFvRGMsT0FBTztzQkFEakIsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRm9jdXNNYW5hZ2VyIH0gZnJvbSAnLi4vbWFuYWdlci9Gb2N1c01hbmFnZXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t2aS1mb2N1c10nXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzRGlyZWN0aXZlPFQgPSBhbnk+IGV4dGVuZHMgRGVzdHJveWFibGUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByaXZhdGUgbWFuYWdlcjogRm9jdXNNYW5hZ2VyO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5tYW5hZ2VyID0gbmV3IEZvY3VzTWFuYWdlcihlbGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByaXZhdGUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBmb2N1cyA9ICgpOiB2b2lkID0+IHRoaXMubWFuYWdlci5mb2N1cygpO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICB0aGlzLm1hbmFnZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLm1hbmFnZXIgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBASW5wdXQoJ3ZpLWZvY3VzJylcbiAgICBwdWJsaWMgc2V0IHRyaWdnZXIodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { Destroyable } from '@ts-core/common';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { LanguagePipe } from '../language/LanguagePipe';
|
|
5
|
+
import { ViewUtil } from '../util/ViewUtil';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class HTMLContentTitleDirective extends Destroyable {
|
|
8
|
+
element;
|
|
9
|
+
// --------------------------------------------------------------------------
|
|
10
|
+
//
|
|
11
|
+
// Properties
|
|
12
|
+
//
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
_value;
|
|
15
|
+
// --------------------------------------------------------------------------
|
|
16
|
+
//
|
|
17
|
+
// Constructor
|
|
18
|
+
//
|
|
19
|
+
// --------------------------------------------------------------------------
|
|
20
|
+
constructor(element) {
|
|
21
|
+
super();
|
|
22
|
+
this.element = element;
|
|
23
|
+
}
|
|
24
|
+
// --------------------------------------------------------------------------
|
|
25
|
+
//
|
|
26
|
+
// Private Methods
|
|
27
|
+
//
|
|
28
|
+
// --------------------------------------------------------------------------
|
|
29
|
+
commitValueProperties() {
|
|
30
|
+
ViewUtil.setProperty(this.element, 'title', LanguagePipe.removeTags(this.value));
|
|
31
|
+
ViewUtil.setProperty(this.element, 'innerHTML', this.value);
|
|
32
|
+
}
|
|
33
|
+
// --------------------------------------------------------------------------
|
|
34
|
+
//
|
|
35
|
+
// Public Methods
|
|
36
|
+
//
|
|
37
|
+
// --------------------------------------------------------------------------
|
|
38
|
+
destroy() {
|
|
39
|
+
if (this.isDestroyed) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
super.destroy();
|
|
43
|
+
this._value = null;
|
|
44
|
+
}
|
|
45
|
+
// --------------------------------------------------------------------------
|
|
46
|
+
//
|
|
47
|
+
// Public Properties
|
|
48
|
+
//
|
|
49
|
+
// --------------------------------------------------------------------------
|
|
50
|
+
set value(value) {
|
|
51
|
+
if (value === this._value) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this._value = value;
|
|
55
|
+
if (!_.isNil(value)) {
|
|
56
|
+
this.commitValueProperties();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
get value() {
|
|
60
|
+
return this._value;
|
|
61
|
+
}
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HTMLContentTitleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
63
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: HTMLContentTitleDirective, selector: "[vi-html-content-title]", inputs: { value: ["vi-html-content-title", "value"] }, usesInheritance: true, ngImport: i0 });
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HTMLContentTitleDirective, decorators: [{
|
|
66
|
+
type: Directive,
|
|
67
|
+
args: [{
|
|
68
|
+
selector: '[vi-html-content-title]'
|
|
69
|
+
}]
|
|
70
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { value: [{
|
|
71
|
+
type: Input,
|
|
72
|
+
args: ['vi-html-content-title']
|
|
73
|
+
}] } });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRNTENvbnRlbnRUaXRsZURpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvSFRNTENvbnRlbnRUaXRsZURpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFdBQVc7SUFlaEM7SUFkdEIsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixhQUFhO0lBQ2IsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxNQUFNLENBQVM7SUFFekIsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixjQUFjO0lBQ2QsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxZQUFzQixPQUFtQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURVLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFFekMsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRiw2RUFBNkU7SUFFbkUscUJBQXFCO1FBQzNCLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRixRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixpQkFBaUI7SUFDakIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE9BQU87U0FDVjtRQUNELEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxJQUNXLEtBQUssQ0FBQyxLQUFhO1FBQzFCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBQ0QsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7dUdBOURRLHlCQUF5QjsyRkFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUhyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3RDOytFQW9EYyxLQUFLO3NCQURmLEtBQUs7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VQaXBlIH0gZnJvbSAnLi4vbGFuZ3VhZ2UvTGFuZ3VhZ2VQaXBlJztcbmltcG9ydCB7IFZpZXdVdGlsIH0gZnJvbSAnLi4vdXRpbC9WaWV3VXRpbCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3ZpLWh0bWwtY29udGVudC10aXRsZV0nXG59KVxuZXhwb3J0IGNsYXNzIEhUTUxDb250ZW50VGl0bGVEaXJlY3RpdmUgZXh0ZW5kcyBEZXN0cm95YWJsZSB7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogc3RyaW5nO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgY29tbWl0VmFsdWVQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBWaWV3VXRpbC5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnQsICd0aXRsZScsIExhbmd1YWdlUGlwZS5yZW1vdmVUYWdzKHRoaXMudmFsdWUpKTtcbiAgICAgICAgVmlld1V0aWwuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50LCAnaW5uZXJIVE1MJywgdGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBASW5wdXQoJ3ZpLWh0bWwtY29udGVudC10aXRsZScpXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAoIV8uaXNOaWwodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdFZhbHVlUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { Destroyable } from '@ts-core/common';
|
|
3
|
+
import * as _ from 'lodash';
|
|
4
|
+
import { LanguagePipe } from '../language/LanguagePipe';
|
|
5
|
+
import { ViewUtil } from '../util/ViewUtil';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class HTMLTitleDirective extends Destroyable {
|
|
8
|
+
element;
|
|
9
|
+
// --------------------------------------------------------------------------
|
|
10
|
+
//
|
|
11
|
+
// Properties
|
|
12
|
+
//
|
|
13
|
+
// --------------------------------------------------------------------------
|
|
14
|
+
_value;
|
|
15
|
+
// --------------------------------------------------------------------------
|
|
16
|
+
//
|
|
17
|
+
// Constructor
|
|
18
|
+
//
|
|
19
|
+
// --------------------------------------------------------------------------
|
|
20
|
+
constructor(element) {
|
|
21
|
+
super();
|
|
22
|
+
this.element = element;
|
|
23
|
+
}
|
|
24
|
+
// --------------------------------------------------------------------------
|
|
25
|
+
//
|
|
26
|
+
// Private Methods
|
|
27
|
+
//
|
|
28
|
+
// --------------------------------------------------------------------------
|
|
29
|
+
commitValueProperties() {
|
|
30
|
+
ViewUtil.setProperty(this.element, 'title', LanguagePipe.removeTags(this.value));
|
|
31
|
+
}
|
|
32
|
+
// --------------------------------------------------------------------------
|
|
33
|
+
//
|
|
34
|
+
// Public Methods
|
|
35
|
+
//
|
|
36
|
+
// --------------------------------------------------------------------------
|
|
37
|
+
destroy() {
|
|
38
|
+
if (this.isDestroyed) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
super.destroy();
|
|
42
|
+
this._value = null;
|
|
43
|
+
}
|
|
44
|
+
// --------------------------------------------------------------------------
|
|
45
|
+
//
|
|
46
|
+
// Public Properties
|
|
47
|
+
//
|
|
48
|
+
// --------------------------------------------------------------------------
|
|
49
|
+
set value(value) {
|
|
50
|
+
if (value === this._value) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this._value = value;
|
|
54
|
+
if (!_.isNil(value)) {
|
|
55
|
+
this.commitValueProperties();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
get value() {
|
|
59
|
+
return this._value;
|
|
60
|
+
}
|
|
61
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HTMLTitleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
62
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.8", type: HTMLTitleDirective, selector: "[vi-html-title]", inputs: { value: ["vi-html-title", "value"] }, usesInheritance: true, ngImport: i0 });
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: HTMLTitleDirective, decorators: [{
|
|
65
|
+
type: Directive,
|
|
66
|
+
args: [{
|
|
67
|
+
selector: '[vi-html-title]'
|
|
68
|
+
}]
|
|
69
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { value: [{
|
|
70
|
+
type: Input,
|
|
71
|
+
args: ['vi-html-title']
|
|
72
|
+
}] } });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRNTFRpdGxlRGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZS9IVE1MVGl0bGVEaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBSzVDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFXO0lBZXpCO0lBZHRCLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsYUFBYTtJQUNiLEVBQUU7SUFDRiw2RUFBNkU7SUFFbkUsTUFBTSxDQUFTO0lBRXpCLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsY0FBYztJQUNkLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBc0IsT0FBbUI7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFZO0lBRXpDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLHFCQUFxQjtRQUMzQixRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsaUJBQWlCO0lBQ2pCLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysb0JBQW9CO0lBQ3BCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFDVyxLQUFLLENBQUMsS0FBYTtRQUMxQixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQUNELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO3VHQTdEUSxrQkFBa0I7MkZBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM5QjsrRUFtRGMsS0FBSztzQkFEZixLQUFLO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBMYW5ndWFnZVBpcGUgfSBmcm9tICcuLi9sYW5ndWFnZS9MYW5ndWFnZVBpcGUnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi91dGlsL1ZpZXdVdGlsJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdmktaHRtbC10aXRsZV0nXG59KVxuZXhwb3J0IGNsYXNzIEhUTUxUaXRsZURpcmVjdGl2ZSBleHRlbmRzIERlc3Ryb3lhYmxlIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBzdHJpbmc7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByaXZhdGUgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBjb21taXRWYWx1ZVByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgICAgIFZpZXdVdGlsLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudCwgJ3RpdGxlJywgTGFuZ3VhZ2VQaXBlLnJlbW92ZVRhZ3ModGhpcy52YWx1ZSkpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQElucHV0KCd2aS1odG1sLXRpdGxlJylcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICghXy5pc05pbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29tbWl0VmFsdWVQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxufVxuIl19
|