@osovitny/anatoly 1.0.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/README.md +0 -0
- package/bundles/osovitny-anatoly.umd.js +2065 -0
- package/bundles/osovitny-anatoly.umd.js.map +1 -0
- package/bundles/osovitny-anatoly.umd.min.js +16 -0
- package/bundles/osovitny-anatoly.umd.min.js.map +1 -0
- package/esm2015/lib/billing/billing.module.js +62 -0
- package/esm2015/lib/billing/components/buyaccess/buyaccess-button.component.js +123 -0
- package/esm2015/lib/billing/components/subscriptions/subscribe-plan-button.component.js +97 -0
- package/esm2015/lib/billing/components/subscriptions/upgrade-plan-button.component.js +84 -0
- package/esm2015/lib/billing/index.js +6 -0
- package/esm2015/lib/billing/services/base-billing-api.service.js +116 -0
- package/esm2015/lib/core/consts.js +15 -0
- package/esm2015/lib/core/core.module.js +47 -0
- package/esm2015/lib/core/index.js +12 -0
- package/esm2015/lib/core/services/appcontext.service.js +123 -0
- package/esm2015/lib/core/services/base-api.service.js +154 -0
- package/esm2015/lib/core/services/base-go.service.js +58 -0
- package/esm2015/lib/core/services/base-gridedit.service.js +202 -0
- package/esm2015/lib/identity/components/signin-button.component.js +38 -0
- package/esm2015/lib/identity/components/signout-button.component.js +38 -0
- package/esm2015/lib/identity/components/signup-button.component.js +39 -0
- package/esm2015/lib/identity/identity.module.js +43 -0
- package/esm2015/lib/identity/index.js +6 -0
- package/esm2015/lib/ui/components/base-edit.component.js +102 -0
- package/esm2015/lib/ui/components/base.component.js +57 -0
- package/esm2015/lib/ui/components/content-header/content-header.component.js +44 -0
- package/esm2015/lib/ui/components/html-editor/html-editor.component.js +267 -0
- package/esm2015/lib/ui/components/validation/form-validation-summary.component.js +51 -0
- package/esm2015/lib/ui/components/validation/item-validation-summary.component.js +45 -0
- package/esm2015/lib/ui/components/validation/validation-summary.component.js +93 -0
- package/esm2015/lib/ui/index.js +11 -0
- package/esm2015/lib/ui/ui.module.js +72 -0
- package/esm2015/osovitny-anatoly.js +9 -0
- package/esm2015/public-api.js +9 -0
- package/esm5/lib/billing/billing.module.js +66 -0
- package/esm5/lib/billing/components/buyaccess/buyaccess-button.component.js +128 -0
- package/esm5/lib/billing/components/subscriptions/subscribe-plan-button.component.js +100 -0
- package/esm5/lib/billing/components/subscriptions/upgrade-plan-button.component.js +86 -0
- package/esm5/lib/billing/index.js +6 -0
- package/esm5/lib/billing/services/base-billing-api.service.js +135 -0
- package/esm5/lib/core/consts.js +15 -0
- package/esm5/lib/core/core.module.js +51 -0
- package/esm5/lib/core/index.js +12 -0
- package/esm5/lib/core/services/appcontext.service.js +140 -0
- package/esm5/lib/core/services/base-api.service.js +205 -0
- package/esm5/lib/core/services/base-go.service.js +59 -0
- package/esm5/lib/core/services/base-gridedit.service.js +240 -0
- package/esm5/lib/identity/components/signin-button.component.js +41 -0
- package/esm5/lib/identity/components/signout-button.component.js +41 -0
- package/esm5/lib/identity/components/signup-button.component.js +41 -0
- package/esm5/lib/identity/identity.module.js +47 -0
- package/esm5/lib/identity/index.js +6 -0
- package/esm5/lib/ui/components/base-edit.component.js +137 -0
- package/esm5/lib/ui/components/base.component.js +72 -0
- package/esm5/lib/ui/components/content-header/content-header.component.js +51 -0
- package/esm5/lib/ui/components/html-editor/html-editor.component.js +309 -0
- package/esm5/lib/ui/components/validation/form-validation-summary.component.js +59 -0
- package/esm5/lib/ui/components/validation/item-validation-summary.component.js +49 -0
- package/esm5/lib/ui/components/validation/validation-summary.component.js +106 -0
- package/esm5/lib/ui/index.js +11 -0
- package/esm5/lib/ui/ui.module.js +76 -0
- package/esm5/osovitny-anatoly.js +9 -0
- package/esm5/public-api.js +9 -0
- package/fesm2015/osovitny-anatoly.js +1622 -0
- package/fesm2015/osovitny-anatoly.js.map +1 -0
- package/fesm5/osovitny-anatoly.js +1877 -0
- package/fesm5/osovitny-anatoly.js.map +1 -0
- package/lib/billing/billing.module.d.ts +2 -0
- package/lib/billing/components/buyaccess/buyaccess-button.component.d.ts +16 -0
- package/lib/billing/components/subscriptions/subscribe-plan-button.component.d.ts +15 -0
- package/lib/billing/components/subscriptions/upgrade-plan-button.component.d.ts +9 -0
- package/lib/billing/index.d.ts +1 -0
- package/lib/billing/services/base-billing-api.service.d.ts +9 -0
- package/lib/core/consts.d.ts +5 -0
- package/lib/core/core.module.d.ts +2 -0
- package/lib/core/index.d.ts +5 -0
- package/lib/core/services/appcontext.service.d.ts +14 -0
- package/lib/core/services/base-api.service.d.ts +18 -0
- package/lib/core/services/base-go.service.d.ts +7 -0
- package/lib/core/services/base-gridedit.service.d.ts +19 -0
- package/lib/identity/components/signin-button.component.d.ts +4 -0
- package/lib/identity/components/signout-button.component.d.ts +4 -0
- package/lib/identity/components/signup-button.component.d.ts +4 -0
- package/lib/identity/identity.module.d.ts +2 -0
- package/lib/identity/index.d.ts +1 -0
- package/lib/ui/components/base-edit.component.d.ts +14 -0
- package/lib/ui/components/base.component.d.ts +7 -0
- package/lib/ui/components/content-header/content-header.component.d.ts +5 -0
- package/lib/ui/components/html-editor/html-editor.component.d.ts +22 -0
- package/lib/ui/components/validation/form-validation-summary.component.d.ts +6 -0
- package/lib/ui/components/validation/item-validation-summary.component.d.ts +6 -0
- package/lib/ui/components/validation/validation-summary.component.d.ts +6 -0
- package/lib/ui/index.d.ts +4 -0
- package/lib/ui/ui.module.d.ts +2 -0
- package/osovitny-anatoly.d.ts +4 -0
- package/osovitny-anatoly.metadata.json +1 -0
- package/package.json +22 -0
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
<file>
|
|
7
|
+
Authors:
|
|
8
|
+
Vadim Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
20 Nov 2017
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2019 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
//Node
|
|
20
|
+
import { Input } from '@angular/core';
|
|
21
|
+
import { FormGroup } from '@angular/forms';
|
|
22
|
+
//Custom
|
|
23
|
+
import { BaseComponent } from './base.component';
|
|
24
|
+
export class BaseEditComponent extends BaseComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
this.formSubmitted = false;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @return {?}
|
|
31
|
+
*/
|
|
32
|
+
isActionAdding() {
|
|
33
|
+
/** @type {?} */
|
|
34
|
+
var id = osovitny.utils.getValueByNameInQS("id");
|
|
35
|
+
if (typeof id === 'undefined' || id == '')
|
|
36
|
+
return true;
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @return {?}
|
|
41
|
+
*/
|
|
42
|
+
getEntityId() {
|
|
43
|
+
return this.getQSId();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @param {?} name
|
|
47
|
+
* @return {?}
|
|
48
|
+
*/
|
|
49
|
+
isItemInvalid(name) {
|
|
50
|
+
if (typeof name === 'undefined' || name == '') {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (this.formGroup.get(name)) {
|
|
54
|
+
return (this.formSubmitted && this.formGroup.get(name).invalid) ||
|
|
55
|
+
(this.formGroup.get(name).touched && this.formGroup.get(name).invalid);
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* @param {?} name
|
|
61
|
+
* @return {?}
|
|
62
|
+
*/
|
|
63
|
+
getFormValue(name) {
|
|
64
|
+
return this.formGroup.controls[name].value;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @param {?} name
|
|
68
|
+
* @param {?} value
|
|
69
|
+
* @return {?}
|
|
70
|
+
*/
|
|
71
|
+
setFormValue(name, value) {
|
|
72
|
+
this.formGroup.controls[name].setValue(value);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @param {?} groupName
|
|
76
|
+
* @param {?} name
|
|
77
|
+
* @return {?}
|
|
78
|
+
*/
|
|
79
|
+
getFormGroupValue(groupName, name) {
|
|
80
|
+
return this.formGroup.controls[groupName].get(name).value;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* @param {?} groupName
|
|
84
|
+
* @param {?} name
|
|
85
|
+
* @param {?} value
|
|
86
|
+
* @return {?}
|
|
87
|
+
*/
|
|
88
|
+
setFormGroupValue(groupName, name, value) {
|
|
89
|
+
this.formGroup.controls[groupName].get(name).setValue(value);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
BaseEditComponent.propDecorators = {
|
|
93
|
+
formGroup: [{ type: Input }],
|
|
94
|
+
formSubmitted: [{ type: Input }]
|
|
95
|
+
};
|
|
96
|
+
if (false) {
|
|
97
|
+
/** @type {?} */
|
|
98
|
+
BaseEditComponent.prototype.formGroup;
|
|
99
|
+
/** @type {?} */
|
|
100
|
+
BaseEditComponent.prototype.formSubmitted;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bvc292aXRueS9hbmF0b2x5LyIsInNvdXJjZXMiOlsibGliL3VpL2NvbXBvbmVudHMvYmFzZS1lZGl0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLE9BQU8sRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUczQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGFBQWE7SUFJbEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUhELGtCQUFhLEdBQVksS0FBSyxDQUFDO0lBSXhDLENBQUM7Ozs7SUFFRCxjQUFjOztZQUNSLEVBQUUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUNoRCxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsSUFBSSxFQUFFLElBQUksRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXZELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzs7OztJQUVELGFBQWEsQ0FBQyxJQUFZO1FBQ3hCLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDM0MsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDeEQsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakY7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7O0lBRUQsWUFBWSxDQUFDLElBQUk7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM3QyxDQUFDOzs7Ozs7SUFFRCxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUs7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7Ozs7OztJQUVELGlCQUFpQixDQUFDLFNBQVMsRUFBRSxJQUFJO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM1RCxDQUFDOzs7Ozs7O0lBRUQsaUJBQWlCLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7O3dCQTdDQSxLQUFLOzRCQUNMLEtBQUs7Ozs7SUFETixzQ0FBOEI7O0lBQzlCLDBDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjAgTm92IDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAxOSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8vQ3VzdG9tXHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlRWRpdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgIHtcclxuICBASW5wdXQoKSBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBmb3JtU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGlzQWN0aW9uQWRkaW5nKCkge1xyXG4gICAgdmFyIGlkID0gb3Nvdml0bnkudXRpbHMuZ2V0VmFsdWVCeU5hbWVJblFTKFwiaWRcIik7XHJcbiAgICBpZiAodHlwZW9mIGlkID09PSAndW5kZWZpbmVkJyB8fCBpZCA9PSAnJykgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW50aXR5SWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRRU0lkKCk7XHJcbiAgfVxyXG5cclxuICBpc0l0ZW1JbnZhbGlkKG5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKHR5cGVvZiBuYW1lID09PSAndW5kZWZpbmVkJyB8fCBuYW1lID09ICcnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5nZXQobmFtZSkpIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuZm9ybVN1Ym1pdHRlZCAmJiB0aGlzLmZvcm1Hcm91cC5nZXQobmFtZSkuaW52YWxpZCkgfHxcclxuICAgICAgICAgICAgICAgKHRoaXMuZm9ybUdyb3VwLmdldChuYW1lKS50b3VjaGVkICYmIHRoaXMuZm9ybUdyb3VwLmdldChuYW1lKS5pbnZhbGlkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtVmFsdWUobmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybVZhbHVlKG5hbWUsIHZhbHVlKSB7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtR3JvdXBWYWx1ZShncm91cE5hbWUsIG5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tncm91cE5hbWVdLmdldChuYW1lKS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldEZvcm1Hcm91cFZhbHVlKGdyb3VwTmFtZSwgbmFtZSwgdmFsdWUpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW2dyb3VwTmFtZV0uZ2V0KG5hbWUpLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
<file>
|
|
7
|
+
Authors:
|
|
8
|
+
Vadim Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
28 Aug 2018
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2019 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
export class BaseComponent {
|
|
20
|
+
constructor() {
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @return {?}
|
|
24
|
+
*/
|
|
25
|
+
getQSId() {
|
|
26
|
+
/** @type {?} */
|
|
27
|
+
var id = osovitny.utils.getValueByNameInQS("id");
|
|
28
|
+
if (typeof id === 'undefined' || id == '')
|
|
29
|
+
return null;
|
|
30
|
+
return id;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @return {?}
|
|
34
|
+
*/
|
|
35
|
+
showLoading() {
|
|
36
|
+
/** @type {?} */
|
|
37
|
+
var panelLoading = $('#pnlLoading');
|
|
38
|
+
panelLoading.show();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @return {?}
|
|
42
|
+
*/
|
|
43
|
+
hideLoading() {
|
|
44
|
+
/** @type {?} */
|
|
45
|
+
var panelLoading = $('#pnlLoading');
|
|
46
|
+
panelLoading.hide();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @param {?} e
|
|
50
|
+
* @return {?}
|
|
51
|
+
*/
|
|
52
|
+
handleError(e) {
|
|
53
|
+
this.hideLoading();
|
|
54
|
+
osovitny.ui.errorOccurred();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ab3Nvdml0bnkvYW5hdG9seS8iLCJzb3VyY2VzIjpbImxpYi91aS9jb21wb25lbnRzL2Jhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxNQUFNLE9BQU8sYUFBYTtJQUN4QjtJQUNBLENBQUM7Ozs7SUFFRCxPQUFPOztZQUNELEVBQUUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUNoRCxJQUFJLE9BQU8sRUFBRSxLQUFLLFdBQVcsSUFBSSxFQUFFLElBQUksRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXZELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7OztJQUVELFdBQVc7O1lBQ0wsWUFBWSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDbkMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7SUFFRCxXQUFXOztZQUNMLFlBQVksR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ25DLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyOCBBdWcgMjAxOFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDE5IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgZ2V0UVNJZCgpIHtcclxuICAgIHZhciBpZCA9IG9zb3ZpdG55LnV0aWxzLmdldFZhbHVlQnlOYW1lSW5RUyhcImlkXCIpO1xyXG4gICAgaWYgKHR5cGVvZiBpZCA9PT0gJ3VuZGVmaW5lZCcgfHwgaWQgPT0gJycpIHJldHVybiBudWxsO1xyXG5cclxuICAgIHJldHVybiBpZDtcclxuICB9XHJcblxyXG4gIHNob3dMb2FkaW5nKCkge1xyXG4gICAgdmFyIHBhbmVsTG9hZGluZyA9ICQoJyNwbmxMb2FkaW5nJyk7XHJcbiAgICBwYW5lbExvYWRpbmcuc2hvdygpO1xyXG4gIH1cclxuXHJcbiAgaGlkZUxvYWRpbmcoKSB7XHJcbiAgICB2YXIgcGFuZWxMb2FkaW5nID0gJCgnI3BubExvYWRpbmcnKTtcclxuICAgIHBhbmVsTG9hZGluZy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFcnJvcihlKSB7XHJcbiAgICB0aGlzLmhpZGVMb2FkaW5nKCk7XHJcbiAgICBvc292aXRueS51aS5lcnJvck9jY3VycmVkKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
<file>
|
|
7
|
+
Authors:
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
23 Apr 2018
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2019 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
//Node
|
|
20
|
+
import { Component, Input } from '@angular/core';
|
|
21
|
+
export class ContentHeaderComponent {
|
|
22
|
+
/**
|
|
23
|
+
* @return {?}
|
|
24
|
+
*/
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
if (this.title == null) {
|
|
27
|
+
this.title = '';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ContentHeaderComponent.decorators = [
|
|
32
|
+
{ type: Component, args: [{
|
|
33
|
+
selector: 'anatoly-content-header',
|
|
34
|
+
template: "<h2 class=\"page-header\">\r\n {{title}}\r\n <!--<small>Optional {{title}}</small>-->\r\n</h2>\r\n"
|
|
35
|
+
}] }
|
|
36
|
+
];
|
|
37
|
+
ContentHeaderComponent.propDecorators = {
|
|
38
|
+
title: [{ type: Input }]
|
|
39
|
+
};
|
|
40
|
+
if (false) {
|
|
41
|
+
/** @type {?} */
|
|
42
|
+
ContentHeaderComponent.prototype.title;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG9zb3ZpdG55L2FuYXRvbHkvIiwic291cmNlcyI6WyJsaWIvdWkvY29tcG9uZW50cy9jb250ZW50LWhlYWRlci9jb250ZW50LWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU96RCxNQUFNLE9BQU8sc0JBQXNCOzs7O0lBR2pDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQzs7O1lBWkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLGdIQUE4QzthQUMvQzs7O29CQUdFLEtBQUs7Ozs7SUFBTix1Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBBdXRob3JzOlxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjMgQXByIDIwMThcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAxOSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1jb250ZW50LWhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtaGVhZGVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRlbnRIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnRpdGxlID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnRpdGxlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
<file>
|
|
7
|
+
Authors:
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
Vadim Osovitny
|
|
10
|
+
|
|
11
|
+
Created:
|
|
12
|
+
12 Dec 2017
|
|
13
|
+
|
|
14
|
+
Version:
|
|
15
|
+
1.0
|
|
16
|
+
|
|
17
|
+
Copyright (c) 2016-2019 Osovitny Inc. All rights reserved.
|
|
18
|
+
</file>
|
|
19
|
+
*/
|
|
20
|
+
//Node
|
|
21
|
+
import { Component, Input } from '@angular/core';
|
|
22
|
+
//Custom
|
|
23
|
+
import { BaseEditComponent } from '../base-edit.component';
|
|
24
|
+
export class HtmlEditorComponent extends BaseEditComponent {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(...arguments);
|
|
27
|
+
this._defaultEditorOptions = {
|
|
28
|
+
placeholderText: 'Edit Your Content Here',
|
|
29
|
+
charCounterCount: true,
|
|
30
|
+
heightMin: 100,
|
|
31
|
+
toolbarInline: false,
|
|
32
|
+
toolbarButtons: [
|
|
33
|
+
'fullscreen', 'bold', 'italic', 'underline', 'strikeThrough', 'subscript', 'superscript', '|',
|
|
34
|
+
'fontFamily', 'fontSize', 'color', 'inlineStyle', 'paragraphStyle', '|',
|
|
35
|
+
'paragraphFormat', 'align', 'formatOL', 'formatUL', 'outdent', 'indent', 'quote', '-',
|
|
36
|
+
'insertLink', 'insertImage', 'insertTable', '|',
|
|
37
|
+
'emoticons', 'specialCharacters', 'insertHR', 'selectAll', 'clearFormatting', '|',
|
|
38
|
+
'print', 'help', 'html', '|', 'undo', 'redo'
|
|
39
|
+
],
|
|
40
|
+
/*
|
|
41
|
+
Upload:
|
|
42
|
+
https://www.froala.com/wysiwyg-editor/docs/concepts/image/upload
|
|
43
|
+
*/
|
|
44
|
+
imageUploadURL: '/api/HtmlEditor/UploadImage',
|
|
45
|
+
imageAllowedTypes: ['jpeg', 'jpg', 'png'],
|
|
46
|
+
imageUploadParams: { uploadType: '', uploadParentId: '' },
|
|
47
|
+
//Events
|
|
48
|
+
events: {
|
|
49
|
+
'image.beforeUpload': (/**
|
|
50
|
+
* @param {?} images
|
|
51
|
+
* @return {?}
|
|
52
|
+
*/
|
|
53
|
+
function (images) {
|
|
54
|
+
/** @type {?} */
|
|
55
|
+
let editor = this;
|
|
56
|
+
alert("v3 image.beforeUpload editor.opts.imageUploadParams.uploadType" + editor.opts.imageUploadParams.uploadType);
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
this._editorInitialized = false;
|
|
61
|
+
//General params
|
|
62
|
+
this.editorId = '';
|
|
63
|
+
this.editorLabelText = 'Html';
|
|
64
|
+
this.editorOptions = {};
|
|
65
|
+
//Form based params
|
|
66
|
+
this.isFormBased = '1';
|
|
67
|
+
this.editorFormKey = 'html';
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @return {?}
|
|
71
|
+
*/
|
|
72
|
+
ngOnInit() {
|
|
73
|
+
/** @type {?} */
|
|
74
|
+
var opt = this.editorOptions;
|
|
75
|
+
if (typeof this.editorOptions == "string") {
|
|
76
|
+
opt = JSON.parse(this.editorOptions);
|
|
77
|
+
}
|
|
78
|
+
/** @type {?} */
|
|
79
|
+
var newOptions = $.extend({}, this._defaultEditorOptions, opt);
|
|
80
|
+
/** @type {?} */
|
|
81
|
+
var key = ((/** @type {?} */ (window))).__froalaEditor_Key;
|
|
82
|
+
if (key) {
|
|
83
|
+
newOptions = $.extend({}, JSON.parse('{ "key": "' + key + '" }'), newOptions);
|
|
84
|
+
}
|
|
85
|
+
this.options = newOptions;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @return {?}
|
|
89
|
+
*/
|
|
90
|
+
ngAfterViewInit() {
|
|
91
|
+
this.initializeEditor();
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @param {?} control
|
|
95
|
+
* @return {?}
|
|
96
|
+
*/
|
|
97
|
+
initializeControl(control) {
|
|
98
|
+
this._control = control;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* @private
|
|
102
|
+
* @return {?}
|
|
103
|
+
*/
|
|
104
|
+
initializeEditor() {
|
|
105
|
+
if (this._editorInitialized) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (this._control) {
|
|
109
|
+
this._control.initialize();
|
|
110
|
+
//v2 BEGIN
|
|
111
|
+
/** @type {?} */
|
|
112
|
+
var jQueryEditor = this.getJQueryEditor();
|
|
113
|
+
/** @type {?} */
|
|
114
|
+
var that = this;
|
|
115
|
+
jQueryEditor.on('froalaEditor.image.beforeUpload', (/**
|
|
116
|
+
* @param {?} e
|
|
117
|
+
* @param {?} editor
|
|
118
|
+
* @param {?} images
|
|
119
|
+
* @return {?}
|
|
120
|
+
*/
|
|
121
|
+
function (e, editor, images) {
|
|
122
|
+
/** @type {?} */
|
|
123
|
+
var options = that.options;
|
|
124
|
+
editor.opts.imageUploadParams.uploadType = options.imageUploadParams.uploadType;
|
|
125
|
+
editor.opts.imageUploadParams.uploadParentId = options.imageUploadParams.uploadParentId;
|
|
126
|
+
}));
|
|
127
|
+
//v2 END
|
|
128
|
+
this._editorInitialized = true;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* @private
|
|
133
|
+
* @return {?}
|
|
134
|
+
*/
|
|
135
|
+
getJQueryEditor() {
|
|
136
|
+
/** @type {?} */
|
|
137
|
+
var jQueryEditor = $('.htmleditor-' + this.editorId);
|
|
138
|
+
return jQueryEditor;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @private
|
|
142
|
+
* @return {?}
|
|
143
|
+
*/
|
|
144
|
+
getEditor() {
|
|
145
|
+
if (this._control)
|
|
146
|
+
return this._control.getEditor();
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
//Public Funcs
|
|
150
|
+
/**
|
|
151
|
+
* @param {?} uploadType
|
|
152
|
+
* @param {?} uploadParentId
|
|
153
|
+
* @return {?}
|
|
154
|
+
*/
|
|
155
|
+
setUploadParams(uploadType, uploadParentId) {
|
|
156
|
+
/** @type {?} */
|
|
157
|
+
var that = this;
|
|
158
|
+
/** @type {?} */
|
|
159
|
+
var timeOut = 1000;
|
|
160
|
+
if (this._editorInitialized) {
|
|
161
|
+
timeOut = 0;
|
|
162
|
+
}
|
|
163
|
+
setTimeout((/**
|
|
164
|
+
* @return {?}
|
|
165
|
+
*/
|
|
166
|
+
function () {
|
|
167
|
+
/** @type {?} */
|
|
168
|
+
var newOptions = { imageUploadParams: { uploadType: '', uploadParentId: '' } };
|
|
169
|
+
newOptions.imageUploadParams.uploadType = uploadType;
|
|
170
|
+
newOptions.imageUploadParams.uploadParentId = uploadParentId;
|
|
171
|
+
that.options = $.extend({}, that.options, newOptions);
|
|
172
|
+
}), timeOut);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* @param {?} content
|
|
176
|
+
* @return {?}
|
|
177
|
+
*/
|
|
178
|
+
setHtml(content) {
|
|
179
|
+
if (this.isFormBased == "1") {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
this.initializeEditor();
|
|
183
|
+
//v2
|
|
184
|
+
/** @type {?} */
|
|
185
|
+
var editor = this.getJQueryEditor();
|
|
186
|
+
if (typeof (editor) == "undefined" || editor == null) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
editor.froalaEditor('html.set', content);
|
|
190
|
+
/*
|
|
191
|
+
//v3
|
|
192
|
+
var editor = this.getEditor();
|
|
193
|
+
if (typeof (editor) == "undefined" || editor == null) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
editor.html.set(content);
|
|
198
|
+
*/
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* @return {?}
|
|
202
|
+
*/
|
|
203
|
+
getHtml() {
|
|
204
|
+
if (this.isFormBased == "1") {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
//v2
|
|
208
|
+
/** @type {?} */
|
|
209
|
+
var editor = this.getJQueryEditor();
|
|
210
|
+
if (typeof (editor) == "undefined" || editor == null) {
|
|
211
|
+
return "";
|
|
212
|
+
}
|
|
213
|
+
return editor.froalaEditor('html.get');
|
|
214
|
+
/*
|
|
215
|
+
//v3
|
|
216
|
+
var editor = this.getEditor();
|
|
217
|
+
if (typeof (editor) == "undefined" || editor == null) {
|
|
218
|
+
return "";
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return editor.html.get(false);
|
|
222
|
+
*/
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
HtmlEditorComponent.decorators = [
|
|
226
|
+
{ type: Component, args: [{
|
|
227
|
+
selector: 'anatoly-html-editor',
|
|
228
|
+
template: "<div [ngSwitch]=\"isFormBased\">\r\n <ng-template ngSwitchCase=\"0\">\r\n <label>{{ editorLabelText }}</label>\r\n <textarea id=\"htmleditor-{{editorId}}\" class=\"htmleditor-{{editorId}}\" \r\n [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\">\r\n </textarea>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"1\">\r\n <div [formGroup]=\"formGroup\">\r\n <div class=\"form-group\" [ngClass]=\"{'has-error': isItemInvalid(editorFormKey) }\">\r\n <label class=\"control-label\">{{ editorLabelText }}</label>\r\n <textarea id=\"htmleditor-{{editorId}}\" class=\"htmleditor-{{editorId}}\"\r\n [formControlName]=\"editorFormKey\"\r\n [froalaEditor]=\"options\" (froalaInit)=\"initializeControl($event)\">\r\n </textarea>\r\n <anatoly-item-validation-summary [formGroup]=\"formGroup\"\r\n [formSubmitted]=\"formSubmitted\"\r\n [key]=\"editorFormKey\"\r\n [title]=\"editorLabelText\">\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n"
|
|
229
|
+
}] }
|
|
230
|
+
];
|
|
231
|
+
HtmlEditorComponent.propDecorators = {
|
|
232
|
+
editorId: [{ type: Input }],
|
|
233
|
+
editorLabelText: [{ type: Input }],
|
|
234
|
+
editorOptions: [{ type: Input }],
|
|
235
|
+
isFormBased: [{ type: Input }],
|
|
236
|
+
editorFormKey: [{ type: Input }]
|
|
237
|
+
};
|
|
238
|
+
if (false) {
|
|
239
|
+
/**
|
|
240
|
+
* @type {?}
|
|
241
|
+
* @private
|
|
242
|
+
*/
|
|
243
|
+
HtmlEditorComponent.prototype._defaultEditorOptions;
|
|
244
|
+
/**
|
|
245
|
+
* @type {?}
|
|
246
|
+
* @private
|
|
247
|
+
*/
|
|
248
|
+
HtmlEditorComponent.prototype._control;
|
|
249
|
+
/**
|
|
250
|
+
* @type {?}
|
|
251
|
+
* @private
|
|
252
|
+
*/
|
|
253
|
+
HtmlEditorComponent.prototype._editorInitialized;
|
|
254
|
+
/** @type {?} */
|
|
255
|
+
HtmlEditorComponent.prototype.options;
|
|
256
|
+
/** @type {?} */
|
|
257
|
+
HtmlEditorComponent.prototype.editorId;
|
|
258
|
+
/** @type {?} */
|
|
259
|
+
HtmlEditorComponent.prototype.editorLabelText;
|
|
260
|
+
/** @type {?} */
|
|
261
|
+
HtmlEditorComponent.prototype.editorOptions;
|
|
262
|
+
/** @type {?} */
|
|
263
|
+
HtmlEditorComponent.prototype.isFormBased;
|
|
264
|
+
/** @type {?} */
|
|
265
|
+
HtmlEditorComponent.prototype.editorFormKey;
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG9zb3ZpdG55L2FuYXRvbHkvIiwic291cmNlcyI6WyJsaWIvdWkvY29tcG9uZW50cy9odG1sLWVkaXRvci9odG1sLWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQkEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUd4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU8zRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsaUJBQWlCO0lBTDFEOztRQU1VLDBCQUFxQixHQUFXO1lBQ3RDLGVBQWUsRUFBRSx3QkFBd0I7WUFDekMsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixTQUFTLEVBQUUsR0FBRztZQUNkLGFBQWEsRUFBRSxLQUFLO1lBRXBCLGNBQWMsRUFBRTtnQkFDZCxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsR0FBRztnQkFDN0YsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLEdBQUc7Z0JBQ3ZFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUc7Z0JBRXJGLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEdBQUc7Z0JBQy9DLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEdBQUc7Z0JBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTTthQUM3Qzs7Ozs7WUFNRCxjQUFjLEVBQUUsNkJBQTZCO1lBQzdDLGlCQUFp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QUcsSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUNuQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxXQUFXLElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtZQUNwRCxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZDOzs7Ozs7OztVQVFFO0lBQ0osQ0FBQzs7O1lBbkxGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQix5dENBQTJDO2FBQzVDOzs7dUJBNkNFLEtBQUs7OEJBQ0wsS0FBSzs0QkFDTCxLQUFLOzBCQUdMLEtBQUs7NEJBQ0wsS0FBSzs7Ozs7OztJQWhETixvREFnQ0M7Ozs7O0lBR0QsdUNBQWlCOzs7OztJQUNqQixpREFBNEM7O0lBRzVDLHNDQUFlOztJQUdmLHVDQUErQjs7SUFDL0IsOENBQTBDOztJQUMxQyw0Q0FBb0M7O0lBR3BDLDBDQUFtQzs7SUFDbkMsNENBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgQXV0aG9yczpcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMiBEZWMgMjAxN1xyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDE5IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy9DdXN0b21cclxuaW1wb3J0IHsgQmFzZUVkaXRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWVkaXQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1odG1sLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2h0bWwtZWRpdG9yLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEh0bWxFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJpdmF0ZSBfZGVmYXVsdEVkaXRvck9wdGlvbnM6IE9iamVjdCA9IHtcclxuICAgIHBsYWNlaG9sZGVyVGV4dDogJ0VkaXQgWW91ciBDb250ZW50IEhlcmUnLFxyXG4gICAgY2hhckNvdW50ZXJDb3VudDogdHJ1ZSxcclxuICAgIGhlaWdodE1pbjogMTAwLFxyXG4gICAgdG9vbGJhcklubGluZTogZmFsc2UsXHJcblxyXG4gICAgdG9vbGJhckJ1dHRvbnM6IFtcclxuICAgICAgJ2Z1bGxzY3JlZW4nLCAnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZVRocm91Z2gnLCAnc3Vic2NyaXB0JywgJ3N1cGVyc2NyaXB0JywgJ3wnLFxyXG4gICAgICAnZm9udEZhbWlseScsICdmb250U2l6ZScsICdjb2xvcicsICdpbmxpbmVTdHlsZScsICdwYXJhZ3JhcGhTdHlsZScsICd8JyxcclxuICAgICAgJ3BhcmFncmFwaEZvcm1hdCcsICdhbGlnbicsICdmb3JtYXRPTCcsICdmb3JtYXRVTCcsICdvdXRkZW50JywgJ2luZGVudCcsICdxdW90ZScsICctJyxcclxuXHJcbiAgICAgICdpbnNlcnRMaW5rJywgJ2luc2VydEltYWdlJywgJ2luc2VydFRhYmxlJywgJ3wnLFxyXG4gICAgICAnZW1vdGljb25zJywgJ3NwZWNpYWxDaGFyYWN0ZXJzJywgJ2luc2VydEhSJywgJ3NlbGVjdEFsbCcsICdjbGVhckZvcm1hdHRpbmcnLCAnfCcsXHJcbiAgICAgICdwcmludCcsICdoZWxwJywgJ2h0bWwnLCAnfCcsICd1bmRvJywgJ3JlZG8nXHJcbiAgICBdLFxyXG5cclxuICAgIC8qXHJcbiAgICAgIFVwbG9hZDpcclxuICAgICAgaHR0cHM6Ly93d3cuZnJvYWxhLmNvbS93eXNpd3lnLWVkaXRvci9kb2NzL2NvbmNlcHRzL2ltYWdlL3VwbG9hZFxyXG4gICAgKi9cclxuICAgIGltYWdlVXBsb2FkVVJMOiAnL2FwaS9IdG1sRWRpdG9yL1VwbG9hZEltYWdlJyxcclxuICAgIGltYWdlQWxsb3dlZFR5cGVzOiBbJ2pwZWcnLCAnanBnJywgJ3BuZyddLFxyXG4gICAgaW1hZ2VVcGxvYWRQYXJhbXM6IHsgdXBsb2FkVHlwZTogJycsIHVwbG9hZFBhcmVudElkOiAnJyB9LFxyXG5cclxuICAgIC8vRXZlbnRzXHJcbiAgICBldmVudHM6IHtcclxuICAgICAgJ2ltYWdlLmJlZm9yZVVwbG9hZCc6IGZ1bmN0aW9uIChpbWFnZXMpIHtcclxuICAgICAgICBsZXQgZWRpdG9yID0gdGhpcztcclxuXHJcbiAgICAgICAgYWxlcnQoXCJ2MyBpbWFnZS5iZWZvcmVVcGxvYWQgZWRpdG9yLm9wdHMuaW1hZ2VVcGxvYWRQYXJhbXMudXBsb2FkVHlwZVwiICsgZWRpdG9yLm9wdHMuaW1hZ2VVcGxvYWRQYXJhbXMudXBsb2FkVHlwZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9Qcml2YXRlIG1lbWJlcnNcclxuICBwcml2YXRlIF9jb250cm9sO1xyXG4gIHByaXZhdGUgX2VkaXRvckluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vUHVibGljIG1lbWJlcnNcclxuICBwdWJsaWMgb3B0aW9ucztcclxuXHJcbiAgLy9HZW5lcmFsIHBhcmFtc1xyXG4gIEBJbnB1dCgpIGVkaXRvcklkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBlZGl0b3JMYWJlbFRleHQ6IHN0cmluZyA9ICdIdG1sJztcclxuICBASW5wdXQoKSBlZGl0b3JPcHRpb25zOiBPYmplY3QgPSB7fTtcclxuXHJcbiAgLy9Gb3JtIGJhc2VkIHBhcmFtc1xyXG4gIEBJbnB1dCgpIGlzRm9ybUJhc2VkOiBzdHJpbmcgPSAnMSc7XHJcbiAgQElucHV0KCkgZWRpdG9yRm9ybUtleTogc3RyaW5nID0gJ2h0bWwnO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHZhciBvcHQgPSB0aGlzLmVkaXRvck9wdGlvbnM7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuZWRpdG9yT3B0aW9ucyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgb3B0ID0gSlNPTi5wYXJzZSh0aGlzLmVkaXRvck9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBuZXdPcHRpb25zID0gJC5leHRlbmQoe30sIHRoaXMuX2RlZmF1bHRFZGl0b3JPcHRpb25zLCBvcHQpO1xyXG4gICAgdmFyIGtleSA9ICg8YW55PndpbmRvdykuX19mcm9hbGFFZGl0b3JfS2V5O1xyXG4gICAgaWYgKGtleSkge1xyXG4gICAgICBuZXdPcHRpb25zID0gJC5leHRlbmQoe30sIEpTT04ucGFyc2UoJ3sgXCJrZXlcIjogXCInICsga2V5ICsgJ1wiIH0nKSwgbmV3T3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vcHRpb25zID0gbmV3T3B0aW9ucztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUVkaXRvcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRpYWxpemVDb250cm9sKGNvbnRyb2wpIHtcclxuICAgIHRoaXMuX2NvbnRyb2wgPSBjb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRWRpdG9yKCkge1xyXG4gICAgaWYgKHRoaXMuX2VkaXRvckluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9jb250cm9sKSB7XHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5pbml0aWFsaXplKCk7XHJcblxyXG4gICAgICAgIC8vdjIgQkVHSU5cclxuICAgICAgICB2YXIgalF1ZXJ5RWRpdG9yID0gdGhpcy5nZXRKUXVlcnlFZGl0b3IoKTtcclxuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgICAgalF1ZXJ5RWRpdG9yLm9uKCdmcm9hbGFFZGl0b3IuaW1hZ2UuYmVmb3JlVXBsb2FkJywgZnVuY3Rpb24gKGUsIGVkaXRvciwgaW1hZ2VzKSB7XHJcbiAgICAgICAgICB2YXIgb3B0aW9uczogYW55ID0gdGhhdC5vcHRpb25zO1xyXG5cclxuICAgICAgICAgIGVkaXRvci5vcHRzLmltYWdlVXBsb2FkUGFyYW1zLnVwbG9hZFR5cGUgPSBvcHRpb25zLmltYWdlVXBsb2FkUGFyYW1zLnVwbG9hZFR5cGU7XHJcbiAgICAgICAgICBlZGl0b3Iub3B0cy5pbWFnZVVwbG9hZFBhcmFtcy51cGxvYWRQYXJlbnRJZCA9IG9wdGlvbnMuaW1hZ2VVcGxvYWRQYXJhbXMudXBsb2FkUGFyZW50SWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy92MiBFTkRcclxuXHJcbiAgICAgICAgdGhpcy5fZWRpdG9ySW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRKUXVlcnlFZGl0b3IoKSB7XHJcbiAgICB2YXIgalF1ZXJ5RWRpdG9yOiBhbnkgPSAkKCcuaHRtbGVkaXRvci0nICsgdGhpcy5lZGl0b3JJZCk7XHJcbiAgICByZXR1cm4galF1ZXJ5RWRpdG9yO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFZGl0b3IoKSB7XHJcbiAgICBpZiAodGhpcy5fY29udHJvbClcclxuICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2wuZ2V0RWRpdG9yKCk7XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvL1B1YmxpYyBGdW5jc1xyXG4gIHB1YmxpYyBzZXRVcGxvYWRQYXJhbXModXBsb2FkVHlwZSwgdXBsb2FkUGFyZW50SWQpIHtcclxuICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgIHZhciB0aW1lT3V0ID0gMTAwMDtcclxuXHJcbiAgICBpZiAodGhpcy5fZWRpdG9ySW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICB0aW1lT3V0ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIG5ld09wdGlvbnM6IGFueSA9IHsgaW1hZ2VVcGxvYWRQYXJhbXM6IHsgdXBsb2FkVHlwZTogJycsIHVwbG9hZFBhcmVudElkOiAnJyB9IH07XHJcbiAgICAgIG5ld09wdGlvbnMuaW1hZ2VVcGxvYWRQYXJhbXMudXBsb2FkVHlwZSA9IHVwbG9hZFR5cGU7XHJcbiAgICAgIG5ld09wdGlvbnMuaW1hZ2VVcGxvYWRQYXJhbXMudXBsb2FkUGFyZW50SWQgPSB1cGxvYWRQYXJlbnRJZDtcclxuICAgICAgdGhhdC5vcHRpb25zID0gJC5leHRlbmQoe30sIHRoYXQub3B0aW9ucywgbmV3T3B0aW9ucyk7XHJcbiAgICB9LCB0aW1lT3V0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRIdG1sKGNvbnRlbnQpIHtcclxuICAgIGlmICh0aGlzLmlzRm9ybUJhc2VkID09IFwiMVwiKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemVFZGl0b3IoKTtcclxuXHJcbiAgICAvL3YyXHJcbiAgICB2YXIgZWRpdG9yID0gdGhpcy5nZXRKUXVlcnlFZGl0b3IoKTtcclxuICAgIGlmICh0eXBlb2YgKGVkaXRvcikgPT0gXCJ1bmRlZmluZWRcIiB8fCBlZGl0b3IgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdG9yLmZyb2FsYUVkaXRvcignaHRtbC5zZXQnLCBjb250ZW50KTtcclxuXHJcbiAgICAvKlxyXG4gICAgLy92M1xyXG4gICAgdmFyIGVkaXRvciA9IHRoaXMuZ2V0RWRpdG9yKCk7XHJcbiAgICBpZiAodHlwZW9mIChlZGl0b3IpID09IFwidW5kZWZpbmVkXCIgfHwgZWRpdG9yID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXRvci5odG1sLnNldChjb250ZW50KTtcclxuICAgICovXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SHRtbCgpIHtcclxuICAgIGlmICh0aGlzLmlzRm9ybUJhc2VkID09IFwiMVwiKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvL3YyXHJcbiAgICB2YXIgZWRpdG9yID0gdGhpcy5nZXRKUXVlcnlFZGl0b3IoKTtcclxuICAgIGlmICh0eXBlb2YgKGVkaXRvcikgPT0gXCJ1bmRlZmluZWRcIiB8fCBlZGl0b3IgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZWRpdG9yLmZyb2FsYUVkaXRvcignaHRtbC5nZXQnKTtcclxuXHJcbiAgICAvKlxyXG4gICAgLy92M1xyXG4gICAgdmFyIGVkaXRvciA9IHRoaXMuZ2V0RWRpdG9yKCk7XHJcbiAgICBpZiAodHlwZW9mIChlZGl0b3IpID09IFwidW5kZWZpbmVkXCIgfHwgZWRpdG9yID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVkaXRvci5odG1sLmdldChmYWxzZSk7XHJcbiAgICAqL1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
<file>
|
|
7
|
+
Authors:
|
|
8
|
+
Vadim Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
7 Dec 2017
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2019 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
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @return {?}
|
|
29
|
+
*/
|
|
30
|
+
getErrors() {
|
|
31
|
+
/** @type {?} */
|
|
32
|
+
var messages = this.getFormValidationMessages();
|
|
33
|
+
return messages;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
FormValidationSummaryComponent.decorators = [
|
|
37
|
+
{ type: Component, args: [{
|
|
38
|
+
selector: 'anatoly-form-validation-summary',
|
|
39
|
+
template: "<div class=\"callout callout-danger\" *ngIf=\"visible\">\r\n <h4 class=\"box-title\">There are problems with the form</h4>\r\n <p *ngFor=\"let error of getErrors()\"><span class=\"help-block \" style=\"color:white\">{{error}}</span></p>\r\n</div>\r\n"
|
|
40
|
+
}] }
|
|
41
|
+
];
|
|
42
|
+
/** @nocollapse */
|
|
43
|
+
FormValidationSummaryComponent.ctorParameters = () => [];
|
|
44
|
+
FormValidationSummaryComponent.propDecorators = {
|
|
45
|
+
visible: [{ type: Input }]
|
|
46
|
+
};
|
|
47
|
+
if (false) {
|
|
48
|
+
/** @type {?} */
|
|
49
|
+
FormValidationSummaryComponent.prototype.visible;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG9zb3ZpdG55L2FuYXRvbHkvIiwic291cmNlcyI6WyJsaWIvdWkvY29tcG9uZW50cy92YWxpZGF0aW9uL2Zvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBTzVFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwwQkFBMEI7SUFHNUU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUhELFlBQU8sR0FBWSxLQUFLLENBQUM7SUFJbEMsQ0FBQzs7OztJQUVELFNBQVM7O1lBQ0gsUUFBUSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtRQUMvQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs7WUFmRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztnQkFDM0Msd1FBQXVEO2FBQ3hEOzs7OztzQkFHRSxLQUFLOzs7O0lBQU4saURBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA3IERlYyAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMTkgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gXCIuL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGdldEVycm9ycygpOiBzdHJpbmdbXSB7XHJcbiAgICB2YXIgbWVzc2FnZXMgPSB0aGlzLmdldEZvcm1WYWxpZGF0aW9uTWVzc2FnZXMoKTtcclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
<file>
|
|
7
|
+
Authors:
|
|
8
|
+
Vadim Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
6 Dec 2017
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2019 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=\"isItemInvalid(key)\">\r\n <li *ngFor=\"let error of getValidationMessages(formGroup.get(key), title)\">\r\n <span class=\"help-block\">{{ error }}</span>\r\n </li>\r\n</ul>"
|
|
31
|
+
}] }
|
|
32
|
+
];
|
|
33
|
+
/** @nocollapse */
|
|
34
|
+
ItemValidationSummaryComponent.ctorParameters = () => [];
|
|
35
|
+
ItemValidationSummaryComponent.propDecorators = {
|
|
36
|
+
key: [{ type: Input }],
|
|
37
|
+
title: [{ type: Input }]
|
|
38
|
+
};
|
|
39
|
+
if (false) {
|
|
40
|
+
/** @type {?} */
|
|
41
|
+
ItemValidationSummaryComponent.prototype.key;
|
|
42
|
+
/** @type {?} */
|
|
43
|
+
ItemValidationSummaryComponent.prototype.title;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG9zb3ZpdG55L2FuYXRvbHkvIiwic291cmNlcyI6WyJsaWIvdWkvY29tcG9uZW50cy92YWxpZGF0aW9uL2l0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBTzVFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwwQkFBMEI7SUFJNUU7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7OztZQVhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUNBQWlDO2dCQUMzQyxpT0FBdUQ7YUFDeEQ7Ozs7O2tCQUdFLEtBQUs7b0JBQ0wsS0FBSzs7OztJQUROLDZDQUFxQjs7SUFDckIsK0NBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA2IERlYyAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMTkgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gXCIuL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2l0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEl0ZW1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBrZXk6IHN0cmluZztcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|