@osovitny/anatoly 2.1.13 → 2.14.1
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/assets/styles/alerts.less +182 -0
- package/assets/styles/spinner.less +64 -0
- package/assets/styles/toastr.less +192 -0
- package/esm2020/lib/core/convert.mjs +62 -0
- package/esm2020/lib/core/core.module.mjs +72 -0
- package/esm2020/lib/core/go/base-go.service.mjs +41 -0
- package/esm2020/lib/core/guid.mjs +22 -0
- package/esm2020/lib/core/interceptors/httpInterceptor.mjs +108 -0
- package/esm2020/lib/core/localization/localization.module.mjs +47 -0
- package/esm2020/lib/core/localization/localization.service.mjs +185 -0
- package/esm2020/lib/core/localization/localizationSettings.module.mjs +88 -0
- package/esm2020/lib/core/localization/localize.pipe.mjs +78 -0
- package/esm2020/lib/core/logging/globalErrorHandler.mjs +44 -0
- package/esm2020/lib/core/logging/logging.service.mjs +39 -0
- package/esm2020/lib/core/notifications/services/notification-service.mjs +228 -0
- package/esm2020/lib/core/services/appcontext.service.mjs +118 -0
- package/esm2020/lib/core/services/dm.service.mjs +72 -0
- package/esm2020/lib/core/services/google-analytics.service.mjs +54 -0
- package/{esm2015/lib/core/services/idle.service.js → esm2020/lib/core/services/idle.service.mjs} +9 -7
- package/{esm2015/lib/core/services/loading.service.js → esm2020/lib/core/services/loading.service.mjs} +9 -8
- package/esm2020/lib/core/services/web-storage.service.mjs +69 -0
- package/esm2020/lib/core/subs.mjs +31 -0
- package/esm2020/lib/core/utils.mjs +82 -0
- package/esm2020/lib/data/base/base-api.service.mjs +89 -0
- package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +77 -0
- package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +62 -0
- package/esm2020/lib/data/data.module.mjs +51 -0
- package/esm2020/lib/data/services/billing-api.service.mjs +65 -0
- package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +43 -0
- package/esm2020/lib/ui/components/base-edit.component.mjs +143 -0
- package/esm2020/lib/ui/components/base.component.mjs +47 -0
- package/esm2020/lib/ui/components/base.dialog.mjs +49 -0
- package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +69 -0
- package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +63 -0
- package/esm2020/lib/ui/components/billing/upgrade-plan-button.component.mjs +53 -0
- package/esm2020/lib/ui/components/content-header/content-header.component.mjs +37 -0
- package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +111 -0
- package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +48 -0
- package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +52 -0
- package/esm2020/lib/ui/components/identity/signin-button.component.mjs +32 -0
- package/esm2020/lib/ui/components/identity/signout-button.component.mjs +32 -0
- package/esm2020/lib/ui/components/identity/signup-button.component.mjs +31 -0
- package/esm2020/lib/ui/components/loading/loading.component.mjs +48 -0
- package/esm2020/lib/ui/components/spinner/spinner.component.mjs +74 -0
- package/esm2020/lib/ui/directives/native-element.directive.mjs +41 -0
- package/esm2020/lib/ui/pipes/filesize.pipe.mjs +45 -0
- package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +40 -0
- package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +37 -0
- package/esm2020/lib/ui/ui.module.mjs +155 -0
- package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +66 -0
- package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +39 -0
- package/esm2020/lib/ui/validation/validation-summary.component.mjs +128 -0
- package/fesm2015/{osovitny-anatoly.js → osovitny-anatoly.mjs} +823 -765
- package/fesm2015/osovitny-anatoly.mjs.map +1 -0
- package/fesm2020/osovitny-anatoly.mjs +3496 -0
- package/fesm2020/osovitny-anatoly.mjs.map +1 -0
- package/{osovitny-anatoly.d.ts → index.d.ts} +1 -0
- package/lib/core/core.module.d.ts +5 -0
- package/lib/core/go/base-go.service.d.ts +3 -0
- package/lib/core/interceptors/httpInterceptor.d.ts +3 -0
- package/lib/core/localization/localization.module.d.ts +6 -0
- package/lib/core/localization/localization.service.d.ts +3 -0
- package/lib/core/localization/localizationSettings.module.d.ts +5 -0
- package/lib/core/localization/localize.pipe.d.ts +3 -0
- package/lib/core/logging/globalErrorHandler.d.ts +3 -0
- package/lib/core/logging/logging.service.d.ts +3 -0
- package/lib/core/notifications/services/notification-service.d.ts +3 -0
- package/lib/core/services/appcontext.service.d.ts +5 -2
- package/lib/core/services/dm.service.d.ts +3 -0
- package/lib/core/services/google-analytics.service.d.ts +3 -0
- package/lib/core/services/idle.service.d.ts +3 -0
- package/lib/core/services/loading.service.d.ts +3 -0
- package/lib/core/services/web-storage.service.d.ts +5 -0
- package/lib/data/base/base-api.service.d.ts +3 -0
- package/lib/data/base/grid/base-grid-edit.service.d.ts +3 -0
- package/lib/data/base/grid/base-grid-read.service.d.ts +3 -0
- package/lib/data/data.module.d.ts +5 -0
- package/lib/data/services/billing-api.service.d.ts +3 -0
- package/lib/data/services/notifications/notifications-api-service.d.ts +3 -0
- package/lib/ui/components/base-edit.component.d.ts +5 -2
- package/lib/ui/components/base.component.d.ts +3 -0
- package/lib/ui/components/base.dialog.d.ts +3 -0
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -0
- package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +3 -0
- package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +3 -0
- package/lib/ui/components/content-header/content-header.component.d.ts +3 -0
- package/lib/ui/components/html-editor/base-html-editor.component.d.ts +3 -0
- package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +3 -0
- package/lib/ui/components/html-editor/html-editor.component.d.ts +3 -0
- package/lib/ui/components/identity/signin-button.component.d.ts +3 -0
- package/lib/ui/components/identity/signout-button.component.d.ts +3 -0
- package/lib/ui/components/identity/signup-button.component.d.ts +3 -0
- package/lib/ui/components/loading/loading.component.d.ts +3 -0
- package/lib/ui/components/spinner/spinner.component.d.ts +3 -0
- package/lib/ui/directives/native-element.directive.d.ts +3 -0
- package/lib/ui/pipes/filesize.pipe.d.ts +3 -0
- package/lib/ui/pipes/replace-text.pipe.d.ts +3 -0
- package/lib/ui/pipes/safeHtml.pipe.d.ts +3 -0
- package/lib/ui/ui.module.d.ts +24 -0
- package/lib/ui/validation/form-validation-summary.component.d.ts +3 -0
- package/lib/ui/validation/item-validation-summary.component.d.ts +3 -0
- package/lib/ui/validation/validation-summary.component.d.ts +3 -0
- package/package.json +23 -11
- package/bundles/osovitny-anatoly.umd.js +0 -3696
- package/bundles/osovitny-anatoly.umd.js.map +0 -1
- package/esm2015/lib/core/convert.js +0 -65
- package/esm2015/lib/core/core.module.js +0 -43
- package/esm2015/lib/core/go/base-go.service.js +0 -42
- package/esm2015/lib/core/guid.js +0 -25
- package/esm2015/lib/core/interceptors/httpInterceptor.js +0 -109
- package/esm2015/lib/core/localization/localization.module.js +0 -41
- package/esm2015/lib/core/localization/localization.service.js +0 -187
- package/esm2015/lib/core/localization/localizationSettings.module.js +0 -78
- package/esm2015/lib/core/localization/localize.pipe.js +0 -78
- package/esm2015/lib/core/logging/globalErrorHandler.js +0 -44
- package/esm2015/lib/core/logging/logging.service.js +0 -38
- package/esm2015/lib/core/notifications/services/notification-service.js +0 -230
- package/esm2015/lib/core/services/appcontext.service.js +0 -118
- package/esm2015/lib/core/services/dm.service.js +0 -74
- package/esm2015/lib/core/services/google-analytics.service.js +0 -53
- package/esm2015/lib/core/services/web-storage.service.js +0 -66
- package/esm2015/lib/core/subs.js +0 -34
- package/esm2015/lib/core/utils.js +0 -84
- package/esm2015/lib/data/base/base-api.service.js +0 -89
- package/esm2015/lib/data/base/grid/base-grid-edit.service.js +0 -77
- package/esm2015/lib/data/base/grid/base-grid-read.service.js +0 -62
- package/esm2015/lib/data/data.module.js +0 -43
- package/esm2015/lib/data/services/billing-api.service.js +0 -65
- package/esm2015/lib/data/services/notifications/notifications-api-service.js +0 -45
- package/esm2015/lib/ui/components/base-edit.component.js +0 -142
- package/esm2015/lib/ui/components/base.component.js +0 -43
- package/esm2015/lib/ui/components/base.dialog.js +0 -47
- package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +0 -71
- package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +0 -63
- package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +0 -54
- package/esm2015/lib/ui/components/content-header/content-header.component.js +0 -37
- package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +0 -108
- package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +0 -44
- package/esm2015/lib/ui/components/html-editor/html-editor.component.js +0 -51
- package/esm2015/lib/ui/components/identity/signin-button.component.js +0 -33
- package/esm2015/lib/ui/components/identity/signout-button.component.js +0 -33
- package/esm2015/lib/ui/components/identity/signup-button.component.js +0 -31
- package/esm2015/lib/ui/components/loading/loading.component.js +0 -49
- package/esm2015/lib/ui/components/spinner/spinner.component.js +0 -73
- package/esm2015/lib/ui/directives/native-element.directive.js +0 -41
- package/esm2015/lib/ui/pipes/filesize.pipe.js +0 -41
- package/esm2015/lib/ui/pipes/replace-text.pipe.js +0 -36
- package/esm2015/lib/ui/pipes/safeHtml.pipe.js +0 -36
- package/esm2015/lib/ui/ui.module.js +0 -105
- package/esm2015/lib/ui/validation/form-validation-summary.component.js +0 -64
- package/esm2015/lib/ui/validation/item-validation-summary.component.js +0 -38
- package/esm2015/lib/ui/validation/validation-summary.component.js +0 -126
- package/fesm2015/osovitny-anatoly.js.map +0 -1
- package/osovitny-anatoly.metadata.json +0 -1
- /package/{esm2015/lib/core/consts/settings.js → esm2020/lib/core/consts/settings.mjs} +0 -0
- /package/{esm2015/lib/core/consts/urls.js → esm2020/lib/core/consts/urls.mjs} +0 -0
- /package/{esm2015/lib/core/guards/once-import.guard.js → esm2020/lib/core/guards/once-import.guard.mjs} +0 -0
- /package/{esm2015/lib/core/localization/utils.js → esm2020/lib/core/localization/utils.mjs} +0 -0
- /package/{esm2015/lib/core/notifications/alerts.js → esm2020/lib/core/notifications/alerts.mjs} +0 -0
- /package/{esm2015/lib/core/notifications/interfaces/notification.js → esm2020/lib/core/notifications/interfaces/notification.mjs} +0 -0
- /package/{esm2015/lib/data/consts.js → esm2020/lib/data/consts.mjs} +0 -0
- /package/{esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js → esm2020/lib/ui/components/html-editor/html-editor.defaultoptions.mjs} +0 -0
- /package/{esm2015/osovitny-anatoly.js → esm2020/osovitny-anatoly.mjs} +0 -0
- /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny
|
|
8
|
-
Anatoly Osovitny
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
7 Dec 2017
|
|
12
|
-
|
|
13
|
-
Version:
|
|
14
|
-
1.0
|
|
15
|
-
|
|
16
|
-
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
|
-
</file>
|
|
18
|
-
*/
|
|
19
|
-
// Node
|
|
20
|
-
import { Component, Input } from "@angular/core";
|
|
21
|
-
import { ValidationSummaryComponent } from "./validation-summary.component";
|
|
22
|
-
export class FormValidationSummaryComponent extends ValidationSummaryComponent {
|
|
23
|
-
constructor() {
|
|
24
|
-
super();
|
|
25
|
-
this.visible = false;
|
|
26
|
-
this.customerrors = [];
|
|
27
|
-
/*
|
|
28
|
-
0 - only FormValidation messages
|
|
29
|
-
1 - only Custom messages
|
|
30
|
-
2 - all
|
|
31
|
-
*/
|
|
32
|
-
this.viewtype = 0;
|
|
33
|
-
}
|
|
34
|
-
getErrors() {
|
|
35
|
-
if (this.viewtype == 1) {
|
|
36
|
-
return this.customerrors;
|
|
37
|
-
}
|
|
38
|
-
let formValidationMessages = this.getFormValidationMessages();
|
|
39
|
-
if (this.viewtype == 0) {
|
|
40
|
-
return formValidationMessages;
|
|
41
|
-
}
|
|
42
|
-
var messages = [];
|
|
43
|
-
if (formValidationMessages.length > 0) {
|
|
44
|
-
messages.push(...formValidationMessages);
|
|
45
|
-
}
|
|
46
|
-
if (this.customerrors.length > 0) {
|
|
47
|
-
messages.push(...this.customerrors);
|
|
48
|
-
}
|
|
49
|
-
return messages;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
FormValidationSummaryComponent.decorators = [
|
|
53
|
-
{ type: Component, args: [{
|
|
54
|
-
selector: "anatoly-form-validation-summary",
|
|
55
|
-
template: "<div class=\"callout callout-danger\" *ngIf=\"visible\">\r\n <h6 class=\"box-title\">There are problems with the form</h6>\r\n <ul>\r\n <li *ngFor=\"let error of getErrors()\"><span>{{error}}</span></li>\r\n </ul>\r\n</div>\r\n\r\n"
|
|
56
|
-
},] }
|
|
57
|
-
];
|
|
58
|
-
FormValidationSummaryComponent.ctorParameters = () => [];
|
|
59
|
-
FormValidationSummaryComponent.propDecorators = {
|
|
60
|
-
visible: [{ type: Input }],
|
|
61
|
-
customerrors: [{ type: Input }],
|
|
62
|
-
viewtype: [{ type: Input }]
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU01RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMEJBQTBCO0lBVzVFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFYRCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBRXJDOzs7O1VBSUU7UUFDTyxhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBSTlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUI7UUFFRCxJQUFJLHNCQUFzQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQzlELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxzQkFBc0IsQ0FBQztTQUMvQjtRQUVELElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLHNCQUFzQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7O1lBdkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUNBQWlDO2dCQUMzQyx5UEFBdUQ7YUFDeEQ7Ozs7c0JBRUUsS0FBSzsyQkFDTCxLQUFLO3VCQU9MLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA3IERlYyAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gXCIuL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFuYXRvbHktZm9ybS12YWxpZGF0aW9uLXN1bW1hcnlcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2Zvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5odG1sXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgZXh0ZW5kcyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWVycm9yczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgLypcclxuICAgIDAgLSBvbmx5IEZvcm1WYWxpZGF0aW9uIG1lc3NhZ2VzXHJcbiAgICAxIC0gb25seSBDdXN0b20gbWVzc2FnZXNcclxuICAgIDIgLSBhbGxcclxuICAqLyBcclxuICBASW5wdXQoKSB2aWV3dHlwZTogbnVtYmVyID0gMDsgXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGdldEVycm9ycygpIHtcclxuICAgIGlmICh0aGlzLnZpZXd0eXBlID09IDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBmb3JtVmFsaWRhdGlvbk1lc3NhZ2VzID0gdGhpcy5nZXRGb3JtVmFsaWRhdGlvbk1lc3NhZ2VzKCk7XHJcbiAgICBpZiAodGhpcy52aWV3dHlwZSA9PSAwKSB7XHJcbiAgICAgIHJldHVybiBmb3JtVmFsaWRhdGlvbk1lc3NhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBtZXNzYWdlcyA9IFtdO1xyXG4gICAgaWYgKGZvcm1WYWxpZGF0aW9uTWVzc2FnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBtZXNzYWdlcy5wdXNoKC4uLmZvcm1WYWxpZGF0aW9uTWVzc2FnZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmN1c3RvbWVycm9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIG1lc3NhZ2VzLnB1c2goLi4udGhpcy5jdXN0b21lcnJvcnMpO1xyXG4gICAgfSAgIFxyXG5cclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny
|
|
8
|
-
Anatoly Osovitny
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
6 Dec 2017
|
|
12
|
-
|
|
13
|
-
Version:
|
|
14
|
-
1.0
|
|
15
|
-
|
|
16
|
-
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
|
-
</file>
|
|
18
|
-
*/
|
|
19
|
-
// Node
|
|
20
|
-
import { Component, Input } from "@angular/core";
|
|
21
|
-
import { ValidationSummaryComponent } from "./validation-summary.component";
|
|
22
|
-
export class ItemValidationSummaryComponent extends ValidationSummaryComponent {
|
|
23
|
-
constructor() {
|
|
24
|
-
super();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
ItemValidationSummaryComponent.decorators = [
|
|
28
|
-
{ type: Component, args: [{
|
|
29
|
-
selector: "anatoly-item-validation-summary",
|
|
30
|
-
template: "<ul class=\"list-unstyled\" *ngIf=\"isControlInvalid(controlName)\">\r\n <li *ngFor=\"let error of getValidationMessages(formGroup.get(controlName), controlTitle)\">\r\n <span class=\"help-block\">{{ error }}</span>\r\n </li>\r\n</ul>\r\n\r\n"
|
|
31
|
-
},] }
|
|
32
|
-
];
|
|
33
|
-
ItemValidationSummaryComponent.ctorParameters = () => [];
|
|
34
|
-
ItemValidationSummaryComponent.propDecorators = {
|
|
35
|
-
controlName: [{ type: Input }],
|
|
36
|
-
controlTitle: [{ type: Input }]
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU01RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMEJBQTBCO0lBSTVFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzs7WUFWRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztnQkFDM0MsbVFBQXVEO2FBQ3hEOzs7OzBCQUVFLEtBQUs7MkJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDYgRGVjIDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWxcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xUaXRsZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny
|
|
8
|
-
Anatoly Osovitny
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
8 Dec 2017
|
|
12
|
-
|
|
13
|
-
Version:
|
|
14
|
-
1.0
|
|
15
|
-
|
|
16
|
-
Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
|
|
17
|
-
</file>
|
|
18
|
-
*/
|
|
19
|
-
// Node
|
|
20
|
-
import { Component } from "@angular/core";
|
|
21
|
-
//Custom
|
|
22
|
-
import { BaseEditComponent } from "../components/base-edit.component";
|
|
23
|
-
export class ValidationSummaryComponent extends BaseEditComponent {
|
|
24
|
-
constructor() {
|
|
25
|
-
super();
|
|
26
|
-
}
|
|
27
|
-
getFormValidationMessages() {
|
|
28
|
-
let messages = [];
|
|
29
|
-
Object.keys(this.formGroup.controls).forEach((k) => {
|
|
30
|
-
var control = this.formGroup.controls[k];
|
|
31
|
-
if (control.controls != null) {
|
|
32
|
-
Object.keys(control.controls).forEach((k) => {
|
|
33
|
-
var child = control.controls[k];
|
|
34
|
-
this.getValidationMessages(child, this.getControlName(child, k)).forEach((m) => messages.push(m));
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
this.getValidationMessages(control, this.getControlName(control, k)).forEach((m) => messages.push(m));
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
return messages;
|
|
42
|
-
}
|
|
43
|
-
getValidationMessages(state, thingName) {
|
|
44
|
-
let thing = state.path || thingName;
|
|
45
|
-
let messages = [];
|
|
46
|
-
if (state.errors) {
|
|
47
|
-
for (let errorName in state.errors) {
|
|
48
|
-
if (state.errors.hasOwnProperty(errorName)) {
|
|
49
|
-
switch (errorName) {
|
|
50
|
-
case "required":
|
|
51
|
-
messages.push(`${thing} is required`);
|
|
52
|
-
break;
|
|
53
|
-
case "minlength":
|
|
54
|
-
messages.push(`${thing} must be at least ${state.errors["minlength"].requiredLength} characters`);
|
|
55
|
-
break;
|
|
56
|
-
case "pattern":
|
|
57
|
-
messages.push(`${thing} contains illegal characters`);
|
|
58
|
-
break;
|
|
59
|
-
case "format":
|
|
60
|
-
messages.push(`${thing} format mismatch`);
|
|
61
|
-
break;
|
|
62
|
-
case "maxlength":
|
|
63
|
-
messages.push(`${thing} must have maximum ${state.errors["maxlength"].requiredLength} characters`);
|
|
64
|
-
break;
|
|
65
|
-
case "specialcharacters":
|
|
66
|
-
messages.push(`${thing} contains special characters`);
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return messages;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Get Control Name
|
|
76
|
-
* @param control
|
|
77
|
-
* @param thingName
|
|
78
|
-
*/
|
|
79
|
-
getControlName(control, thingName) {
|
|
80
|
-
let value = this.getControlTitle(control);
|
|
81
|
-
return value ? value : thingName;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Retrieve tilte of control
|
|
85
|
-
* @param control
|
|
86
|
-
*/
|
|
87
|
-
getControlTitle(control) {
|
|
88
|
-
if (control === null || control === void 0 ? void 0 : control.nativeElement) {
|
|
89
|
-
let controlTitle = this.getTitleAttribute(control.nativeElement);
|
|
90
|
-
if (controlTitle) {
|
|
91
|
-
return controlTitle;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Return title attribute of form control
|
|
98
|
-
*/
|
|
99
|
-
getTitleAttribute(nativeElement) {
|
|
100
|
-
var _a, _b, _c, _d, _e, _f;
|
|
101
|
-
let title;
|
|
102
|
-
switch (nativeElement.tagName) {
|
|
103
|
-
// For Kendo time and date picker element title is assigned to the 4th child control.
|
|
104
|
-
case "KENDO-TIMEPICKER":
|
|
105
|
-
case "KENDO-DATEPICKER":
|
|
106
|
-
title =
|
|
107
|
-
(_d = (_c = (_b = (_a = nativeElement.children[0]) === null || _a === void 0 ? void 0 : _a.children[0]) === null || _b === void 0 ? void 0 : _b.children[0]) === null || _c === void 0 ? void 0 : _c.children[0]) === null || _d === void 0 ? void 0 : _d.getAttribute("title");
|
|
108
|
-
break;
|
|
109
|
-
// For Kendo numaric element title is assigned to the 2nd child control.
|
|
110
|
-
case "KENDO-NUMERICTEXTBOX":
|
|
111
|
-
title = (_f = (_e = nativeElement.children[0]) === null || _e === void 0 ? void 0 : _e.children[0]) === null || _f === void 0 ? void 0 : _f.getAttribute("title");
|
|
112
|
-
break;
|
|
113
|
-
default:
|
|
114
|
-
title = nativeElement.getAttribute("title");
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
return title;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
ValidationSummaryComponent.decorators = [
|
|
121
|
-
{ type: Component, args: [{
|
|
122
|
-
template: ""
|
|
123
|
-
},] }
|
|
124
|
-
];
|
|
125
|
-
ValidationSummaryComponent.ctorParameters = () => [];
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS92YWxpZGF0aW9uL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBS3RFLE1BQU0sT0FBZ0IsMEJBQTJCLFNBQVEsaUJBQWlCO0lBQ3hFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUU1QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekMsSUFBZ0IsT0FBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQWEsT0FBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN2RCxJQUFJLEtBQUssR0FBZSxPQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMscUJBQXFCLENBQ3hCLEtBQUssRUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FDOUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFB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QyxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsMENBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFlBQVksQ0FDNUUsT0FBTyxDQUNSLENBQUM7Z0JBQ0osTUFBTTtZQUVSLHdFQUF3RTtZQUN4RSxLQUFLLHNCQUFzQjtnQkFDekIsS0FBSyxHQUFHLE1BQUEsTUFBQSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEUsTUFBTTtZQUVSO2dCQUNFLEtBQUssR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QyxNQUFNO1NBQ1Q7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQWhJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDYiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDggRGVjIDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vL0N1c3RvbVxyXG5pbXBvcnQgeyBCYXNlRWRpdENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Jhc2UtZWRpdC5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBcIlwiLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlRWRpdENvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybVZhbGlkYXRpb25NZXNzYWdlcygpOiBzdHJpbmdbXSB7XHJcbiAgICBsZXQgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGspID0+IHtcclxuICAgICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1trXTtcclxuXHJcbiAgICAgIGlmICgoPEZvcm1Hcm91cD5jb250cm9sKS5jb250cm9scyAhPSBudWxsKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoKDxGb3JtR3JvdXA+Y29udHJvbCkuY29udHJvbHMpLmZvckVhY2goKGspID0+IHtcclxuICAgICAgICAgIHZhciBjaGlsZCA9ICg8Rm9ybUdyb3VwPmNvbnRyb2wpLmNvbnRyb2xzW2tdO1xyXG4gICAgICAgICAgdGhpcy5nZXRWYWxpZGF0aW9uTWVzc2FnZXMoXHJcbiAgICAgICAgICAgIGNoaWxkLFxyXG4gICAgICAgICAgICB0aGlzLmdldENvbnRyb2xOYW1lKGNoaWxkLCBrKVxyXG4gICAgICAgICAgKS5mb3JFYWNoKChtKSA9PiBtZXNzYWdlcy5wdXNoKG0pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdldFZhbGlkYXRpb25NZXNzYWdlcyhcclxuICAgICAgICAgIGNvbnRyb2wsXHJcbiAgICAgICAgICB0aGlzLmdldENvbnRyb2xOYW1lKGNvbnRyb2wsIGspXHJcbiAgICAgICAgKS5mb3JFYWNoKChtKSA9PiBtZXNzYWdlcy5wdXNoKG0pKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2VzKHN0YXRlOiBhbnksIHRoaW5nTmFtZT86IHN0cmluZykge1xyXG4gICAgbGV0IHRoaW5nOiBzdHJpbmcgPSBzdGF0ZS5wYXRoIHx8IHRoaW5nTmFtZTtcclxuICAgIGxldCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBpZiAoc3RhdGUuZXJyb3JzKSB7XHJcbiAgICAgIGZvciAobGV0IGVycm9yTmFtZSBpbiBzdGF0ZS5lcnJvcnMpIHtcclxuICAgICAgICBpZiAoc3RhdGUuZXJyb3JzLmhhc093blByb3BlcnR5KGVycm9yTmFtZSkpIHtcclxuICAgICAgICAgIHN3aXRjaCAoZXJyb3JOYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGlzIHJlcXVpcmVkYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwibWlubGVuZ3RoXCI6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChcclxuICAgICAgICAgICAgICAgIGAke3RoaW5nfSBtdXN0IGJlIGF0IGxlYXN0ICR7c3RhdGUuZXJyb3JzW1wibWlubGVuZ3RoXCJdLnJlcXVpcmVkTGVuZ3RofSBjaGFyYWN0ZXJzYFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwicGF0dGVyblwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGNvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVyc2ApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcImZvcm1hdFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGZvcm1hdCBtaXNtYXRjaGApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcIm1heGxlbmd0aFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goXHJcbiAgICAgICAgICAgICAgICBgJHt0aGluZ30gbXVzdCBoYXZlIG1heGltdW0gJHtzdGF0ZS5lcnJvcnNbXCJtYXhsZW5ndGhcIl0ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJzcGVjaWFsY2hhcmFjdGVyc1wiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGNvbnRhaW5zIHNwZWNpYWwgY2hhcmFjdGVyc2ApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBDb250cm9sIE5hbWVcclxuICAgKiBAcGFyYW0gY29udHJvbFxyXG4gICAqIEBwYXJhbSB0aGluZ05hbWVcclxuICAgKi9cclxuICBnZXRDb250cm9sTmFtZShjb250cm9sOiBhbnksIHRoaW5nTmFtZT86IHN0cmluZykge1xyXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRDb250cm9sVGl0bGUoY29udHJvbCk7XHJcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZSA6IHRoaW5nTmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIHRpbHRlIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbFxyXG4gICAqL1xyXG4gIGdldENvbnRyb2xUaXRsZShjb250cm9sOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKGNvbnRyb2w/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgbGV0IGNvbnRyb2xUaXRsZSA9IHRoaXMuZ2V0VGl0bGVBdHRyaWJ1dGUoY29udHJvbC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgaWYgKGNvbnRyb2xUaXRsZSkge1xyXG4gICAgICAgIHJldHVybiBjb250cm9sVGl0bGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIHRpdGxlIGF0dHJpYnV0ZSBvZiBmb3JtIGNvbnRyb2xcclxuICAgKi9cclxuICBnZXRUaXRsZUF0dHJpYnV0ZShuYXRpdmVFbGVtZW50OiBIVE1MRm9ybUVsZW1lbnQpOiBzdHJpbmcge1xyXG4gICAgbGV0IHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgc3dpdGNoIChuYXRpdmVFbGVtZW50LnRhZ05hbWUpIHtcclxuICAgICAgLy8gRm9yIEtlbmRvIHRpbWUgYW5kIGRhdGUgcGlja2VyIGVsZW1lbnQgdGl0bGUgaXMgYXNzaWduZWQgdG8gdGhlIDR0aCBjaGlsZCBjb250cm9sLlxyXG4gICAgICBjYXNlIFwiS0VORE8tVElNRVBJQ0tFUlwiOlxyXG4gICAgICBjYXNlIFwiS0VORE8tREFURVBJQ0tFUlwiOlxyXG4gICAgICAgIHRpdGxlID1cclxuICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0/LmdldEF0dHJpYnV0ZShcclxuICAgICAgICAgICAgXCJ0aXRsZVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgLy8gRm9yIEtlbmRvIG51bWFyaWMgZWxlbWVudCB0aXRsZSBpcyBhc3NpZ25lZCB0byB0aGUgMm5kIGNoaWxkIGNvbnRyb2wuXHJcbiAgICAgIGNhc2UgXCJLRU5ETy1OVU1FUklDVEVYVEJPWFwiOlxyXG4gICAgICAgIHRpdGxlID0gbmF0aXZlRWxlbWVudC5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0/LmdldEF0dHJpYnV0ZShcInRpdGxlXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aXRsZSA9IG5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxufVxyXG4iXX0=
|