@ts-core/angular 15.0.59 → 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.
- 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 +20 -27
- 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
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import { DateUtil, DestroyableContainer } from '@ts-core/common';
|
|
3
|
-
import { fromEvent, debounceTime, takeUntil } from 'rxjs';
|
|
4
|
-
import * as _ from 'lodash';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class ScrollCheckDirective extends DestroyableContainer {
|
|
7
|
-
//--------------------------------------------------------------------------
|
|
8
|
-
//
|
|
9
|
-
// Constructor
|
|
10
|
-
//
|
|
11
|
-
//--------------------------------------------------------------------------
|
|
12
|
-
constructor(element) {
|
|
13
|
-
super();
|
|
14
|
-
//--------------------------------------------------------------------------
|
|
15
|
-
//
|
|
16
|
-
// Properties
|
|
17
|
-
//
|
|
18
|
-
//--------------------------------------------------------------------------
|
|
19
|
-
this.top = new EventEmitter();
|
|
20
|
-
this.bottom = new EventEmitter();
|
|
21
|
-
this.limitExceed = new EventEmitter();
|
|
22
|
-
this.isExceedLimit = false;
|
|
23
|
-
this.delay = DateUtil.MILLISECONDS_SECOND / 10;
|
|
24
|
-
this.offset = 50;
|
|
25
|
-
//--------------------------------------------------------------------------
|
|
26
|
-
//
|
|
27
|
-
// Protected Methods
|
|
28
|
-
//
|
|
29
|
-
//--------------------------------------------------------------------------
|
|
30
|
-
this.check = () => {
|
|
31
|
-
let value = this.scrollValue >= this.scrollLimit;
|
|
32
|
-
if (value !== this.isExceedLimit) {
|
|
33
|
-
this.isExceedLimit = value;
|
|
34
|
-
this.limitExceed.emit(value);
|
|
35
|
-
}
|
|
36
|
-
let offset = !_.isNaN(this.offset) ? this.offset : 0;
|
|
37
|
-
value = this.scrollValue + this.clientHeight + offset >= this.scrollHeight;
|
|
38
|
-
this.bottom.next(value);
|
|
39
|
-
value = this.scrollValue <= offset;
|
|
40
|
-
this.top.next(value);
|
|
41
|
-
};
|
|
42
|
-
this.delay = DateUtil.MILLISECONDS_SECOND / 10;
|
|
43
|
-
this.element = element.nativeElement;
|
|
44
|
-
fromEvent(this.element, 'scroll').pipe(debounceTime(this.delay), takeUntil(this.destroyed)).subscribe(this.check);
|
|
45
|
-
}
|
|
46
|
-
//--------------------------------------------------------------------------
|
|
47
|
-
//
|
|
48
|
-
// Private Properties
|
|
49
|
-
//
|
|
50
|
-
//--------------------------------------------------------------------------
|
|
51
|
-
// --------------------------------------------------------------------------
|
|
52
|
-
//
|
|
53
|
-
// Private Properties
|
|
54
|
-
//
|
|
55
|
-
// --------------------------------------------------------------------------
|
|
56
|
-
get scrollValue() {
|
|
57
|
-
return this.element.scrollTop;
|
|
58
|
-
}
|
|
59
|
-
get scrollHeight() {
|
|
60
|
-
return this.element.scrollHeight;
|
|
61
|
-
}
|
|
62
|
-
get clientHeight() {
|
|
63
|
-
return this.element.clientHeight;
|
|
64
|
-
}
|
|
65
|
-
//--------------------------------------------------------------------------
|
|
66
|
-
//
|
|
67
|
-
// Public Properties
|
|
68
|
-
//
|
|
69
|
-
//--------------------------------------------------------------------------
|
|
70
|
-
set scrollLimit(value) {
|
|
71
|
-
if (value == this._scrollLimit) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this._scrollLimit = value;
|
|
75
|
-
this.check();
|
|
76
|
-
}
|
|
77
|
-
get scrollLimit() {
|
|
78
|
-
return this._scrollLimit;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
ScrollCheckDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollCheckDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
82
|
-
ScrollCheckDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ScrollCheckDirective, selector: "[vi-scroll-check]", inputs: { delay: "delay", offset: "offset", scrollLimit: ["vi-scroll-check", "scrollLimit"] }, outputs: { top: "top", bottom: "bottom", limitExceed: "limitExceed" }, usesInheritance: true, ngImport: i0 });
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollCheckDirective, decorators: [{
|
|
84
|
-
type: Directive,
|
|
85
|
-
args: [{
|
|
86
|
-
selector: '[vi-scroll-check]'
|
|
87
|
-
}]
|
|
88
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { top: [{
|
|
89
|
-
type: Output
|
|
90
|
-
}], bottom: [{
|
|
91
|
-
type: Output
|
|
92
|
-
}], limitExceed: [{
|
|
93
|
-
type: Output
|
|
94
|
-
}], delay: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], offset: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], scrollLimit: [{
|
|
99
|
-
type: Input,
|
|
100
|
-
args: ['vi-scroll-check']
|
|
101
|
-
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nyb2xsQ2hlY2tEaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGlyZWN0aXZlL1Njcm9sbENoZWNrRGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7QUFLNUIsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG9CQUFvQjtJQXdCMUQsNEVBQTRFO0lBQzVFLEVBQUU7SUFDRixjQUFjO0lBQ2QsRUFBRTtJQUNGLDRFQUE0RTtJQUU1RSxZQUFZLE9BQW1CO1FBQzNCLEtBQUssRUFBRSxDQUFDO1FBOUJaLDRFQUE0RTtRQUM1RSxFQUFFO1FBQ0YsYUFBYTtRQUNiLEVBQUU7UUFDRiw0RUFBNEU7UUFHckUsUUFBRyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWhELFdBQU0sR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRCxnQkFBVyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3ZELGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBR2hDLFVBQUssR0FBVyxRQUFRLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBRWxELFdBQU0sR0FBVyxFQUFFLENBQUM7UUFnQjNCLDRFQUE0RTtRQUM1RSxFQUFFO1FBQ0Ysb0JBQW9CO1FBQ3BCLEVBQUU7UUFDRiw0RUFBNEU7UUFFbEUsVUFBSyxHQUFHLEdBQVMsRUFBRTtZQUN6QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDakQsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2hDO1lBRUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEIsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO1lBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQztRQXpCRSxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBRXJDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUF1QkQsNEVBQTRFO0lBQzVFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDRFQUE0RTtJQUU1RSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLElBQWMsV0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFjLFlBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBYyxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDckMsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxFQUFFO0lBQ0Ysb0JBQW9CO0lBQ3BCLEVBQUU7SUFDRiw0RUFBNEU7SUFFNUUsSUFDVyxXQUFXLENBQUMsS0FBYTtRQUNoQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDOztrSEFqR1Esb0JBQW9CO3NHQUFwQixvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2lCQUNoQztpR0FTVSxHQUFHO3NCQURULE1BQU07Z0JBR0EsTUFBTTtzQkFEWixNQUFNO2dCQUdBLFdBQVc7c0JBRGpCLE1BQU07Z0JBU0EsS0FBSztzQkFEWCxLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSztnQkFtRUssV0FBVztzQkFEckIsS0FBSzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVV0aWwsIERlc3Ryb3lhYmxlQ29udGFpbmVyIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCB7IGZyb21FdmVudCwgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdmktc2Nyb2xsLWNoZWNrXSdcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsQ2hlY2tEaXJlY3RpdmUgZXh0ZW5kcyBEZXN0cm95YWJsZUNvbnRhaW5lciB7XG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB0b3A6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYm90dG9tOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGxpbWl0RXhjZWVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcml2YXRlIF9zY3JvbGxMaW1pdDogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGlzRXhjZWVkTGltaXQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlbGF5OiBudW1iZXIgPSBEYXRlVXRpbC5NSUxMSVNFQ09ORFNfU0VDT05EIC8gMTA7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb2Zmc2V0OiBudW1iZXIgPSA1MDtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRlbGF5ID0gRGF0ZVV0aWwuTUlMTElTRUNPTkRTX1NFQ09ORCAvIDEwO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudCwgJ3Njcm9sbCcpLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVsYXkpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUodGhpcy5jaGVjayk7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgY2hlY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuc2Nyb2xsVmFsdWUgPj0gdGhpcy5zY3JvbGxMaW1pdDtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLmlzRXhjZWVkTGltaXQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFeGNlZWRMaW1pdCA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5saW1pdEV4Y2VlZC5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBvZmZzZXQgPSAhXy5pc05hTih0aGlzLm9mZnNldCkgPyB0aGlzLm9mZnNldCA6IDA7XG4gICAgICAgIHZhbHVlID0gdGhpcy5zY3JvbGxWYWx1ZSArIHRoaXMuY2xpZW50SGVpZ2h0ICsgb2Zmc2V0ID49IHRoaXMuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB0aGlzLmJvdHRvbS5uZXh0KHZhbHVlKTtcblxuICAgICAgICB2YWx1ZSA9IHRoaXMuc2Nyb2xsVmFsdWUgPD0gb2Zmc2V0O1xuICAgICAgICB0aGlzLnRvcC5uZXh0KHZhbHVlKTtcbiAgICB9O1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByaXZhdGUgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcml2YXRlIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNjcm9sbFZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0IHNjcm9sbEhlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXQgY2xpZW50SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgIH1cblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQElucHV0KCd2aS1zY3JvbGwtY2hlY2snKVxuICAgIHB1YmxpYyBzZXQgc2Nyb2xsTGltaXQodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAodmFsdWUgPT0gdGhpcy5fc2Nyb2xsTGltaXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zY3JvbGxMaW1pdCA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNoZWNrKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgc2Nyb2xsTGltaXQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbExpbWl0O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
-
import { Destroyable } from '@ts-core/common';
|
|
3
|
-
import * as _ from 'lodash';
|
|
4
|
-
import { ViewUtil } from '../public-api';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class ScrollDirective extends Destroyable {
|
|
7
|
-
// --------------------------------------------------------------------------
|
|
8
|
-
//
|
|
9
|
-
// Constructor
|
|
10
|
-
//
|
|
11
|
-
// --------------------------------------------------------------------------
|
|
12
|
-
constructor(element) {
|
|
13
|
-
super();
|
|
14
|
-
// --------------------------------------------------------------------------
|
|
15
|
-
//
|
|
16
|
-
// Properties
|
|
17
|
-
//
|
|
18
|
-
// --------------------------------------------------------------------------
|
|
19
|
-
this.scrolled = new EventEmitter();
|
|
20
|
-
this.isInitialized = false;
|
|
21
|
-
this._scrollValue = 0;
|
|
22
|
-
this.initializeHandler = () => this.initialize();
|
|
23
|
-
this.element = ViewUtil.parseElement(element);
|
|
24
|
-
this.timer = setTimeout(this.initializeHandler, ScrollDirective.INITIALIZATION_DELAY);
|
|
25
|
-
}
|
|
26
|
-
// --------------------------------------------------------------------------
|
|
27
|
-
//
|
|
28
|
-
// Private Methods
|
|
29
|
-
//
|
|
30
|
-
// --------------------------------------------------------------------------
|
|
31
|
-
initialize() {
|
|
32
|
-
if (!_.isNil(this.scrollValue)) {
|
|
33
|
-
this.scrollTo(this.scrollValue);
|
|
34
|
-
}
|
|
35
|
-
this.isInitialized = true;
|
|
36
|
-
}
|
|
37
|
-
scrollTo(value, behavior) {
|
|
38
|
-
this._scrollValue = value;
|
|
39
|
-
this.element.scroll({ top: value, behavior });
|
|
40
|
-
}
|
|
41
|
-
// --------------------------------------------------------------------------
|
|
42
|
-
//
|
|
43
|
-
// Event Handlers
|
|
44
|
-
//
|
|
45
|
-
// --------------------------------------------------------------------------
|
|
46
|
-
scrollHandler() {
|
|
47
|
-
if (this.isInitialized) {
|
|
48
|
-
this.scrollChangedHandler();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
scrollChangedHandler() {
|
|
52
|
-
this._scrollValue = this.scrollTop;
|
|
53
|
-
this.scrolled.next(this._scrollValue);
|
|
54
|
-
}
|
|
55
|
-
// --------------------------------------------------------------------------
|
|
56
|
-
//
|
|
57
|
-
// Private Properties
|
|
58
|
-
//
|
|
59
|
-
// --------------------------------------------------------------------------
|
|
60
|
-
get scrollTop() {
|
|
61
|
-
return this.element.scrollTop;
|
|
62
|
-
}
|
|
63
|
-
// --------------------------------------------------------------------------
|
|
64
|
-
//
|
|
65
|
-
// Public Methods
|
|
66
|
-
//
|
|
67
|
-
// --------------------------------------------------------------------------
|
|
68
|
-
destroy() {
|
|
69
|
-
if (this.isDestroyed) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
super.destroy();
|
|
73
|
-
this.element = null;
|
|
74
|
-
this.isInitialized = false;
|
|
75
|
-
clearTimeout(this.timer);
|
|
76
|
-
this.timer = null;
|
|
77
|
-
this._scrollValue = 0;
|
|
78
|
-
}
|
|
79
|
-
// --------------------------------------------------------------------------
|
|
80
|
-
//
|
|
81
|
-
// Public Properties
|
|
82
|
-
//
|
|
83
|
-
// --------------------------------------------------------------------------
|
|
84
|
-
set scrollValue(value) {
|
|
85
|
-
if (value === this._scrollValue || _.isNaN(value)) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
this._scrollValue = value;
|
|
89
|
-
if (this.isInitialized) {
|
|
90
|
-
this.scrollTo(value);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
get scrollValue() {
|
|
94
|
-
return this._scrollValue;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
// --------------------------------------------------------------------------
|
|
98
|
-
//
|
|
99
|
-
// Static Properties
|
|
100
|
-
//
|
|
101
|
-
// --------------------------------------------------------------------------
|
|
102
|
-
ScrollDirective.INITIALIZATION_DELAY = 1;
|
|
103
|
-
ScrollDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
104
|
-
ScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: ScrollDirective, selector: "[vi-scroll]", inputs: { scrollValue: "scrollValue" }, outputs: { scrolled: "scrolled" }, host: { listeners: { "scroll": "scrollHandler()" } }, usesInheritance: true, ngImport: i0 });
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollDirective, decorators: [{
|
|
106
|
-
type: Directive,
|
|
107
|
-
args: [{
|
|
108
|
-
selector: '[vi-scroll]'
|
|
109
|
-
}]
|
|
110
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { scrolled: [{
|
|
111
|
-
type: Output
|
|
112
|
-
}], scrollHandler: [{
|
|
113
|
-
type: HostListener,
|
|
114
|
-
args: ['scroll']
|
|
115
|
-
}], scrollValue: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}] } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Nyb2xsRGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZS9TY3JvbGxEaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3pDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7SUF3QjVDLDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsY0FBYztJQUNkLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBWSxPQUFtQjtRQUMzQixLQUFLLEVBQUUsQ0FBQztRQXRCWiw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLGFBQWE7UUFDYixFQUFFO1FBQ0YsNkVBQTZFO1FBR3RFLGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUlqRCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQWtEekIsc0JBQWlCLEdBQUcsR0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBeEN4RCxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLFVBQVU7UUFDaEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVTLFFBQVEsQ0FBQyxLQUFhLEVBQUUsUUFBeUI7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsaUJBQWlCO0lBQ2pCLEVBQUU7SUFDRiw2RUFBNkU7SUFHdEUsYUFBYTtRQUNoQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRVMsb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUlELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsSUFBYyxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsaUJBQWlCO0lBQ2pCLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFM0IsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RSxJQUNXLFdBQVcsQ0FBQyxLQUFhO1FBQ2hDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7O0FBM0hELDZFQUE2RTtBQUM3RSxFQUFFO0FBQ0Ysb0JBQW9CO0FBQ3BCLEVBQUU7QUFDRiw2RUFBNkU7QUFFL0Qsb0NBQW9CLEdBQVcsQ0FBQyxDQUFDOzZHQVB0QyxlQUFlO2lHQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFIM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtpQkFDMUI7aUdBaUJVLFFBQVE7c0JBRGQsTUFBTTtnQkE4Q0EsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxRQUFRO2dCQW9EWCxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUgfSBmcm9tICdAdHMtY29yZS9jb21tb24nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgVmlld1V0aWwgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdmktc2Nyb2xsXSdcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsRGlyZWN0aXZlIGV4dGVuZHMgRGVzdHJveWFibGUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0U3RhdGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgc3RhdGljIElOSVRJQUxJWkFUSU9OX0RFTEFZOiBudW1iZXIgPSAxO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNjcm9sbGVkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByaXZhdGUgdGltZXI6IGFueTtcbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgcHJvdGVjdGVkIGlzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBfc2Nyb2xsVmFsdWU6IG51bWJlciA9IDA7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBWaWV3VXRpbC5wYXJzZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KHRoaXMuaW5pdGlhbGl6ZUhhbmRsZXIsIFNjcm9sbERpcmVjdGl2ZS5JTklUSUFMSVpBVElPTl9ERUxBWSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQcml2YXRlIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMuc2Nyb2xsVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMuc2Nyb2xsVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNjcm9sbFRvKHZhbHVlOiBudW1iZXIsIGJlaGF2aW9yPzogU2Nyb2xsQmVoYXZpb3IpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5lbGVtZW50LnNjcm9sbCh7IHRvcDogdmFsdWUsIGJlaGF2aW9yIH0pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0RXZlbnQgSGFuZGxlcnNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBASG9zdExpc3RlbmVyKCdzY3JvbGwnKVxuICAgIHB1YmxpYyBzY3JvbGxIYW5kbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbENoYW5nZWRIYW5kbGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2Nyb2xsQ2hhbmdlZEhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Njcm9sbFZhbHVlID0gdGhpcy5zY3JvbGxUb3A7XG4gICAgICAgIHRoaXMuc2Nyb2xsZWQubmV4dCh0aGlzLl9zY3JvbGxWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVIYW5kbGVyID0gKCk6IHZvaWQgPT4gdGhpcy5pbml0aWFsaXplKCk7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFByaXZhdGUgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBnZXQgc2Nyb2xsVG9wKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICB0aGlzLnRpbWVyID0gbnVsbDtcblxuICAgICAgICB0aGlzLl9zY3JvbGxWYWx1ZSA9IDA7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBzY3JvbGxWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fc2Nyb2xsVmFsdWUgfHwgXy5pc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zY3JvbGxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2Nyb2xsVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbFZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,47 +0,0 @@
|
|
|
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 SelectOnFocusDirective extends Destroyable {
|
|
6
|
-
// --------------------------------------------------------------------------
|
|
7
|
-
//
|
|
8
|
-
// Constructor
|
|
9
|
-
//
|
|
10
|
-
// --------------------------------------------------------------------------
|
|
11
|
-
constructor(element) {
|
|
12
|
-
super();
|
|
13
|
-
this.element = element;
|
|
14
|
-
}
|
|
15
|
-
// --------------------------------------------------------------------------
|
|
16
|
-
//
|
|
17
|
-
// Event Handlers
|
|
18
|
-
//
|
|
19
|
-
// --------------------------------------------------------------------------
|
|
20
|
-
focusHandler() {
|
|
21
|
-
ViewUtil.selectContent(this.element);
|
|
22
|
-
}
|
|
23
|
-
// --------------------------------------------------------------------------
|
|
24
|
-
//
|
|
25
|
-
// Public Methods
|
|
26
|
-
//
|
|
27
|
-
// --------------------------------------------------------------------------
|
|
28
|
-
destroy() {
|
|
29
|
-
if (this.isDestroyed) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
super.destroy();
|
|
33
|
-
this.element = null;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
SelectOnFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectOnFocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
37
|
-
SelectOnFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: SelectOnFocusDirective, selector: "[vi-select-on-focus]", host: { listeners: { "focus": "focusHandler()" } }, usesInheritance: true, ngImport: i0 });
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectOnFocusDirective, decorators: [{
|
|
39
|
-
type: Directive,
|
|
40
|
-
args: [{
|
|
41
|
-
selector: '[vi-select-on-focus]'
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { focusHandler: [{
|
|
44
|
-
type: HostListener,
|
|
45
|
-
args: ['focus']
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0T25Gb2N1c0RpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kaXJlY3RpdmUvU2VsZWN0T25Gb2N1c0RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUs1QyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQUNuRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQW9CLE9BQW1CO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBRFEsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUV2QyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixpQkFBaUI7SUFDakIsRUFBRTtJQUNGLDZFQUE2RTtJQUd0RSxZQUFZO1FBQ2YsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsaUJBQWlCO0lBQ2pCLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQzs7b0hBbENRLHNCQUFzQjt3R0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtpQkFDbkM7aUdBbUJVLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBWaWV3VXRpbCB9IGZyb20gJy4uL3V0aWwvVmlld1V0aWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t2aS1zZWxlY3Qtb24tZm9jdXNdJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RPbkZvY3VzRGlyZWN0aXZlIGV4dGVuZHMgRGVzdHJveWFibGUge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdEV2ZW50IEhhbmRsZXJzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHB1YmxpYyBmb2N1c0hhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIFZpZXdVdGlsLnNlbGVjdENvbnRlbnQodGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { DestroyableContainer } from '@ts-core/common';
|
|
2
|
-
import * as _ from 'lodash';
|
|
3
|
-
export class StructureDirective extends DestroyableContainer {
|
|
4
|
-
// --------------------------------------------------------------------------
|
|
5
|
-
//
|
|
6
|
-
// Constructor
|
|
7
|
-
//
|
|
8
|
-
// --------------------------------------------------------------------------
|
|
9
|
-
constructor(template, container) {
|
|
10
|
-
super();
|
|
11
|
-
this.template = template;
|
|
12
|
-
this.container = container;
|
|
13
|
-
}
|
|
14
|
-
commitIsNeedAddProperties() {
|
|
15
|
-
if (this.isDestroyed) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
let isNeedAdd = false;
|
|
19
|
-
let isNeedRemove = false;
|
|
20
|
-
if (this.isNeedAdd) {
|
|
21
|
-
if (_.isNil(this.view)) {
|
|
22
|
-
isNeedAdd = true;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
if (!_.isNil(this.view)) {
|
|
27
|
-
isNeedRemove = true;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (isNeedAdd) {
|
|
31
|
-
this.view = this.container.createEmbeddedView(this.template);
|
|
32
|
-
}
|
|
33
|
-
else if (isNeedRemove) {
|
|
34
|
-
let index = this.container.indexOf(this.view);
|
|
35
|
-
if (index >= 0) {
|
|
36
|
-
this.container.remove(index);
|
|
37
|
-
this.view = null;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
// --------------------------------------------------------------------------
|
|
42
|
-
//
|
|
43
|
-
// Public Methods
|
|
44
|
-
//
|
|
45
|
-
// --------------------------------------------------------------------------
|
|
46
|
-
destroy() {
|
|
47
|
-
if (this.isDestroyed) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
super.destroy();
|
|
51
|
-
this.view = null;
|
|
52
|
-
this.template = null;
|
|
53
|
-
this.container = null;
|
|
54
|
-
}
|
|
55
|
-
//--------------------------------------------------------------------------
|
|
56
|
-
//
|
|
57
|
-
// Protected Properties
|
|
58
|
-
//
|
|
59
|
-
//--------------------------------------------------------------------------
|
|
60
|
-
set isNeedAdd(value) {
|
|
61
|
-
if (value == this._isNeedAdd) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
this._isNeedAdd = value;
|
|
65
|
-
this.commitIsNeedAddProperties();
|
|
66
|
-
}
|
|
67
|
-
get isNeedAdd() {
|
|
68
|
-
return this._isNeedAdd;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RydWN0dXJlRGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZS9TdHJ1Y3R1cmVEaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLGtCQUE0QixTQUFRLG9CQUFvQjtJQVVqRSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGNBQWM7SUFDZCxFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQXNCLFFBQXdCLEVBQVksU0FBMkI7UUFDakYsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBRXJGLENBQUM7SUFFUyx5QkFBeUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLE9BQU87U0FDVjtRQUVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BCLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDcEI7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNyQixZQUFZLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO1NBQ0o7UUFFRCxJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDaEU7YUFBTSxJQUFJLFlBQVksRUFBRTtZQUNyQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQzthQUNwQjtTQUNKO0lBQ0wsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsaUJBQWlCO0lBQ2pCLEVBQUU7SUFDRiw2RUFBNkU7SUFFdEUsT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPO1NBQ1Y7UUFDRCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxFQUFFO0lBQ0YsdUJBQXVCO0lBQ3ZCLEVBQUU7SUFDRiw0RUFBNEU7SUFFNUUsSUFBYyxTQUFTLENBQUMsS0FBYztRQUNsQyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzFCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFjLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVtYmVkZGVkVmlld1JlZiwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlQ29udGFpbmVyIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNsYXNzIFN0cnVjdHVyZURpcmVjdGl2ZTxUID0gYW55PiBleHRlbmRzIERlc3Ryb3lhYmxlQ29udGFpbmVyIHtcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIHZpZXc6IEVtYmVkZGVkVmlld1JlZjxUPjtcbiAgICBwcm90ZWN0ZWQgX2lzTmVlZEFkZDogYm9vbGVhbjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+LCBwcm90ZWN0ZWQgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbW1pdElzTmVlZEFkZFByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaXNOZWVkQWRkID0gZmFsc2U7XG4gICAgICAgIGxldCBpc05lZWRSZW1vdmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXNOZWVkQWRkKSB7XG4gICAgICAgICAgICBpZiAoXy5pc05pbCh0aGlzLnZpZXcpKSB7XG4gICAgICAgICAgICAgICAgaXNOZWVkQWRkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghXy5pc05pbCh0aGlzLnZpZXcpKSB7XG4gICAgICAgICAgICAgICAgaXNOZWVkUmVtb3ZlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05lZWRBZGQpIHtcbiAgICAgICAgICAgIHRoaXMudmlldyA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc05lZWRSZW1vdmUpIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuY29udGFpbmVyLmluZGV4T2YodGhpcy52aWV3KTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXIucmVtb3ZlKGluZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXcgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy52aWV3ID0gbnVsbDtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJvdGVjdGVkIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBzZXQgaXNOZWVkQWRkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSB0aGlzLl9pc05lZWRBZGQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc05lZWRBZGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jb21taXRJc05lZWRBZGRQcm9wZXJ0aWVzKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXQgaXNOZWVkQWRkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNOZWVkQWRkO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { map } from 'rxjs';
|
|
2
|
-
import { message, validate } from './validate';
|
|
3
|
-
import { ValueAccessor } from './ValueAccessor';
|
|
4
|
-
export class FormElementAsync extends ValueAccessor {
|
|
5
|
-
// --------------------------------------------------------------------------
|
|
6
|
-
//
|
|
7
|
-
// Constructor
|
|
8
|
-
//
|
|
9
|
-
// --------------------------------------------------------------------------
|
|
10
|
-
constructor(validators, asyncValidators) {
|
|
11
|
-
super();
|
|
12
|
-
this.validators = validators;
|
|
13
|
-
this.asyncValidators = asyncValidators;
|
|
14
|
-
}
|
|
15
|
-
validate() {
|
|
16
|
-
return validate(this.validators, this.asyncValidators)(this.model.control);
|
|
17
|
-
}
|
|
18
|
-
get invalid() {
|
|
19
|
-
return this.validate().pipe(map(v => {
|
|
20
|
-
return Object.keys(v || {}).length > 0;
|
|
21
|
-
}));
|
|
22
|
-
}
|
|
23
|
-
get failures() {
|
|
24
|
-
return this.validate().pipe(map(v => Object.keys(v).map(k => message(v, k))));
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybUVsZW1lbnRBc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mb3JtL0Zvcm1FbGVtZW50QXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQXVCLE9BQU8sRUFBRSxRQUFRLEVBQW9DLE1BQU0sWUFBWSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxNQUFNLE9BQWdCLGdCQUFvQixTQUFRLGFBQWdCO0lBUzlELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBb0IsVUFBMEIsRUFBVSxlQUFvQztRQUN4RixLQUFLLEVBQUUsQ0FBQztRQURRLGVBQVUsR0FBVixVQUFVLENBQWdCO1FBQVUsb0JBQWUsR0FBZixlQUFlLENBQXFCO0lBRTVGLENBQUM7SUFFUyxRQUFRO1FBQ2QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBYyxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ0osT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBYyxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JBcnJheSwgbWVzc2FnZSwgdmFsaWRhdGUsIFZhbGlkYXRpb25SZXN1bHQsIFZhbGlkYXRvckFycmF5IH0gZnJvbSAnLi92YWxpZGF0ZSc7XG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9WYWx1ZUFjY2Vzc29yJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1FbGVtZW50QXN5bmM8VD4gZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yPFQ+IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbW9kZWw6IE5nTW9kZWw7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2YWxpZGF0b3JzOiBWYWxpZGF0b3JBcnJheSwgcHJpdmF0ZSBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yQXJyYXkpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGUoKTogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZSh0aGlzLnZhbGlkYXRvcnMsIHRoaXMuYXN5bmNWYWxpZGF0b3JzKSh0aGlzLm1vZGVsLmNvbnRyb2wpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaW52YWxpZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGUoKS5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh2IHx8IHt9KS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGZhaWx1cmVzKCk6IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZSgpLnBpcGUobWFwKHYgPT4gT2JqZWN0LmtleXModikubWFwKGsgPT4gbWVzc2FnZSh2LCBrKSkpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import { message } from './validate';
|
|
3
|
-
import { ValueAccessor } from './ValueAccessor';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class FormElementSync extends ValueAccessor {
|
|
6
|
-
// --------------------------------------------------------------------------
|
|
7
|
-
//
|
|
8
|
-
// Constructor
|
|
9
|
-
//
|
|
10
|
-
// --------------------------------------------------------------------------
|
|
11
|
-
constructor(validators) {
|
|
12
|
-
super();
|
|
13
|
-
this.validators = validators;
|
|
14
|
-
this.validate = () => {
|
|
15
|
-
if (!this.validators || this.validators.length === 0) {
|
|
16
|
-
this._validationError = null;
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
let failure = null;
|
|
20
|
-
for (let item of this.validators) {
|
|
21
|
-
failure = typeof item === 'function' ? item(this.model.control) : item.validate(this.model.control);
|
|
22
|
-
if (failure) {
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
this._validationError = failure ? message(failure, Object.keys(failure)[0]) : null;
|
|
27
|
-
return failure;
|
|
28
|
-
};
|
|
29
|
-
this.isErrorState = (control, form) => {
|
|
30
|
-
return this.invalid;
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
// --------------------------------------------------------------------------
|
|
34
|
-
//
|
|
35
|
-
// Protected Methods
|
|
36
|
-
//
|
|
37
|
-
// --------------------------------------------------------------------------
|
|
38
|
-
valueChanged() {
|
|
39
|
-
super.valueChanged();
|
|
40
|
-
setTimeout(this.validate);
|
|
41
|
-
}
|
|
42
|
-
get valid() {
|
|
43
|
-
return !this.invalid;
|
|
44
|
-
}
|
|
45
|
-
get invalid() {
|
|
46
|
-
return this._validationError != null;
|
|
47
|
-
}
|
|
48
|
-
get validationError() {
|
|
49
|
-
return this._validationError;
|
|
50
|
-
}
|
|
51
|
-
// --------------------------------------------------------------------------
|
|
52
|
-
//
|
|
53
|
-
// Public Methods
|
|
54
|
-
//
|
|
55
|
-
// --------------------------------------------------------------------------
|
|
56
|
-
ngAfterContentInit() {
|
|
57
|
-
this.validate();
|
|
58
|
-
}
|
|
59
|
-
ngOnDestroy() {
|
|
60
|
-
clearTimeout(this.timer);
|
|
61
|
-
this.timer = null;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
FormElementSync.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormElementSync, deps: [{ token: Array }], target: i0.ɵɵFactoryTarget.Directive });
|
|
65
|
-
FormElementSync.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: FormElementSync, usesInheritance: true, ngImport: i0 });
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormElementSync, decorators: [{
|
|
67
|
-
type: Directive
|
|
68
|
-
}], ctorParameters: function () { return [{ type: Array }]; } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybUVsZW1lbnRTeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Zvcm0vRm9ybUVsZW1lbnRTeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxPQUFPLEVBQW9CLE1BQU0sWUFBWSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHaEQsTUFBTSxPQUFnQixlQUFtQixTQUFRLGFBQWdCO0lBVzdELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0YsZUFBZTtJQUNmLEVBQUU7SUFDRiw2RUFBNkU7SUFFN0UsWUFBb0IsVUFBMEM7UUFDMUQsS0FBSyxFQUFFLENBQUM7UUFEUSxlQUFVLEdBQVYsVUFBVSxDQUFnQztRQWVwRCxhQUFRLEdBQUcsR0FBcUIsRUFBRTtZQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ2xELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxJQUFJLE9BQU8sR0FBcUIsSUFBSSxDQUFDO1lBQ3JDLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDOUIsT0FBTyxHQUFHLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDcEcsSUFBSSxPQUFPLEVBQUU7b0JBQ1QsTUFBTTtpQkFDVDthQUNKO1lBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuRixPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUM7UUFjUSxpQkFBWSxHQUFHLENBQUMsT0FBMkIsRUFBRSxJQUF3QyxFQUFXLEVBQUU7WUFDeEcsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUMsQ0FBQztJQTVDRixDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxZQUFZO1FBQ2xCLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyQixVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFtQkQsSUFBVyxLQUFLO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFNRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRXRFLGtCQUFrQjtRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLFdBQVc7UUFDZCxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7OzZHQTlFaUIsZUFBZTtpR0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBRHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBEaXJlY3RpdmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtLCBOZ01vZGVsLCBWYWxpZGF0b3IsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbWVzc2FnZSwgVmFsaWRhdGlvblJlc3VsdCB9IGZyb20gJy4vdmFsaWRhdGUnO1xuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vVmFsdWVBY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1FbGVtZW50U3luYzxUPiBleHRlbmRzIFZhbHVlQWNjZXNzb3I8VD4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBtb2RlbDogTmdNb2RlbDtcbiAgICBwcm90ZWN0ZWQgX3ZhbGlkYXRpb25FcnJvcjogc3RyaW5nO1xuICAgIHByb3RlY3RlZCB0aW1lcjogYW55O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmFsaWRhdG9yczogQXJyYXk8VmFsaWRhdG9yIHwgVmFsaWRhdG9yRm4+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnZhbHVlQ2hhbmdlZCgpO1xuICAgICAgICBzZXRUaW1lb3V0KHRoaXMudmFsaWRhdGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWxpZGF0ZSA9ICgpOiBWYWxpZGF0aW9uUmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRvcnMgfHwgdGhpcy52YWxpZGF0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGlvbkVycm9yID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZhaWx1cmU6IFZhbGlkYXRpb25SZXN1bHQgPSBudWxsO1xuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMudmFsaWRhdG9ycykge1xuICAgICAgICAgICAgZmFpbHVyZSA9IHR5cGVvZiBpdGVtID09PSAnZnVuY3Rpb24nID8gaXRlbSh0aGlzLm1vZGVsLmNvbnRyb2wpIDogaXRlbS52YWxpZGF0ZSh0aGlzLm1vZGVsLmNvbnRyb2wpO1xuICAgICAgICAgICAgaWYgKGZhaWx1cmUpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWxpZGF0aW9uRXJyb3IgPSBmYWlsdXJlID8gbWVzc2FnZShmYWlsdXJlLCBPYmplY3Qua2V5cyhmYWlsdXJlKVswXSkgOiBudWxsO1xuICAgICAgICByZXR1cm4gZmFpbHVyZTtcbiAgICB9O1xuXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmludmFsaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvbkVycm9yICE9IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uRXJyb3IoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRpb25FcnJvcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNFcnJvclN0YXRlID0gKGNvbnRyb2w6IEZvcm1Db250cm9sIHwgbnVsbCwgZm9ybTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtIHwgbnVsbCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnZhbGlkO1xuICAgIH07XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFB1YmxpYyBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICB0aGlzLnRpbWVyID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Destroyable } from '@ts-core/common';
|
|
2
|
-
export class ValueAccessor extends Destroyable {
|
|
3
|
-
// --------------------------------------------------------------------------
|
|
4
|
-
//
|
|
5
|
-
// Constuctor
|
|
6
|
-
//
|
|
7
|
-
// --------------------------------------------------------------------------
|
|
8
|
-
constructor() {
|
|
9
|
-
super();
|
|
10
|
-
this.changed = [];
|
|
11
|
-
this.touched = [];
|
|
12
|
-
}
|
|
13
|
-
// --------------------------------------------------------------------------
|
|
14
|
-
//
|
|
15
|
-
// Protected Methods
|
|
16
|
-
//
|
|
17
|
-
// --------------------------------------------------------------------------
|
|
18
|
-
valueChanged() {
|
|
19
|
-
this.changed.forEach(f => f(this.innerValue));
|
|
20
|
-
}
|
|
21
|
-
// --------------------------------------------------------------------------
|
|
22
|
-
//
|
|
23
|
-
// Public Methods
|
|
24
|
-
//
|
|
25
|
-
// --------------------------------------------------------------------------
|
|
26
|
-
touch() {
|
|
27
|
-
this.touched.forEach(f => f());
|
|
28
|
-
}
|
|
29
|
-
writeValue(value) {
|
|
30
|
-
this.value = value;
|
|
31
|
-
}
|
|
32
|
-
registerOnChange(fn) {
|
|
33
|
-
this.changed.push(fn);
|
|
34
|
-
}
|
|
35
|
-
registerOnTouched(fn) {
|
|
36
|
-
this.touched.push(fn);
|
|
37
|
-
}
|
|
38
|
-
destroy() {
|
|
39
|
-
if (this.isDestroyed) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
super.destroy();
|
|
43
|
-
this.changed = null;
|
|
44
|
-
this.touched = null;
|
|
45
|
-
}
|
|
46
|
-
// --------------------------------------------------------------------------
|
|
47
|
-
//
|
|
48
|
-
// Public Properties
|
|
49
|
-
//
|
|
50
|
-
// --------------------------------------------------------------------------
|
|
51
|
-
get value() {
|
|
52
|
-
return this.innerValue;
|
|
53
|
-
}
|
|
54
|
-
set value(value) {
|
|
55
|
-
if (value == this.innerValue) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
this.innerValue = value;
|
|
59
|
-
this.valueChanged();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsdWVBY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mb3JtL1ZhbHVlQWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxhQUFpQixTQUFRLFdBQVc7SUFXN0MsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixhQUFhO0lBQ2IsRUFBRTtJQUNGLDZFQUE2RTtJQUU3RTtRQUNJLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELDZFQUE2RTtJQUM3RSxFQUFFO0lBQ0Ysb0JBQW9CO0lBQ3BCLEVBQUU7SUFDRiw2RUFBNkU7SUFFbkUsWUFBWTtRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixrQkFBa0I7SUFDbEIsRUFBRTtJQUNGLDZFQUE2RTtJQUV0RSxLQUFLO1FBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBUTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBc0I7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQWM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLE9BQU87UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsS0FBUTtRQUNyQixJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzFCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERlc3Ryb3lhYmxlIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIFZhbHVlQWNjZXNzb3I8VD4gZXh0ZW5kcyBEZXN0cm95YWJsZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcml2YXRlIGlubmVyVmFsdWU6IFQ7XG4gICAgcHJpdmF0ZSBjaGFuZ2VkOiBBcnJheTwodmFsdWU6IFQpID0+IHZvaWQ+O1xuICAgIHByaXZhdGUgdG91Y2hlZDogQXJyYXk8KCkgPT4gdm9pZD47XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy9cdENvbnN0dWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VkID0gW107XG4gICAgICAgIHRoaXMudG91Y2hlZCA9IFtdO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvL1x0UHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgdmFsdWVDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZWQuZm9yRWFjaChmID0+IGYodGhpcy5pbm5lclZhbHVlKSk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyB0b3VjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b3VjaGVkLmZvckVhY2goZiA9PiBmKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlZC5wdXNoKGZuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b3VjaGVkLnB1c2goZm4pO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgICAgICB0aGlzLmNoYW5nZWQgPSBudWxsO1xuICAgICAgICB0aGlzLnRvdWNoZWQgPSBudWxsO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFQpIHtcbiAgICAgICAgaWYgKHZhbHVlID09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZCgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Validators } from '@angular/forms';
|
|
2
|
-
import * as _ from 'lodash';
|
|
3
|
-
import { of } from 'rxjs';
|
|
4
|
-
let normalizeValidator = (validator) => {
|
|
5
|
-
let func = validator.validate.bind(validator);
|
|
6
|
-
if (typeof func === 'function') {
|
|
7
|
-
return (control) => func(control);
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
return validator;
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
export let composeValidators = (validators) => {
|
|
14
|
-
if (_.isEmpty(validators)) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
return Validators.compose(validators.map(normalizeValidator));
|
|
18
|
-
};
|
|
19
|
-
export let validate = (validators, asyncValidators) => {
|
|
20
|
-
return (control) => {
|
|
21
|
-
let synchronousValid = () => composeValidators(validators)(control);
|
|
22
|
-
if (asyncValidators) {
|
|
23
|
-
let asyncValidator = composeValidators(asyncValidators);
|
|
24
|
-
return asyncValidator(control).map(v => {
|
|
25
|
-
let secondary = synchronousValid();
|
|
26
|
-
if (secondary || v) {
|
|
27
|
-
return Object.assign({}, secondary, v);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
if (validators) {
|
|
32
|
-
return of(synchronousValid());
|
|
33
|
-
}
|
|
34
|
-
return of(null);
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
export const message = (validator, key) => {
|
|
38
|
-
if (!key) {
|
|
39
|
-
return 'Validation failed: ' + validator.toString();
|
|
40
|
-
}
|
|
41
|
-
switch (key) {
|
|
42
|
-
case 'required':
|
|
43
|
-
return 'Please enter a value';
|
|
44
|
-
case 'pattern':
|
|
45
|
-
return 'Value does not match required pattern';
|
|
46
|
-
case 'minlength':
|
|
47
|
-
return 'Value must be N characters';
|
|
48
|
-
case 'maxlength':
|
|
49
|
-
return 'Value must be a maximum of N characters';
|
|
50
|
-
}
|
|
51
|
-
let value = validator[key];
|
|
52
|
-
switch (typeof value) {
|
|
53
|
-
case 'string':
|
|
54
|
-
return value;
|
|
55
|
-
default:
|
|
56
|
-
return 'Validation failed: ' + key;
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZm9ybS92YWxpZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFZMUIsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLFNBQWtDLEVBQWtDLEVBQUU7SUFDNUYsSUFBSSxJQUFJLEdBQUksU0FBdUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdELElBQUksT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFO1FBQzVCLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDdEQ7U0FBTTtRQUNILE9BQXVDLFNBQVMsQ0FBQztLQUNwRDtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixHQUFHLENBQUMsVUFBMEIsRUFBa0MsRUFBRTtJQUMxRixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDdkIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxVQUEwQixFQUFFLGVBQW9DLEVBQUUsRUFBRTtJQUN2RixPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1FBQ2hDLElBQUksZ0JBQWdCLEdBQUcsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsSUFBSSxlQUFlLEVBQUU7WUFDakIsSUFBSSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLFNBQVMsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUU7b0JBQ2hCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUMxQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLFVBQVUsRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztTQUNqQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQTJCLEVBQUUsR0FBVyxFQUFVLEVBQUU7SUFDeEUsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNOLE9BQU8scUJBQXFCLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3ZEO0lBRUQsUUFBUSxHQUFHLEVBQUU7UUFDVCxLQUFLLFVBQVU7WUFDWCxPQUFPLHNCQUFzQixDQUFDO1FBQ2xDLEtBQUssU0FBUztZQUNWLE9BQU8sdUNBQXVDLENBQUM7UUFDbkQsS0FBSyxXQUFXO1lBQ1osT0FBTyw0QkFBNEIsQ0FBQztRQUN4QyxLQUFLLFdBQVc7WUFDWixPQUFPLHlDQUF5QyxDQUFDO0tBQ3hEO0lBRUQsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLFFBQVEsT0FBTyxLQUFLLEVBQUU7UUFDbEIsS0FBSyxRQUFRO1lBQ1QsT0FBTyxLQUFlLENBQUM7UUFDM0I7WUFDSSxPQUFPLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztLQUMxQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdG9yLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vL1xuLy8gIEV4cG9ydCBQcm9wZXJ0aWVzXG4vL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdCA9IHsgW3ZhbGlkYXRvcjogc3RyaW5nXTogc3RyaW5nIHwgYm9vbGVhbiB9O1xuZXhwb3J0IHR5cGUgVmFsaWRhdG9yQXJyYXkgPSBBcnJheTxWYWxpZGF0b3IgfCBWYWxpZGF0b3JGbj47XG5leHBvcnQgdHlwZSBBc3luY1ZhbGlkYXRvckFycmF5ID0gQXJyYXk8VmFsaWRhdG9yIHwgQXN5bmNWYWxpZGF0b3JGbj47XG5cbmxldCBub3JtYWxpemVWYWxpZGF0b3IgPSAodmFsaWRhdG9yOiBWYWxpZGF0b3IgfCBWYWxpZGF0b3JGbik6IFZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbiA9PiB7XG4gICAgbGV0IGZ1bmMgPSAodmFsaWRhdG9yIGFzIFZhbGlkYXRvcikudmFsaWRhdGUuYmluZCh2YWxpZGF0b3IpO1xuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gZnVuYyhjb250cm9sKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gPFZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbj52YWxpZGF0b3I7XG4gICAgfVxufTtcblxuZXhwb3J0IGxldCBjb21wb3NlVmFsaWRhdG9ycyA9ICh2YWxpZGF0b3JzOiBWYWxpZGF0b3JBcnJheSk6IEFzeW5jVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbiA9PiB7XG4gICAgaWYgKF8uaXNFbXB0eSh2YWxpZGF0b3JzKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZGF0b3JzLm1hcChub3JtYWxpemVWYWxpZGF0b3IpKTtcbn07XG5cbmV4cG9ydCBsZXQgdmFsaWRhdGUgPSAodmFsaWRhdG9yczogVmFsaWRhdG9yQXJyYXksIGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JBcnJheSkgPT4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICAgIGxldCBzeW5jaHJvbm91c1ZhbGlkID0gKCkgPT4gY29tcG9zZVZhbGlkYXRvcnModmFsaWRhdG9ycykoY29udHJvbCk7XG4gICAgICAgIGlmIChhc3luY1ZhbGlkYXRvcnMpIHtcbiAgICAgICAgICAgIGxldCBhc3luY1ZhbGlkYXRvciA9IGNvbXBvc2VWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XG4gICAgICAgICAgICByZXR1cm4gYXN5bmNWYWxpZGF0b3IoY29udHJvbCkubWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzZWNvbmRhcnkgPSBzeW5jaHJvbm91c1ZhbGlkKCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlY29uZGFyeSB8fCB2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzZWNvbmRhcnksIHYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWxpZGF0b3JzKSB7XG4gICAgICAgICAgICByZXR1cm4gb2Yoc3luY2hyb25vdXNWYWxpZCgpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBtZXNzYWdlID0gKHZhbGlkYXRvcjogVmFsaWRhdGlvblJlc3VsdCwga2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIGlmICgha2V5KSB7XG4gICAgICAgIHJldHVybiAnVmFsaWRhdGlvbiBmYWlsZWQ6ICcgKyB2YWxpZGF0b3IudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICBjYXNlICdyZXF1aXJlZCc6XG4gICAgICAgICAgICByZXR1cm4gJ1BsZWFzZSBlbnRlciBhIHZhbHVlJztcbiAgICAgICAgY2FzZSAncGF0dGVybic6XG4gICAgICAgICAgICByZXR1cm4gJ1ZhbHVlIGRvZXMgbm90IG1hdGNoIHJlcXVpcmVkIHBhdHRlcm4nO1xuICAgICAgICBjYXNlICdtaW5sZW5ndGgnOlxuICAgICAgICAgICAgcmV0dXJuICdWYWx1ZSBtdXN0IGJlIE4gY2hhcmFjdGVycyc7XG4gICAgICAgIGNhc2UgJ21heGxlbmd0aCc6XG4gICAgICAgICAgICByZXR1cm4gJ1ZhbHVlIG11c3QgYmUgYSBtYXhpbXVtIG9mIE4gY2hhcmFjdGVycyc7XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlID0gdmFsaWRhdG9yW2tleV07XG4gICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSBhcyBzdHJpbmc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gJ1ZhbGlkYXRpb24gZmFpbGVkOiAnICsga2V5O1xuICAgIH1cbn07XG4iXX0=
|