@micropermit/client-angular 0.4.4 → 0.4.5-alpha2
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/{fesm2015/micropermit-client-angular.js → fesm2022/micropermit-client-angular.mjs} +354 -1513
- package/fesm2022/micropermit-client-angular.mjs.map +1 -0
- package/{micropermit-client-angular.d.ts → index.d.ts} +1 -0
- package/lib/components/errorindicator.component.d.ts +3 -0
- package/lib/components/loadingindicator.component.d.ts +3 -0
- package/lib/directives/call-link.directive.d.ts +3 -0
- package/lib/directives/linkfield.directive.d.ts +7 -4
- package/lib/directives/micro-link-validate.directive.d.ts +3 -0
- package/lib/link-field-paging-support.d.ts +1 -1
- package/lib/microclient.module.d.ts +10 -0
- package/lib/microclient.service.d.ts +3 -0
- package/lib/pipes/linkfield.pipe.d.ts +3 -0
- package/package.json +14 -12
- package/bundles/micropermit-client-angular.umd.js +0 -3315
- package/bundles/micropermit-client-angular.umd.js.map +0 -1
- package/bundles/micropermit-client-angular.umd.min.js +0 -16
- package/bundles/micropermit-client-angular.umd.min.js.map +0 -1
- package/esm2015/lib/components/errorindicator.component.js +0 -53
- package/esm2015/lib/components/loadingindicator.component.js +0 -49
- package/esm2015/lib/directives/call-link.directive.js +0 -110
- package/esm2015/lib/directives/linkfield.directive.js +0 -363
- package/esm2015/lib/directives/micro-link-validate.directive.js +0 -141
- package/esm2015/lib/error/microerror.js +0 -27
- package/esm2015/lib/link-field-paging-support.js +0 -318
- package/esm2015/lib/links/callablelink.js +0 -265
- package/esm2015/lib/links/linkfield.js +0 -289
- package/esm2015/lib/links/mock-linkfield.js +0 -42
- package/esm2015/lib/microclient.module.js +0 -54
- package/esm2015/lib/microclient.service.js +0 -515
- package/esm2015/lib/microobject.js +0 -222
- package/esm2015/lib/paramutils.js +0 -176
- package/esm2015/lib/pipes/linkfield.pipe.js +0 -53
- package/esm2015/micropermit-client-angular.js +0 -9
- package/esm2015/public_api.js +0 -23
- package/esm5/lib/components/errorindicator.component.js +0 -36
- package/esm5/lib/components/loadingindicator.component.js +0 -19
- package/esm5/lib/directives/call-link.directive.js +0 -112
- package/esm5/lib/directives/linkfield.directive.js +0 -420
- package/esm5/lib/directives/micro-link-validate.directive.js +0 -152
- package/esm5/lib/error/microerror.js +0 -31
- package/esm5/lib/link-field-paging-support.js +0 -387
- package/esm5/lib/links/callablelink.js +0 -336
- package/esm5/lib/links/linkfield.js +0 -369
- package/esm5/lib/links/mock-linkfield.js +0 -56
- package/esm5/lib/microclient.module.js +0 -61
- package/esm5/lib/microclient.service.js +0 -616
- package/esm5/lib/microobject.js +0 -296
- package/esm5/lib/paramutils.js +0 -228
- package/esm5/lib/pipes/linkfield.pipe.js +0 -60
- package/esm5/micropermit-client-angular.js +0 -9
- package/esm5/public_api.js +0 -23
- package/fesm2015/micropermit-client-angular.js.map +0 -1
- package/fesm5/micropermit-client-angular.js +0 -3116
- package/fesm5/micropermit-client-angular.js.map +0 -1
- package/micropermit-client-angular.metadata.json +0 -1
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
6
|
-
import { CallableLink } from '../links/callablelink';
|
|
7
|
-
var CallLinkDirective = /** @class */ (function () {
|
|
8
|
-
function CallLinkDirective() {
|
|
9
|
-
this.callStatusChange = new EventEmitter();
|
|
10
|
-
this.callSucess = new EventEmitter();
|
|
11
|
-
this.callFinish = new EventEmitter();
|
|
12
|
-
this.callError = new EventEmitter();
|
|
13
|
-
this.callStart = new EventEmitter();
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* @return {?}
|
|
17
|
-
*/
|
|
18
|
-
CallLinkDirective.prototype.onClick = /**
|
|
19
|
-
* @return {?}
|
|
20
|
-
*/
|
|
21
|
-
function () {
|
|
22
|
-
var _this = this;
|
|
23
|
-
this.callLink.callWithObs(this.callParameters, this.callOptions).subscribe((/**
|
|
24
|
-
* @param {?} response
|
|
25
|
-
* @return {?}
|
|
26
|
-
*/
|
|
27
|
-
function (response) {
|
|
28
|
-
_this.callSucess.emit(response);
|
|
29
|
-
_this.callStatusChange.emit(new CallStatus(_this.callLink, CallState.SUCCESS, response, null));
|
|
30
|
-
}), (/**
|
|
31
|
-
* @param {?} error
|
|
32
|
-
* @return {?}
|
|
33
|
-
*/
|
|
34
|
-
function (error) {
|
|
35
|
-
_this.callError.emit(error);
|
|
36
|
-
_this.callStatusChange.emit(new CallStatus(_this.callLink, CallState.ERROR, null, error));
|
|
37
|
-
}), (/**
|
|
38
|
-
* @return {?}
|
|
39
|
-
*/
|
|
40
|
-
function () {
|
|
41
|
-
_this.callFinish.emit();
|
|
42
|
-
}));
|
|
43
|
-
this.callStatusChange.emit(new CallStatus(this.callLink, CallState.CALLING, null, null));
|
|
44
|
-
};
|
|
45
|
-
CallLinkDirective.decorators = [
|
|
46
|
-
{ type: Directive, args: [{
|
|
47
|
-
selector: '[callLink]'
|
|
48
|
-
},] }
|
|
49
|
-
];
|
|
50
|
-
CallLinkDirective.propDecorators = {
|
|
51
|
-
callLink: [{ type: Input }],
|
|
52
|
-
callStatusChange: [{ type: Output }],
|
|
53
|
-
callSucess: [{ type: Output }],
|
|
54
|
-
callFinish: [{ type: Output }],
|
|
55
|
-
callError: [{ type: Output }],
|
|
56
|
-
callStart: [{ type: Output }],
|
|
57
|
-
callOptions: [{ type: Input }],
|
|
58
|
-
callParameters: [{ type: Input }],
|
|
59
|
-
onClick: [{ type: HostListener, args: ['click',] }]
|
|
60
|
-
};
|
|
61
|
-
return CallLinkDirective;
|
|
62
|
-
}());
|
|
63
|
-
export { CallLinkDirective };
|
|
64
|
-
if (false) {
|
|
65
|
-
/** @type {?} */
|
|
66
|
-
CallLinkDirective.prototype.callLink;
|
|
67
|
-
/** @type {?} */
|
|
68
|
-
CallLinkDirective.prototype.callStatusChange;
|
|
69
|
-
/** @type {?} */
|
|
70
|
-
CallLinkDirective.prototype.callSucess;
|
|
71
|
-
/** @type {?} */
|
|
72
|
-
CallLinkDirective.prototype.callFinish;
|
|
73
|
-
/** @type {?} */
|
|
74
|
-
CallLinkDirective.prototype.callError;
|
|
75
|
-
/** @type {?} */
|
|
76
|
-
CallLinkDirective.prototype.callStart;
|
|
77
|
-
/** @type {?} */
|
|
78
|
-
CallLinkDirective.prototype.callOptions;
|
|
79
|
-
/** @type {?} */
|
|
80
|
-
CallLinkDirective.prototype.callParameters;
|
|
81
|
-
}
|
|
82
|
-
var CallStatus = /** @class */ (function () {
|
|
83
|
-
function CallStatus(link, state, response, error) {
|
|
84
|
-
this.link = link;
|
|
85
|
-
this.state = state;
|
|
86
|
-
this.response = response;
|
|
87
|
-
this.error = error;
|
|
88
|
-
}
|
|
89
|
-
return CallStatus;
|
|
90
|
-
}());
|
|
91
|
-
export { CallStatus };
|
|
92
|
-
if (false) {
|
|
93
|
-
/** @type {?} */
|
|
94
|
-
CallStatus.prototype.link;
|
|
95
|
-
/** @type {?} */
|
|
96
|
-
CallStatus.prototype.state;
|
|
97
|
-
/** @type {?} */
|
|
98
|
-
CallStatus.prototype.response;
|
|
99
|
-
/** @type {?} */
|
|
100
|
-
CallStatus.prototype.error;
|
|
101
|
-
}
|
|
102
|
-
/** @enum {number} */
|
|
103
|
-
var CallState = {
|
|
104
|
-
CALLING: 0,
|
|
105
|
-
SUCCESS: 1,
|
|
106
|
-
ERROR: 2,
|
|
107
|
-
};
|
|
108
|
-
export { CallState };
|
|
109
|
-
CallState[CallState.CALLING] = 'CALLING';
|
|
110
|
-
CallState[CallState.SUCCESS] = 'SUCCESS';
|
|
111
|
-
CallState[CallState.ERROR] = 'ERROR';
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbC1saW5rLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2NhbGwtbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsWUFBWSxFQUFFLFlBQVksRUFDMUIsS0FBSyxFQUNMLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHbkQ7SUFBQTtRQVFJLHFCQUFnQixHQUE2QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR2hFLGVBQVUsR0FBOEMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUczRSxlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHcEQsY0FBUyxHQUE2QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3pELGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQXFCdkQsQ0FBQzs7OztJQVpHLG1DQUFPOzs7SUFEUDtRQUFBLGlCQVlDO1FBVkcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLFVBQUMsUUFBUTtZQUNoRixLQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQixLQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRyxDQUFDOzs7O1FBQUUsVUFBQyxLQUFLO1lBQ0wsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsS0FBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUYsQ0FBQzs7O1FBQUU7WUFDQyxLQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQzs7Z0JBeENKLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtpQkFDekI7OzsyQkFFSSxLQUFLO21DQUdMLE1BQU07NkJBR04sTUFBTTs2QkFHTixNQUFNOzRCQUdOLE1BQU07NEJBR04sTUFBTTs4QkFHTixLQUFLO2lDQUdMLEtBQUs7MEJBR0wsWUFBWSxTQUFDLE9BQU87O0lBYXpCLHdCQUFDO0NBQUEsQUF6Q0QsSUF5Q0M7U0F0Q1ksaUJBQWlCOzs7SUFDMUIscUNBQ29EOztJQUVwRCw2Q0FDZ0U7O0lBRWhFLHVDQUMyRTs7SUFFM0UsdUNBQ29EOztJQUVwRCxzQ0FDeUQ7O0lBRXpELHNDQUNtRDs7SUFFbkQsd0NBQ29COztJQUVwQiwyQ0FDdUI7O0FBaUIzQjtJQUNJLG9CQUNXLElBQStDLEVBQy9DLEtBQWdCLEVBQ2hCLFFBQXFDLEVBQ3JDLEtBQWlCO1FBSGpCLFNBQUksR0FBSixJQUFJLENBQTJDO1FBQy9DLFVBQUssR0FBTCxLQUFLLENBQVc7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBNkI7UUFDckMsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUU1QixDQUFDO0lBQ0wsaUJBQUM7QUFBRCxDQUFDLEFBUkQsSUFRQzs7OztJQU5PLDBCQUFzRDs7SUFDdEQsMkJBQXVCOztJQUN2Qiw4QkFBNEM7O0lBQzVDLDJCQUF3Qjs7OztJQU01QixVQUFPO0lBQ1AsVUFBTztJQUNQLFFBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCxcbiAgICBPdXRwdXQsIFJlbmRlcmVyMixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi4vbWljcm9vYmplY3QnO1xuaW1wb3J0IHtDYWxsYWJsZUxpbmt9IGZyb20gJy4uL2xpbmtzL2NhbGxhYmxlbGluayc7XG5pbXBvcnQge01pY3JvRXJyb3J9IGZyb20gJy4uL2Vycm9yL21pY3JvZXJyb3InO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tjYWxsTGlua10nXG59KVxuZXhwb3J0IGNsYXNzIENhbGxMaW5rRGlyZWN0aXZlIHtcbiAgICBASW5wdXQoKVxuICAgIGNhbGxMaW5rOiBDYWxsYWJsZUxpbms8TWljcm9PYmplY3QgfCBNaWNyb09iamVjdFtdPjtcblxuICAgIEBPdXRwdXQoKVxuICAgIGNhbGxTdGF0dXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDYWxsU3RhdHVzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGNhbGxTdWNlc3M6IEV2ZW50RW1pdHRlcjxNaWNyb09iamVjdCB8IE1pY3JvT2JqZWN0W10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgY2FsbEZpbmlzaDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgY2FsbEVycm9yOiBFdmVudEVtaXR0ZXI8TWljcm9FcnJvcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBjYWxsU3RhcnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgY2FsbE9wdGlvbnM6IG9iamVjdDtcblxuICAgIEBJbnB1dCgpXG4gICAgY2FsbFBhcmFtZXRlcnM6IG9iamVjdDtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmNhbGxMaW5rLmNhbGxXaXRoT2JzKHRoaXMuY2FsbFBhcmFtZXRlcnMsIHRoaXMuY2FsbE9wdGlvbnMpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsbFN1Y2Vzcy5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHRoaXMuY2FsbFN0YXR1c0NoYW5nZS5lbWl0KG5ldyBDYWxsU3RhdHVzKHRoaXMuY2FsbExpbmssIENhbGxTdGF0ZS5TVUNDRVNTLCByZXNwb25zZSwgbnVsbCkpO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsbEVycm9yLmVtaXQoZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5jYWxsU3RhdHVzQ2hhbmdlLmVtaXQobmV3IENhbGxTdGF0dXModGhpcy5jYWxsTGluaywgQ2FsbFN0YXRlLkVSUk9SLCBudWxsLCBlcnJvcikpO1xuICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbGxGaW5pc2guZW1pdCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYWxsU3RhdHVzQ2hhbmdlLmVtaXQobmV3IENhbGxTdGF0dXModGhpcy5jYWxsTGluaywgQ2FsbFN0YXRlLkNBTExJTkcsIG51bGwsIG51bGwpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYWxsU3RhdHVzIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGxpbms6IENhbGxhYmxlTGluazxNaWNyb09iamVjdCB8IE1pY3JvT2JqZWN0W10+LFxuICAgICAgICBwdWJsaWMgc3RhdGU6IENhbGxTdGF0ZSxcbiAgICAgICAgcHVibGljIHJlc3BvbnNlOiBNaWNyb09iamVjdCB8IE1pY3JvT2JqZWN0W10sXG4gICAgICAgIHB1YmxpYyBlcnJvcjogTWljcm9FcnJvclxuICAgICkge1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gQ2FsbFN0YXRlIHtcbiAgICBDQUxMSU5HLFxuICAgIFNVQ0NFU1MsXG4gICAgRVJST1Jcbn1cbiJdfQ==
|
|
@@ -1,420 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';
|
|
6
|
-
import { LinkField } from '../links/linkfield';
|
|
7
|
-
import { MicroClientLoadingIndicatorComponent } from '../components/loadingindicator.component';
|
|
8
|
-
import { MicroClientErrorIndicatorComponent } from '../components/errorindicator.component';
|
|
9
|
-
import { finalize } from 'rxjs/operators';
|
|
10
|
-
/**
|
|
11
|
-
* @template T
|
|
12
|
-
*/
|
|
13
|
-
var LinkFieldDirective = /** @class */ (function () {
|
|
14
|
-
function LinkFieldDirective(_viewContainer, _template, componentResolver, changeDetectorRef) {
|
|
15
|
-
this._viewContainer = _viewContainer;
|
|
16
|
-
this._template = _template;
|
|
17
|
-
this.componentResolver = componentResolver;
|
|
18
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
19
|
-
this.isDirty = true;
|
|
20
|
-
this.isLoading = false;
|
|
21
|
-
this.loadedResult = null;
|
|
22
|
-
this.hasResult = false;
|
|
23
|
-
this.subscription = null;
|
|
24
|
-
this.linkFieldDefaultErrorHandling = false;
|
|
25
|
-
this.linkFieldParams = null;
|
|
26
|
-
this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);
|
|
27
|
-
this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);
|
|
28
|
-
}
|
|
29
|
-
Object.defineProperty(LinkFieldDirective.prototype, "linkFieldFrom", {
|
|
30
|
-
set: /**
|
|
31
|
-
* @param {?} from
|
|
32
|
-
* @return {?}
|
|
33
|
-
*/
|
|
34
|
-
function (from) {
|
|
35
|
-
this._from = from;
|
|
36
|
-
},
|
|
37
|
-
enumerable: true,
|
|
38
|
-
configurable: true
|
|
39
|
-
});
|
|
40
|
-
Object.defineProperty(LinkFieldDirective.prototype, "linkFieldLoadingTemplate", {
|
|
41
|
-
set: /**
|
|
42
|
-
* @param {?} loadingTemplate
|
|
43
|
-
* @return {?}
|
|
44
|
-
*/
|
|
45
|
-
function (loadingTemplate) {
|
|
46
|
-
if (loadingTemplate) {
|
|
47
|
-
this._loadingTemplate = loadingTemplate;
|
|
48
|
-
}
|
|
49
|
-
this.updateIfDirty(true);
|
|
50
|
-
},
|
|
51
|
-
enumerable: true,
|
|
52
|
-
configurable: true
|
|
53
|
-
});
|
|
54
|
-
Object.defineProperty(LinkFieldDirective.prototype, "linkFieldErrorTemplate", {
|
|
55
|
-
set: /**
|
|
56
|
-
* @param {?} errorTemplate
|
|
57
|
-
* @return {?}
|
|
58
|
-
*/
|
|
59
|
-
function (errorTemplate) {
|
|
60
|
-
if (errorTemplate) {
|
|
61
|
-
this._errorTemplate = errorTemplate;
|
|
62
|
-
}
|
|
63
|
-
this.updateIfDirty(true);
|
|
64
|
-
},
|
|
65
|
-
enumerable: true,
|
|
66
|
-
configurable: true
|
|
67
|
-
});
|
|
68
|
-
Object.defineProperty(LinkFieldDirective.prototype, "linkFieldTemplate", {
|
|
69
|
-
set: /**
|
|
70
|
-
* @param {?} value
|
|
71
|
-
* @return {?}
|
|
72
|
-
*/
|
|
73
|
-
function (value) {
|
|
74
|
-
if (value) {
|
|
75
|
-
this._template = value;
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
enumerable: true,
|
|
79
|
-
configurable: true
|
|
80
|
-
});
|
|
81
|
-
/**
|
|
82
|
-
* @private
|
|
83
|
-
* @return {?}
|
|
84
|
-
*/
|
|
85
|
-
LinkFieldDirective.prototype.load = /**
|
|
86
|
-
* @private
|
|
87
|
-
* @return {?}
|
|
88
|
-
*/
|
|
89
|
-
function () {
|
|
90
|
-
var _this = this;
|
|
91
|
-
if (this._from) {
|
|
92
|
-
if (this._from instanceof LinkField) {
|
|
93
|
-
this.setLoading(true);
|
|
94
|
-
this.lastObs = this._from.listenObs();
|
|
95
|
-
if (this.subscription) {
|
|
96
|
-
this.subscription.unsubscribe();
|
|
97
|
-
}
|
|
98
|
-
this.subscription = this.lastObs.pipe(finalize((/**
|
|
99
|
-
* @return {?}
|
|
100
|
-
*/
|
|
101
|
-
function () {
|
|
102
|
-
_this.setLoading(false);
|
|
103
|
-
}))).subscribe((/**
|
|
104
|
-
* @param {?} loadedResult
|
|
105
|
-
* @return {?}
|
|
106
|
-
*/
|
|
107
|
-
function (loadedResult) {
|
|
108
|
-
_this.setLoadedResult(loadedResult);
|
|
109
|
-
if (_this.linkFieldValueChange) {
|
|
110
|
-
_this.linkFieldValueChange(loadedResult);
|
|
111
|
-
}
|
|
112
|
-
}), (/**
|
|
113
|
-
* @param {?} loadError
|
|
114
|
-
* @return {?}
|
|
115
|
-
*/
|
|
116
|
-
function (loadError) {
|
|
117
|
-
if (!_this.linkFieldDefaultErrorHandling) {
|
|
118
|
-
loadError.preventDefault();
|
|
119
|
-
}
|
|
120
|
-
_this.setError(loadError);
|
|
121
|
-
}));
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
this.setLoadedResult(this._from);
|
|
125
|
-
// this.setLoadedResult(this._from);
|
|
126
|
-
// throw new Error('Can\'t use the linkField directive with a from value which isn\'t an instance of LinkField');
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
/**
|
|
131
|
-
* @return {?}
|
|
132
|
-
*/
|
|
133
|
-
LinkFieldDirective.prototype.ngDoCheck = /**
|
|
134
|
-
* @return {?}
|
|
135
|
-
*/
|
|
136
|
-
function () {
|
|
137
|
-
this.updateIfDirty();
|
|
138
|
-
};
|
|
139
|
-
/**
|
|
140
|
-
* @return {?}
|
|
141
|
-
*/
|
|
142
|
-
LinkFieldDirective.prototype.ngOnDestroy = /**
|
|
143
|
-
* @return {?}
|
|
144
|
-
*/
|
|
145
|
-
function () {
|
|
146
|
-
this.clear();
|
|
147
|
-
};
|
|
148
|
-
/**
|
|
149
|
-
* @param {?} changes
|
|
150
|
-
* @return {?}
|
|
151
|
-
*/
|
|
152
|
-
LinkFieldDirective.prototype.ngOnChanges = /**
|
|
153
|
-
* @param {?} changes
|
|
154
|
-
* @return {?}
|
|
155
|
-
*/
|
|
156
|
-
function (changes) {
|
|
157
|
-
if (changes.linkFieldFrom) {
|
|
158
|
-
if (!(this._from instanceof LinkField)) {
|
|
159
|
-
this._from = LinkField.from((/** @type {?} */ (this._from)));
|
|
160
|
-
}
|
|
161
|
-
if (changes.linkFieldFrom.previousValue !== changes.linkFieldFrom.currentValue) {
|
|
162
|
-
this.clear();
|
|
163
|
-
this.load();
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
if (changes.linkFieldParams && this.linkFieldParams) {
|
|
167
|
-
/** @type {?} */
|
|
168
|
-
var link = (/** @type {?} */ (this._from));
|
|
169
|
-
this._from = link.withCallParams(this.linkFieldParams);
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
/**
|
|
173
|
-
* @private
|
|
174
|
-
* @param {?} error
|
|
175
|
-
* @return {?}
|
|
176
|
-
*/
|
|
177
|
-
LinkFieldDirective.prototype.setError = /**
|
|
178
|
-
* @private
|
|
179
|
-
* @param {?} error
|
|
180
|
-
* @return {?}
|
|
181
|
-
*/
|
|
182
|
-
function (error) {
|
|
183
|
-
this._viewContainer.remove();
|
|
184
|
-
if (this._errorTemplate) {
|
|
185
|
-
this._viewContainer.createEmbeddedView(this._errorTemplate, {
|
|
186
|
-
$implicit: error
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
/** @type {?} */
|
|
191
|
-
var errorComponentInstance = this._viewContainer.createComponent(this._defaultErrorComponent);
|
|
192
|
-
errorComponentInstance.instance['error'] = error;
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
/**
|
|
196
|
-
* @private
|
|
197
|
-
* @param {?} loading
|
|
198
|
-
* @return {?}
|
|
199
|
-
*/
|
|
200
|
-
LinkFieldDirective.prototype.setLoading = /**
|
|
201
|
-
* @private
|
|
202
|
-
* @param {?} loading
|
|
203
|
-
* @return {?}
|
|
204
|
-
*/
|
|
205
|
-
function (loading) {
|
|
206
|
-
this.isLoading = loading;
|
|
207
|
-
if (this.isLoading) {
|
|
208
|
-
if (this._loadingTemplate) {
|
|
209
|
-
this._viewContainer.remove();
|
|
210
|
-
this._viewContainer.createEmbeddedView(this._loadingTemplate);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
this._viewContainer.remove();
|
|
214
|
-
this._viewContainer.createComponent(this._defaultLoadingComponent);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
};
|
|
218
|
-
/**
|
|
219
|
-
* @private
|
|
220
|
-
* @param {?} result
|
|
221
|
-
* @return {?}
|
|
222
|
-
*/
|
|
223
|
-
LinkFieldDirective.prototype.setLoadedResult = /**
|
|
224
|
-
* @private
|
|
225
|
-
* @param {?} result
|
|
226
|
-
* @return {?}
|
|
227
|
-
*/
|
|
228
|
-
function (result) {
|
|
229
|
-
this.hasResult = true;
|
|
230
|
-
this.loadedResult = result;
|
|
231
|
-
if (this.currentContext == null) {
|
|
232
|
-
this.currentContext = new LinkFieldContext(result);
|
|
233
|
-
this.isDirty = true;
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
this.currentContext.$implicit = result;
|
|
237
|
-
this.changeDetectorRef.markForCheck();
|
|
238
|
-
}
|
|
239
|
-
if (!this._viewContainer || !this._template) {
|
|
240
|
-
this.isDirty = true;
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
if (this.isDirty) {
|
|
244
|
-
this._viewContainer.remove();
|
|
245
|
-
this._viewContainer.createEmbeddedView(this._template, this.currentContext);
|
|
246
|
-
this.isDirty = false;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
};
|
|
250
|
-
/**
|
|
251
|
-
* @private
|
|
252
|
-
* @param {?=} ignoreDirty
|
|
253
|
-
* @return {?}
|
|
254
|
-
*/
|
|
255
|
-
LinkFieldDirective.prototype.updateIfDirty = /**
|
|
256
|
-
* @private
|
|
257
|
-
* @param {?=} ignoreDirty
|
|
258
|
-
* @return {?}
|
|
259
|
-
*/
|
|
260
|
-
function (ignoreDirty) {
|
|
261
|
-
if (ignoreDirty === void 0) { ignoreDirty = false; }
|
|
262
|
-
if ((this.isDirty || ignoreDirty) && this._loadingTemplate && this._from && this._template && this._viewContainer) {
|
|
263
|
-
if (this.hasResult) {
|
|
264
|
-
this.setLoadedResult(this.loadedResult);
|
|
265
|
-
}
|
|
266
|
-
this.isDirty = false;
|
|
267
|
-
}
|
|
268
|
-
};
|
|
269
|
-
/**
|
|
270
|
-
* @private
|
|
271
|
-
* @return {?}
|
|
272
|
-
*/
|
|
273
|
-
LinkFieldDirective.prototype.clear = /**
|
|
274
|
-
* @private
|
|
275
|
-
* @return {?}
|
|
276
|
-
*/
|
|
277
|
-
function () {
|
|
278
|
-
this.hasResult = false;
|
|
279
|
-
this.loadedResult = null;
|
|
280
|
-
this.isDirty = false;
|
|
281
|
-
if (this.subscription) {
|
|
282
|
-
this.subscription.unsubscribe();
|
|
283
|
-
this.subscription = null;
|
|
284
|
-
}
|
|
285
|
-
this.lastObs = null;
|
|
286
|
-
this.currentContext = null;
|
|
287
|
-
};
|
|
288
|
-
LinkFieldDirective.decorators = [
|
|
289
|
-
{ type: Directive, args: [{
|
|
290
|
-
selector: '[linkField][linkFieldFrom]'
|
|
291
|
-
},] }
|
|
292
|
-
];
|
|
293
|
-
/** @nocollapse */
|
|
294
|
-
LinkFieldDirective.ctorParameters = function () { return [
|
|
295
|
-
{ type: ViewContainerRef },
|
|
296
|
-
{ type: TemplateRef },
|
|
297
|
-
{ type: ComponentFactoryResolver },
|
|
298
|
-
{ type: ChangeDetectorRef }
|
|
299
|
-
]; };
|
|
300
|
-
LinkFieldDirective.propDecorators = {
|
|
301
|
-
linkFieldFrom: [{ type: Input }],
|
|
302
|
-
linkFieldLoadingTemplate: [{ type: Input }],
|
|
303
|
-
linkFieldErrorTemplate: [{ type: Input }],
|
|
304
|
-
linkFieldTemplate: [{ type: Input }],
|
|
305
|
-
linkFieldDefaultErrorHandling: [{ type: Input }],
|
|
306
|
-
linkFieldValueChange: [{ type: Input }],
|
|
307
|
-
linkFieldParams: [{ type: Input }]
|
|
308
|
-
};
|
|
309
|
-
return LinkFieldDirective;
|
|
310
|
-
}());
|
|
311
|
-
export { LinkFieldDirective };
|
|
312
|
-
if (false) {
|
|
313
|
-
/**
|
|
314
|
-
* @type {?}
|
|
315
|
-
* @private
|
|
316
|
-
*/
|
|
317
|
-
LinkFieldDirective.prototype._from;
|
|
318
|
-
/**
|
|
319
|
-
* @type {?}
|
|
320
|
-
* @private
|
|
321
|
-
*/
|
|
322
|
-
LinkFieldDirective.prototype._loadingTemplate;
|
|
323
|
-
/**
|
|
324
|
-
* @type {?}
|
|
325
|
-
* @private
|
|
326
|
-
*/
|
|
327
|
-
LinkFieldDirective.prototype._errorTemplate;
|
|
328
|
-
/**
|
|
329
|
-
* @type {?}
|
|
330
|
-
* @private
|
|
331
|
-
*/
|
|
332
|
-
LinkFieldDirective.prototype._defaultLoadingComponent;
|
|
333
|
-
/**
|
|
334
|
-
* @type {?}
|
|
335
|
-
* @private
|
|
336
|
-
*/
|
|
337
|
-
LinkFieldDirective.prototype._defaultErrorComponent;
|
|
338
|
-
/**
|
|
339
|
-
* @type {?}
|
|
340
|
-
* @private
|
|
341
|
-
*/
|
|
342
|
-
LinkFieldDirective.prototype.isDirty;
|
|
343
|
-
/**
|
|
344
|
-
* @type {?}
|
|
345
|
-
* @private
|
|
346
|
-
*/
|
|
347
|
-
LinkFieldDirective.prototype.isLoading;
|
|
348
|
-
/**
|
|
349
|
-
* @type {?}
|
|
350
|
-
* @private
|
|
351
|
-
*/
|
|
352
|
-
LinkFieldDirective.prototype.loadedResult;
|
|
353
|
-
/**
|
|
354
|
-
* @type {?}
|
|
355
|
-
* @private
|
|
356
|
-
*/
|
|
357
|
-
LinkFieldDirective.prototype.hasResult;
|
|
358
|
-
/**
|
|
359
|
-
* @type {?}
|
|
360
|
-
* @private
|
|
361
|
-
*/
|
|
362
|
-
LinkFieldDirective.prototype.lastObs;
|
|
363
|
-
/**
|
|
364
|
-
* @type {?}
|
|
365
|
-
* @private
|
|
366
|
-
*/
|
|
367
|
-
LinkFieldDirective.prototype.subscription;
|
|
368
|
-
/**
|
|
369
|
-
* @type {?}
|
|
370
|
-
* @private
|
|
371
|
-
*/
|
|
372
|
-
LinkFieldDirective.prototype.currentContext;
|
|
373
|
-
/** @type {?} */
|
|
374
|
-
LinkFieldDirective.prototype.linkFieldDefaultErrorHandling;
|
|
375
|
-
/** @type {?} */
|
|
376
|
-
LinkFieldDirective.prototype.linkFieldValueChange;
|
|
377
|
-
/** @type {?} */
|
|
378
|
-
LinkFieldDirective.prototype.linkFieldParams;
|
|
379
|
-
/**
|
|
380
|
-
* @type {?}
|
|
381
|
-
* @private
|
|
382
|
-
*/
|
|
383
|
-
LinkFieldDirective.prototype._viewContainer;
|
|
384
|
-
/**
|
|
385
|
-
* @type {?}
|
|
386
|
-
* @private
|
|
387
|
-
*/
|
|
388
|
-
LinkFieldDirective.prototype._template;
|
|
389
|
-
/**
|
|
390
|
-
* @type {?}
|
|
391
|
-
* @private
|
|
392
|
-
*/
|
|
393
|
-
LinkFieldDirective.prototype.componentResolver;
|
|
394
|
-
/**
|
|
395
|
-
* @type {?}
|
|
396
|
-
* @private
|
|
397
|
-
*/
|
|
398
|
-
LinkFieldDirective.prototype.changeDetectorRef;
|
|
399
|
-
}
|
|
400
|
-
/**
|
|
401
|
-
* @template T
|
|
402
|
-
*/
|
|
403
|
-
var /**
|
|
404
|
-
* @template T
|
|
405
|
-
*/
|
|
406
|
-
LinkFieldContext = /** @class */ (function () {
|
|
407
|
-
function LinkFieldContext($implicit) {
|
|
408
|
-
this.$implicit = $implicit;
|
|
409
|
-
}
|
|
410
|
-
return LinkFieldContext;
|
|
411
|
-
}());
|
|
412
|
-
/**
|
|
413
|
-
* @template T
|
|
414
|
-
*/
|
|
415
|
-
export { LinkFieldContext };
|
|
416
|
-
if (false) {
|
|
417
|
-
/** @type {?} */
|
|
418
|
-
LinkFieldContext.prototype.$implicit;
|
|
419
|
-
}
|
|
420
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBR2IsaUJBQWlCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc3QyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHeEM7SUFvQkksNEJBQ1ksY0FBZ0MsRUFDaEMsU0FBMkMsRUFDM0MsaUJBQTJDLEVBQzNDLGlCQUFvQztRQUhwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsY0FBUyxHQUFULFNBQVMsQ0FBa0M7UUFDM0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBZHhDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQU0sSUFBSSxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsaUJBQVksR0FBaUIsSUFBSSxDQUFDO1FBMkMxQyxrQ0FBNkIsR0FBRyxLQUFLLENBQUM7UUFNdEMsb0JBQWUsR0FBVyxJQUFJLENBQUM7UUF2QzNCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ2hILElBQUks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QUN6RixvREFBcUY7Ozs7O0lBRXJGLHFDQUF1Qjs7Ozs7SUFDdkIsdUNBQTBCOzs7OztJQUMxQiwwQ0FBK0I7Ozs7O0lBQy9CLHVDQUEwQjs7Ozs7SUFFMUIscUNBQStCOzs7OztJQUMvQiwwQ0FBMEM7Ozs7O0lBRTFDLDRDQUE0Qzs7SUF3QzVDLDJEQUNzQzs7SUFFdEMsa0RBQ2tDOztJQUVsQyw2Q0FDK0I7Ozs7O0lBNUMzQiw0Q0FBd0M7Ozs7O0lBQ3hDLHVDQUFtRDs7Ozs7SUFDbkQsK0NBQW1EOzs7OztJQUNuRCwrQ0FBNEM7Ozs7O0FBeUtwRDs7OztJQUVJLDBCQUFtQixTQUFZO1FBQVosY0FBUyxHQUFULFNBQVMsQ0FBRztJQUMvQixDQUFDO0lBQ0wsdUJBQUM7QUFBRCxDQUFDLEFBSkQsSUFJQzs7Ozs7OztJQUZlLHFDQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgRG9DaGVjayxcbiAgICBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMaW5rRmllbGR9IGZyb20gJy4uL2xpbmtzL2xpbmtmaWVsZCc7XG5pbXBvcnQge01pY3JvT2JqZWN0fSBmcm9tICcuLi9taWNyb29iamVjdCc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01pY3JvQ2xpZW50TG9hZGluZ0luZGljYXRvckNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9sb2FkaW5naW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge01pY3JvQ2xpZW50RXJyb3JJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvZXJyb3JpbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7ZmluYWxpemV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWljcm9DbGllbnRMb2FkRXJyb3J9IGZyb20gJy4uL21pY3JvY2xpZW50LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tsaW5rRmllbGRdW2xpbmtGaWVsZEZyb21dJ1xufSlcbmV4cG9ydCBjbGFzcyBMaW5rRmllbGREaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBEb0NoZWNrLCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSBfZnJvbTogTGlua0ZpZWxkPFQ+IHwgVDtcbiAgICBwcml2YXRlIF9sb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJpdmF0ZSBfZXJyb3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwcml2YXRlIF9kZWZhdWx0TG9hZGluZ0NvbXBvbmVudDogQ29tcG9uZW50RmFjdG9yeTxNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnQ+O1xuICAgIHByaXZhdGUgX2RlZmF1bHRFcnJvckNvbXBvbmVudDogQ29tcG9uZW50RmFjdG9yeTxNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50PjtcblxuICAgIHByaXZhdGUgaXNEaXJ0eSA9IHRydWU7XG4gICAgcHJpdmF0ZSBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIGxvYWRlZFJlc3VsdDogVCA9IG51bGw7XG4gICAgcHJpdmF0ZSBoYXNSZXN1bHQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbGFzdE9iczogT2JzZXJ2YWJsZTxUPjtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICAgIHByaXZhdGUgY3VycmVudENvbnRleHQ6IExpbmtGaWVsZENvbnRleHQ8VD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBfdGVtcGxhdGU6IFRlbXBsYXRlUmVmPExpbmtGaWVsZENvbnRleHQ8VD4+LFxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudFJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRMb2FkaW5nQ29tcG9uZW50ID0gY29tcG9uZW50UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTWljcm9DbGllbnRMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEVycm9yQ29tcG9uZW50ID0gY29tcG9uZW50UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTWljcm9DbGllbnRFcnJvckluZGljYXRvckNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkRnJvbShmcm9tOiBMaW5rRmllbGQ8VD4gfCBUKSB7XG4gICAgICAgIHRoaXMuX2Zyb20gPSBmcm9tO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpbmtGaWVsZExvYWRpbmdUZW1wbGF0ZShsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKGxvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZ1RlbXBsYXRlID0gbG9hZGluZ1RlbXBsYXRlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlSWZEaXJ0eSh0cnVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRFcnJvclRlbXBsYXRlKGVycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKGVycm9yVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yVGVtcGxhdGUgPSBlcnJvclRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlSWZEaXJ0eSh0cnVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8TGlua0ZpZWxkQ29udGV4dDxUPj4pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBsaW5rRmllbGREZWZhdWx0RXJyb3JIYW5kbGluZyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBsaW5rRmllbGRWYWx1ZUNoYW5nZTogKFQpID0+IHZvaWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGxpbmtGaWVsZFBhcmFtczogb2JqZWN0ID0gbnVsbDtcblxuICAgIHByaXZhdGUgbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Zyb20pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9mcm9tIGluc3RhbmNlb2YgTGlua0ZpZWxkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdE9icyA9IHRoaXMuX2Zyb20ubGlzdGVuT2JzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5sYXN0T2JzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoKGxvYWRlZFJlc3VsdDogVCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdChsb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5rRmllbGRWYWx1ZUNoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5rRmllbGRWYWx1ZUNoYW5nZShsb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgKGxvYWRFcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxpbmtGaWVsZERlZmF1bHRFcnJvckhhbmRsaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkRXJyb3IucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEVycm9yKGxvYWRFcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGVkUmVzdWx0KHRoaXMuX2Zyb20pO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0TG9hZGVkUmVzdWx0KHRoaXMuX2Zyb20pO1xuICAgICAgICAgICAgICAgIC8vIHRocm93IG5ldyBFcnJvcignQ2FuXFwndCB1c2UgdGhlIGxpbmtGaWVsZCBkaXJlY3RpdmUgd2l0aCBhIGZyb20gdmFsdWUgd2hpY2ggaXNuXFwndCBhbiBpbnN0YW5jZSBvZiBMaW5rRmllbGQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubGlua0ZpZWxkRnJvbSkge1xuICAgICAgICAgICAgaWYgKCEodGhpcy5fZnJvbSBpbnN0YW5jZW9mIExpbmtGaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mcm9tID0gTGlua0ZpZWxkLmZyb20odGhpcy5fZnJvbSBhcyBhbnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNoYW5nZXMubGlua0ZpZWxkRnJvbS5wcmV2aW91c1ZhbHVlICE9PSBjaGFuZ2VzLmxpbmtGaWVsZEZyb20uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubGlua0ZpZWxkUGFyYW1zICYmIHRoaXMubGlua0ZpZWxkUGFyYW1zKSB7XG4gICAgICAgICAgICBsZXQgbGluayA9IHRoaXMuX2Zyb20gYXMgTGlua0ZpZWxkPFQ+O1xuICAgICAgICAgICAgdGhpcy5fZnJvbSA9IGxpbmsud2l0aENhbGxQYXJhbXModGhpcy5saW5rRmllbGRQYXJhbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRFcnJvcihlcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpIHtcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2Vycm9yVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vycm9yVGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGVycm9yXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBlcnJvckNvbXBvbmVudEluc3RhbmNlID0gdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5fZGVmYXVsdEVycm9yQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGVycm9yQ29tcG9uZW50SW5zdGFuY2UuaW5zdGFuY2VbJ2Vycm9yJ10gPSBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5fZGVmYXVsdExvYWRpbmdDb21wb25lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkZWRSZXN1bHQocmVzdWx0OiBUKSB7XG4gICAgICAgIHRoaXMuaGFzUmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkZWRSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDb250ZXh0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENvbnRleHQgPSBuZXcgTGlua0ZpZWxkQ29udGV4dDxUPihyZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENvbnRleHQuJGltcGxpY2l0ID0gcmVzdWx0O1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX3ZpZXdDb250YWluZXIgfHwgIXRoaXMuX3RlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNEaXJ0eSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGUsIHRoaXMuY3VycmVudENvbnRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJZkRpcnR5KGlnbm9yZURpcnR5OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKCh0aGlzLmlzRGlydHkgfHwgaWdub3JlRGlydHkpICYmIHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSAmJiB0aGlzLl9mcm9tICYmIHRoaXMuX3RlbXBsYXRlICYmIHRoaXMuX3ZpZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc1Jlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGVkUmVzdWx0KHRoaXMubG9hZGVkUmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5oYXNSZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sb2FkZWRSZXN1bHQgPSBudWxsO1xuICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdE9icyA9IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudENvbnRleHQgPSBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZENvbnRleHQ8VD4ge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljICRpbXBsaWNpdDogVCkge1xuICAgIH1cbn1cbiJdfQ==
|