@ts-core/angular 15.0.60 → 17.0.9

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.
Files changed (239) hide show
  1. package/asset/AssetBackgroundDirective.d.ts +1 -1
  2. package/cookie/CookieService.d.ts +1 -3
  3. package/directive/AspectRatioResizeDirective.d.ts +1 -1
  4. package/directive/AutoScrollBottomDirective.d.ts +1 -1
  5. package/directive/ClickToCopyDirective.d.ts +1 -1
  6. package/directive/FocusDirective.d.ts +1 -1
  7. package/directive/HTMLContentTitleDirective.d.ts +1 -1
  8. package/directive/HTMLTitleDirective.d.ts +1 -1
  9. package/directive/InfiniteScrollDirective.d.ts +1 -1
  10. package/directive/ResizeDirective.d.ts +1 -1
  11. package/directive/ScrollCheckDirective.d.ts +1 -1
  12. package/directive/ScrollDirective.d.ts +1 -1
  13. package/esm2022/VIModule.mjs +190 -0
  14. package/esm2022/application/ApplicationBaseComponent.mjs +96 -0
  15. package/esm2022/application/ApplicationComponent.mjs +64 -0
  16. package/esm2022/application/MessageBaseComponent.mjs +60 -0
  17. package/esm2022/asset/AssetBackgroundDirective.mjs +152 -0
  18. package/{esm2020 → esm2022}/asset/AssetBackgroundPipe.mjs +4 -4
  19. package/{esm2020 → esm2022}/asset/AssetFilePipe.mjs +4 -4
  20. package/{esm2020 → esm2022}/asset/AssetIconPipe.mjs +4 -4
  21. package/{esm2020 → esm2022}/asset/AssetImagePipe.mjs +4 -4
  22. package/{esm2020 → esm2022}/asset/AssetModule.mjs +5 -5
  23. package/{esm2020 → esm2022}/asset/AssetSoundPipe.mjs +4 -4
  24. package/{esm2020 → esm2022}/asset/AssetVideoPipe.mjs +4 -4
  25. package/{esm2020 → esm2022}/cookie/CookieModule.mjs +5 -5
  26. package/{esm2020 → esm2022}/cookie/CookieOptions.mjs +7 -1
  27. package/esm2022/cookie/CookieService.mjs +71 -0
  28. package/esm2022/directive/AspectRatioResizeDirective.mjs +134 -0
  29. package/esm2022/directive/AutoScrollBottomDirective.mjs +122 -0
  30. package/esm2022/directive/ClickToCopyDirective.mjs +53 -0
  31. package/esm2022/directive/ClickToSelectDirective.mjs +55 -0
  32. package/esm2022/directive/FocusDirective.mjs +60 -0
  33. package/esm2022/directive/HTMLContentTitleDirective.mjs +74 -0
  34. package/esm2022/directive/HTMLTitleDirective.mjs +73 -0
  35. package/esm2022/directive/InfiniteScrollDirective.mjs +71 -0
  36. package/{esm2020 → esm2022}/directive/IsBrowserDirective.mjs +5 -5
  37. package/{esm2020 → esm2022}/directive/IsServerDirective.mjs +5 -5
  38. package/esm2022/directive/ResizeDirective.mjs +80 -0
  39. package/esm2022/directive/ScrollCheckDirective.mjs +104 -0
  40. package/esm2022/directive/ScrollDirective.mjs +120 -0
  41. package/esm2022/directive/SelectOnFocusDirective.mjs +48 -0
  42. package/esm2022/directive/StructureDirective.mjs +80 -0
  43. package/esm2022/language/LanguageDirective.mjs +102 -0
  44. package/esm2022/language/LanguageHasDirective.mjs +87 -0
  45. package/{esm2020 → esm2022}/language/LanguageModule.mjs +5 -5
  46. package/esm2022/language/LanguagePipe.mjs +88 -0
  47. package/esm2022/language/LanguagePipeHas.mjs +64 -0
  48. package/esm2022/language/LanguagePipeHasPure.mjs +41 -0
  49. package/esm2022/language/LanguagePipePure.mjs +40 -0
  50. package/esm2022/language/LanguageRequireResolver.mjs +37 -0
  51. package/{esm2020 → esm2022}/language/LanguageResolver.mjs +5 -5
  52. package/esm2022/list/ListItem.mjs +148 -0
  53. package/esm2022/list/ListItems.mjs +107 -0
  54. package/esm2022/list/select/RouterSelectListItems.mjs +60 -0
  55. package/esm2022/list/select/SelectListItem.mjs +67 -0
  56. package/esm2022/list/select/SelectListItems.mjs +130 -0
  57. package/esm2022/login/LoginBaseService.mjs +191 -0
  58. package/esm2022/login/LoginGuard.mjs +41 -0
  59. package/esm2022/login/LoginIfCanGuard.mjs +55 -0
  60. package/esm2022/login/LoginNotGuard.mjs +41 -0
  61. package/esm2022/login/LoginRequireResolver.mjs +40 -0
  62. package/{esm2020 → esm2022}/login/LoginResolver.mjs +6 -6
  63. package/esm2022/login/LoginTokenStorage.mjs +18 -0
  64. package/esm2022/manager/FocusManager.mjs +54 -0
  65. package/esm2022/manager/ResizeManager.mjs +90 -0
  66. package/esm2022/menu/MenuItem.mjs +20 -0
  67. package/esm2022/menu/MenuItemBase.mjs +56 -0
  68. package/esm2022/menu/MenuItems.mjs +111 -0
  69. package/esm2022/menu/NavigationMenuItem.mjs +20 -0
  70. package/esm2022/module/LazyModuleLoader.mjs +97 -0
  71. package/esm2022/notification/INotification.mjs +16 -0
  72. package/esm2022/notification/INotificationContent.mjs +141 -0
  73. package/esm2022/notification/NotificationConfig.mjs +27 -0
  74. package/{esm2020 → esm2022}/pipe/CamelCasePipe.mjs +4 -4
  75. package/esm2022/pipe/FinancePipe.mjs +53 -0
  76. package/esm2022/pipe/MomentDateAdaptivePipe.mjs +51 -0
  77. package/{esm2020 → esm2022}/pipe/MomentDateFromNowPipe.mjs +4 -4
  78. package/esm2022/pipe/MomentDatePipe.mjs +71 -0
  79. package/esm2022/pipe/MomentTimePipe.mjs +35 -0
  80. package/esm2022/pipe/NgModelErrorPipe.mjs +43 -0
  81. package/esm2022/pipe/PrettifyPipe.mjs +38 -0
  82. package/esm2022/pipe/SanitizePipe.mjs +48 -0
  83. package/{esm2020 → esm2022}/pipe/StartCasePipe.mjs +4 -4
  84. package/esm2022/pipe/TimePipe.mjs +38 -0
  85. package/{esm2020 → esm2022}/pipe/TruncatePipe.mjs +4 -4
  86. package/esm2022/public-api.mjs +138 -0
  87. package/esm2022/question/QuestionManager.mjs +107 -0
  88. package/esm2022/service/PipeBaseService.mjs +140 -0
  89. package/esm2022/service/PlatformService.mjs +45 -0
  90. package/esm2022/service/RouterBaseService.mjs +236 -0
  91. package/esm2022/storage/DateValueStorage.mjs +46 -0
  92. package/esm2022/storage/LocalStorageService.mjs +58 -0
  93. package/esm2022/storage/ValueStorage.mjs +75 -0
  94. package/{esm2020 → esm2022}/theme/ThemeAssetBackgroundDirective.mjs +5 -5
  95. package/esm2022/theme/ThemeAssetDirective.mjs +251 -0
  96. package/{esm2020 → esm2022}/theme/ThemeAssetIconDirective.mjs +5 -5
  97. package/{esm2020 → esm2022}/theme/ThemeAssetImageDirective.mjs +5 -5
  98. package/{esm2020 → esm2022}/theme/ThemeModule.mjs +15 -15
  99. package/esm2022/theme/ThemeStyleDirective.mjs +125 -0
  100. package/esm2022/theme/ThemeStyleHoverDirective.mjs +107 -0
  101. package/esm2022/theme/ThemeToggleDirective.mjs +63 -0
  102. package/esm2022/transport/TransportLazy.mjs +93 -0
  103. package/esm2022/transport/TransportLazyModule.mjs +30 -0
  104. package/esm2022/transport/TransportLazyModuleLoadedEvent.mjs +18 -0
  105. package/esm2022/user/IUser.mjs +9 -0
  106. package/esm2022/user/UserBaseService.mjs +124 -0
  107. package/esm2022/util/ViewUtil.mjs +589 -0
  108. package/esm2022/window/IWindow.mjs +31 -0
  109. package/esm2022/window/IWindowContent.mjs +142 -0
  110. package/esm2022/window/WindowBase.mjs +177 -0
  111. package/esm2022/window/WindowClosedError.mjs +19 -0
  112. package/esm2022/window/WindowConfig.mjs +218 -0
  113. package/{fesm2020 → fesm2022}/ts-core-angular.mjs +1118 -958
  114. package/fesm2022/ts-core-angular.mjs.map +1 -0
  115. package/language/LanguageDirective.d.ts +1 -1
  116. package/language/LanguageHasDirective.d.ts +1 -1
  117. package/module/LazyModuleLoader.d.ts +1 -1
  118. package/notification/INotificationContent.d.ts +1 -1
  119. package/notification/NotificationConfig.d.ts +1 -1
  120. package/notification/NotificationService.d.ts +1 -1
  121. package/package.json +19 -26
  122. package/pipe/MomentDatePipe.d.ts +1 -1
  123. package/public-api.d.ts +0 -2
  124. package/theme/ThemeAssetBackgroundDirective.d.ts +1 -1
  125. package/theme/ThemeAssetDirective.d.ts +1 -1
  126. package/theme/ThemeAssetIconDirective.d.ts +1 -1
  127. package/theme/ThemeAssetImageDirective.d.ts +1 -1
  128. package/theme/ThemeStyleDirective.d.ts +1 -1
  129. package/theme/ThemeStyleHoverDirective.d.ts +1 -1
  130. package/user/IUser.d.ts +1 -1
  131. package/util/ViewUtil.d.ts +1 -1
  132. package/window/IWindowContent.d.ts +2 -2
  133. package/window/WindowConfig.d.ts +1 -1
  134. package/window/WindowService.d.ts +1 -1
  135. package/esm2020/VIModule.mjs +0 -187
  136. package/esm2020/application/ApplicationBaseComponent.mjs +0 -88
  137. package/esm2020/application/ApplicationComponent.mjs +0 -58
  138. package/esm2020/application/MessageBaseComponent.mjs +0 -52
  139. package/esm2020/asset/AssetBackgroundDirective.mjs +0 -150
  140. package/esm2020/cookie/CookieService.mjs +0 -79
  141. package/esm2020/directive/AspectRatioResizeDirective.mjs +0 -131
  142. package/esm2020/directive/AutoScrollBottomDirective.mjs +0 -122
  143. package/esm2020/directive/ClickToCopyDirective.mjs +0 -49
  144. package/esm2020/directive/ClickToSelectDirective.mjs +0 -49
  145. package/esm2020/directive/FocusDirective.mjs +0 -54
  146. package/esm2020/directive/HTMLContentTitleDirective.mjs +0 -67
  147. package/esm2020/directive/HTMLTitleDirective.mjs +0 -66
  148. package/esm2020/directive/InfiniteScrollDirective.mjs +0 -74
  149. package/esm2020/directive/ResizeDirective.mjs +0 -79
  150. package/esm2020/directive/ScrollCheckDirective.mjs +0 -102
  151. package/esm2020/directive/ScrollDirective.mjs +0 -118
  152. package/esm2020/directive/SelectOnFocusDirective.mjs +0 -47
  153. package/esm2020/directive/StructureDirective.mjs +0 -71
  154. package/esm2020/form/FormElementAsync.mjs +0 -27
  155. package/esm2020/form/FormElementSync.mjs +0 -69
  156. package/esm2020/form/ValueAccessor.mjs +0 -62
  157. package/esm2020/form/validate.mjs +0 -59
  158. package/esm2020/language/LanguageDirective.mjs +0 -92
  159. package/esm2020/language/LanguageHasDirective.mjs +0 -80
  160. package/esm2020/language/LanguagePipe.mjs +0 -78
  161. package/esm2020/language/LanguagePipeHas.mjs +0 -56
  162. package/esm2020/language/LanguagePipeHasPure.mjs +0 -40
  163. package/esm2020/language/LanguagePipePure.mjs +0 -39
  164. package/esm2020/language/LanguageRequireResolver.mjs +0 -36
  165. package/esm2020/list/ListItem.mjs +0 -134
  166. package/esm2020/list/ListItems.mjs +0 -97
  167. package/esm2020/list/select/RouterSelectListItems.mjs +0 -53
  168. package/esm2020/list/select/SelectListItem.mjs +0 -59
  169. package/esm2020/list/select/SelectListItems.mjs +0 -121
  170. package/esm2020/login/LoginBaseService.mjs +0 -184
  171. package/esm2020/login/LoginGuard.mjs +0 -40
  172. package/esm2020/login/LoginIfCanGuard.mjs +0 -54
  173. package/esm2020/login/LoginNotGuard.mjs +0 -40
  174. package/esm2020/login/LoginRequireResolver.mjs +0 -39
  175. package/esm2020/login/LoginTokenStorage.mjs +0 -18
  176. package/esm2020/manager/FocusManager.mjs +0 -46
  177. package/esm2020/manager/ResizeManager.mjs +0 -81
  178. package/esm2020/menu/MenuItem.mjs +0 -13
  179. package/esm2020/menu/MenuItemBase.mjs +0 -46
  180. package/esm2020/menu/MenuItems.mjs +0 -102
  181. package/esm2020/menu/NavigationMenuItem.mjs +0 -14
  182. package/esm2020/module/LazyModuleLoader.mjs +0 -89
  183. package/esm2020/notification/INotification.mjs +0 -7
  184. package/esm2020/notification/INotificationContent.mjs +0 -132
  185. package/esm2020/notification/NotificationConfig.mjs +0 -16
  186. package/esm2020/pipe/FinancePipe.mjs +0 -53
  187. package/esm2020/pipe/MomentDateAdaptivePipe.mjs +0 -51
  188. package/esm2020/pipe/MomentDatePipe.mjs +0 -71
  189. package/esm2020/pipe/MomentTimePipe.mjs +0 -35
  190. package/esm2020/pipe/NgModelErrorPipe.mjs +0 -42
  191. package/esm2020/pipe/PrettifyPipe.mjs +0 -38
  192. package/esm2020/pipe/SanitizePipe.mjs +0 -47
  193. package/esm2020/pipe/TimePipe.mjs +0 -38
  194. package/esm2020/public-api.mjs +0 -141
  195. package/esm2020/question/QuestionManager.mjs +0 -93
  196. package/esm2020/service/PipeBaseService.mjs +0 -132
  197. package/esm2020/service/PlatformService.mjs +0 -38
  198. package/esm2020/service/RouterBaseService.mjs +0 -224
  199. package/esm2020/storage/DateValueStorage.mjs +0 -49
  200. package/esm2020/storage/LocalStorageService.mjs +0 -57
  201. package/esm2020/storage/ValueStorage.mjs +0 -67
  202. package/esm2020/theme/ThemeAssetDirective.mjs +0 -240
  203. package/esm2020/theme/ThemeStyleDirective.mjs +0 -115
  204. package/esm2020/theme/ThemeStyleHoverDirective.mjs +0 -107
  205. package/esm2020/theme/ThemeToggleDirective.mjs +0 -62
  206. package/esm2020/transport/TransportLazy.mjs +0 -92
  207. package/esm2020/transport/TransportLazyModule.mjs +0 -28
  208. package/esm2020/transport/TransportLazyModuleLoadedEvent.mjs +0 -18
  209. package/esm2020/user/IUser.mjs +0 -3
  210. package/esm2020/user/UserBaseService.mjs +0 -116
  211. package/esm2020/util/ViewUtil.mjs +0 -589
  212. package/esm2020/window/IWindow.mjs +0 -33
  213. package/esm2020/window/IWindowContent.mjs +0 -135
  214. package/esm2020/window/WindowBase.mjs +0 -177
  215. package/esm2020/window/WindowClosedError.mjs +0 -19
  216. package/esm2020/window/WindowConfig.mjs +0 -197
  217. package/fesm2015/ts-core-angular.mjs +0 -7015
  218. package/fesm2015/ts-core-angular.mjs.map +0 -1
  219. package/fesm2020/ts-core-angular.mjs.map +0 -1
  220. package/form/FormElementAsync.d.ts +0 -13
  221. package/form/FormElementSync.d.ts +0 -22
  222. package/form/ValueAccessor.d.ts +0 -16
  223. package/form/validate.d.ts +0 -9
  224. /package/{esm2020 → esm2022}/ApplicationInjector.mjs +0 -0
  225. /package/{esm2020 → esm2022}/bottomSheet/BottomSheetService.mjs +0 -0
  226. /package/{esm2020 → esm2022}/list/IListItem.mjs +0 -0
  227. /package/{esm2020 → esm2022}/list/select/ISelectListItem.mjs +0 -0
  228. /package/{esm2020 → esm2022}/notification/INotificationConfig.mjs +0 -0
  229. /package/{esm2020 → esm2022}/notification/NotificationService.mjs +0 -0
  230. /package/{esm2020 → esm2022}/notification/NotificationServiceEvent.mjs +0 -0
  231. /package/{esm2020 → esm2022}/question/IQuestion.mjs +0 -0
  232. /package/{esm2020 → esm2022}/service/route/CanDeactivateGuard.mjs +0 -0
  233. /package/{esm2020 → esm2022}/service/route/IRouterDeactivatable.mjs +0 -0
  234. /package/{esm2020 → esm2022}/storage/BooleanValueStorage.mjs +0 -0
  235. /package/{esm2020 → esm2022}/storage/IValueStorage.mjs +0 -0
  236. /package/{esm2020 → esm2022}/ts-core-angular.mjs +0 -0
  237. /package/{esm2020 → esm2022}/window/IWindowConfig.mjs +0 -0
  238. /package/{esm2020 → esm2022}/window/WindowService.mjs +0 -0
  239. /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